Repository: python-visualization/folium

Issue:
Creating documentation latex files fails (Python 3.5)
#### Please add a code sample or a nbviewer link, copy-pastable if possible

```shell
cd ./docs
make latex
```

#### Problem description

Instead of creating the tex files the following happens:


```shell
sphinx-build -b latex -d _build/doctrees   . _build/latex
Running Sphinx v1.8.1

Configuration error:
There is a programmable error in your configuration file:

Traceback (most recent call last):
  File "/XXXXXXXXX/.local/lib/python3.5/site-packages/sphinx/config.py", line 368, in eval_config_file
    execfile_(filename, namespace)
  File "/XXXXXXXXX/.local/lib/python3.5/site-packages/sphinx/util/pycompat.py", line 150, in execfile_
    exec_(code, _globals)
  File "/YYYYYYYYY/folium/folium/docs/conf.py", line 52, in <module>
    from folium._version import get_versions
ImportError: No module named 'folium'

Makefile:99: recipe for target 'latex' failed
make: *** [latex] Error 2
```

#### Expected Output

Nice latex files which I could use for creating a PDF.

#### Output of ``folium.__version__``
     0.6.0+30.g9f648a2.dirty'


Discussion:
Conengmo: Do we need to make the path explicit with `os.path.abspath` or is the current relative path sufficient?

Patch:
diff --git a/CHANGES.txt b/CHANGES.txt
index ffd37970..0cb937ce 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,7 @@
 - Update leaflet to 1.3.4 (ocefpaf #939)
 - More options (tms, opacity, kwargs) in TileLayer (mpickering #948)
 - Add MousePosition plugin (btozer #916)
+- Add Minimap plugin (talbertc-usgs #968)
 
 Bug Fixes
 
diff --git a/docs/conf.py b/docs/conf.py
index 553fc65c..bd829543 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -11,7 +11,11 @@
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
-import sys, os
+import sys
+import os
+
+# Use the currently checked out folium of this folder
+sys.path.insert(0, os.path.abspath(os.pardir))
 
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
diff --git a/examples/MiniMap.ipynb b/examples/MiniMap.ipynb
new file mode 100644
index 00000000..ccbece51
--- /dev/null
+++ b/examples/MiniMap.ipynb
@@ -0,0 +1,241 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Demo of a Minimap in Folium"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import folium\n",
+    "from folium.plugins import MiniMap"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfY2IzNDY4ZTkyYzJjNGMyOWEyZDQ3N2M0ZTcxOGYwZGIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC1taW5pbWFwLzMuNi4xL0NvbnRyb2wuTWluaU1hcC5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQtbWluaW1hcC8zLjYuMS9Db250cm9sLk1pbmlNYXAuY3NzIi8+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2NiMzQ2OGU5MmMyYzRjMjlhMmQ0NzdjNGU3MThmMGRiIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9jYjM0NjhlOTJjMmM0YzI5YTJkNDc3YzRlNzE4ZjBkYiA9IEwubWFwKAogICAgICAgICdtYXBfY2IzNDY4ZTkyYzJjNGMyOWEyZDQ3N2M0ZTcxOGYwZGInLCB7CiAgICAgICAgY2VudGVyOiBbMzAsIDIwXSwKICAgICAgICB6b29tOiA0LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfNzMxMGM1MDZjMzk3NDFmYjhlNjdkYTYwOTNkZmI3MmMgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwX2NiMzQ2OGU5MmMyYzRjMjlhMmQ0NzdjNGU3MThmMGRiKTsKICAgIAoKICAgICAgICB2YXIgdGlsZV9sYXllcl83MTQyMThiNzZhYTk0MTBiOGVkODZmOTUxOWNkNjBjZSA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJvcGFjaXR5IjogMSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiLAogICAgICAgICJ0bXMiOiBmYWxzZQp9ICk7CgogICAgICAgIHZhciBtaW5pX21hcF83ZjhjYzEwOTVjZTc0YTc3OWE3OTRkY2U5MTNiZmRjOSA9IG5ldyBMLkNvbnRyb2wuTWluaU1hcCggdGlsZV9sYXllcl83MTQyMThiNzZhYTk0MTBiOGVkODZmOTUxOWNkNjBjZSwKICAgICAgICAgewogICJhdXRvVG9nZ2xlRGlzcGxheSI6IGZhbHNlLAogICJjZW50ZXJGaXhlZCI6IGZhbHNlLAogICJjb2xsYXBzZWRIZWlnaHQiOiAyNSwKICAiY29sbGFwc2VkV2lkdGgiOiAyNSwKICAiaGVpZ2h0IjogMTUwLAogICJtaW5pbWl6ZWQiOiBmYWxzZSwKICAicG9zaXRpb24iOiAiYm90dG9tcmlnaHQiLAogICJ0b2dnbGVEaXNwbGF5IjogZmFsc2UsCiAgIndpZHRoIjogMTUwLAogICJ6b29tQW5pbWF0aW9uIjogZmFsc2UsCiAgInpvb21MZXZlbEZpeGVkIjogbnVsbCwKICAiem9vbUxldmVsT2Zmc2V0IjogLTUKfSk7CiAgICAgICAgbWFwX2NiMzQ2OGU5MmMyYzRjMjlhMmQ0NzdjNGU3MThmMGRiLmFkZENvbnRyb2wobWluaV9tYXBfN2Y4Y2MxMDk1Y2U3NGE3NzlhNzk0ZGNlOTEzYmZkYzkpOwoKICAgICAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+      ],
+      "text/plain": [
+       "<folium.folium.Map at 0x1b624bec048>"
+      ]
+     },
+     "execution_count": 2,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "m = folium.Map(location=(30, 20), zoom_start=4)\n",
+    "\n",
+    "minimap = MiniMap()\n",
+    "m.add_child(minimap)\n",
+    "m"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Make the minimap collapsable"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfMWU5MzFhZWRkYzMwNDg5ODkxOWNiZDVmNmE0NGJhM2EgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC1taW5pbWFwLzMuNi4xL0NvbnRyb2wuTWluaU1hcC5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQtbWluaW1hcC8zLjYuMS9Db250cm9sLk1pbmlNYXAuY3NzIi8+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzFlOTMxYWVkZGMzMDQ4OTg5MTljYmQ1ZjZhNDRiYTNhIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF8xZTkzMWFlZGRjMzA0ODk4OTE5Y2JkNWY2YTQ0YmEzYSA9IEwubWFwKAogICAgICAgICdtYXBfMWU5MzFhZWRkYzMwNDg5ODkxOWNiZDVmNmE0NGJhM2EnLCB7CiAgICAgICAgY2VudGVyOiBbMzAsIDIwXSwKICAgICAgICB6b29tOiA0LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfNzBjNTI0M2VmNWMyNDhkZWEzYmUwYmExN2Y4MGQ1NjIgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwXzFlOTMxYWVkZGMzMDQ4OTg5MTljYmQ1ZjZhNDRiYTNhKTsKICAgIAoKICAgICAgICB2YXIgdGlsZV9sYXllcl9iMmFmNTAzYThhYzI0ODYwYjc5ZTYzN2NmMTllNjA2MSA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJvcGFjaXR5IjogMSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiLAogICAgICAgICJ0bXMiOiBmYWxzZQp9ICk7CgogICAgICAgIHZhciBtaW5pX21hcF85ZWRhMjk5ZmU2MzU0NTcxOTY5NDk1NTZhMTgyY2FmOCA9IG5ldyBMLkNvbnRyb2wuTWluaU1hcCggdGlsZV9sYXllcl9iMmFmNTAzYThhYzI0ODYwYjc5ZTYzN2NmMTllNjA2MSwKICAgICAgICAgewogICJhdXRvVG9nZ2xlRGlzcGxheSI6IGZhbHNlLAogICJjZW50ZXJGaXhlZCI6IGZhbHNlLAogICJjb2xsYXBzZWRIZWlnaHQiOiAyNSwKICAiY29sbGFwc2VkV2lkdGgiOiAyNSwKICAiaGVpZ2h0IjogMTUwLAogICJtaW5pbWl6ZWQiOiBmYWxzZSwKICAicG9zaXRpb24iOiAiYm90dG9tcmlnaHQiLAogICJ0b2dnbGVEaXNwbGF5IjogdHJ1ZSwKICAid2lkdGgiOiAxNTAsCiAgInpvb21BbmltYXRpb24iOiBmYWxzZSwKICAiem9vbUxldmVsRml4ZWQiOiBudWxsLAogICJ6b29tTGV2ZWxPZmZzZXQiOiAtNQp9KTsKICAgICAgICBtYXBfMWU5MzFhZWRkYzMwNDg5ODkxOWNiZDVmNmE0NGJhM2EuYWRkQ29udHJvbChtaW5pX21hcF85ZWRhMjk5ZmU2MzU0NTcxOTY5NDk1NTZhMTgyY2FmOCk7CgogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+      ],
+      "text/plain": [
+       "<folium.folium.Map at 0x1b624bfaeb8>"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "m = folium.Map(location=(30, 20), zoom_start=4)\n",
+    "minimap = MiniMap(toggle_display=True)\n",
+    "minimap.add_to(m)\n",
+    "m"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Change the minimap tile layer"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZWE0YjRiNzdlNWY5NDBiYmJjMGYyYWMwNjlhODE0N2YgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC1taW5pbWFwLzMuNi4xL0NvbnRyb2wuTWluaU1hcC5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQtbWluaW1hcC8zLjYuMS9Db250cm9sLk1pbmlNYXAuY3NzIi8+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2VhNGI0Yjc3ZTVmOTQwYmJiYzBmMmFjMDY5YTgxNDdmIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9lYTRiNGI3N2U1Zjk0MGJiYmMwZjJhYzA2OWE4MTQ3ZiA9IEwubWFwKAogICAgICAgICdtYXBfZWE0YjRiNzdlNWY5NDBiYmJjMGYyYWMwNjlhODE0N2YnLCB7CiAgICAgICAgY2VudGVyOiBbMzAsIDIwXSwKICAgICAgICB6b29tOiA0LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfYzRlNDgwNDRjYzlkNGQ0YjllMzNmYjFmMDBmNTBlYzMgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwX2VhNGI0Yjc3ZTVmOTQwYmJiYzBmMmFjMDY5YTgxNDdmKTsKICAgIAoKICAgICAgICB2YXIgdGlsZV9sYXllcl82YTk0M2YyZDk4NzE0ZWVjYjdhMDNjMzlmMTFlODQyZSA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3N0YW1lbi10aWxlcy17c30uYS5zc2wuZmFzdGx5Lm5ldC90b25lci97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSApOwoKICAgICAgICB2YXIgbWluaV9tYXBfMzY2ZTZiYWI3ZDQyNGQyMGFkZTIxMTNmNzYzZTM0MmYgPSBuZXcgTC5Db250cm9sLk1pbmlNYXAoIHRpbGVfbGF5ZXJfNmE5NDNmMmQ5ODcxNGVlY2I3YTAzYzM5ZjExZTg0MmUsCiAgICAgICAgIHsKICAiYXV0b1RvZ2dsZURpc3BsYXkiOiBmYWxzZSwKICAiY2VudGVyRml4ZWQiOiBmYWxzZSwKICAiY29sbGFwc2VkSGVpZ2h0IjogMjUsCiAgImNvbGxhcHNlZFdpZHRoIjogMjUsCiAgImhlaWdodCI6IDE1MCwKICAibWluaW1pemVkIjogZmFsc2UsCiAgInBvc2l0aW9uIjogImJvdHRvbXJpZ2h0IiwKICAidG9nZ2xlRGlzcGxheSI6IGZhbHNlLAogICJ3aWR0aCI6IDE1MCwKICAiem9vbUFuaW1hdGlvbiI6IGZhbHNlLAogICJ6b29tTGV2ZWxGaXhlZCI6IG51bGwsCiAgInpvb21MZXZlbE9mZnNldCI6IC01Cn0pOwogICAgICAgIG1hcF9lYTRiNGI3N2U1Zjk0MGJiYmMwZjJhYzA2OWE4MTQ3Zi5hZGRDb250cm9sKG1pbmlfbWFwXzM2NmU2YmFiN2Q0MjRkMjBhZGUyMTEzZjc2M2UzNDJmKTsKCiAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+      ],
+      "text/plain": [
+       "<folium.folium.Map at 0x1b624c27d30>"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "m = folium.Map(location=(30, 20), zoom_start=4)\n",
+    "minimap = MiniMap(tile_layer=\"Stamen Toner\")\n",
+    "minimap.add_to(m)\n",
+    "m"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Change the minimap position"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZDliNTMyY2Y2YTg3NGZjZWFlZjI4YzU1MTU4NDVkMzAgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC1taW5pbWFwLzMuNi4xL0NvbnRyb2wuTWluaU1hcC5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQtbWluaW1hcC8zLjYuMS9Db250cm9sLk1pbmlNYXAuY3NzIi8+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2Q5YjUzMmNmNmE4NzRmY2VhZWYyOGM1NTE1ODQ1ZDMwIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9kOWI1MzJjZjZhODc0ZmNlYWVmMjhjNTUxNTg0NWQzMCA9IEwubWFwKAogICAgICAgICdtYXBfZDliNTMyY2Y2YTg3NGZjZWFlZjI4YzU1MTU4NDVkMzAnLCB7CiAgICAgICAgY2VudGVyOiBbMzAsIDIwXSwKICAgICAgICB6b29tOiA0LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfNGY0YzJlMDg5YjI4NDY5ZjhjMzgxMTE2OGU2NWE1NGIgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwX2Q5YjUzMmNmNmE4NzRmY2VhZWYyOGM1NTE1ODQ1ZDMwKTsKICAgIAoKICAgICAgICB2YXIgdGlsZV9sYXllcl8xYTBjYzMxZmY1ZTQ0OGQwOWYxNGQyYzI0MGMzZjViMyA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJvcGFjaXR5IjogMSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiLAogICAgICAgICJ0bXMiOiBmYWxzZQp9ICk7CgogICAgICAgIHZhciBtaW5pX21hcF82MDllYWY1YmNjMmE0YmQ1ODY1ZGFjNWI2ZTA4NDgwZiA9IG5ldyBMLkNvbnRyb2wuTWluaU1hcCggdGlsZV9sYXllcl8xYTBjYzMxZmY1ZTQ0OGQwOWYxNGQyYzI0MGMzZjViMywKICAgICAgICAgewogICJhdXRvVG9nZ2xlRGlzcGxheSI6IGZhbHNlLAogICJjZW50ZXJGaXhlZCI6IGZhbHNlLAogICJjb2xsYXBzZWRIZWlnaHQiOiAyNSwKICAiY29sbGFwc2VkV2lkdGgiOiAyNSwKICAiaGVpZ2h0IjogMTUwLAogICJtaW5pbWl6ZWQiOiBmYWxzZSwKICAicG9zaXRpb24iOiAidG9wbGVmdCIsCiAgInRvZ2dsZURpc3BsYXkiOiBmYWxzZSwKICAid2lkdGgiOiAxNTAsCiAgInpvb21BbmltYXRpb24iOiBmYWxzZSwKICAiem9vbUxldmVsRml4ZWQiOiBudWxsLAogICJ6b29tTGV2ZWxPZmZzZXQiOiAtNQp9KTsKICAgICAgICBtYXBfZDliNTMyY2Y2YTg3NGZjZWFlZjI4YzU1MTU4NDVkMzAuYWRkQ29udHJvbChtaW5pX21hcF82MDllYWY1YmNjMmE0YmQ1ODY1ZGFjNWI2ZTA4NDgwZik7CgogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+      ],
+      "text/plain": [
+       "<folium.folium.Map at 0x1b624c4b898>"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "m = folium.Map(location=(30, 20), zoom_start=4)\n",
+    "minimap = MiniMap(position=\"topleft\")\n",
+    "minimap.add_to(m)\n",
+    "m"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Change the minimap size"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfYTBmZDc3NTc3ZTZmNDliNTgwZTI5MDlmNzNmMjMwMGUgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC1taW5pbWFwLzMuNi4xL0NvbnRyb2wuTWluaU1hcC5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQtbWluaW1hcC8zLjYuMS9Db250cm9sLk1pbmlNYXAuY3NzIi8+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2EwZmQ3NzU3N2U2ZjQ5YjU4MGUyOTA5ZjczZjIzMDBlIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9hMGZkNzc1NzdlNmY0OWI1ODBlMjkwOWY3M2YyMzAwZSA9IEwubWFwKAogICAgICAgICdtYXBfYTBmZDc3NTc3ZTZmNDliNTgwZTI5MDlmNzNmMjMwMGUnLCB7CiAgICAgICAgY2VudGVyOiBbMzAsIDIwXSwKICAgICAgICB6b29tOiA0LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfNzY5Nzc2YWYzNGFhNGRhYmFjOTdkMTQ2MWZjMDY0MjIgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwX2EwZmQ3NzU3N2U2ZjQ5YjU4MGUyOTA5ZjczZjIzMDBlKTsKICAgIAoKICAgICAgICB2YXIgdGlsZV9sYXllcl9hMTk2MmViN2MyNjk0MzY1ODUyY2FjNTM4YWQ1ODMyZSA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJvcGFjaXR5IjogMSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiLAogICAgICAgICJ0bXMiOiBmYWxzZQp9ICk7CgogICAgICAgIHZhciBtaW5pX21hcF9lNzZlMDk1MjliMDg0ZWE3OGNhZTBlNjE5MGE5OWUyZCA9IG5ldyBMLkNvbnRyb2wuTWluaU1hcCggdGlsZV9sYXllcl9hMTk2MmViN2MyNjk0MzY1ODUyY2FjNTM4YWQ1ODMyZSwKICAgICAgICAgewogICJhdXRvVG9nZ2xlRGlzcGxheSI6IGZhbHNlLAogICJjZW50ZXJGaXhlZCI6IGZhbHNlLAogICJjb2xsYXBzZWRIZWlnaHQiOiAyNSwKICAiY29sbGFwc2VkV2lkdGgiOiAyNSwKICAiaGVpZ2h0IjogMTAwLAogICJtaW5pbWl6ZWQiOiBmYWxzZSwKICAicG9zaXRpb24iOiAiYm90dG9tcmlnaHQiLAogICJ0b2dnbGVEaXNwbGF5IjogZmFsc2UsCiAgIndpZHRoIjogNDAwLAogICJ6b29tQW5pbWF0aW9uIjogZmFsc2UsCiAgInpvb21MZXZlbEZpeGVkIjogbnVsbCwKICAiem9vbUxldmVsT2Zmc2V0IjogLTUKfSk7CiAgICAgICAgbWFwX2EwZmQ3NzU3N2U2ZjQ5YjU4MGUyOTA5ZjczZjIzMDBlLmFkZENvbnRyb2wobWluaV9tYXBfZTc2ZTA5NTI5YjA4NGVhNzhjYWUwZTYxOTBhOTllMmQpOwoKICAgICAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+      ],
+      "text/plain": [
+       "<folium.folium.Map at 0x1b624c56358>"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "m = folium.Map(location=(30, 20), zoom_start=4)\n",
+    "minimap = MiniMap(width=400, height=100)\n",
+    "minimap.add_to(m)\n",
+    "m"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Change the zoom offset"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNTc4NGM3NTQ1MmNjNGJkOWEyMzJiOGYzMzc5MWQ2M2QgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC1taW5pbWFwLzMuNi4xL0NvbnRyb2wuTWluaU1hcC5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQtbWluaW1hcC8zLjYuMS9Db250cm9sLk1pbmlNYXAuY3NzIi8+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzU3ODRjNzU0NTJjYzRiZDlhMjMyYjhmMzM3OTFkNjNkIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF81Nzg0Yzc1NDUyY2M0YmQ5YTIzMmI4ZjMzNzkxZDYzZCA9IEwubWFwKAogICAgICAgICdtYXBfNTc4NGM3NTQ1MmNjNGJkOWEyMzJiOGYzMzc5MWQ2M2QnLCB7CiAgICAgICAgY2VudGVyOiBbMzAsIDIwXSwKICAgICAgICB6b29tOiA4LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfN2M1MDU3MGM2MWQwNDVkOGEyZWI5NTQwYTZkMTFhMTYgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwXzU3ODRjNzU0NTJjYzRiZDlhMjMyYjhmMzM3OTFkNjNkKTsKICAgIAoKICAgICAgICB2YXIgdGlsZV9sYXllcl82NzdlZGY4MjhhMzM0YWRlYjZmZjUzNGUzY2JiYzMwMCA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJvcGFjaXR5IjogMSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiLAogICAgICAgICJ0bXMiOiBmYWxzZQp9ICk7CgogICAgICAgIHZhciBtaW5pX21hcF8xZjU5MTBmN2ZjN2E0YmY4YmQyYmJhMWUxN2FhM2VhOCA9IG5ldyBMLkNvbnRyb2wuTWluaU1hcCggdGlsZV9sYXllcl82NzdlZGY4MjhhMzM0YWRlYjZmZjUzNGUzY2JiYzMwMCwKICAgICAgICAgewogICJhdXRvVG9nZ2xlRGlzcGxheSI6IGZhbHNlLAogICJjZW50ZXJGaXhlZCI6IGZhbHNlLAogICJjb2xsYXBzZWRIZWlnaHQiOiAyNSwKICAiY29sbGFwc2VkV2lkdGgiOiAyNSwKICAiaGVpZ2h0IjogMTUwLAogICJtaW5pbWl6ZWQiOiBmYWxzZSwKICAicG9zaXRpb24iOiAiYm90dG9tcmlnaHQiLAogICJ0b2dnbGVEaXNwbGF5IjogZmFsc2UsCiAgIndpZHRoIjogMTUwLAogICJ6b29tQW5pbWF0aW9uIjogZmFsc2UsCiAgInpvb21MZXZlbEZpeGVkIjogbnVsbCwKICAiem9vbUxldmVsT2Zmc2V0IjogLTgKfSk7CiAgICAgICAgbWFwXzU3ODRjNzU0NTJjYzRiZDlhMjMyYjhmMzM3OTFkNjNkLmFkZENvbnRyb2wobWluaV9tYXBfMWY1OTEwZjdmYzdhNGJmOGJkMmJiYTFlMTdhYTNlYTgpOwoKICAgICAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+      ],
+      "text/plain": [
+       "<folium.folium.Map at 0x1b624c56470>"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "m = folium.Map(location=(30, 20), zoom_start=8)\n",
+    "minimap = MiniMap(zoom_level_offset=-8)\n",
+    "minimap.add_to(m)\n",
+    "m"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.6.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/examples/Plugins.ipynb b/examples/Plugins.ipynb
index 53b45914..3bcbba27 100644
--- a/examples/Plugins.ipynb
+++ b/examples/Plugins.ipynb
@@ -9,7 +9,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "0.5.0+114.gd5c3342.dirty\n"
+      "0.6.0+23.g2e3a79e.dirty\n"
      ]
     }
    ],
@@ -61,10 +61,10 @@
     {
      "data": {
       "text/html": [
-       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNTMyZDQwZjE1Y2RlNGZmMGI3N2M2ZjdjYjc5MDBlZTQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICAKICAgICAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgICAgICAjc2Nyb2xsX3pvb21fdG9nZ2xlcl85MjU5MjlmNjhiNzY0M2IyOTI3MDdjNDM3MGQ1NzNhZCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDozNXB4OwogICAgICAgICAgICAgICAgICAgICAgICBib3R0b206MTBweDsKICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OjM1cHg7CiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6MTBweDsKICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojZmZmOwogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjsKICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6MzVweDsKICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzUzMmQ0MGYxNWNkZTRmZjBiNzdjNmY3Y2I3OTAwZWU0IiA+PC9kaXY+CiAgICAKICAgICAgICAgICAgPGltZyBpZD0ic2Nyb2xsX3pvb21fdG9nZ2xlcl85MjU5MjlmNjhiNzY0M2IyOTI3MDdjNDM3MGQ1NzNhZCIgYWx0PSJzY3JvbGwiCiAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9pb25pY29ucy8yLjAuMS9wbmcvNTEyL2Fycm93LW1vdmUucG5nIgogICAgICAgICAgICAgICAgIHN0eWxlPSJ6LWluZGV4OiA5OTk5OTkiCiAgICAgICAgICAgICAgICAgb25jbGljaz0ibWFwXzUzMmQ0MGYxNWNkZTRmZjBiNzdjNmY3Y2I3OTAwZWU0LnRvZ2dsZVNjcm9sbCgpIj4KICAgICAgICAgICAgPC9pbWc+CiAgICAgICAgICAgIAo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfNTMyZDQwZjE1Y2RlNGZmMGI3N2M2ZjdjYjc5MDBlZTQgPSBMLm1hcCgKICAgICAgICAnbWFwXzUzMmQ0MGYxNWNkZTRmZjBiNzdjNmY3Y2I3OTAwZWU0JywgewogICAgICAgIGNlbnRlcjogWzQ1LCAzXSwKICAgICAgICB6b29tOiA0LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgIH0pOwoKICAgIAogICAgCiAgICB2YXIgdGlsZV9sYXllcl83OTI2YmUxOWY5Y2M0MmI1YTg4NTI3OTRmMWIyZDk1MCA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzUzMmQ0MGYxNWNkZTRmZjBiNzdjNmY3Y2I3OTAwZWU0KTsKICAgIAogICAgICAgICAgICAgICAgICAgIG1hcF81MzJkNDBmMTVjZGU0ZmYwYjc3YzZmN2NiNzkwMGVlNC5zY3JvbGxFbmFibGVkID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAgICAgbWFwXzUzMmQ0MGYxNWNkZTRmZjBiNzdjNmY3Y2I3OTAwZWU0LnRvZ2dsZVNjcm9sbCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zY3JvbGxFbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEVuYWJsZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsV2hlZWxab29tLmRpc2FibGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEVuYWJsZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxXaGVlbFpvb20uZW5hYmxlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgIG1hcF81MzJkNDBmMTVjZGU0ZmYwYjc3YzZmN2NiNzkwMGVlNC50b2dnbGVTY3JvbGwoKTsKICAgICAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfODIwZmYyM2IwMzYzNGMwNmI5YjFjMGIwYzY5NGI5OTEgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICAKICAgICAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgICAgICAjc2Nyb2xsX3pvb21fdG9nZ2xlcl9lNzcyOWI5MzhhMzY0ODY2ODcwODZiODE5MjZlOTk4MiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlOwogICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDozNXB4OwogICAgICAgICAgICAgICAgICAgICAgICBib3R0b206MTBweDsKICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OjM1cHg7CiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6MTBweDsKICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojZmZmOwogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOmNlbnRlcjsKICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6MzVweDsKICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzgyMGZmMjNiMDM2MzRjMDZiOWIxYzBiMGM2OTRiOTkxIiA+PC9kaXY+CiAgICAKICAgICAgICAgICAgPGltZyBpZD0ic2Nyb2xsX3pvb21fdG9nZ2xlcl9lNzcyOWI5MzhhMzY0ODY2ODcwODZiODE5MjZlOTk4MiIgYWx0PSJzY3JvbGwiCiAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9pb25pY29ucy8yLjAuMS9wbmcvNTEyL2Fycm93LW1vdmUucG5nIgogICAgICAgICAgICAgICAgIHN0eWxlPSJ6LWluZGV4OiA5OTk5OTkiCiAgICAgICAgICAgICAgICAgb25jbGljaz0ibWFwXzgyMGZmMjNiMDM2MzRjMDZiOWIxYzBiMGM2OTRiOTkxLnRvZ2dsZVNjcm9sbCgpIj4KICAgICAgICAgICAgPC9pbWc+CiAgICAgICAgICAgIAo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfODIwZmYyM2IwMzYzNGMwNmI5YjFjMGIwYzY5NGI5OTEgPSBMLm1hcCgKICAgICAgICAnbWFwXzgyMGZmMjNiMDM2MzRjMDZiOWIxYzBiMGM2OTRiOTkxJywgewogICAgICAgIGNlbnRlcjogWzQ1LCAzXSwKICAgICAgICB6b29tOiA0LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfNTAwMGNlODBmOWRmNDI4NjgxMzE0ZThiNTk2MTMyOGIgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwXzgyMGZmMjNiMDM2MzRjMDZiOWIxYzBiMGM2OTRiOTkxKTsKICAgIAogICAgICAgICAgICAgICAgICAgIG1hcF84MjBmZjIzYjAzNjM0YzA2YjliMWMwYjBjNjk0Yjk5MS5zY3JvbGxFbmFibGVkID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAgICAgbWFwXzgyMGZmMjNiMDM2MzRjMDZiOWIxYzBiMGM2OTRiOTkxLnRvZ2dsZVNjcm9sbCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zY3JvbGxFbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEVuYWJsZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsV2hlZWxab29tLmRpc2FibGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEVuYWJsZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxXaGVlbFpvb20uZW5hYmxlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgIG1hcF84MjBmZjIzYjAzNjM0YzA2YjliMWMwYjBjNjk0Yjk5MS50b2dnbGVTY3JvbGwoKTsKICAgICAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
       ],
       "text/plain": [
-       "<folium.folium.Map at 0x7f20bbb05940>"
+       "<folium.folium.Map at 0x1b7d54bbcc0>"
       ]
      },
      "execution_count": 3,
@@ -104,10 +104,10 @@
     {
      "data": {
       "text/html": [
-       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfMTYxM2JmMmE1MTc4NDhkNWFkZDFlMTk4Y2JhMzdkZGQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5tYXJrZXJjbHVzdGVyLzEuMS4wL2xlYWZsZXQubWFya2VyY2x1c3Rlci5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQubWFya2VyY2x1c3Rlci8xLjEuMC9NYXJrZXJDbHVzdGVyLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMS4xLjAvTWFya2VyQ2x1c3Rlci5EZWZhdWx0LmNzcyIvPgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF8xNjEzYmYyYTUxNzg0OGQ1YWRkMWUxOThjYmEzN2RkZCIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfMTYxM2JmMmE1MTc4NDhkNWFkZDFlMTk4Y2JhMzdkZGQgPSBMLm1hcCgKICAgICAgICAnbWFwXzE2MTNiZjJhNTE3ODQ4ZDVhZGQxZTE5OGNiYTM3ZGRkJywgewogICAgICAgIGNlbnRlcjogWzQ1LCAzXSwKICAgICAgICB6b29tOiA0LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgIH0pOwoKICAgIAogICAgCiAgICB2YXIgdGlsZV9sYXllcl81M2E1ZWUwMDlhODg0NWZhYjhiNjkxNjQ4OWJjMmU1OSA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzE2MTNiZjJhNTE3ODQ4ZDVhZGQxZTE5OGNiYTM3ZGRkKTsKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEgPSBMLm1hcmtlckNsdXN0ZXJHcm91cCh7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIG1hcF8xNjEzYmYyYTUxNzg0OGQ1YWRkMWUxOThjYmEzN2RkZC5hZGRMYXllcihtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzI3NjljNmFkMDM0MDQ2NzhhOGQxYjliOGFhYjI2MzQ3ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTEuNjM2MzE1Nzg5Nzc0MzM2LCA3LjgxMjQ1MTg3OTU3NDEwOV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzI5NmIyOWNjMjg5MzRjNThiZGUxYjRlM2UyZTVjYzg3ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTkuMzgwNTM2MTk0NjA5NDgsIDI0LjQ3Njg4MDU4NTMwODE5NF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2VkOTcwNDMxNzJlMzQ4NWE4MmIzMDQ4MTU0NTNkNWY2ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuOTM1ODgxMDEzMzYyNjUsIDIwLjk1MjU3NTI1MjQ3MTQ5XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMDA0ODYwMDA0NmNhNGE0NzhkMjY1ZjgyYjQ2OWE4ZjIgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1NC43ODI5MDg2NTM4OTEyMSwgLTguNDU1MDQ4Nzk4ODAyMTkyXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNWNiZDg3NmFkMzUyNGU3ODlmYTRmNDFkYWU0OTEwMjEgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Ni4xMzUxMjg3MDIzMTY5OCwgNS4yMzI3Njk1OTUwOTQ5ODJdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl8yZWM5N2VhNjhkMDY0NTQ3YWQwY2E3NDEzYmQyMzE5YSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQzLjYzNzIzNTE3OTQyMTIsIDE1LjQ4Njk0MzU3MzMyNzhdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9jNDM5Yzg3ZDk1NDg0N2Q3OTVkYjQ0ZjkwNDNjODkyOCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUzLjU3OTczMjUyNTM0OTcsIC04LjQ2MzUxMzIxMDQxODA4OV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2QwNjY4MWU0NmJlMjQxNmQ4NzljYzEwOWMwOTVjNGUwID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTUuMjY2OTc1ODU3ODkyNDYsIDI4LjYyNDExMzgxMTcwMzIxOF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2Y5NzM3YWI2YjhlZjQ0MGI5YzlhNTNkNGI2YmRiYjRlID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTIuNjQxMTQ5ODU2NTU1MjQ1LCAyOC4yNzM4NTU0OTIzMzU4ODNdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl84YTAyYmRmYjk0M2U0MGFmOGIzNjcxNGJmMTQ2ZmNhOCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzU5LjQ1ODc2MjMwMzk3MzYzLCAxMi4xNTAxNjgxNjk1MDExMThdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl8yZjI0YWIzM2Q2MmU0NmUzYjM4ZTZiZDVlZGE5NmFlMCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ3LjE5OTUyODU5ODA1MjQ0LCAwLjY5MDg3NjMyMTc3OTE4NThdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl82NzFkNWI1ODMyY2U0OGI4YTMwNjYyZDRmZjdlMzVkMyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUzLjI2MzAzMzU3Mjg4MDA5LCA3LjQwMDEwMDY5NDgyNjY1ODZdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl8wMWI3N2JlNTU3ZDk0NDE2YWZmNmM5ZjE2ZWVjZWE1YiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM3LjI4NzgyMjkxMzYwNjA4NSwgLTYuODA5NzY5NTc0MjM4MDU5XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfYzJhYjdlZDI5ZjE0NGU1MzlkYTRjN2VlNjdhOGQ1ODggPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszOS40NjEwNzk0MzQ2MzI4NiwgLTExLjAzNzAyNDM5MTU5ODU0Nl0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzNjMzU3M2NjZDBlYTQ4YzY5Yzg1MDEwNTRlYWE5NGVlID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTcuMjQ1NTkyMzY1ODE3NDQ0LCA3LjU2MzgwODI4MzIwMzY0OV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzY2MWU0NDNlNDhkYzQwNTE5NTBjYjQ3OTcxMzJmODI3ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTYuODIwNzI2Njc4MDA2MDA0LCAyNC4wMDc1ODU4OTg3NDM3MjddLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9iMjY3YTkzN2VjYTA0OGU3YmE2OGEzZTc0ZDhkNDc0OCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUzLjE4NzA3MTc0MjU3MSwgLTIuMDk4MTE2ODMwMTU0NDYxN10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzIzOGZmYzFlNTE2NTQ4OTFiNmZjNjE2OGFiMmRiODVkID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzkuMDI2MjYwNjUxNDMzNzcsIC0xLjk0MjQ5NTUxNzI4NjUwMDhdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl81NDBhZTM1YzQ4MjU0MGY0ODUzYjVmMzU4ZDMxMzYzNiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ3LjA5NzM3NzY2NTg5MDUzNCwgLTkuOTUwODQyNzQ5NTM0ODM3XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMWRlM2ExOWMzN2EyNDkyODg4NzBlMzZhOWZiOTI0NWYgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MjY1NTMxMjU1MDQzMDYsIDcuNjI3OTY0Njg3ODY5ODg4XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMDgxNDJiYThmNGE0NDQ5NWI5YzU5NWRjZDU1OWQyNWUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszNy4xNDg1NzY4Nzc4NzUxNCwgNS43NjQzNzU1MjU4NjMyNjldLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9jZDM0YmZmMWVmMzE0M2Y4YTE1ZjRhYTYzOTVkMzRiNyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM5LjcxMjkwMDc5NjE0NTg3NCwgLTExLjIyODUwNjc2NDMzOTI2Ml0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzdlOWRkZmE1MTA3NDRjOGE4MWZkMzNhZmM0Y2Y0NjdhID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzYuODgwNTU0MTg1MDk5MTg2LCAyNS44NDUyODI5OTE2OTM3N10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzA0NTA2YjBjNGFjZTRkYzBhMzQ5ZGU3YWVkNTc1N2JmID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzguODUzOTM3NDAwNDk4NTQ1LCA1LjEzNjM2MjQ4OTI2MTcwM10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzRjYWU1OThjNzY0MzRlMmFhZmY1MDk1NDlhYWY0Yzg2ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTEuNDcyODk1Mzc2NjA2NzYsIC03Ljc0MjQ1MzkwOTUwNjE3OF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2E4ZGRjMmM3ZTg4OTQ5OTg5YzliNTQyNWNjMTQwZmIxID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzguNjIxODk0ODYyNjM0NTEsIDMuOTE0MjQzMDA1MzcyNDczXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMGVhODY0YmRmNTdlNGE1ZWIyOTYyMDUxZGQzMjVkNTMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0My4yMzgyNzU2ODQ3NTQsIC01LjU4MDk4NjkwMTE4M10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzdhZDI3NGE0YzczZTQ1ODliYjMxOGZlNmNmMjQyNTUzID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDYuNTE4MjAxMjk4NDYzODE1LCAtOC45MTk2NjU0MDY2ODk4MDZdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl84YmQyMmJhMTQ2N2Y0NGJkOGZiOTM5OGUwYmRjZTk0MSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQyLjA0ODM2Njk2Mzc5MTc1LCAxNC4yODA0MTkwOTIzNzYxOTZdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9mODQ3ZmMyNGE0MmU0NzFkOGUyMTM0ZTFkOWUxODhhYSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM2LjQxOTUyNzY0MDQzOTI0LCAwLjYyNjQyODA5NjMyMTkwMjJdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl81NGZiMmQ4ZjA3ODI0NDlmOGE0OGYzNTU3ZjQxNmUzMiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ5LjYwMTgwNzcwNDAzNDExLCAtMTEuMTY0MzEyMjcxNzY5MDE3XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNDg4NmM2ZDBhNTExNDMyM2E2YmUxMTUzZmIyNzk2YTYgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszNy4wMzAzOTk5NDIxMDI2NCwgMC4zMjMwNTUwMDU5NDEyMDMyXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfOGJjNDBmYjdlNTZjNGUyN2IzNGMyNjkwM2Q0MGVlMjkgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1NC43Mzk5NzY5MzQ4NjkwNiwgMjYuNTIyNTgzODAzODQ1MTM3XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfZGM0OTM5ZTZlYjM0NGE5MmE1ODUwMzcyOWU5ZTU2NmEgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS42MTMzMTQzMzY1NTQ1OTUsIC0wLjMwNDk2Mzg2MjAxNDc0M10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzU1ZjdhOWJmY2FjMzQxYTliMWZmZDNiOTJkZjEzNjFjID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDUuMzYyODQ1ODM0ODM2MjYsIDE0Ljk3OTAzNTAwNzEzNTQyNl0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzA0OTQzZmNmZDk5MDQyZDBiYWE0ODcyY2VhMzEwOGQ4ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTEuNzg1MzQ4MzA2MDA0MDMsIC0wLjMyMjkzMDQ5MjMwOTYxNDhdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl8yY2QzNTdhMTMxZjY0M2RjYTA2OWMwOGI4ODU5NzgwYyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM2NjY4NTEyMTAwODMsIDAuMTIzNTkxNTYwMTUyMzg3ODFdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl81NzhiNTUyYjk4YjQ0MWJkOTUzN2M3MTI0NjU2YmMwMyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM2LjQxNzA2OTMyOTc5MzYxLCAtMTAuNjgxMDU2MjYzMDA4MzEyXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMDA1NGFmYWJmNjllNDEzZDhhYmIzY2FhMmE4ODYwNmMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1NS4yNTY4Njg0ODI2NjgzNzQsIDcuMzczMjMxNzc2NjAyMjE0XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNGY0MzU1MTcxZjA2NDk1MWJmNzhiODYyNWU0NzQxOTYgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0Ny44Njk0Njg0MDQxMTU4NjQsIDE2LjA0MzkwNjYwNTU5OTgxXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfYzE0ODdiYTdjY2Q2NDYzMWEzODcxNDA2YmEwYWZiNjUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Ny44Mjk1MzU2OTczOTk3OSwgOS4xNTIxNTI1Njc0OTQ4NDldLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl85NmIzMzM0YzI1YjA0MzQxOTlmOGU2YWQ0NTllZjk1NSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNDE2NDc1NTEyMzUwNiwgLTMuMzQxNTE3Mzg0NTMxODMyXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfYjJhZjg4NTdkNzM3NDZmYzk4N2E5N2IzZWJjOGYxYTkgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1My4xNTIyMTgzNzQ0NDk4MSwgMTAuMDIxMzgwMTU0MjA4OTUyXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNTk3NDk1MzczNzc4NGM2M2FkNDc4MzY2M2VkNWFjMzQgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszNi45MjMxNDk4NTc2NDczNzQsIDE3LjIyNTc2Mzc2MTU5MzMwNl0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzY4N2VhZjNlMWQwMzRmMGI4MzNhM2RiMDI4Zjg5NWZhID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTguMjcwMjkxMTU1NzUxMzgsIDE3LjA5NzMwOTUzMTg3Mzk4XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfYWRlNGNmODVhZjIwNDhlN2E3OTA5OTU2NjhjOGY3NzAgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Ni4yNjMxMzU5MjIxMDA5ODYsIDI2LjA0MjAxNzc1NzM0ODc3M10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzc1MmZkODllOWQ1YTRmMGQ5ZTNhZDZkMzJmYTI1NGFkID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTMuNDgyOTIxMzc5NjczOTYsIDE3Ljk1MDIwMzA2OTMzNzY5N10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzkwNDdhOWU4ZjY0MDQwYWJiYTc4MGI0MzlmZTgxZTAzID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTguNjgwNzYyNjI3MzUzMjYsIDIxLjA4NjU5Nzc4OTI2OTU0N10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzMxZTY4YzUwNjQzNzQyNzk5ZGM5Yjg0MjI1NWYwMWY1ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTcuMTYwMDYxOTUxNDg1NDMsIDEyLjAwNTIwNjEzNzkwNzczNF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2Q0YjU3YmZiY2ViMzRjYTBhMTdlM2FiNmI4ZTU0N2Y0ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTYuNTE0MDMwMTc4ODM0MjUsIDQuMTA5MjE4NDEzMzc1MDI1XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfZjlhMjRjN2ZlMTVhNGM4Njk1OGM0ZGYyZDk0YTJkMTUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Mi43MTYwMjM5ODM4ODYzOSwgMy44NjQ1MDk3NTMxODExOTJdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl84ZjJjNTRhNmIxZTg0ODJjOWE4OGRjOTIxY2EyOWUzYyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjI0Nzg3MDMzMjY0Njg3LCAxOS4zNTkyMDYxMzg2MzMxNF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzIwYWRlZmMyNmQ2NDQyMzNiMWYxZGM1MzI3MzBkOTI3ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDYuNDE0NTA2NjM1OTg0OTQsIDQuOTQ3MzEwNTQyMzI3NTA3XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMmZjY2IxY2UwYzZhNDY1ZGEwOTJjM2I4MWMzYzQ0ZDYgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0Ny42NDQzNDg1MDgxNTg2NywgLTQuNDAxNTY1MzQ0OTE2OTcxXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNjZmZDk3MjNmOGE5NGMzYzlkNmVhZmY1YjZmYTYxOWUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0NC4wNjI0ODU4NTQwMTM0MiwgOC42NjgzNzM3ODQ5NjMwMjddLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl85OTk0YmZkODM1MmI0NzU5OWNmMDQ3Yzk0YmM3N2M1OSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzU5LjU1NDcxNTczNjUwNTc3LCAtOS4wOTg4Mjg5NTgzNDI4MDNdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl80OTI2YTk2NmIzMDQ0MjEwOTIzYTA5OTQxN2Y1OWIzYiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM2Ljg2Mjk4ODk2NTYwMzcyLCAwLjg5OTAyOTA1MjQ0MzE1NzldLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9mZjJjMzZjNjljNWY0M2VkYmQzYWYzMTUxZWEwNmU1YSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM5LjcxOTAwNTg1MzM2MzAxNSwgMTQuNjI4NjI2Mzk0Mzg0MjQxXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNTQ5MTkwOWUwNTJkNGExNjliMDkzNjMzNGE5Y2JmMWQgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MS4wMTc4OTgxMzU4NjE0NSwgMjcuMDM0MzM1MjQ1NTQ0NDgzXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfYmRmNzk2N2I3OGNjNDUxMDlhODVmNDQ1OGFlMDc5NWMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC4zOTIzNDE0NDI4MjcxOSwgMS45OTA1NjM2NjM0MzYwMTUzXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMzgwNTgwOTYzZmVlNDc0N2ExNmFiMmI5ZjZkNTkxYzQgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszNy4wODMxMTAyMjIwOTEwOSwgMjYuNzg0MjQzMjQ3NjYwNDddLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl8yZTNkNmYwMDlhOWM0Y2JiOWYwYmJmNGM3NGE3YjgwNCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzU3Ljc4MDQ1OTg1ODMyNDk5NiwgLTIuMjQ3NDk1MjM2MjEzODg2NV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzM5OGM2MDM1MzBkNDRkZDg5YmQxZjNhNzNmYmVjNDNmID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTYuMDcwMzM4MjM1NjYwMDk1LCAxLjg2NjMwNzg3NjE5OTU3OTVdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9hZTYzY2IyYjQ0NGY0YWRmYTU3OGVlOTMxMGJlNjdiNCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM2Ljk5NzcxMTA0MDI3MjM3LCAyMi42MzU2NzI2MzQ1MDk5ODddLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9jYjRjN2M4MGQ2OTQ0YTZmYTdiMTczY2VlMDNlOGEwZiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ2LjEyMjA2NzM1NjE4NTIsIDEzLjcxNzE4NjU1Nzg2OTE5OF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzQ4YmViNDVhOTg1YzRlMTA5NTJhMjQ3NWZlZDUxOWQ2ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDguMzI2MDY1MDQ4NzY2MjIsIDE4LjcwODU2MTYwODUxMTI2OF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2I0OTE4ZDMyNGJhYTQ1ZjE5OTkzZTJhMWUyNTZiYjcwID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDcuMTc2OTQ3NDIwNjM4NzI2LCAwLjQwNDE2MzE3NDQyNzk0OTldLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl8yODhhYjZkYzVhMTE0ZTY0OTNlNDUzYjg2YzVlM2QxZiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ1Ljc4MjI3Mzc1MjczMzg3LCAtMi43NzIxNzY1NjYxNjY3MV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2FjMTNlM2VjYWJkNDQ0YzQ5OWRiNmFmOGY3NDhkNDliID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDUuNjY5MDY2NjQ2NjEwMzU0LCAyMi40MzczNTIyMDk3Njk3OV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzUzZmNhOWNiYzRmODQ1N2NhNjQ5YzY0OGQxNmIxOTQxID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzcuNjI5OTM5NzY4OTA4NjksIDI5LjI3NTE0MTY3MzQ3MjIwNl0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzY2NWYxYWQxNzE2NzRhZjVhNTZhMjM3MmY5ZDExMWFiID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTYuNzA5MTE1ODgwMjQ2NTIsIDIzLjMzNzg2MzI4NDA0NDU2Nl0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzEzMDc5YjhkNzBkMTQ3YzViY2E4MDJjMWRiMjc0ODljID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDguODYwMjg3NTc4NzU3OTc2LCAtNy40MTU4NDA5NjM3ODgwNTA1XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfZTBlNWFkMzY3ZTg4NDNjNTk2ZmQ0MTEzNTcyYTVmZWIgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Ny40NjU0MjQ2MTEwNjMsIC0xMS4xNDcwMDk3ODk1MzYxMV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2UwOTJlZTRmMmY5YjQzMzNhMmIwYjEyYzBlNmE3ZTVlID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuMDkwNjA3OTQyNjYwODc0LCAxOC42MzkzNTEwNzkxNzU3NjRdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl8zOWMxYjYxN2E0Mjg0NDVlOWNkODAwMTRiZDc2MWY4ZCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjIyNTA1OTY1MDU2NDMsIC02LjQ5MjEwMDAxMTU5NzM5OV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzQ3NGVlNjRlZWIwYzQzODNiYTI5ZGI3ZmRjY2Q4ZmVkID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDYuMjI1NDEwNjgwMTMwODEsIDE4LjI0NDI3NTQ4ODE2NjM5NF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzBiMTQ0N2I2N2YxYzRjNTFiN2Y1YjEwYjgzNzM2OGJjID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjk4NzIyNTY2MjEwNTU2LCAzLjA5NzAxMjc0NTE1NTI4MjddLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl82MTJlMzY2NjZmYzY0N2JiOWJiZmNkZmQzMzY5MDJhNyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM3LjI4NjYwOTU0MDAzMTI3LCAtOC43Njk3OTc4Njc5ODA1MThdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl8yMjMwNDc4NjgzNDU0NjNjOTk4MmFjOTljODg0ZWVlNiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjc4NzAzMzA1OTIzMzE3LCAtOC41OTM0NjU1ODAxMDc1NTVdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl81ZWQ0YWNiNjBmZWY0Y2VhOWNjNWQxZGQ2Y2JhOTcyYyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg1NDEzNjUzOTU1OSwgMTcuMjcxMzM3NjY3NjA2OTddLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9lOWEwNjNiMjQ1ZTU0OWIxOGJmMmJjNzFkNTgyY2ViYiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM5Ljk1MDg3Njc1Mzc3MzQyLCAxOS4xNTA2NjEyNDcwMzldLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl84OTRjNTQ5NTViMTg0NDEwYjI2M2EzNGIwODU0OTU0MSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzU0LjQ1OTMwMjkzMjM2OTIsIDI2Ljc1MDA1OTc2MjM4MTcxN10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzNiMjQ0NTA4YjI2MjQ2NmE5NGU0YTE3NzNiYjc2YjY4ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzkuODc2NjM0NjA0NDA5OTMsIDguODA0MDA4MTQ2NjYzNDc0XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfYTcxMGRmMjAyYzdjNDk5ZWI3YjM1ZjYxYjFhNjY5MzQgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0NC4xMzEzOTM5NDcyNzY1MSwgLTIuNTMwMzcwNTE4NDE5NDY1XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMjI4NjI4Y2Y1YTMwNDc1NTliNWJhMmNmMDg2M2E0NjcgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFszOS4wNzI0ODQ5OTIzODA1MjQsIDE5LjA2ODMwNTIwMTY5ODMzN10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzQ4ODZjNTY1YzAwOTRhNGJhMDlmZTQ0ZDIyNzNlMzk0ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTQuOTYzMTQ1NTU3MDUxOCwgMTkuNDA2MzkyNzAwOTg5MDE2XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfZTAwZDgwYjA0YzkyNDI3NGFkZTI3ZjFlMzI0ZDM3MzggPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0Mi42OTcxNDY4NzUxMjUzNiwgNC4yNjI3ODUyMTAzMTc2ODhdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl81ZDBkNWJmNzM5OGM0OTRjOGU0YjY2NDc5M2U2ZWUzNSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzM5Ljk2NTkxOTYxNTg1NDIyLCAtMTEuNDM0NTQwMTkxOTAzNTEyXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfYTI2YmU2ODIzMWRlNDY1ZThhMWRkZDRhNGVmOGU0N2QgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Ny41MDk1MDYzMDc0OTk2MiwgMTguMjIzMDI4MjcxNjU5NjhdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl82MTdiNmQ3OGRlNTU0MjVjOTZjNmZlMjI2MjkzYjA3NCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ4LjkyNTIzODkwMDI4NTk3NiwgLTEwLjEyMDc2NjQ5ODU2NDI4Nl0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2Q1MmQ5NDYzZDM0ODQxZmE4ZjRiNWU2ODlmODE1MTUzID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzguNDM3MjMwNzI3ODEwMzMsIC0xLjU1MTI4ODg3NzE1MTAzNThdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl83ZjBlNDg0NzI5N2U0NDU3YTBhZmViNzIyZTljOTNlZCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQzLjYyNDYxMDA1NDcyNTE0LCA4LjcyOTQ2MDYxNDA1MTkzNF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2FmYjZiYTc1NzMxMzQ4MjdhNDQxZTJiYTNmZTVlOTdkID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTkuOTczNjY5NTkyMDE3OTksIDE5LjUzMDc5NTU0OTA2MDA1XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfZWZlYzAxMWY4NWJkNDg5NWJkN2VlNjEyYjNlMzAyNGMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0My45NDU4ODY5OTU3MTA0NywgLTAuMDI4MTM2ODU4NzY3MTEyNDddLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9mM2MwNmEyNzBkZGQ0Mzk4YmM5NmVlYzY5YzYwNTczYiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzU3LjE3NTg5MzA3NDE5MTU1LCA3LjE3NjY2NjYyODg5NzA4OF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2M3Zjk4M2JlNGZiYTQ0MDFiMzk4MTI1MWEyYjFlNmEwID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMzcuNDUxMjQxMDMxNDc4MjYsIC0wLjE1MzE5NzEzMzMwNTQyOTRdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl82M2Q3YTJlZTViYTE0YTdjYmU1YTYzZDNjNzZiZDQ0ZSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ1Ljc1OTg2MzYzNTIyOTA4LCAtMS40NDkyNTQwMjY0NjYyNjAxXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfZDEyMjI4NjU2NTQ0NDdiMzg5ZTgxNjA5N2FhN2I3ZjMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0OS4wOTU4NzU1NDYyMzczLCAtNi4zMTc5NDEyMjI5OTQxMTFdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfNjRiODJmYjQ2NGZkNGQ1ZThmMmYwMzkyOWRlOGY4ZGEpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl8yYTU1YjcyYzRjYTE0MDJkYTk4MmQ4ODFiOWMwZjM1MSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzU5LjMyNzMwNjczOTEwOTA2LCA1LjI3NjY4MzQyODU0NDk0OV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl82NGI4MmZiNDY0ZmQ0ZDVlOGYyZjAzOTI5ZGU4ZjhkYSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzM1NWU4M2JmYjM5MTQ2N2M5MjJlY2NkY2ZmMTI4MDczID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDUuMzIzNjMxMzYxOTg4NDA0LCAtMS4yMDQyNDc1MDk2MDg0MDc1XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzY0YjgyZmI0NjRmZDRkNWU4ZjJmMDM5MjlkZThmOGRhKTsKICAgICAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfYWRlNGY0ODBmNTk2NDYxYzk0ZjJiYTM1Y2JmMDgzNTYgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5tYXJrZXJjbHVzdGVyLzEuMS4wL2xlYWZsZXQubWFya2VyY2x1c3Rlci5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQubWFya2VyY2x1c3Rlci8xLjEuMC9NYXJrZXJDbHVzdGVyLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMS4xLjAvTWFya2VyQ2x1c3Rlci5EZWZhdWx0LmNzcyIvPgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF9hZGU0ZjQ4MGY1OTY0NjFjOTRmMmJhMzVjYmYwODM1NiIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfYWRlNGY0ODBmNTk2NDYxYzk0ZjJiYTM1Y2JmMDgzNTYgPSBMLm1hcCgKICAgICAgICAnbWFwX2FkZTRmNDgwZjU5NjQ2MWM5NGYyYmEzNWNiZjA4MzU2JywgewogICAgICAgIGNlbnRlcjogWzQ1LCAzXSwKICAgICAgICB6b29tOiA0LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfOGVhZmFmMGNmYzg2NDViOWEwOGY2YjhhMmI3YzJlZDYgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwX2FkZTRmNDgwZjU5NjQ2MWM5NGYyYmEzNWNiZjA4MzU2KTsKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcgPSBMLm1hcmtlckNsdXN0ZXJHcm91cCh7fSk7CiAgICAgICAgICAgIG1hcF9hZGU0ZjQ4MGY1OTY0NjFjOTRmMmJhMzVjYmYwODM1Ni5hZGRMYXllcihtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9kMGExYTE5YWYzNjQ0OGJkYmI5N2M4NDBlMDU3NDIxNCA9IEwubWFya2VyKAogICAgICAgICAgICBbNTguMjk1NjQ0NjkwMzk3NDI0LCAtMTEuNTMzMTkxNjU3Njg4Mzk3XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzBjZWVjYjJlMjMwYTRhYWRiN2E2MjQwOWVlMDUxOTliID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1Mi4zMzI1MjEyNTI2ODgyMywgMy44MDEzNzE5OTM3MjI3ODcyXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzkzMjE4Nzc3ZjZkNzQ4MTlhOTVlZDJmZDY4ZDUyNTNmID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1MC41MDMyMDYxMjQzNTkwOTYsIDE1LjY5ODAwODU1NTYzNDg1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzI2NTVmZjU1ZTQ0NzQyMTBiYjVhY2U0MTMxMmYzNTJmID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zNDk3OTE0OTUwNDYwNSwgMTMuODQ0MzY1MzMzMTYyNTUzXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2M3Y2VhZmYxOTc3MTQ0NTQ5ZTA4MDI3YjYzNDdjNjk4ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFszNy4zNzIxNTU0MTMwNjc4NCwgMS40MTQyNTIyMzk4ODQxOTJdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfN2FjOTdiZmZjNjkyNGQ0M2E0N2ViMGI5MzQxOWRiZDEgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzM5LjMwMjA3MDYwMDg3NDU2NSwgLTkuMDU1MTQ1MzgyNTAwNjNdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMWQ5MGRhMzEyYTExNDJjZDk1YTZjZjBlNjFhZjJkYmEgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQ3Ljk2ODg4NDE3OTgxMjM1NiwgLTQuNjczMjE0MTg5ODM4ODk3XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2M0OWEyOGZlYWQwZDQxOWFiZTRkNDgwYTlhOGM1ZTUwID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFszOC44NTMwNTA0NDU1NTE3OCwgOC42NjIxNzc0MjY4MzAxMl0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9iMzQ4YmM3OGRiZDY0OTc1YTZlNzdmY2EyZDYwOTEzMiA9IEwubWFya2VyKAogICAgICAgICAgICBbNTUuMzkzNjM4Mzg3ODU5MzEsIDExLjgyNTA5MzAyMjA4MTEwNl0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9jODQ2ZGFkMmM4ODM0ZmEzODI1ZGI4ODY3OTFmNWJmYiA9IEwubWFya2VyKAogICAgICAgICAgICBbNTAuMTI5NTAxMTMyNjExNDk1LCAtMC40MDYzODI4MjU4MDcxOTIyXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzM0MGQ0NmNlYjgzNDQ2NjQ5NWJlYzc2YmFjMDgwZDU1ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS44Mjg3Njk5Mjc3ODc1NSwgMTguNjY3NzE3MzQ5MzIwNzhdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfNzViYWU1NjhkMTM4NGQ2MGI2NTc0NTRiNDQ4NjNjNjkgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQ3LjQ4NjE0NDUzODc3NTEyLCAxMC43NDQzNTU5NTYyMjM5NzddLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfODEyZWIzZmIxNGNkNDdiN2I0Mjg5MGRmNThmY2I5M2IgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQ2Ljg1NTI1NzI4ODIxMTY2LCAxNS42MzUzODQxMjEzMjE0NzZdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfNzQ3YmVlZWFkNDE5NGFjMzg5N2EyZWFjMzkwNWEwZWYgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzM3LjQ5NjM4NzgwNjYxMzEsIDE0LjAxNjM1NjkzMTcwNTMzNV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8wMmVkZGM2ZTczMjE0YzMxOWVjMmRhMDM3MjgyNDA5NSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMjczNTg4Njg2ODkzMDksIC00LjUwMTU2NjM0ODMwMzY3MV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9hNzI3YjAxY2ZiMzc0NTQyOWYyZGJkMWU5NjlkZjliNyA9IEwubWFya2VyKAogICAgICAgICAgICBbNDAuNzYwOTUxNzQzODM1MDQ0LCAyNy4wNzc5MDU5NjkwNzY5NzNdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZGM1NDRjM2FjNzRmNGI2ZWExODU1ODE5NmE2NDM3MDEgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQ1LjY4NDEwMTIyMTcwNzIxLCAtMi42ODAyMDY1MzIwMDQxNDA0XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzI5YTkzODA5YWJkODRlYThiZDBjZTU1YmNmZDdiODA5ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1NC41Nzg4NTE0OTEyMDAyMjYsIDIuNjE1Nzk0MDM1NzY5NzI4XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzRjYzFiZWM0NGM4NDQxODRhMDNjMTZjNDZmMDY2MTNmID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0Mi4wNjM1MzYxNTIzMzQ0NywgMTAuMjA4MzM3NjM2Mjk4NDk1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzNkYTI1NWI1YzVkMzRkN2RhZWM5ZDA5ODY3MTU5NGVjID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MC4yNjUxODczMDIyNTk5NCwgLTUuNTMyNzc1MzY2MDYzMjVdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMGUyMmEzZjg4ZjEwNGY4ZGJiYTI4NWE5MGE4YmE1MWIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQyLjkxNTk0MTQ1MDYwNTcsIDE4Ljg5NzAxNjc5Mzc5MTAyXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2UxOTRhZTFkMTdiMjQ4OGQ5ODBmMWNhYWFlNTZmNjY1ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFszNi41NDU3MTcxMTAwNzI3NSwgLTExLjI1NjM3NTA4Mzk1NjYzMl0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9iZWI2ZTNhMzljOGQ0OTgxOTJhOWJkMzQ2MjczNjZkNSA9IEwubWFya2VyKAogICAgICAgICAgICBbMzYuODIxMjQ3ODk2MTQ3NDI2LCAtOS40ODYyNjIyNzk3OTM5OV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl82ZWU4Y2Q3NDc4ODA0M2ZhYWQxMTM4NDJkYjQxNzkzMCA9IEwubWFya2VyKAogICAgICAgICAgICBbNDYuNjE2Njk3NzY5OTI2MjIsIDI0Ljg0MTIyNTMyMjMyMjkwNl0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl84MWMyZTRhZjE1ZmQ0YTg0OGU2OTllY2RhZTI1YzJmOCA9IEwubWFya2VyKAogICAgICAgICAgICBbMzUuNjI1MzcwMDkwNzgzNjYsIDE4LjA4MDMyNzAyNjYxODA4Ml0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9lMzhkNDFiYmM1ZjQ0NjFkOGE4MmE5YjllMWQ4N2M2ZSA9IEwubWFya2VyKAogICAgICAgICAgICBbNTAuMzQ2MjkyNTg1MjY3Mjg1LCAwLjA2NTAxNTE0OTkxNjM4OTM1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2ZhOWI1YmIzZDQwNDQ1NzlhN2NkNDUwYjJjYzUyZTUxID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0NS4wNTk5MjA3NTc5OTQ3OCwgMjYuNDY3NzYyNzkxMzA0OTg1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2I5NmNhMTkyMGQ1YzQ0MzE4ZWZlMDA3YjUxMTg3YTAxID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0Ny4wMzA1ODU2MTcyMzIyNywgLTQuMDEzNzcwODczNzMzNTk0XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzUwMmE3OTIzMGRkNDQ4YTE5MWU0OTA3OGZiM2YzNzA3ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0NC4xNDczNjQyMjY3ODUwMiwgMTguODQzNDYyNTQxMjc2NjE1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2M4ZmZkYTEyODg5MjQ2YTU5YmRiN2ZmZmQxZjY3ZGNhID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFszNi4zMTIzMzc5MjE2Mjg4NDYsIDI1LjUxOTk0OTI5MDI5MjM4XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2E4ZDhhODU5ODkwZTQ0YjQ4ZjAzMzIwNjhhMzkzZWE0ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0OC45NzEwOTk5MjQwNzg5LCAyNC4yMjMzNDI1MDk3NzE0NjNdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfNWZhNTdmZGYzNmQxNGRiYjhiOWVmOWNmZGE1OTkyYmIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzM2LjA3NjQ3MzY2NjY5Mzg4LCAyNi4wMzIzMzU0MzYyMzc0MDNdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfY2I3ZDNmMGMwZTIxNGViN2JlYTMzZWRmMzAwZTE5YWIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzM1Ljk3OTkxMTY1MDI1Njg0LCAyMS43NzcxMDk1Njg0MjU1MjNdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfY2YxM2I0ZDZhNmYxNDQxMmFhYjEzY2E3NDAwMmQwZTUgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzUwLjY4NjY1MzM1NDY3NTQ4NSwgMC41NTgxMjQzMTg1NTE2OTI5XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzljNDhmMWUxMzAyMzRkMTZiNjZjNmU1NTlhMDVmMTBkID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0NS40NzA2NTY5MDg0NDIwMjQsIC0xMS4yMDU2MzE4OTU2MzA0MTVdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYjA2MTgxNTM2MzlkNDM3MDkzYjEyYWYwMDg4ZTAxZmYgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzUyLjA1NDgyMjMwNDM1NjU4LCAyNS4yOTQwNjI1MDkxODQ5NF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8wYzFiOWViN2Y1YzQ0M2M2YjRhMTY1MjllMmYxNzgzNSA9IEwubWFya2VyKAogICAgICAgICAgICBbMzkuNjE1NDA5OTUzMDMyOTIsIDE5LjE4MjQ5NTE0ODI0NjQ5Ml0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl82YTIzNDlhZGI4MTg0ZTAzOTI4NTJmYzVkMjhmODI3ZSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDQuNTIxNTI1NDc2NjQyOTIsIDQuNTMyMzc5MzE0NzYxODcyXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzQ1ZTRjMjhjOGMxNzQzYjQ5MGYzNGI3ODFjYzcyYTkyID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0OS4wMjkxMTY3NjMwMDg0NzQsIDI4LjA4NDkyNTgwNjE0NzI5N10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl85MzYyODE1NDVlNjg0NWY4OGRlZmIzZmUxMGM0NmM3MiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDYuNDkzNzk3MzIyNDY3NjQsIDIxLjYxMDcxNzU3MjE1MDcxMl0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8zYjJiNWY3MzIyYzQ0ZTkxYWM0MGNkMTFkY2JlZDdkYyA9IEwubWFya2VyKAogICAgICAgICAgICBbNDQuMjg0MTc0NzcwOTgwMDEsIDI1LjQ1MTc4NDAyOTg3MTc4XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzA4ZTZjMzcxYzIzYTQ3OGU4ODUxZmQwODQ0M2QyZDFjID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1OS44Mzc5MTAwNTYxNTkwNDYsIDIzLjQ4NzY4Mjk1MjI0NTk5N10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl82YThiM2E5NjdmNDE0MzIwOGFkMTgzODExN2YzNTM2NiA9IEwubWFya2VyKAogICAgICAgICAgICBbMzguNzI5Nzg3MTU0NTUzOTMsIDI5LjI1NzA5MjE1ODY1MzM5M10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8wMDZiNGM3OTEzNzk0NjRkOGMzNmVlZjQzYmJlZTA1NyA9IEwubWFya2VyKAogICAgICAgICAgICBbNDMuNDIzODc3MDc5ODI5MDgsIDguNTkxNjI1NzI3NjEyNDFdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfM2VlODdlNzEzMDU5NDkxOTkyYTQ3MDI5ZjhjNmQ1N2IgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzU0Ljc2NzA5MDIxMzA1MDg1LCAxNC4wMzk3NDg1NjQ4MzM1MV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8yOWZjZmU3NTFiYWM0NDU2YjgzMjA1YTlkNzllOWNhZCA9IEwubWFya2VyKAogICAgICAgICAgICBbNTMuODQzNDQ1NTU3MTczOTgsIC01Ljg0MDI5OTQxMjE2NzAwOV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8zY2RmZmU4YjBhMWM0YTQ1OGE1YTYxYjY5NTE0MDFlZCA9IEwubWFya2VyKAogICAgICAgICAgICBbMzYuMTE3MTQxNzM3MTkwMjgsIDEzLjIzMDQzNDQ0MzMxNTkwN10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl84N2JkOWMxZDdkODU0ZjRlYmU5ZmZlYjFlZmFkYjEwZSA9IEwubWFya2VyKAogICAgICAgICAgICBbNTkuMDM0MDcxNTE5NzE5MTU2LCAtNS4yNzE1NDc2Njk4NzUwMjVdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZTFkNWEwZGEwYjUxNDRlNTkzZWJhOGVhOTY5MjFiNzcgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzM1LjI5MTYzMTU0MzYxNDUzNSwgNC40NDA5MzA2ODU0NDg1NjddLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYzMyMzJhYmVkZmQzNDhhYmE0NmMzZjEwMDBhNzdhMmQgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzM4LjI2NDI2ODAxMTE0OTk2NiwgMTguNzA0NjYwNDU5ODgyMjEzXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzFlOTA5N2JkNjJmNTQ3NzA5YThjOTVlZDZiOTJkNjQ1ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0NC40MDk1NjQ2MzY5NzI4NDYsIC04LjM1NjA5MzYyNDAzMjQ0NV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9kYmExMjhiZTc5ODM0ZmQ0YWVmOTk2OWQ0ODQ2YWM3OCA9IEwubWFya2VyKAogICAgICAgICAgICBbNDQuMTAwMDkzNDk4MTc0OTgsIDE3Ljc5MDc5MzIwOTk3OTY4XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2YwNzhkYTMwZDcwNjQwM2JiMmE3ODBjYTBlNzM1MDAwID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS45Nzg5NjUwMjE0NTk0OSwgLTAuMTc1NDQyNjk5NzE2OTcwOV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl81ZTljMWNlYTkyZWU0NGIyYjk4ZGQ1YTRkNThiZDJhNiA9IEwubWFya2VyKAogICAgICAgICAgICBbNTMuNTA3NzI4ODY1NjUxMTYsIC02Ljk1NzYzNjM3OTE1MzczOTRdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYzI3ODU2ZjVkODlmNGYxYmFiMWI4ZWMyODkyYzUwMGUgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzM5LjE1OTM3OTAxMjM3ODY2NSwgLTExLjkxNjUzNDUzNzk4MDk1NF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl82MDAwMmIzYzQxMTE0NGNkOTQ3OGQwZjNhYjcxMGY1OSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzU5ODM2NTM2NzMzNTc1LCAtNC41NjYxNjU1ODc5NzQ1NTZdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZTMzZTRiNmE0MTQ4NDMwZGI2OTVmMzhiNDI4YmY4MjYgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzUzLjM2ODY1MDI1MjExODMzLCAxLjM0OTAxMTc5MjQ1MzE1NDZdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZDQ1NDQyY2MzNTk0NGZkMjg4ZWYwMGJkNmRjODVmMTkgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzUyLjUwNjI5NzkxMzE3OTQyNCwgMi4zMzg0MTE2MTMwNjE3NTg1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzlmMTI2NGM3MjEzOTQ0ODI4ZjkzMzFjNDM4MWEyNzJhID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1MC4xNTkzMDEzMjgyNDI0MSwgLTkuNDM0MjI0Mzk1Njg5OTA2XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzNiYjM2NzcyNTUwODQxZjdiNTAzOGE3YjU4NTE4NzM5ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1OC40ODg0MzQ0MDgzMDAyOCwgNy41MzYyMjYzNTkwNTc1MjZdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMjI4NDI1ZDgwMjM2NDNmMThmMmEzNTkwMDQwMmEzNDAgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzU1LjQ3OTMyNzk2NTM4MDU5LCA2LjQzMzY1NTkwNzI3Nzg1M10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8zMDU2MTM5ZTIwZTU0OTIwYWY5YTZkYjE3MjQ3MzNiZSA9IEwubWFya2VyKAogICAgICAgICAgICBbMzkuMTg0NzE2MzQ5NjM5ODcsIC0yLjkzNjgzNTg1MzY5Njk4MzZdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfOGY3ODA1YzU5MmNmNGZjYThmMGI4ZWZhNzBjODUzN2YgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQ5LjE4NjkxMzU1MzMxODY2LCAtMC4zNzg3NzUzMTI5NzUyMDk0XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2VlNDdlMTc2Yzc4YzQ4YmI4NTkzOTIxNjQwMjRjNjU0ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0My42Mjc5NDk3MTE4MTk4NSwgMTYuNTk0NzM2NzI3NDk3NzMyXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzMxNzVhNTg2ZDM1YzRhN2Q4MTEwODMxNzk1MWE4ZTlhID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1NC4wNDMwODEyOTQ2OTc2OSwgMjEuMTc3NTExMDM1NDk1NzYyXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2M4MzRmZjdlN2YyYzRmZmNhNDJlOWZlMmY3ZjA3NmFmID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0Mi4zODQ4NTI5NjA1MDAzNiwgMjkuNDQ3MjI3MTkxMDA2NDldLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYWNhMjc5NGJmYzhlNDFlYWFjMWVjZDIwODE5ODkyMGYgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzUzLjAxODQ3NDUyNDAxMzI3LCAxNy43MTY1MzA5MDcyNjUyXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzc5ZmExOTFjMWUyNjQ2YWVhOGMyOGM0MjQzMDMyNDliID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0Ni45MDE1ODYxMDQ2NjQzMywgMjYuMDMwMjAxNTE2MDg2MDNdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZWMzY2JjZmI1ZjFhNGQ0Y2E2ZTgwYzI4NjNkYjMwN2MgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzM3Ljk5NzgyMDY2NTYwMDQ1LCAxLjYzODM3NTA5NzE0Nzg3MzddLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZDQ2MWM4YmIxODRhNDBmMWFjYTIyN2VmMmNhNzIxNmYgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQzLjEwNTU2ODYyMjU0ODc2LCAtMi41MTEwOTQ3MzEzNzcxODI4XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2I0OTFmZmM3NDcxMTQ3NzY5OTBhOGZiN2ExOGFiYjcyID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0Ny4xODQzNDMzODc2MzkzNiwgMjMuNDIzNTg2NDAyNzkzNzhdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfNzNiYjBlOTI4YTQwNGI0YTkyNDExZWUwY2UxNGJhZTkgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzU3LjU0MzIxOTg2MDIxNjI3LCAtMy4wMjExNDEwMDcyODUxMzZdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYzRlYzYyMGI4ODM4NGE5MGI4ZTY4Mjg3YTEzYzcwM2UgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzUzLjI4MDUyNDcxMjI0Mzg0NiwgMTQuMDA2MzIzMzMyODUxMDY0XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzJkNTQ2ZWRmZDAxYzQyNzg4NzYxYzhlYjg2YWNkZGNhID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1NC4yNDgzMjk0OTI4Nzk3MywgMTkuMzIxMzQyMzY0ODQwOTJdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZjEzNTUxYmRmMWI3NGZmOTg1NTRmYjg2MDIzOWM2N2YgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzM4LjYzODA1MTczNzg2MzE1LCAtNy42MDQ2MjgwMzA3ODgyMDVdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfNGJlM2ZjZjVhYTYxNGJmYmE5Yjc0YWFhNWM3ZDZkODcgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzUyLjUxNjU5ODYxOTc0NDUzNSwgLTkuODAyNjA3ODgxNjcyNjE2XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2I4MDQwMGUwMTUyZDRmODg4OGU3OTBhMmNmY2VjMTRiID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0My4zMzQ0NDk0NDYzNjE3NSwgLTIuNTgyNjI3NTE1NTgwODA1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2Q3NTU2ZmY1ODBkNDQzMzNhNjc5NDg0OWFkNzg4ZDcxID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0Ni4yODc4ODU0OTUwMzYxNywgMi4xNDQ1MDgzNzM3MzIwMjY3XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2JiODQwOGM0OGVkMjQ5NjViNjU4Zjk2MjVmMWU0YTkwID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0OC4xNzc5MDcxNzMwNjIwMSwgMC44ODYxNDM1MDQxMzIzNTQyXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzU4MDE5ZTNmZTUzNTQzZDViMjAyODZkMWM0OWFiMTA5ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0My4yMzY5MjA5MDE2NjczNiwgLTQuOTU1MzI5MTI5MTg1MTU5XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzlmYzdjNGFmZjU2YjQzYWY4ZGZkZTY3Y2I4NTJlYjVlID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0Ni40MzYxNjc1OTIyMzE4NTQsIC0wLjA5Nzc4MTkwNDc5NDc4OTY1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzY1M2RhY2MxNWMxNjQwOGJiNjk0YmEzNjI4OGRlNzMxID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0My44OTE1NzYwNzM2MDM0NiwgMC44MTA1NDAzODMxNzYzNTk2XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzA5M2M5ODRmZWMyNzQyOWU5NGE2ZWJmMTQ3MjRjZjg3ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0OS44MTE4MzQ4MTI4NzY5NywgMTIuNzU1NzgyNDM2NzU2MTg5XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzg1OTdjMmMyMzg1NjQxMDA5YmM2YzUxODVjZTRhMmVkID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0Ni44NTc4NzQ5MDYxODU1OSwgMC4yMjQwNDUxMjMxMTM1NDI3NF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl83NjM2YTk3NGQyYWQ0ODBiOTUyNzE1ZGJiMWRjNjIwZiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDMuNDkxMDM0Mzg0Mzg3ODQ1LCAxNy41Njc2MTU1MDgwMDY0MjZdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYzA1YzYyNzFhNmI5NGRlMjkwMTI4OWZhMDZkY2M3M2QgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzM3LjA2NTYzMTE4NTYxMDk0LCAwLjAyODMyNTgzMzI2ODYxMDI2OF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8yMDg4ODIxODdjZDY0MzQyOTkxODhiOTNmNjAyZGY0ZiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDIuNjA1ODE5ODcwMTQxMTUsIC03LjU0NjY0NTk1Njk0MjUyN10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9jZWU1OWY4MjkxZWE0YWYxODUxMTMxODIzNzFiZjMyMCA9IEwubWFya2VyKAogICAgICAgICAgICBbNDUuMDMxNjI0MTI5MDc1ODcsIC03LjI4MzQ5MzMzMzk0NTg1OV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9kZjEwZDY0ZmU3NTY0NGRhOThhMmJhY2Y2MGI3NTgxNiA9IEwubWFya2VyKAogICAgICAgICAgICBbNTMuMjI1ODcxMjg4OTQ4NzUsIC0yLjAzNzI2ODgwNzE4NjgxOTddLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfM2JhNThmNTQzNWE1NDdmNjg5OTFiNTM4MGQ3MWJjYTUgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzUzLjQ4MjkxOTczNjEyOTAwNiwgMy45NDkzNDQ3NTgxNjExXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzI3M2Q1OWIxYzIwNDQ1YjdiYTg5ZTlkMWYzYzdkNDhkID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1My44MTk3MzUzMDIwNTYzNiwgLTEuMjc1NjU2NDA0MDY2NjMwNV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl83MWVmMjgzYmM4NTA0MGY5YTNlNmViMmY3OGFmY2JiNSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDMuNzkxODY5MjI3MzAzNjM2LCA1LjIxMDgxNzM5MTI0MTU4N10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl84YTI4ZGYyNjBjN2M0NDExYmE4ZDNlODQyMWY0YTU0ZSA9IEwubWFya2VyKAogICAgICAgICAgICBbNTUuNjcyMDYxNzM0MjYyOTQsIDI1LjgwOTQxODY0MTgyMjA5XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzM1YTRkNmFlNzlmMjQyOGViZDM4YmQwNWM0NGY5Y2E2ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1MS4xMDcwNDY3MjgyODUxNiwgMjYuNTIyMjA4Mjk2Nzc2MDM2XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2RjY2E3MzYzYjRjMTRkMzliMjcyMjdkOGFjODMwYWM4ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1Ni4zMzgzMjIxOTc5ODg3LCAxMS45MjY3OTcwNDE1Mzc2MjJdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYzExMzRhNmIwZmI5NGE5NDg1NWEzNDMzMGE2MjI5YjAgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzU3Ljg4MzM1ODEyNTI2MzEsIDExLjk0ODg4MDQyODI4MDA0NV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl83Y2Q4ZGE0MzVlZDI0NGVlOTM2NjgxZGNiMzEzNDhjZSA9IEwubWFya2VyKAogICAgICAgICAgICBbNTkuMjE2Nzg5MDc1NTM1NDk1LCAtMTAuMjA1NDYxOTIzMTg3MjkzXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl83ZmQ3YjU3ZDhmNmM0MmZmOGI2NzNiYWVmMDM0MDBhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2MyMjc5NThiYjU1MTRmYmJiYTY1OTI5YjczZGQ3YWNhID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs1MS4zNTAxMTA3NTg2MjY1NywgLTYuMjYxNjg3MjY5NzgwMjM3NV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9jNDE3ZmM4MTAzY2I0MjRjOWU5Njg2ZGJiMDlkYzgyNSA9IEwubWFya2VyKAogICAgICAgICAgICBbNTAuODM3ODcxNDEzMjA1NzYsIDkuNjQyMzgwMzAxODIyNTZdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzdmZDdiNTdkOGY2YzQyZmY4YjY3M2JhZWYwMzQwMGE3KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfOTBlMDk3OWJmOTY5NDViY2I5ZWZkYjVhZTYwMjUyMjEgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzUwLjc3Mzk3MjMyMjczMzg3LCAyOS4wNTc0Nzc3NDY1NzkxOV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfN2ZkN2I1N2Q4ZjZjNDJmZjhiNjczYmFlZjAzNDAwYTcpOwogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
       ],
       "text/plain": [
-       "<folium.folium.Map at 0x7f20bbac1588>"
+       "<folium.folium.Map at 0x1b7d54fc4e0>"
       ]
      },
      "execution_count": 4,
@@ -153,10 +153,10 @@
     {
      "data": {
       "text/html": [
-       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfMzRlZGJlMGU3MzMwNGI3MmFjYzExN2MyYmVkMWE3YWEgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9yYXdnaXRodWIuY29tL2pvZXJnZGlldHJpY2gvTGVhZmxldC5UZXJtaW5hdG9yL21hc3Rlci9MLlRlcm1pbmF0b3IuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF8zNGVkYmUwZTczMzA0YjcyYWNjMTE3YzJiZWQxYTdhYSIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfMzRlZGJlMGU3MzMwNGI3MmFjYzExN2MyYmVkMWE3YWEgPSBMLm1hcCgKICAgICAgICAnbWFwXzM0ZWRiZTBlNzMzMDRiNzJhY2MxMTdjMmJlZDFhN2FhJywgewogICAgICAgIGNlbnRlcjogWzQ1LCAzXSwKICAgICAgICB6b29tOiAxLAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgIH0pOwoKICAgIAogICAgCiAgICB2YXIgdGlsZV9sYXllcl9lMGM3NTcyYzVkNjk0Y2FmODE2MjE5OGM2NjQ3M2NmMSA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzM0ZWRiZTBlNzMzMDRiNzJhY2MxMTdjMmJlZDFhN2FhKTsKICAgIAogICAgICAgICAgICAgICAgTC50ZXJtaW5hdG9yKCkuYWRkVG8obWFwXzM0ZWRiZTBlNzMzMDRiNzJhY2MxMTdjMmJlZDFhN2FhKTsKICAgICAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfYTVjM2NiMGI3YzZkNDk0YWJiMGFiMmEyMWRkY2Y4NTcgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vQGpvZXJnZGlldHJpY2gvbGVhZmxldC50ZXJtaW5hdG9yIj48L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4gICAgCiAgICAKICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfYTVjM2NiMGI3YzZkNDk0YWJiMGFiMmEyMWRkY2Y4NTciID48L2Rpdj4KPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgCiAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAKCiAgICB2YXIgbWFwX2E1YzNjYjBiN2M2ZDQ5NGFiYjBhYjJhMjFkZGNmODU3ID0gTC5tYXAoCiAgICAgICAgJ21hcF9hNWMzY2IwYjdjNmQ0OTRhYmIwYWIyYTIxZGRjZjg1NycsIHsKICAgICAgICBjZW50ZXI6IFs0NSwgM10sCiAgICAgICAgem9vbTogMSwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzU5NmQ5MDIyOTAzZjQ4ZWZiZjI1NWFjNmVlOGVlMmM4ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywKICAgICAgICB7CiAgICAgICAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAgICAgICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgICAgICAgIm1heE5hdGl2ZVpvb20iOiAxOCwKICAgICAgICAibWF4Wm9vbSI6IDE4LAogICAgICAgICJtaW5ab29tIjogMCwKICAgICAgICAibm9XcmFwIjogZmFsc2UsCiAgICAgICAgIm9wYWNpdHkiOiAxLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIsCiAgICAgICAgInRtcyI6IGZhbHNlCn0pLmFkZFRvKG1hcF9hNWMzY2IwYjdjNmQ0OTRhYmIwYWIyYTIxZGRjZjg1Nyk7CiAgICAKICAgICAgICAgICAgICAgIEwudGVybWluYXRvcigpLmFkZFRvKG1hcF9hNWMzY2IwYjdjNmQ0OTRhYmIwYWIyYTIxZGRjZjg1Nyk7CiAgICAgICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
       ],
       "text/plain": [
-       "<folium.folium.Map at 0x7f20bbb059e8>"
+       "<folium.folium.Map at 0x1b7d54f1eb8>"
       ]
      },
      "execution_count": 5,
@@ -189,10 +189,10 @@
     {
      "data": {
       "text/html": [
-       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfYTM2ODhhN2VhYTRmNDU5MzhjYzJjMjNlNGVmOWMxOTIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldC5ib2F0bWFya2VyL2xlYWZsZXQuYm9hdG1hcmtlci5taW4uanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF9hMzY4OGE3ZWFhNGY0NTkzOGNjMmMyM2U0ZWY5YzE5MiIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfYTM2ODhhN2VhYTRmNDU5MzhjYzJjMjNlNGVmOWMxOTIgPSBMLm1hcCgKICAgICAgICAnbWFwX2EzNjg4YTdlYWE0ZjQ1OTM4Y2MyYzIzZTRlZjljMTkyJywgewogICAgICAgIGNlbnRlcjogWzMwLCAwXSwKICAgICAgICB6b29tOiAzLAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgIH0pOwoKICAgIAogICAgCiAgICB2YXIgdGlsZV9sYXllcl9mNmZkOTVmMDQ5M2Q0Yjg2ODg3ZjIzZTViNDUzMmI1YSA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwX2EzNjg4YTdlYWE0ZjQ1OTM4Y2MyYzIzZTRlZjljMTkyKTsKICAgIAogICAgICAgICAgICAgICAgdmFyIGJvYXRfbWFya2VyXzY1YTY4ODcxZjlmZTRkZDY4OWM2NDJmODRhMjQ2NWZjID0gTC5ib2F0TWFya2VyKAogICAgICAgICAgICAgICAgICAgIFszNCwtNDNdLAogICAgICAgICAgICAgICAgICAgIHsiY29sb3IiOiAiIzhmOCJ9KS5hZGRUbyhtYXBfYTM2ODhhN2VhYTRmNDU5MzhjYzJjMjNlNGVmOWMxOTIpOwogICAgICAgICAgICAgICAgYm9hdF9tYXJrZXJfNjVhNjg4NzFmOWZlNGRkNjg5YzY0MmY4NGEyNDY1ZmMuc2V0SGVhZGluZ1dpbmQoNDUsIDQ1LCAxNTApOwogICAgICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBib2F0X21hcmtlcl85MDM0OTc5YTMxMTk0ODU2YmRhM2FhYmRjZWExODJmZiA9IEwuYm9hdE1hcmtlcigKICAgICAgICAgICAgICAgICAgICBbNDYsLTMwXSwKICAgICAgICAgICAgICAgICAgICB7ImNvbG9yIjogIiM4OGYifSkuYWRkVG8obWFwX2EzNjg4YTdlYWE0ZjQ1OTM4Y2MyYzIzZTRlZjljMTkyKTsKICAgICAgICAgICAgICAgIGJvYXRfbWFya2VyXzkwMzQ5NzlhMzExOTQ4NTZiZGEzYWFiZGNlYTE4MmZmLnNldEhlYWRpbmdXaW5kKC0yMCwgMjUsIDQ2KTsKICAgICAgICAgICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNjY4ZDgwMDBhY2E1NDNiMzk1YzRkY2M2NDc3Y2Q5NTcgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldC5ib2F0bWFya2VyL2xlYWZsZXQuYm9hdG1hcmtlci5taW4uanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF82NjhkODAwMGFjYTU0M2IzOTVjNGRjYzY0NzdjZDk1NyIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfNjY4ZDgwMDBhY2E1NDNiMzk1YzRkY2M2NDc3Y2Q5NTcgPSBMLm1hcCgKICAgICAgICAnbWFwXzY2OGQ4MDAwYWNhNTQzYjM5NWM0ZGNjNjQ3N2NkOTU3JywgewogICAgICAgIGNlbnRlcjogWzMwLCAwXSwKICAgICAgICB6b29tOiAzLAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfNTE0NzNkYjM2NDVlNGYzZDljOTQ5NDU5ZjQ5M2Y0YzIgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwXzY2OGQ4MDAwYWNhNTQzYjM5NWM0ZGNjNjQ3N2NkOTU3KTsKICAgIAogICAgICAgICAgICAgICAgdmFyIGJvYXRfbWFya2VyXzRhZDFkYmNjODZiODQ3OTFiZDM5Y2NiMWI0MmU5YmM2ID0gTC5ib2F0TWFya2VyKAogICAgICAgICAgICAgICAgICAgIFszNCwtNDNdLAogICAgICAgICAgICAgICAgICAgIHsiY29sb3IiOiAiIzhmOCJ9KS5hZGRUbyhtYXBfNjY4ZDgwMDBhY2E1NDNiMzk1YzRkY2M2NDc3Y2Q5NTcpOwogICAgICAgICAgICAgICAgYm9hdF9tYXJrZXJfNGFkMWRiY2M4NmI4NDc5MWJkMzljY2IxYjQyZTliYzYuc2V0SGVhZGluZ1dpbmQoNDUsIDQ1LCAxNTApOwogICAgICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBib2F0X21hcmtlcl8yMGEyZTVhOWY5NmQ0MzQxYjk2YzlkNTRhMDgzZmQ1YSA9IEwuYm9hdE1hcmtlcigKICAgICAgICAgICAgICAgICAgICBbNDYsLTMwXSwKICAgICAgICAgICAgICAgICAgICB7ImNvbG9yIjogIiM4OGYifSkuYWRkVG8obWFwXzY2OGQ4MDAwYWNhNTQzYjM5NWM0ZGNjNjQ3N2NkOTU3KTsKICAgICAgICAgICAgICAgIGJvYXRfbWFya2VyXzIwYTJlNWE5Zjk2ZDQzNDFiOTZjOWQ1NGEwODNmZDVhLnNldEhlYWRpbmdXaW5kKC0yMCwgMjUsIDQ2KTsKICAgICAgICAgICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
       ],
       "text/plain": [
-       "<folium.folium.Map at 0x7f20bb9f5518>"
+       "<folium.folium.Map at 0x1b7d55ac5f8>"
       ]
      },
      "execution_count": 6,
@@ -240,10 +240,10 @@
     {
      "data": {
       "text/html": [
-       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNDk0MDlhODk5YzU2NDk1OGFhZDQ2MzA0OTA5OTQ0YmQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLnJhd2dpdC5jb20vbWFyc2xhbjM5MC9CZWF1dGlmeU1hcmtlci9tYXN0ZXIvbGVhZmxldC1iZWF1dGlmeS1tYXJrZXItaWNvbi5jc3MiLz4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5yYXdnaXQuY29tL21hcnNsYW4zOTAvQmVhdXRpZnlNYXJrZXIvbWFzdGVyL2xlYWZsZXQtYmVhdXRpZnktbWFya2VyLWljb24uanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF80OTQwOWE4OTljNTY0OTU4YWFkNDYzMDQ5MDk5NDRiZCIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfNDk0MDlhODk5YzU2NDk1OGFhZDQ2MzA0OTA5OTQ0YmQgPSBMLm1hcCgKICAgICAgICAnbWFwXzQ5NDA5YTg5OWM1NjQ5NThhYWQ0NjMwNDkwOTk0NGJkJywgewogICAgICAgIGNlbnRlcjogWzQ1LjUsIC0xMjJdLAogICAgICAgIHpvb206IDMsCiAgICAgICAgbWF4Qm91bmRzOiBib3VuZHMsCiAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICB3b3JsZENvcHlKdW1wOiBmYWxzZSwKICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3CiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzQyMjQ5NmZmZjAyMTQ5NzQ4ZmExM2IwNzEyZTJkNzJjID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywKICAgICAgICB7CiAgICAgICAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAgICAgICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgICAgICAgIm1heE5hdGl2ZVpvb20iOiAxOCwKICAgICAgICAibWF4Wm9vbSI6IDE4LAogICAgICAgICJtaW5ab29tIjogMCwKICAgICAgICAibm9XcmFwIjogZmFsc2UsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIgp9KS5hZGRUbyhtYXBfNDk0MDlhODk5YzU2NDk1OGFhZDQ2MzA0OTA5OTQ0YmQpOwogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2M5NjQ5YzhkOThjNTQ3Y2ZhODQyMTNkMDM2YWFlMDQyID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDYsIC0xMjJdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzQ5NDA5YTg5OWM1NjQ5NThhYWQ0NjMwNDkwOTk0NGJkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBiZWF1dGlmeV9pY29uX2I3ZWI1ZmNkOTc4MzQ4Y2E5OWUwZDIyMWJhMzA2MjJiID0gbmV3IEwuQmVhdXRpZnlJY29uLmljb24oewogICJiYWNrZ3JvdW5kQ29sb3IiOiAiI0ZGRiIsCiAgImJvcmRlckNvbG9yIjogIiNiMzMzNGYiLAogICJib3JkZXJXaWR0aCI6IDMsCiAgImljb24iOiAicGxhbmUiLAogICJpY29uU2hhcGUiOiAidHJpYW5nbGUiLAogICJpbm5lckljb25TdHlsZSI6ICIiLAogICJpc0FscGhhTnVtZXJpY0ljb24iOiBmYWxzZSwKICAic3BpbiI6IGZhbHNlLAogICJ0ZXh0Q29sb3IiOiAiI2IzMzM0ZiIKfSkKICAgICAgICAgICAgICAgIG1hcmtlcl9jOTY0OWM4ZDk4YzU0N2NmYTg0MjEzZDAzNmFhZTA0Mi5zZXRJY29uKGJlYXV0aWZ5X2ljb25fYjdlYjVmY2Q5NzgzNDhjYTk5ZTBkMjIxYmEzMDYyMmIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGZhYjY2YzUzMmFjNGI3M2JhMTIxODA0YzE1MDY5ZjkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCcKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80MmQ4M2FkNGFjNzM0ZGNhYThmYTk4YWM2NWM5YzU5MiA9ICQoJzxkaXYgaWQ9Imh0bWxfNDJkODNhZDRhYzczNGRjYWE4ZmE5OGFjNjVjOWM1OTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlBvcnRsYW5kLCBPUjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGZhYjY2YzUzMmFjNGI3M2JhMTIxODA0YzE1MDY5Zjkuc2V0Q29udGVudChodG1sXzQyZDgzYWQ0YWM3MzRkY2FhOGZhOThhYzY1YzljNTkyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYzk2NDljOGQ5OGM1NDdjZmE4NDIxM2QwMzZhYWUwNDIuYmluZFBvcHVwKHBvcHVwXzRmYWI2NmM1MzJhYzRiNzNiYTEyMTgwNGMxNTA2OWY5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl8yNzVhMTUzMjRlMmI0ODk4YTExNTNhZGY2OWEwNzUwMCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLCAtMTIyXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF80OTQwOWE4OTljNTY0OTU4YWFkNDYzMDQ5MDk5NDRiZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgYmVhdXRpZnlfaWNvbl85YjU3MDE1ZTBhMzE0Y2JhODJlMDY3ZDU4ZjBlZjRmZiA9IG5ldyBMLkJlYXV0aWZ5SWNvbi5pY29uKHsKICAiYmFja2dyb3VuZENvbG9yIjogIiNGRkYiLAogICJib3JkZXJDb2xvciI6ICIjMDBBQkRDIiwKICAiYm9yZGVyV2lkdGgiOiAzLAogICJpbm5lckljb25TdHlsZSI6ICJtYXJnaW4tdG9wOjA7IiwKICAiaXNBbHBoYU51bWVyaWNJY29uIjogdHJ1ZSwKICAic3BpbiI6IGZhbHNlLAogICJ0ZXh0IjogMTAsCiAgInRleHRDb2xvciI6ICIjMDBBQkRDIgp9KQogICAgICAgICAgICAgICAgbWFya2VyXzI3NWExNTMyNGUyYjQ4OThhMTE1M2FkZjY5YTA3NTAwLnNldEljb24oYmVhdXRpZnlfaWNvbl85YjU3MDE1ZTBhMzE0Y2JhODJlMDY3ZDU4ZjBlZjRmZik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMzNhNzVlOTQ5ZjM0ZjEzOWViMDk1ZTQ0YjViZWVhYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI3MTdiZTQ4ZDI1MjRmOTQ5ZGFkMDBkOTg3MjdlZjlhID0gJCgnPGRpdiBpZD0iaHRtbF8yNzE3YmU0OGQyNTI0Zjk0OWRhZDAwZDk4NzI3ZWY5YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UG9ydGxhbmQsIE9SPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mMzNhNzVlOTQ5ZjM0ZjEzOWViMDk1ZTQ0YjViZWVhYS5zZXRDb250ZW50KGh0bWxfMjcxN2JlNDhkMjUyNGY5NDlkYWQwMGQ5ODcyN2VmOWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8yNzVhMTUzMjRlMmI0ODk4YTExNTNhZGY2OWEwNzUwMC5iaW5kUG9wdXAocG9wdXBfZjMzYTc1ZTk0OWYzNGYxMzllYjA5NWU0NGI1YmVlYWEpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfODRkZTY0OTM3MTdkNGZiZmFlZmM1OGQ2NDZkNjIyYTYgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLnJhd2dpdC5jb20vbWFyc2xhbjM5MC9CZWF1dGlmeU1hcmtlci9tYXN0ZXIvbGVhZmxldC1iZWF1dGlmeS1tYXJrZXItaWNvbi5jc3MiLz4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5yYXdnaXQuY29tL21hcnNsYW4zOTAvQmVhdXRpZnlNYXJrZXIvbWFzdGVyL2xlYWZsZXQtYmVhdXRpZnktbWFya2VyLWljb24uanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF84NGRlNjQ5MzcxN2Q0ZmJmYWVmYzU4ZDY0NmQ2MjJhNiIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfODRkZTY0OTM3MTdkNGZiZmFlZmM1OGQ2NDZkNjIyYTYgPSBMLm1hcCgKICAgICAgICAnbWFwXzg0ZGU2NDkzNzE3ZDRmYmZhZWZjNThkNjQ2ZDYyMmE2JywgewogICAgICAgIGNlbnRlcjogWzQ1LjUsIC0xMjJdLAogICAgICAgIHpvb206IDMsCiAgICAgICAgbWF4Qm91bmRzOiBib3VuZHMsCiAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICB3b3JsZENvcHlKdW1wOiBmYWxzZSwKICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgIH0pOwoKICAgIAogICAgCiAgICB2YXIgdGlsZV9sYXllcl84YzlhZTU5ZTRmZGI0NjJhOTc4ZTY0YzdlMjgwMTVjNyA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJvcGFjaXR5IjogMSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiLAogICAgICAgICJ0bXMiOiBmYWxzZQp9KS5hZGRUbyhtYXBfODRkZTY0OTM3MTdkNGZiZmFlZmM1OGQ2NDZkNjIyYTYpOwogICAgCiAgICAgICAgdmFyIG1hcmtlcl9iYmZkN2FkMWNhMWI0OTE2YjBlYmMyZGQ0YzA5YzU1MiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDYsIC0xMjJdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcF84NGRlNjQ5MzcxN2Q0ZmJmYWVmYzU4ZDY0NmQ2MjJhNik7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgICAgIHZhciBiZWF1dGlmeV9pY29uX2QxMDIzMDA3YjViZDQ2MDhiYmFjM2QwMzRlNDQ4ZDI4ID0gbmV3IEwuQmVhdXRpZnlJY29uLmljb24oewogICJiYWNrZ3JvdW5kQ29sb3IiOiAiI0ZGRiIsCiAgImJvcmRlckNvbG9yIjogIiNiMzMzNGYiLAogICJib3JkZXJXaWR0aCI6IDMsCiAgImljb24iOiAicGxhbmUiLAogICJpY29uU2hhcGUiOiAidHJpYW5nbGUiLAogICJpbm5lckljb25TdHlsZSI6ICIiLAogICJpc0FscGhhTnVtZXJpY0ljb24iOiBmYWxzZSwKICAic3BpbiI6IGZhbHNlLAogICJ0ZXh0Q29sb3IiOiAiI2IzMzM0ZiIKfSkKICAgICAgICAgICAgICAgIG1hcmtlcl9iYmZkN2FkMWNhMWI0OTE2YjBlYmMyZGQ0YzA5YzU1Mi5zZXRJY29uKGJlYXV0aWZ5X2ljb25fZDEwMjMwMDdiNWJkNDYwOGJiYWMzZDAzNGU0NDhkMjgpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzE3ZTUyNmZhY2ExNGQwMzhhMDE3YWI1ZmI3NDdhMWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCcKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kOWY3ZDQ5NWE5YTI0MWQ5YjJmMDE2OWIxMGJjMWEyNSA9ICQoJzxkaXYgaWQ9Imh0bWxfZDlmN2Q0OTVhOWEyNDFkOWIyZjAxNjliMTBiYzFhMjUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlBvcnRsYW5kLCBPUjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzE3ZTUyNmZhY2ExNGQwMzhhMDE3YWI1ZmI3NDdhMWUuc2V0Q29udGVudChodG1sX2Q5ZjdkNDk1YTlhMjQxZDliMmYwMTY5YjEwYmMxYTI1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYmJmZDdhZDFjYTFiNDkxNmIwZWJjMmRkNGMwOWM1NTIuYmluZFBvcHVwKHBvcHVwX2MxN2U1MjZmYWNhMTRkMDM4YTAxN2FiNWZiNzQ3YTFlKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZmFlOGNkZTFiMGRiNDIxNDk1NThmMmI4ODg0M2NjZGUgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzUwLCAtMTIyXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfODRkZTY0OTM3MTdkNGZiZmFlZmM1OGQ2NDZkNjIyYTYpOwogICAgICAgIAogICAgCiAgICAgICAgICAgICAgICB2YXIgYmVhdXRpZnlfaWNvbl9lZTEzYTYxYmJiMTk0MTM3YTg1NTI0MzNmZTczYWJkMSA9IG5ldyBMLkJlYXV0aWZ5SWNvbi5pY29uKHsKICAiYmFja2dyb3VuZENvbG9yIjogIiNGRkYiLAogICJib3JkZXJDb2xvciI6ICIjMDBBQkRDIiwKICAiYm9yZGVyV2lkdGgiOiAzLAogICJpbm5lckljb25TdHlsZSI6ICJtYXJnaW4tdG9wOjA7IiwKICAiaXNBbHBoYU51bWVyaWNJY29uIjogdHJ1ZSwKICAic3BpbiI6IGZhbHNlLAogICJ0ZXh0IjogMTAsCiAgInRleHRDb2xvciI6ICIjMDBBQkRDIgp9KQogICAgICAgICAgICAgICAgbWFya2VyX2ZhZThjZGUxYjBkYjQyMTQ5NTU4ZjJiODg4NDNjY2RlLnNldEljb24oYmVhdXRpZnlfaWNvbl9lZTEzYTYxYmJiMTk0MTM3YTg1NTI0MzNmZTczYWJkMSk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wZjg4YWUxNDRjMzE0NjYwYTdhY2FhNjVmNTBmOTI0NCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI3MjNkZDNlM2Q4MTQ0MTRiM2I0ZmExOTc2OTQwMGEyID0gJCgnPGRpdiBpZD0iaHRtbF8yNzIzZGQzZTNkODE0NDE0YjNiNGZhMTk3Njk0MDBhMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UG9ydGxhbmQsIE9SPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wZjg4YWUxNDRjMzE0NjYwYTdhY2FhNjVmNTBmOTI0NC5zZXRDb250ZW50KGh0bWxfMjcyM2RkM2UzZDgxNDQxNGIzYjRmYTE5NzY5NDAwYTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9mYWU4Y2RlMWIwZGI0MjE0OTU1OGYyYjg4ODQzY2NkZS5iaW5kUG9wdXAocG9wdXBfMGY4OGFlMTQ0YzMxNDY2MGE3YWNhYTY1ZjUwZjkyNDQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
       ],
       "text/plain": [
-       "<folium.folium.Map at 0x7f20bba00630>"
+       "<folium.folium.Map at 0x1b7d55a8b00>"
       ]
      },
      "execution_count": 7,
@@ -299,10 +299,10 @@
     {
      "data": {
       "text/html": [
-       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNDMxNDZhZDE1ZGY4NDVkOTliY2NkZGQxMDAxY2RmMTggewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5mdWxsc2NyZWVuLzEuNC4yL0NvbnRyb2wuRnVsbFNjcmVlbi5taW4uanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0LmZ1bGxzY3JlZW4vMS40LjIvQ29udHJvbC5GdWxsU2NyZWVuLm1pbi5jc3MiLz4KPC9oZWFkPgo8Ym9keT4gICAgCiAgICAKICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfNDMxNDZhZDE1ZGY4NDVkOTliY2NkZGQxMDAxY2RmMTgiID48L2Rpdj4KPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgCiAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAKCiAgICB2YXIgbWFwXzQzMTQ2YWQxNWRmODQ1ZDk5YmNjZGRkMTAwMWNkZjE4ID0gTC5tYXAoCiAgICAgICAgJ21hcF80MzE0NmFkMTVkZjg0NWQ5OWJjY2RkZDEwMDFjZGYxOCcsIHsKICAgICAgICBjZW50ZXI6IFs0MS45LCAtOTcuM10sCiAgICAgICAgem9vbTogNCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfNzY2M2ExNGY1ODM5NGY0MzkwMmM2MTM4MjFmYTJiZmMgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiCn0pLmFkZFRvKG1hcF80MzE0NmFkMTVkZjg0NWQ5OWJjY2RkZDEwMDFjZGYxOCk7CiAgICAKICAgICAgICAgICAgTC5jb250cm9sLmZ1bGxzY3JlZW4oewogICAgICAgICAgICAgICAgcG9zaXRpb246ICd0b3ByaWdodCcsCiAgICAgICAgICAgICAgICB0aXRsZTogJ0V4cGFuZCBtZScsCiAgICAgICAgICAgICAgICB0aXRsZUNhbmNlbDogJ0V4aXQgbWUnLAogICAgICAgICAgICAgICAgZm9yY2VTZXBhcmF0ZUJ1dHRvbjogdHJ1ZSwKICAgICAgICAgICAgICAgIH0pLmFkZFRvKG1hcF80MzE0NmFkMTVkZjg0NWQ5OWJjY2RkZDEwMDFjZGYxOCk7CiAgICAgICAgICAgIG1hcF80MzE0NmFkMTVkZjg0NWQ5OWJjY2RkZDEwMDFjZGYxOC5vbignZW50ZXJGdWxsc2NyZWVuJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlbnRlcmVkIGZ1bGxzY3JlZW4nKTsKICAgICAgICAgICAgfSk7CgogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfMmIxYjg1M2QyNWYzNDlhOWEzZGEzN2Q2YzQxN2E4NmYgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5mdWxsc2NyZWVuLzEuNC4yL0NvbnRyb2wuRnVsbFNjcmVlbi5taW4uanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0LmZ1bGxzY3JlZW4vMS40LjIvQ29udHJvbC5GdWxsU2NyZWVuLm1pbi5jc3MiLz4KPC9oZWFkPgo8Ym9keT4gICAgCiAgICAKICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfMmIxYjg1M2QyNWYzNDlhOWEzZGEzN2Q2YzQxN2E4NmYiID48L2Rpdj4KPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgCiAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAKCiAgICB2YXIgbWFwXzJiMWI4NTNkMjVmMzQ5YTlhM2RhMzdkNmM0MTdhODZmID0gTC5tYXAoCiAgICAgICAgJ21hcF8yYjFiODUzZDI1ZjM0OWE5YTNkYTM3ZDZjNDE3YTg2ZicsIHsKICAgICAgICBjZW50ZXI6IFs0MS45LCAtOTcuM10sCiAgICAgICAgem9vbTogNCwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyX2MxM2YwM2M5ZjhmMTQzMGI5MTJhODNiN2I5OTc3ZmVhID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywKICAgICAgICB7CiAgICAgICAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAgICAgICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgICAgICAgIm1heE5hdGl2ZVpvb20iOiAxOCwKICAgICAgICAibWF4Wm9vbSI6IDE4LAogICAgICAgICJtaW5ab29tIjogMCwKICAgICAgICAibm9XcmFwIjogZmFsc2UsCiAgICAgICAgIm9wYWNpdHkiOiAxLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIsCiAgICAgICAgInRtcyI6IGZhbHNlCn0pLmFkZFRvKG1hcF8yYjFiODUzZDI1ZjM0OWE5YTNkYTM3ZDZjNDE3YTg2Zik7CiAgICAKICAgICAgICAgICAgTC5jb250cm9sLmZ1bGxzY3JlZW4oewogICAgICAgICAgICAgICAgcG9zaXRpb246ICd0b3ByaWdodCcsCiAgICAgICAgICAgICAgICB0aXRsZTogJ0V4cGFuZCBtZScsCiAgICAgICAgICAgICAgICB0aXRsZUNhbmNlbDogJ0V4aXQgbWUnLAogICAgICAgICAgICAgICAgZm9yY2VTZXBhcmF0ZUJ1dHRvbjogdHJ1ZSwKICAgICAgICAgICAgICAgIH0pLmFkZFRvKG1hcF8yYjFiODUzZDI1ZjM0OWE5YTNkYTM3ZDZjNDE3YTg2Zik7CiAgICAgICAgICAgIG1hcF8yYjFiODUzZDI1ZjM0OWE5YTNkYTM3ZDZjNDE3YTg2Zi5vbignZW50ZXJGdWxsc2NyZWVuJywgZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlbnRlcmVkIGZ1bGxzY3JlZW4nKTsKICAgICAgICAgICAgfSk7CgogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
       ],
       "text/plain": [
-       "<folium.folium.Map at 0x7f20bbb05978>"
+       "<folium.folium.Map at 0x1b7d5588e48>"
       ]
      },
      "execution_count": 8,
@@ -340,10 +340,10 @@
     {
      "data": {
       "text/html": [
-       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfMzcwNjgzNjcwZTJmNDBlN2EzNzYyMTJjZjA4ZmUxOGIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzIuMC4wL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2pxdWVyeXVpLzEuMTAuMi9qcXVlcnktdWkubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3Jhd2dpdC5jb20vbmV6YXNhL2lzbzg2MDEtanMtcGVyaW9kL21hc3Rlci9pc284NjAxLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9yYXdnaXQuY29tL3NvY2liL0xlYWZsZXQuVGltZURpbWVuc2lvbi9tYXN0ZXIvZGlzdC9sZWFmbGV0LnRpbWVkaW1lbnNpb24ubWluLmpzIj48L3NjcmlwdD4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaGlnaGxpZ2h0LmpzLzguNC9zdHlsZXMvZGVmYXVsdC5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9hcHBzLnNvY2liLmVzL0xlYWZsZXQuVGltZURpbWVuc2lvbi9kaXN0L2xlYWZsZXQudGltZWRpbWVuc2lvbi5jb250cm9sLm1pbi5jc3MiLz4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9tb21lbnQuanMvMi4xOC4xL21vbWVudC5taW4uanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF8zNzA2ODM2NzBlMmY0MGU3YTM3NjIxMmNmMDhmZTE4YiIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfMzcwNjgzNjcwZTJmNDBlN2EzNzYyMTJjZjA4ZmUxOGIgPSBMLm1hcCgKICAgICAgICAnbWFwXzM3MDY4MzY3MGUyZjQwZTdhMzc2MjEyY2YwOGZlMThiJywgewogICAgICAgIGNlbnRlcjogWzM1LjY4MTU5NjU5MDYxNTY5LCAxMzkuNzY0NTE1MTYxNTE0MjhdLAogICAgICAgIHpvb206IDE2LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgIH0pOwoKICAgIAogICAgCiAgICB2YXIgdGlsZV9sYXllcl84ZTkzM2RmNjc4YTU0ZGFiODQ0NTM2ZTZlMzNhYzJmNiA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIKfSkuYWRkVG8obWFwXzM3MDY4MzY3MGUyZjQwZTdhMzc2MjEyY2YwOGZlMThiKTsKICAgIAogICAgICAgICAgICBMLkNvbnRyb2wuVGltZURpbWVuc2lvbkN1c3RvbSA9IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uLmV4dGVuZCh7CiAgICAgICAgICAgICAgICBfZ2V0RGlzcGxheURhdGVGb3JtYXQ6IGZ1bmN0aW9uKGRhdGUpewogICAgICAgICAgICAgICAgICAgIHZhciBuZXdkYXRlID0gbmV3IG1vbWVudChkYXRlKTsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhuZXdkYXRlKQogICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdkYXRlLmZvcm1hdCgiWVlZWS9NTS9ERCBoaDptbTpzcyIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgbWFwXzM3MDY4MzY3MGUyZjQwZTdhMzc2MjEyY2YwOGZlMThiLnRpbWVEaW1lbnNpb24gPSBMLnRpbWVEaW1lbnNpb24oe3BlcmlvZDoiUFQxTSJ9KTsKICAgICAgICAgICAgdmFyIHRpbWVEaW1lbnNpb25Db250cm9sID0gbmV3IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uQ3VzdG9tKHsKICAiYXV0b1BsYXkiOiB0cnVlLAogICJsb29wQnV0dG9uIjogZmFsc2UsCiAgIm1heFNwZWVkIjogMTAsCiAgIm1pblNwZWVkIjogMC4xLAogICJwbGF5ZXJPcHRpb25zIjogewogICAgImxvb3AiOiB0cnVlLAogICAgInN0YXJ0T3ZlciI6IHRydWUsCiAgICAidHJhbnNpdGlvblRpbWUiOiAyMDAKICB9LAogICJwb3NpdGlvbiI6ICJib3R0b21sZWZ0IiwKICAidGltZVNsaWRlckRyYWdVcGRhdGUiOiBmYWxzZQp9KTsKICAgICAgICAgICAgbWFwXzM3MDY4MzY3MGUyZjQwZTdhMzc2MjEyY2YwOGZlMThiLmFkZENvbnRyb2wodGhpcy50aW1lRGltZW5zaW9uQ29udHJvbCk7CgogICAgICAgICAgICBjb25zb2xlLmxvZygiIik7CgogICAgICAgICAgICB2YXIgZ2VvSnNvbkxheWVyID0gTC5nZW9Kc29uKHsidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiIsICJmZWF0dXJlcyI6IFt7InR5cGUiOiAiRmVhdHVyZSIsICJnZW9tZXRyeSI6IHsidHlwZSI6ICJMaW5lU3RyaW5nIiwgImNvb3JkaW5hdGVzIjogW1sxMzkuNzY0NTE1MTYxNTE0MjgsIDM1LjY4MTU5NjU5MDYxNTY5XSwgWzEzOS43NTk2NDQyNjk5NDMyNCwgMzUuNjgyNTkwMDYyNjg0MjA2XV19LCAicHJvcGVydGllcyI6IHsidGltZXMiOiBbIjIwMTctMDYtMDJUMDA6MDA6MDAiLCAiMjAxNy0wNi0wMlQwMDoxMDowMCJdLCAic3R5bGUiOiB7ImNvbG9yIjogInJlZCIsICJ3ZWlnaHQiOiA1fX19LCB7InR5cGUiOiAiRmVhdHVyZSIsICJnZW9tZXRyeSI6IHsidHlwZSI6ICJMaW5lU3RyaW5nIiwgImNvb3JkaW5hdGVzIjogW1sxMzkuNzU5NjQ0MjY5OTQzMjQsIDM1LjY4MjU5MDA2MjY4NDIwNl0sIFsxMzkuNzU3NTg0MzMzNDE5OCwgMzUuNjc5NTA1MDMwMDM4NTA2XV19LCAicHJvcGVydGllcyI6IHsidGltZXMiOiBbIjIwMTctMDYtMDJUMDA6MTA6MDAiLCAiMjAxNy0wNi0wMlQwMDoyMDowMCJdLCAic3R5bGUiOiB7ImNvbG9yIjogImJsdWUiLCAid2VpZ2h0IjogNX19fSwgeyJ0eXBlIjogIkZlYXR1cmUiLCAiZ2VvbWV0cnkiOiB7InR5cGUiOiAiTGluZVN0cmluZyIsICJjb29yZGluYXRlcyI6IFtbMTM5Ljc1NzU4NDMzMzQxOTgsIDM1LjY3OTUwNTAzMDAzODUwNl0sIFsxMzkuNzYzMzc3OTA0ODkxOTcsIDM1LjY3ODA0MDkwNTAxNDA2NV1dfSwgInByb3BlcnRpZXMiOiB7InRpbWVzIjogWyIyMDE3LTA2LTAyVDAwOjIwOjAwIiwgIjIwMTctMDYtMDJUMDA6MzA6MDAiXSwgInN0eWxlIjogeyJjb2xvciI6ICJncmVlbiIsICJ3ZWlnaHQiOiAxNX19fSwgeyJ0eXBlIjogIkZlYXR1cmUiLCAiZ2VvbWV0cnkiOiB7InR5cGUiOiAiTGluZVN0cmluZyIsICJjb29yZGluYXRlcyI6IFtbMTM5Ljc2MzM3NzkwNDg5MTk3LCAzNS42NzgwNDA5MDUwMTQwNjVdLCBbMTM5Ljc2NDUxNTE2MTUxNDI4LCAzNS42ODE1OTY1OTA2MTU2OV1dfSwgInByb3BlcnRpZXMiOiB7InRpbWVzIjogWyIyMDE3LTA2LTAyVDAwOjMwOjAwIiwgIjIwMTctMDYtMDJUMDA6NDA6MDAiXSwgInN0eWxlIjogeyJjb2xvciI6ICIjRkZGRkZGIiwgIndlaWdodCI6IDV9fX1dfSwgewogICAgICAgICAgICAgICAgICAgIHBvaW50VG9MYXllcjogZnVuY3Rpb24gKGZlYXR1cmUsIGxhdExuZykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVhdHVyZS5wcm9wZXJ0aWVzLmljb24gPT0gJ21hcmtlcicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZlYXR1cmUucHJvcGVydGllcy5pY29uc3R5bGUpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTC5NYXJrZXIobGF0TG5nLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IEwuaWNvbihmZWF0dXJlLnByb3BlcnRpZXMuaWNvbnN0eWxlKX0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuTWFya2VyKGxhdExuZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcy5pY29uID09ICdjaXJjbGUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVhdHVyZS5wcm9wZXJ0aWVzLmljb25zdHlsZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTC5jaXJjbGVNYXJrZXIobGF0TG5nLCBmZWF0dXJlLnByb3BlcnRpZXMuaWNvbnN0eWxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Vsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTC5jaXJjbGVNYXJrZXIobGF0TG5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAvL2Vsc2UKCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTC5NYXJrZXIobGF0TG5nKTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHN0eWxlOiBmdW5jdGlvbiAoZmVhdHVyZSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmVhdHVyZS5wcm9wZXJ0aWVzLnN0eWxlOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZnVuY3Rpb24oZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcy5wb3B1cCkgewogICAgICAgICAgICAgICAgICAgICAgICBsYXllci5iaW5kUG9wdXAoZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCgogICAgICAgICAgICB2YXIgdGltZXN0YW1wZWRfZ2VvX2pzb25fMTdiYTlkYjA2NGQ1NDA1MWI0YWExNTM4ZmJiNjM1OTAgPSBMLnRpbWVEaW1lbnNpb24ubGF5ZXIuZ2VvSnNvbihnZW9Kc29uTGF5ZXIsCiAgICAgICAgICAgICAgICB7dXBkYXRlVGltZURpbWVuc2lvbjogdHJ1ZSxhZGRsYXN0UG9pbnQ6IHRydWV9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF8zNzA2ODM2NzBlMmY0MGU3YTM3NjIxMmNmMDhmZTE4Yik7CiAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfYTgyYTE3NDMwNWYzNDcxMGJhMmNjZWY3OTk3MWVlZTEgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzIuMC4wL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2pxdWVyeXVpLzEuMTAuMi9qcXVlcnktdWkubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3Jhd2dpdC5jb20vbmV6YXNhL2lzbzg2MDEtanMtcGVyaW9kL21hc3Rlci9pc284NjAxLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9yYXdnaXQuY29tL3NvY2liL0xlYWZsZXQuVGltZURpbWVuc2lvbi9tYXN0ZXIvZGlzdC9sZWFmbGV0LnRpbWVkaW1lbnNpb24ubWluLmpzIj48L3NjcmlwdD4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaGlnaGxpZ2h0LmpzLzguNC9zdHlsZXMvZGVmYXVsdC5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9hcHBzLnNvY2liLmVzL0xlYWZsZXQuVGltZURpbWVuc2lvbi9kaXN0L2xlYWZsZXQudGltZWRpbWVuc2lvbi5jb250cm9sLm1pbi5jc3MiLz4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9tb21lbnQuanMvMi4xOC4xL21vbWVudC5taW4uanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF9hODJhMTc0MzA1ZjM0NzEwYmEyY2NlZjc5OTcxZWVlMSIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfYTgyYTE3NDMwNWYzNDcxMGJhMmNjZWY3OTk3MWVlZTEgPSBMLm1hcCgKICAgICAgICAnbWFwX2E4MmExNzQzMDVmMzQ3MTBiYTJjY2VmNzk5NzFlZWUxJywgewogICAgICAgIGNlbnRlcjogWzM1LjY4MTU5NjU5MDYxNTY5LCAxMzkuNzY0NTE1MTYxNTE0MjhdLAogICAgICAgIHpvb206IDE2LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfNGUwMmNiZDhjNmIyNDU2YTlhMTVlMmVlMGI2M2E4NTYgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwX2E4MmExNzQzMDVmMzQ3MTBiYTJjY2VmNzk5NzFlZWUxKTsKICAgIAogICAgICAgICAgICBMLkNvbnRyb2wuVGltZURpbWVuc2lvbkN1c3RvbSA9IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uLmV4dGVuZCh7CiAgICAgICAgICAgICAgICBfZ2V0RGlzcGxheURhdGVGb3JtYXQ6IGZ1bmN0aW9uKGRhdGUpewogICAgICAgICAgICAgICAgICAgIHZhciBuZXdkYXRlID0gbmV3IG1vbWVudChkYXRlKTsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhuZXdkYXRlKQogICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdkYXRlLmZvcm1hdCgiWVlZWS1NTS1ERCBISDptbTpzcyIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgbWFwX2E4MmExNzQzMDVmMzQ3MTBiYTJjY2VmNzk5NzFlZWUxLnRpbWVEaW1lbnNpb24gPSBMLnRpbWVEaW1lbnNpb24oe3BlcmlvZDoiUFQxTSJ9KTsKICAgICAgICAgICAgdmFyIHRpbWVEaW1lbnNpb25Db250cm9sID0gbmV3IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uQ3VzdG9tKHsKICAiYXV0b1BsYXkiOiB0cnVlLAogICJsb29wQnV0dG9uIjogZmFsc2UsCiAgIm1heFNwZWVkIjogMTAsCiAgIm1pblNwZWVkIjogMC4xLAogICJwbGF5ZXJPcHRpb25zIjogewogICAgImxvb3AiOiB0cnVlLAogICAgInN0YXJ0T3ZlciI6IHRydWUsCiAgICAidHJhbnNpdGlvblRpbWUiOiAyMDAKICB9LAogICJwb3NpdGlvbiI6ICJib3R0b21sZWZ0IiwKICAidGltZVNsaWRlckRyYWdVcGRhdGUiOiBmYWxzZQp9KTsKICAgICAgICAgICAgbWFwX2E4MmExNzQzMDVmMzQ3MTBiYTJjY2VmNzk5NzFlZWUxLmFkZENvbnRyb2wodGhpcy50aW1lRGltZW5zaW9uQ29udHJvbCk7CgogICAgICAgICAgICBjb25zb2xlLmxvZygiIik7CgogICAgICAgICAgICB2YXIgZ2VvSnNvbkxheWVyID0gTC5nZW9Kc29uKHsidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiIsICJmZWF0dXJlcyI6IFt7InR5cGUiOiAiRmVhdHVyZSIsICJnZW9tZXRyeSI6IHsidHlwZSI6ICJMaW5lU3RyaW5nIiwgImNvb3JkaW5hdGVzIjogW1sxMzkuNzY0NTE1MTYxNTE0MjgsIDM1LjY4MTU5NjU5MDYxNTY5XSwgWzEzOS43NTk2NDQyNjk5NDMyNCwgMzUuNjgyNTkwMDYyNjg0MjA2XV19LCAicHJvcGVydGllcyI6IHsidGltZXMiOiBbIjIwMTctMDYtMDJUMDA6MDA6MDAiLCAiMjAxNy0wNi0wMlQwMDoxMDowMCJdLCAic3R5bGUiOiB7ImNvbG9yIjogInJlZCIsICJ3ZWlnaHQiOiA1fX19LCB7InR5cGUiOiAiRmVhdHVyZSIsICJnZW9tZXRyeSI6IHsidHlwZSI6ICJMaW5lU3RyaW5nIiwgImNvb3JkaW5hdGVzIjogW1sxMzkuNzU5NjQ0MjY5OTQzMjQsIDM1LjY4MjU5MDA2MjY4NDIwNl0sIFsxMzkuNzU3NTg0MzMzNDE5OCwgMzUuNjc5NTA1MDMwMDM4NTA2XV19LCAicHJvcGVydGllcyI6IHsidGltZXMiOiBbIjIwMTctMDYtMDJUMDA6MTA6MDAiLCAiMjAxNy0wNi0wMlQwMDoyMDowMCJdLCAic3R5bGUiOiB7ImNvbG9yIjogImJsdWUiLCAid2VpZ2h0IjogNX19fSwgeyJ0eXBlIjogIkZlYXR1cmUiLCAiZ2VvbWV0cnkiOiB7InR5cGUiOiAiTGluZVN0cmluZyIsICJjb29yZGluYXRlcyI6IFtbMTM5Ljc1NzU4NDMzMzQxOTgsIDM1LjY3OTUwNTAzMDAzODUwNl0sIFsxMzkuNzYzMzc3OTA0ODkxOTcsIDM1LjY3ODA0MDkwNTAxNDA2NV1dfSwgInByb3BlcnRpZXMiOiB7InRpbWVzIjogWyIyMDE3LTA2LTAyVDAwOjIwOjAwIiwgIjIwMTctMDYtMDJUMDA6MzA6MDAiXSwgInN0eWxlIjogeyJjb2xvciI6ICJncmVlbiIsICJ3ZWlnaHQiOiAxNX19fSwgeyJ0eXBlIjogIkZlYXR1cmUiLCAiZ2VvbWV0cnkiOiB7InR5cGUiOiAiTGluZVN0cmluZyIsICJjb29yZGluYXRlcyI6IFtbMTM5Ljc2MzM3NzkwNDg5MTk3LCAzNS42NzgwNDA5MDUwMTQwNjVdLCBbMTM5Ljc2NDUxNTE2MTUxNDI4LCAzNS42ODE1OTY1OTA2MTU2OV1dfSwgInByb3BlcnRpZXMiOiB7InRpbWVzIjogWyIyMDE3LTA2LTAyVDAwOjMwOjAwIiwgIjIwMTctMDYtMDJUMDA6NDA6MDAiXSwgInN0eWxlIjogeyJjb2xvciI6ICIjRkZGRkZGIiwgIndlaWdodCI6IDV9fX1dfSwgewogICAgICAgICAgICAgICAgICAgIHBvaW50VG9MYXllcjogZnVuY3Rpb24gKGZlYXR1cmUsIGxhdExuZykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVhdHVyZS5wcm9wZXJ0aWVzLmljb24gPT0gJ21hcmtlcicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZlYXR1cmUucHJvcGVydGllcy5pY29uc3R5bGUpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTC5NYXJrZXIobGF0TG5nLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IEwuaWNvbihmZWF0dXJlLnByb3BlcnRpZXMuaWNvbnN0eWxlKX0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuTWFya2VyKGxhdExuZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcy5pY29uID09ICdjaXJjbGUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVhdHVyZS5wcm9wZXJ0aWVzLmljb25zdHlsZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTC5jaXJjbGVNYXJrZXIobGF0TG5nLCBmZWF0dXJlLnByb3BlcnRpZXMuaWNvbnN0eWxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Vsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTC5jaXJjbGVNYXJrZXIobGF0TG5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAvL2Vsc2UKCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTC5NYXJrZXIobGF0TG5nKTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIHN0eWxlOiBmdW5jdGlvbiAoZmVhdHVyZSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmVhdHVyZS5wcm9wZXJ0aWVzLnN0eWxlOwogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZnVuY3Rpb24oZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcy5wb3B1cCkgewogICAgICAgICAgICAgICAgICAgICAgICBsYXllci5iaW5kUG9wdXAoZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCgogICAgICAgICAgICB2YXIgdGltZXN0YW1wZWRfZ2VvX2pzb25fMjgyNDg3MDFiYmYzNDNmYjk5NDFkMGRhODNlYTVhMDIgPSBMLnRpbWVEaW1lbnNpb24ubGF5ZXIuZ2VvSnNvbihnZW9Kc29uTGF5ZXIsCiAgICAgICAgICAgICAgICB7dXBkYXRlVGltZURpbWVuc2lvbjogdHJ1ZSwKICAgICAgICAgICAgICAgICBhZGRsYXN0UG9pbnQ6IHRydWUsCiAgICAgICAgICAgICAgICAgZHVyYXRpb246IHVuZGVmaW5lZCwKICAgICAgICAgICAgICAgIH0pLmFkZFRvKG1hcF9hODJhMTc0MzA1ZjM0NzEwYmEyY2NlZjc5OTcxZWVlMSk7CiAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
       ],
       "text/plain": [
-       "<folium.folium.Map at 0x7f20bba0f9e8>"
+       "<folium.folium.Map at 0x1b7d55eb940>"
       ]
      },
      "execution_count": 9,
@@ -450,10 +450,10 @@
     {
      "data": {
       "text/html": [
-       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNjE1NWFiZThmZTgwNDA1YWFlYTIwNDQwNTQ1M2NiY2YgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzIuMC4wL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2pxdWVyeXVpLzEuMTAuMi9qcXVlcnktdWkubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3Jhd2dpdC5jb20vbmV6YXNhL2lzbzg2MDEtanMtcGVyaW9kL21hc3Rlci9pc284NjAxLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9yYXdnaXQuY29tL3NvY2liL0xlYWZsZXQuVGltZURpbWVuc2lvbi9tYXN0ZXIvZGlzdC9sZWFmbGV0LnRpbWVkaW1lbnNpb24ubWluLmpzIj48L3NjcmlwdD4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaGlnaGxpZ2h0LmpzLzguNC9zdHlsZXMvZGVmYXVsdC5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9hcHBzLnNvY2liLmVzL0xlYWZsZXQuVGltZURpbWVuc2lvbi9kaXN0L2xlYWZsZXQudGltZWRpbWVuc2lvbi5jb250cm9sLm1pbi5jc3MiLz4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9tb21lbnQuanMvMi4xOC4xL21vbWVudC5taW4uanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF82MTU1YWJlOGZlODA0MDVhYWVhMjA0NDA1NDUzY2JjZiIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfNjE1NWFiZThmZTgwNDA1YWFlYTIwNDQwNTQ1M2NiY2YgPSBMLm1hcCgKICAgICAgICAnbWFwXzYxNTVhYmU4ZmU4MDQwNWFhZWEyMDQ0MDU0NTNjYmNmJywgewogICAgICAgIGNlbnRlcjogWzU2LjA5NjU1NSwgLTMuNjQ3NDZdLAogICAgICAgIHpvb206IDUsCiAgICAgICAgbWF4Qm91bmRzOiBib3VuZHMsCiAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICB3b3JsZENvcHlKdW1wOiBmYWxzZSwKICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3CiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzU1OWM3YWYxODBmMDQ2MDRhNmZiNWQ0NjI4YzMxOGNmID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8vY2FydG9kYi1iYXNlbWFwcy17c30uZ2xvYmFsLnNzbC5mYXN0bHkubmV0L2xpZ2h0X2FsbC97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiCn0pLmFkZFRvKG1hcF82MTU1YWJlOGZlODA0MDVhYWVhMjA0NDA1NDUzY2JjZik7CiAgICAKICAgICAgICAgICAgTC5Db250cm9sLlRpbWVEaW1lbnNpb25DdXN0b20gPSBMLkNvbnRyb2wuVGltZURpbWVuc2lvbi5leHRlbmQoewogICAgICAgICAgICAgICAgX2dldERpc3BsYXlEYXRlRm9ybWF0OiBmdW5jdGlvbihkYXRlKXsKICAgICAgICAgICAgICAgICAgICB2YXIgbmV3ZGF0ZSA9IG5ldyBtb21lbnQoZGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobmV3ZGF0ZSkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3ZGF0ZS5mb3JtYXQoIllZWVkvTU0vREQiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIG1hcF82MTU1YWJlOGZlODA0MDVhYWVhMjA0NDA1NDUzY2JjZi50aW1lRGltZW5zaW9uID0gTC50aW1lRGltZW5zaW9uKHtwZXJpb2Q6IlAxTSJ9KTsKICAgICAgICAgICAgdmFyIHRpbWVEaW1lbnNpb25Db250cm9sID0gbmV3IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uQ3VzdG9tKHsKICAiYXV0b1BsYXkiOiBmYWxzZSwKICAibG9vcEJ1dHRvbiI6IHRydWUsCiAgIm1heFNwZWVkIjogMSwKICAibWluU3BlZWQiOiAwLjEsCiAgInBsYXllck9wdGlvbnMiOiB7CiAgICAibG9vcCI6IGZhbHNlLAogICAgInN0YXJ0T3ZlciI6IHRydWUsCiAgICAidHJhbnNpdGlvblRpbWUiOiAyMDAKICB9LAogICJwb3NpdGlvbiI6ICJib3R0b21sZWZ0IiwKICAidGltZVNsaWRlckRyYWdVcGRhdGUiOiB0cnVlCn0pOwogICAgICAgICAgICBtYXBfNjE1NWFiZThmZTgwNDA1YWFlYTIwNDQwNTQ1M2NiY2YuYWRkQ29udHJvbCh0aGlzLnRpbWVEaW1lbnNpb25Db250cm9sKTsKCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCIiKTsKCiAgICAgICAgICAgIHZhciBnZW9Kc29uTGF5ZXIgPSBMLmdlb0pzb24oeyJ0eXBlIjogIkZlYXR1cmVDb2xsZWN0aW9uIiwgImZlYXR1cmVzIjogW3sidHlwZSI6ICJGZWF0dXJlIiwgImdlb21ldHJ5IjogeyJ0eXBlIjogIlBvaW50IiwgImNvb3JkaW5hdGVzIjogWy0yLjU0ODgyOCwgNTEuNDY3Njk3XX0sICJwcm9wZXJ0aWVzIjogeyJ0aW1lIjogIjIwMTctMDYtMDIiLCAicG9wdXAiOiAiPGgxPmFkZHJlc3MxPC9oMT4iLCAiaWQiOiAiaG91c2UiLCAiaWNvbiI6ICJtYXJrZXIiLCAiaWNvbnN0eWxlIjogeyJpY29uVXJsIjogImh0dHA6Ly9kb3dubG9hZGljb25zLm5ldC9zaXRlcy9kZWZhdWx0L2ZpbGVzL3NtYWxsLWhvdXNlLXdpdGgtYS1jaGltbmV5LWljb24tNzAwNTMucG5nIiwgImljb25TaXplIjogWzIwLCAyMF19fX0sIHsidHlwZSI6ICJGZWF0dXJlIiwgImdlb21ldHJ5IjogeyJ0eXBlIjogIlBvaW50IiwgImNvb3JkaW5hdGVzIjogWy0wLjA4Nzg5MSwgNTEuNTM2MDg2XX0sICJwcm9wZXJ0aWVzIjogeyJ0aW1lIjogIjIwMTctMDctMDIiLCAicG9wdXAiOiAiPGgyIHN0eWxlPVwiY29sb3I6Ymx1ZTtcIj5hZGRyZXNzMjxoMj4iLCAiaWQiOiAiaG91c2UiLCAiaWNvbiI6ICJtYXJrZXIiLCAiaWNvbnN0eWxlIjogeyJpY29uVXJsIjogImh0dHA6Ly9kb3dubG9hZGljb25zLm5ldC9zaXRlcy9kZWZhdWx0L2ZpbGVzL3NtYWxsLWhvdXNlLXdpdGgtYS1jaGltbmV5LWljb24tNzAwNTMucG5nIiwgImljb25TaXplIjogWzIwLCAyMF19fX0sIHsidHlwZSI6ICJGZWF0dXJlIiwgImdlb21ldHJ5IjogeyJ0eXBlIjogIlBvaW50IiwgImNvb3JkaW5hdGVzIjogWy02LjI0MDIzNCwgNTMuMzgzMzI4XX0sICJwcm9wZXJ0aWVzIjogeyJ0aW1lIjogIjIwMTctMDgtMDIiLCAicG9wdXAiOiAiPGgyIHN0eWxlPVwiY29sb3I6b3JhbmdlO1wiPmFkZHJlc3MzPGgyPiIsICJpZCI6ICJob3VzZSIsICJpY29uIjogIm1hcmtlciIsICJpY29uc3R5bGUiOiB7Imljb25VcmwiOiAiaHR0cDovL2Rvd25sb2FkaWNvbnMubmV0L3NpdGVzL2RlZmF1bHQvZmlsZXMvc21hbGwtaG91c2Utd2l0aC1hLWNoaW1uZXktaWNvbi03MDA1My5wbmciLCAiaWNvblNpemUiOiBbMjAsIDIwXX19fSwgeyJ0eXBlIjogIkZlYXR1cmUiLCAiZ2VvbWV0cnkiOiB7InR5cGUiOiAiUG9pbnQiLCAiY29vcmRpbmF0ZXMiOiBbLTEuNDA2MjUsIDYwLjI2MTYxN119LCAicHJvcGVydGllcyI6IHsidGltZSI6ICIyMDE3LTA5LTAyIiwgInBvcHVwIjogIjxoMiBzdHlsZT1cImNvbG9yOmdyZWVuO1wiPmFkZHJlc3M0PGgyPiIsICJpZCI6ICJob3VzZSIsICJpY29uIjogIm1hcmtlciIsICJpY29uc3R5bGUiOiB7Imljb25VcmwiOiAiaHR0cDovL2Rvd25sb2FkaWNvbnMubmV0L3NpdGVzL2RlZmF1bHQvZmlsZXMvc21hbGwtaG91c2Utd2l0aC1hLWNoaW1uZXktaWNvbi03MDA1My5wbmciLCAiaWNvblNpemUiOiBbMjAsIDIwXX19fSwgeyJ0eXBlIjogIkZlYXR1cmUiLCAiZ2VvbWV0cnkiOiB7InR5cGUiOiAiUG9pbnQiLCAiY29vcmRpbmF0ZXMiOiBbLTEuNTE2MTEzLCA1My44MDA2NTFdfSwgInByb3BlcnRpZXMiOiB7InRpbWUiOiAiMjAxNy0xMC0wMiIsICJwb3B1cCI6ICI8dGFibGUgc3R5bGU9XCJ3aWR0aDoxMDAlXCI+XG4gIDx0cj5cbiAgICA8dGg+Rmlyc3RuYW1lPC90aD5cbiAgICA8dGg+TGFzdG5hbWU8L3RoPiBcbiAgICA8dGg+QWdlPC90aD5cbiAgPC90cj5cbiAgPHRyPlxuICAgIDx0ZD5KaWxsPC90ZD5cbiAgICA8dGQ+U21pdGg8L3RkPiBcbiAgICA8dGQ+NTA8L3RkPlxuICA8L3RyPlxuICA8dHI+XG4gICAgPHRkPkV2ZTwvdGQ+XG4gICAgPHRkPkphY2tzb248L3RkPiBcbiAgICA8dGQ+OTQ8L3RkPlxuICA8L3RyPlxuPC90YWJsZT4iLCAiaWQiOiAiaG91c2UiLCAiaWNvbiI6ICJtYXJrZXIiLCAiaWNvbnN0eWxlIjogeyJpY29uVXJsIjogImh0dHA6Ly9kb3dubG9hZGljb25zLm5ldC9zaXRlcy9kZWZhdWx0L2ZpbGVzL3NtYWxsLWhvdXNlLXdpdGgtYS1jaGltbmV5LWljb24tNzAwNTMucG5nIiwgImljb25TaXplIjogWzIwLCAyMF19fX0sIHsidHlwZSI6ICJGZWF0dXJlIiwgImdlb21ldHJ5IjogeyJ0eXBlIjogIkxpbmVTdHJpbmciLCAiY29vcmRpbmF0ZXMiOiBbWy0yLjU0ODgyOCwgNTEuNDY3Njk3XSwgWy0wLjA4Nzg5MSwgNTEuNTM2MDg2XSwgWy02LjI0MDIzNCwgNTMuMzgzMzI4XSwgWy0xLjQwNjI1LCA2MC4yNjE2MTddLCBbLTEuNTE2MTEzLCA1My44MDA2NTFdXX0sICJwcm9wZXJ0aWVzIjogeyJwb3B1cCI6ICJDdXJyZW50IGFkZHJlc3MiLCAidGltZXMiOiBbIjIwMTctMDYtMDIiLCAiMjAxNy0wNy0wMiIsICIyMDE3LTA4LTAyIiwgIjIwMTctMDktMDIiLCAiMjAxNy0xMC0wMiJdLCAiaWNvbiI6ICJjaXJjbGUiLCAiaWNvbnN0eWxlIjogeyJmaWxsQ29sb3IiOiAiZ3JlZW4iLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJzdHJva2UiOiAiZmFsc2UiLCAicmFkaXVzIjogMTN9LCAic3R5bGUiOiB7IndlaWdodCI6IDB9LCAiaWQiOiAibWFuIn19XX0sIHsKICAgICAgICAgICAgICAgICAgICBwb2ludFRvTGF5ZXI6IGZ1bmN0aW9uIChmZWF0dXJlLCBsYXRMbmcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcy5pY29uID09ICdtYXJrZXInKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihmZWF0dXJlLnByb3BlcnRpZXMuaWNvbnN0eWxlKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuTWFya2VyKGxhdExuZywgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBMLmljb24oZmVhdHVyZS5wcm9wZXJ0aWVzLmljb25zdHlsZSl9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMLk1hcmtlcihsYXRMbmcpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZWF0dXJlLnByb3BlcnRpZXMuaWNvbiA9PSAnY2lyY2xlJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcy5pY29uc3R5bGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuY2lyY2xlTWFya2VyKGxhdExuZywgZmVhdHVyZS5wcm9wZXJ0aWVzLmljb25zdHlsZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuY2lyY2xlTWFya2VyKGxhdExuZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgLy9lbHNlCgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuTWFya2VyKGxhdExuZyk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBzdHlsZTogZnVuY3Rpb24gKGZlYXR1cmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZlYXR1cmUucHJvcGVydGllcy5zdHlsZTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG9uRWFjaEZlYXR1cmU6IGZ1bmN0aW9uKGZlYXR1cmUsIGxheWVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZWF0dXJlLnByb3BlcnRpZXMucG9wdXApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIuYmluZFBvcHVwKGZlYXR1cmUucHJvcGVydGllcy5wb3B1cCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQoKICAgICAgICAgICAgdmFyIHRpbWVzdGFtcGVkX2dlb19qc29uX2FmNTJkMGU1NTZmODRhYWU4NWUxZjBjZTcxYmE3ODBjID0gTC50aW1lRGltZW5zaW9uLmxheWVyLmdlb0pzb24oZ2VvSnNvbkxheWVyLAogICAgICAgICAgICAgICAge3VwZGF0ZVRpbWVEaW1lbnNpb246IHRydWUsYWRkbGFzdFBvaW50OiB0cnVlfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjE1NWFiZThmZTgwNDA1YWFlYTIwNDQwNTQ1M2NiY2YpOwogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfNWE4ZGQxZDBmZGZlNDllYTgxYWJjOTc4NTQ2ZThhNmMgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzIuMC4wL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2pxdWVyeXVpLzEuMTAuMi9qcXVlcnktdWkubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL3Jhd2dpdC5jb20vbmV6YXNhL2lzbzg2MDEtanMtcGVyaW9kL21hc3Rlci9pc284NjAxLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9yYXdnaXQuY29tL3NvY2liL0xlYWZsZXQuVGltZURpbWVuc2lvbi9tYXN0ZXIvZGlzdC9sZWFmbGV0LnRpbWVkaW1lbnNpb24ubWluLmpzIj48L3NjcmlwdD4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaGlnaGxpZ2h0LmpzLzguNC9zdHlsZXMvZGVmYXVsdC5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly9hcHBzLnNvY2liLmVzL0xlYWZsZXQuVGltZURpbWVuc2lvbi9kaXN0L2xlYWZsZXQudGltZWRpbWVuc2lvbi5jb250cm9sLm1pbi5jc3MiLz4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9tb21lbnQuanMvMi4xOC4xL21vbWVudC5taW4uanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF81YThkZDFkMGZkZmU0OWVhODFhYmM5Nzg1NDZlOGE2YyIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfNWE4ZGQxZDBmZGZlNDllYTgxYWJjOTc4NTQ2ZThhNmMgPSBMLm1hcCgKICAgICAgICAnbWFwXzVhOGRkMWQwZmRmZTQ5ZWE4MWFiYzk3ODU0NmU4YTZjJywgewogICAgICAgIGNlbnRlcjogWzU2LjA5NjU1NSwgLTMuNjQ3NDZdLAogICAgICAgIHpvb206IDUsCiAgICAgICAgbWF4Qm91bmRzOiBib3VuZHMsCiAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICB3b3JsZENvcHlKdW1wOiBmYWxzZSwKICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgIH0pOwoKICAgIAogICAgCiAgICB2YXIgdGlsZV9sYXllcl8yZTI3Njk2ZTM0NDU0YWQ0YjY3ZjQ2YzkxY2ExMzU1NCA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL2NhcnRvZGItYmFzZW1hcHMte3N9Lmdsb2JhbC5zc2wuZmFzdGx5Lm5ldC9saWdodF9hbGwve3p9L3t4fS97eX0ucG5nJywKICAgICAgICB7CiAgICAgICAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAgICAgICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgICAgICAgIm1heE5hdGl2ZVpvb20iOiAxOCwKICAgICAgICAibWF4Wm9vbSI6IDE4LAogICAgICAgICJtaW5ab29tIjogMCwKICAgICAgICAibm9XcmFwIjogZmFsc2UsCiAgICAgICAgIm9wYWNpdHkiOiAxLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIsCiAgICAgICAgInRtcyI6IGZhbHNlCn0pLmFkZFRvKG1hcF81YThkZDFkMGZkZmU0OWVhODFhYmM5Nzg1NDZlOGE2Yyk7CiAgICAKICAgICAgICAgICAgTC5Db250cm9sLlRpbWVEaW1lbnNpb25DdXN0b20gPSBMLkNvbnRyb2wuVGltZURpbWVuc2lvbi5leHRlbmQoewogICAgICAgICAgICAgICAgX2dldERpc3BsYXlEYXRlRm9ybWF0OiBmdW5jdGlvbihkYXRlKXsKICAgICAgICAgICAgICAgICAgICB2YXIgbmV3ZGF0ZSA9IG5ldyBtb21lbnQoZGF0ZSk7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobmV3ZGF0ZSkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3ZGF0ZS5mb3JtYXQoIllZWVkvTU0vREQiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIG1hcF81YThkZDFkMGZkZmU0OWVhODFhYmM5Nzg1NDZlOGE2Yy50aW1lRGltZW5zaW9uID0gTC50aW1lRGltZW5zaW9uKHtwZXJpb2Q6IlAxTSJ9KTsKICAgICAgICAgICAgdmFyIHRpbWVEaW1lbnNpb25Db250cm9sID0gbmV3IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uQ3VzdG9tKHsKICAiYXV0b1BsYXkiOiBmYWxzZSwKICAibG9vcEJ1dHRvbiI6IHRydWUsCiAgIm1heFNwZWVkIjogMSwKICAibWluU3BlZWQiOiAwLjEsCiAgInBsYXllck9wdGlvbnMiOiB7CiAgICAibG9vcCI6IGZhbHNlLAogICAgInN0YXJ0T3ZlciI6IHRydWUsCiAgICAidHJhbnNpdGlvblRpbWUiOiAyMDAKICB9LAogICJwb3NpdGlvbiI6ICJib3R0b21sZWZ0IiwKICAidGltZVNsaWRlckRyYWdVcGRhdGUiOiB0cnVlCn0pOwogICAgICAgICAgICBtYXBfNWE4ZGQxZDBmZGZlNDllYTgxYWJjOTc4NTQ2ZThhNmMuYWRkQ29udHJvbCh0aGlzLnRpbWVEaW1lbnNpb25Db250cm9sKTsKCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCIiKTsKCiAgICAgICAgICAgIHZhciBnZW9Kc29uTGF5ZXIgPSBMLmdlb0pzb24oeyJ0eXBlIjogIkZlYXR1cmVDb2xsZWN0aW9uIiwgImZlYXR1cmVzIjogW3sidHlwZSI6ICJGZWF0dXJlIiwgImdlb21ldHJ5IjogeyJ0eXBlIjogIlBvaW50IiwgImNvb3JkaW5hdGVzIjogWy0yLjU0ODgyOCwgNTEuNDY3Njk3XX0sICJwcm9wZXJ0aWVzIjogeyJ0aW1lIjogIjIwMTctMDYtMDIiLCAicG9wdXAiOiAiPGgxPmFkZHJlc3MxPC9oMT4iLCAiaWQiOiAiaG91c2UiLCAiaWNvbiI6ICJtYXJrZXIiLCAiaWNvbnN0eWxlIjogeyJpY29uVXJsIjogImh0dHA6Ly9kb3dubG9hZGljb25zLm5ldC9zaXRlcy9kZWZhdWx0L2ZpbGVzL3NtYWxsLWhvdXNlLXdpdGgtYS1jaGltbmV5LWljb24tNzAwNTMucG5nIiwgImljb25TaXplIjogWzIwLCAyMF19fX0sIHsidHlwZSI6ICJGZWF0dXJlIiwgImdlb21ldHJ5IjogeyJ0eXBlIjogIlBvaW50IiwgImNvb3JkaW5hdGVzIjogWy0wLjA4Nzg5MSwgNTEuNTM2MDg2XX0sICJwcm9wZXJ0aWVzIjogeyJ0aW1lIjogIjIwMTctMDctMDIiLCAicG9wdXAiOiAiPGgyIHN0eWxlPVwiY29sb3I6Ymx1ZTtcIj5hZGRyZXNzMjxoMj4iLCAiaWQiOiAiaG91c2UiLCAiaWNvbiI6ICJtYXJrZXIiLCAiaWNvbnN0eWxlIjogeyJpY29uVXJsIjogImh0dHA6Ly9kb3dubG9hZGljb25zLm5ldC9zaXRlcy9kZWZhdWx0L2ZpbGVzL3NtYWxsLWhvdXNlLXdpdGgtYS1jaGltbmV5LWljb24tNzAwNTMucG5nIiwgImljb25TaXplIjogWzIwLCAyMF19fX0sIHsidHlwZSI6ICJGZWF0dXJlIiwgImdlb21ldHJ5IjogeyJ0eXBlIjogIlBvaW50IiwgImNvb3JkaW5hdGVzIjogWy02LjI0MDIzNCwgNTMuMzgzMzI4XX0sICJwcm9wZXJ0aWVzIjogeyJ0aW1lIjogIjIwMTctMDgtMDIiLCAicG9wdXAiOiAiPGgyIHN0eWxlPVwiY29sb3I6b3JhbmdlO1wiPmFkZHJlc3MzPGgyPiIsICJpZCI6ICJob3VzZSIsICJpY29uIjogIm1hcmtlciIsICJpY29uc3R5bGUiOiB7Imljb25VcmwiOiAiaHR0cDovL2Rvd25sb2FkaWNvbnMubmV0L3NpdGVzL2RlZmF1bHQvZmlsZXMvc21hbGwtaG91c2Utd2l0aC1hLWNoaW1uZXktaWNvbi03MDA1My5wbmciLCAiaWNvblNpemUiOiBbMjAsIDIwXX19fSwgeyJ0eXBlIjogIkZlYXR1cmUiLCAiZ2VvbWV0cnkiOiB7InR5cGUiOiAiUG9pbnQiLCAiY29vcmRpbmF0ZXMiOiBbLTEuNDA2MjUsIDYwLjI2MTYxN119LCAicHJvcGVydGllcyI6IHsidGltZSI6ICIyMDE3LTA5LTAyIiwgInBvcHVwIjogIjxoMiBzdHlsZT1cImNvbG9yOmdyZWVuO1wiPmFkZHJlc3M0PGgyPiIsICJpZCI6ICJob3VzZSIsICJpY29uIjogIm1hcmtlciIsICJpY29uc3R5bGUiOiB7Imljb25VcmwiOiAiaHR0cDovL2Rvd25sb2FkaWNvbnMubmV0L3NpdGVzL2RlZmF1bHQvZmlsZXMvc21hbGwtaG91c2Utd2l0aC1hLWNoaW1uZXktaWNvbi03MDA1My5wbmciLCAiaWNvblNpemUiOiBbMjAsIDIwXX19fSwgeyJ0eXBlIjogIkZlYXR1cmUiLCAiZ2VvbWV0cnkiOiB7InR5cGUiOiAiUG9pbnQiLCAiY29vcmRpbmF0ZXMiOiBbLTEuNTE2MTEzLCA1My44MDA2NTFdfSwgInByb3BlcnRpZXMiOiB7InRpbWUiOiAiMjAxNy0xMC0wMiIsICJwb3B1cCI6ICI8dGFibGUgc3R5bGU9XCJ3aWR0aDoxMDAlXCI+XG4gIDx0cj5cbiAgICA8dGg+Rmlyc3RuYW1lPC90aD5cbiAgICA8dGg+TGFzdG5hbWU8L3RoPiBcbiAgICA8dGg+QWdlPC90aD5cbiAgPC90cj5cbiAgPHRyPlxuICAgIDx0ZD5KaWxsPC90ZD5cbiAgICA8dGQ+U21pdGg8L3RkPiBcbiAgICA8dGQ+NTA8L3RkPlxuICA8L3RyPlxuICA8dHI+XG4gICAgPHRkPkV2ZTwvdGQ+XG4gICAgPHRkPkphY2tzb248L3RkPiBcbiAgICA8dGQ+OTQ8L3RkPlxuICA8L3RyPlxuPC90YWJsZT4iLCAiaWQiOiAiaG91c2UiLCAiaWNvbiI6ICJtYXJrZXIiLCAiaWNvbnN0eWxlIjogeyJpY29uVXJsIjogImh0dHA6Ly9kb3dubG9hZGljb25zLm5ldC9zaXRlcy9kZWZhdWx0L2ZpbGVzL3NtYWxsLWhvdXNlLXdpdGgtYS1jaGltbmV5LWljb24tNzAwNTMucG5nIiwgImljb25TaXplIjogWzIwLCAyMF19fX0sIHsidHlwZSI6ICJGZWF0dXJlIiwgImdlb21ldHJ5IjogeyJ0eXBlIjogIkxpbmVTdHJpbmciLCAiY29vcmRpbmF0ZXMiOiBbWy0yLjU0ODgyOCwgNTEuNDY3Njk3XSwgWy0wLjA4Nzg5MSwgNTEuNTM2MDg2XSwgWy02LjI0MDIzNCwgNTMuMzgzMzI4XSwgWy0xLjQwNjI1LCA2MC4yNjE2MTddLCBbLTEuNTE2MTEzLCA1My44MDA2NTFdXX0sICJwcm9wZXJ0aWVzIjogeyJwb3B1cCI6ICJDdXJyZW50IGFkZHJlc3MiLCAidGltZXMiOiBbIjIwMTctMDYtMDIiLCAiMjAxNy0wNy0wMiIsICIyMDE3LTA4LTAyIiwgIjIwMTctMDktMDIiLCAiMjAxNy0xMC0wMiJdLCAiaWNvbiI6ICJjaXJjbGUiLCAiaWNvbnN0eWxlIjogeyJmaWxsQ29sb3IiOiAiZ3JlZW4iLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJzdHJva2UiOiAiZmFsc2UiLCAicmFkaXVzIjogMTN9LCAic3R5bGUiOiB7IndlaWdodCI6IDB9LCAiaWQiOiAibWFuIn19XX0sIHsKICAgICAgICAgICAgICAgICAgICBwb2ludFRvTGF5ZXI6IGZ1bmN0aW9uIChmZWF0dXJlLCBsYXRMbmcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcy5pY29uID09ICdtYXJrZXInKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihmZWF0dXJlLnByb3BlcnRpZXMuaWNvbnN0eWxlKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuTWFya2VyKGxhdExuZywgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBMLmljb24oZmVhdHVyZS5wcm9wZXJ0aWVzLmljb25zdHlsZSl9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMLk1hcmtlcihsYXRMbmcpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZWF0dXJlLnByb3BlcnRpZXMuaWNvbiA9PSAnY2lyY2xlJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcy5pY29uc3R5bGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuY2lyY2xlTWFya2VyKGxhdExuZywgZmVhdHVyZS5wcm9wZXJ0aWVzLmljb25zdHlsZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuY2lyY2xlTWFya2VyKGxhdExuZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgLy9lbHNlCgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEwuTWFya2VyKGxhdExuZyk7CiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBzdHlsZTogZnVuY3Rpb24gKGZlYXR1cmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZlYXR1cmUucHJvcGVydGllcy5zdHlsZTsKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIG9uRWFjaEZlYXR1cmU6IGZ1bmN0aW9uKGZlYXR1cmUsIGxheWVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZWF0dXJlLnByb3BlcnRpZXMucG9wdXApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIuYmluZFBvcHVwKGZlYXR1cmUucHJvcGVydGllcy5wb3B1cCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQoKICAgICAgICAgICAgdmFyIHRpbWVzdGFtcGVkX2dlb19qc29uXzViNTRhZDg0MGEzZTQ3MjM4M2JkYTA0NGVmNDhjZjFhID0gTC50aW1lRGltZW5zaW9uLmxheWVyLmdlb0pzb24oZ2VvSnNvbkxheWVyLAogICAgICAgICAgICAgICAge3VwZGF0ZVRpbWVEaW1lbnNpb246IHRydWUsCiAgICAgICAgICAgICAgICAgYWRkbGFzdFBvaW50OiB0cnVlLAogICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAiUDJNIiwKICAgICAgICAgICAgICAgIH0pLmFkZFRvKG1hcF81YThkZDFkMGZkZmU0OWVhODFhYmM5Nzg1NDZlOGE2Yyk7CiAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
       ],
       "text/plain": [
-       "<folium.folium.Map at 0x7f20bb9d44e0>"
+       "<folium.folium.Map at 0x1b7d551b358>"
       ]
      },
      "execution_count": 10,
@@ -594,10 +594,10 @@
     {
      "data": {
       "text/html": [
-       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfN2VkMjhkYjUxYWQ5NGMyY2IzZDkwMzRhYTVlYzFmZjIgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldC5mZWF0dXJlZ3JvdXAuc3ViZ3JvdXBAMS4wLjIvZGlzdC9sZWFmbGV0LmZlYXR1cmVncm91cC5zdWJncm91cC5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzdlZDI4ZGI1MWFkOTRjMmNiM2Q5MDM0YWE1ZWMxZmYyIiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF83ZWQyOGRiNTFhZDk0YzJjYjNkOTAzNGFhNWVjMWZmMiA9IEwubWFwKAogICAgICAgICdtYXBfN2VkMjhkYjUxYWQ5NGMyY2IzZDkwMzRhYTVlYzFmZjInLCB7CiAgICAgICAgY2VudGVyOiBbMCwgMF0sCiAgICAgICAgem9vbTogNiwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfOTNkMjEwYjM1MmU4NGZkYzk3NThhNjRkYTk1YjAyMTIgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiCn0pLmFkZFRvKG1hcF83ZWQyOGRiNTFhZDk0YzJjYjNkOTAzNGFhNWVjMWZmMik7CiAgICAKICAgICAgICAgICAgdmFyIGZlYXR1cmVfZ3JvdXBfZjhjZTJlZjk2NjYyNDUyYzliZjM0ZWJmOGMzNTkxZGUgPSBMLmZlYXR1cmVHcm91cCgKICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzdlZDI4ZGI1MWFkOTRjMmNiM2Q5MDM0YWE1ZWMxZmYyKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfMWNhNmQyMzhhOGQ1NGQzZDkyMTc1OTM4OWIyNDExYjIgPSBMLmZlYXR1cmVHcm91cC5zdWJHcm91cChmZWF0dXJlX2dyb3VwX2Y4Y2UyZWY5NjY2MjQ1MmM5YmYzNGViZjhjMzU5MWRlKTsKICAgICAgICAgICAgZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfMWNhNmQyMzhhOGQ1NGQzZDkyMTc1OTM4OWIyNDExYjIuYWRkVG8obWFwXzdlZDI4ZGI1MWFkOTRjMmNiM2Q5MDM0YWE1ZWMxZmYyKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfN2I4NjQxZTNkOWU5NDUwNWJmNzcyMzI1ZmVkYzk4ZGEgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstMSwgLTFdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8oZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfMWNhNmQyMzhhOGQ1NGQzZDkyMTc1OTM4OWIyNDExYjIpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl83OWE0MTdkMGI1YTI0Y2U1OTA2MGY2ZDYyN2UzZDFlNiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzEsIDFdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8oZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfMWNhNmQyMzhhOGQ1NGQzZDkyMTc1OTM4OWIyNDExYjIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfYWJjZGE3ZDcwYTk3NGFjNjk2NjgzMmQzNTY1NzBmOTEgPSBMLmZlYXR1cmVHcm91cC5zdWJHcm91cChmZWF0dXJlX2dyb3VwX2Y4Y2UyZWY5NjY2MjQ1MmM5YmYzNGViZjhjMzU5MWRlKTsKICAgICAgICAgICAgZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfYWJjZGE3ZDcwYTk3NGFjNjk2NjgzMmQzNTY1NzBmOTEuYWRkVG8obWFwXzdlZDI4ZGI1MWFkOTRjMmNiM2Q5MDM0YWE1ZWMxZmYyKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNDUzYzZjZTUzZTJhNGZhOGEzNTBiMzJkYjRjNGRhY2IgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstMSwgMV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF9hYmNkYTdkNzBhOTc0YWM2OTY2ODMyZDM1NjU3MGY5MSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2FiMzg4NDMyZjYzODRiNDBiYTY1YmI5YmM5MDA2ODAxID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMSwgLTFdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8oZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfYWJjZGE3ZDcwYTk3NGFjNjk2NjgzMmQzNTY1NzBmOTEpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbGF5ZXJfY29udHJvbF8wZGZmMGIyMjU3NmU0ZWY5OWU0MDAwNjAxYzRmOTgwYiA9IHsKICAgICAgICAgICAgICAgIGJhc2VfbGF5ZXJzIDogeyAib3BlbnN0cmVldG1hcCIgOiB0aWxlX2xheWVyXzkzZDIxMGIzNTJlODRmZGM5NzU4YTY0ZGE5NWIwMjEyLCB9LAogICAgICAgICAgICAgICAgb3ZlcmxheXMgOiB7ICJtYWNyb19lbGVtZW50X2Y4Y2UyZWY5NjY2MjQ1MmM5YmYzNGViZjhjMzU5MWRlIiA6IGZlYXR1cmVfZ3JvdXBfZjhjZTJlZjk2NjYyNDUyYzliZjM0ZWJmOGMzNTkxZGUsImcxIiA6IGZlYXR1cmVfZ3JvdXBfc3ViX2dyb3VwXzFjYTZkMjM4YThkNTRkM2Q5MjE3NTkzODliMjQxMWIyLCJnMiIgOiBmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF9hYmNkYTdkNzBhOTc0YWM2OTY2ODMyZDM1NjU3MGY5MSwgfQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgTC5jb250cm9sLmxheWVycygKICAgICAgICAgICAgICAgIGxheWVyX2NvbnRyb2xfMGRmZjBiMjI1NzZlNGVmOTllNDAwMDYwMWM0Zjk4MGIuYmFzZV9sYXllcnMsCiAgICAgICAgICAgICAgICBsYXllcl9jb250cm9sXzBkZmYwYjIyNTc2ZTRlZjk5ZTQwMDA2MDFjNGY5ODBiLm92ZXJsYXlzLAogICAgICAgICAgICAgICAge3Bvc2l0aW9uOiAndG9wcmlnaHQnLAogICAgICAgICAgICAgICAgIGNvbGxhcHNlZDogdHJ1ZSwKICAgICAgICAgICAgICAgICBhdXRvWkluZGV4OiB0cnVlCiAgICAgICAgICAgICAgICB9KS5hZGRUbyhtYXBfN2VkMjhkYjUxYWQ5NGMyY2IzZDkwMzRhYTVlYzFmZjIpOwogICAgICAgICAgICAKICAgICAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZWI5M2Y2Y2Y4MzNiNGE0NmIwODBmNDM1OTU3ZGEyYjcgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldC5mZWF0dXJlZ3JvdXAuc3ViZ3JvdXBAMS4wLjIvZGlzdC9sZWFmbGV0LmZlYXR1cmVncm91cC5zdWJncm91cC5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2ViOTNmNmNmODMzYjRhNDZiMDgwZjQzNTk1N2RhMmI3IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9lYjkzZjZjZjgzM2I0YTQ2YjA4MGY0MzU5NTdkYTJiNyA9IEwubWFwKAogICAgICAgICdtYXBfZWI5M2Y2Y2Y4MzNiNGE0NmIwODBmNDM1OTU3ZGEyYjcnLCB7CiAgICAgICAgY2VudGVyOiBbMCwgMF0sCiAgICAgICAgem9vbTogNiwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzUwMWFhODZlZWNlNDRmN2ViOWYyZWEwZGMxYjg2NmE4ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywKICAgICAgICB7CiAgICAgICAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAgICAgICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgICAgICAgIm1heE5hdGl2ZVpvb20iOiAxOCwKICAgICAgICAibWF4Wm9vbSI6IDE4LAogICAgICAgICJtaW5ab29tIjogMCwKICAgICAgICAibm9XcmFwIjogZmFsc2UsCiAgICAgICAgIm9wYWNpdHkiOiAxLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIsCiAgICAgICAgInRtcyI6IGZhbHNlCn0pLmFkZFRvKG1hcF9lYjkzZjZjZjgzM2I0YTQ2YjA4MGY0MzU5NTdkYTJiNyk7CiAgICAKICAgICAgICAgICAgdmFyIGZlYXR1cmVfZ3JvdXBfZDM4ZmUwNTZhMzNiNDZkNzliZGFlNzgxNTJhNTk4NTUgPSBMLmZlYXR1cmVHcm91cCgKICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2ViOTNmNmNmODMzYjRhNDZiMDgwZjQzNTk1N2RhMmI3KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfYTcwNTdlOWJjMDA0NDVhYWExNTIzZmQ3ODQ4N2I0YzIgPSBMLmZlYXR1cmVHcm91cC5zdWJHcm91cChmZWF0dXJlX2dyb3VwX2QzOGZlMDU2YTMzYjQ2ZDc5YmRhZTc4MTUyYTU5ODU1KTsKICAgICAgICAgICAgZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfYTcwNTdlOWJjMDA0NDVhYWExNTIzZmQ3ODQ4N2I0YzIuYWRkVG8obWFwX2ViOTNmNmNmODMzYjRhNDZiMDgwZjQzNTk1N2RhMmI3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzk4ZjY5NzI0M2MyMzQ0NTA4MWYzYmI1ZTU2MGNlNjBlID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFstMSwgLTFdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKGZlYXR1cmVfZ3JvdXBfc3ViX2dyb3VwX2E3MDU3ZTliYzAwNDQ1YWFhMTUyM2ZkNzg0ODdiNGMyKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfODQ3ZDc0MGM4NWQ0NDI4ZGIwNjllMjU3ZWJiZDI4Y2QgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzEsIDFdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKGZlYXR1cmVfZ3JvdXBfc3ViX2dyb3VwX2E3MDU3ZTliYzAwNDQ1YWFhMTUyM2ZkNzg0ODdiNGMyKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfMWE3NmQxYzk1MzkxNGI2NDg4MjYzMzM2NmJiNzNmZDYgPSBMLmZlYXR1cmVHcm91cC5zdWJHcm91cChmZWF0dXJlX2dyb3VwX2QzOGZlMDU2YTMzYjQ2ZDc5YmRhZTc4MTUyYTU5ODU1KTsKICAgICAgICAgICAgZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfMWE3NmQxYzk1MzkxNGI2NDg4MjYzMzM2NmJiNzNmZDYuYWRkVG8obWFwX2ViOTNmNmNmODMzYjRhNDZiMDgwZjQzNTk1N2RhMmI3KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzc4NTBlMDc2ZWM4NTQyMzhhNmUwMzM3N2Y1YzM1YTZlID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFstMSwgMV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8oZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfMWE3NmQxYzk1MzkxNGI2NDg4MjYzMzM2NmJiNzNmZDYpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8xY2Y0ZmE4NGFkMTY0MTNjOGRmZTFiYTljYzE5NTRmOCA9IEwubWFya2VyKAogICAgICAgICAgICBbMSwgLTFdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKGZlYXR1cmVfZ3JvdXBfc3ViX2dyb3VwXzFhNzZkMWM5NTM5MTRiNjQ4ODI2MzMzNjZiYjczZmQ2KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbGF5ZXJfY29udHJvbF8yZWY3MDVhYmIxOTU0NmFjODNhMzI3MTE2OWRkNGMyOCA9IHsKICAgICAgICAgICAgICAgIGJhc2VfbGF5ZXJzIDogeyAib3BlbnN0cmVldG1hcCIgOiB0aWxlX2xheWVyXzUwMWFhODZlZWNlNDRmN2ViOWYyZWEwZGMxYjg2NmE4LCB9LAogICAgICAgICAgICAgICAgb3ZlcmxheXMgOiB7ICJtYWNyb19lbGVtZW50X2QzOGZlMDU2YTMzYjQ2ZDc5YmRhZTc4MTUyYTU5ODU1IiA6IGZlYXR1cmVfZ3JvdXBfZDM4ZmUwNTZhMzNiNDZkNzliZGFlNzgxNTJhNTk4NTUsImcxIiA6IGZlYXR1cmVfZ3JvdXBfc3ViX2dyb3VwX2E3MDU3ZTliYzAwNDQ1YWFhMTUyM2ZkNzg0ODdiNGMyLCJnMiIgOiBmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF8xYTc2ZDFjOTUzOTE0YjY0ODgyNjMzMzY2YmI3M2ZkNiwgfQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgTC5jb250cm9sLmxheWVycygKICAgICAgICAgICAgICAgIGxheWVyX2NvbnRyb2xfMmVmNzA1YWJiMTk1NDZhYzgzYTMyNzExNjlkZDRjMjguYmFzZV9sYXllcnMsCiAgICAgICAgICAgICAgICBsYXllcl9jb250cm9sXzJlZjcwNWFiYjE5NTQ2YWM4M2EzMjcxMTY5ZGQ0YzI4Lm92ZXJsYXlzLAogICAgICAgICAgICAgICAge3Bvc2l0aW9uOiAndG9wcmlnaHQnLAogICAgICAgICAgICAgICAgIGNvbGxhcHNlZDogdHJ1ZSwKICAgICAgICAgICAgICAgICBhdXRvWkluZGV4OiB0cnVlCiAgICAgICAgICAgICAgICB9KS5hZGRUbyhtYXBfZWI5M2Y2Y2Y4MzNiNGE0NmIwODBmNDM1OTU3ZGEyYjcpOwogICAgICAgICAgICAKICAgICAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
       ],
       "text/plain": [
-       "<folium.folium.Map at 0x7f20bba0ff60>"
+       "<folium.folium.Map at 0x1b7d5534f28>"
       ]
      },
      "execution_count": 11,
@@ -647,10 +647,10 @@
     {
      "data": {
       "text/html": [
-       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZDM4OWY3N2Y0YTU0NGMwYmExMzc5MTZkMDhjMmI5ZmQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5tYXJrZXJjbHVzdGVyLzEuMS4wL2xlYWZsZXQubWFya2VyY2x1c3Rlci5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQubWFya2VyY2x1c3Rlci8xLjEuMC9NYXJrZXJDbHVzdGVyLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMS4xLjAvTWFya2VyQ2x1c3Rlci5EZWZhdWx0LmNzcyIvPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vdW5wa2cuY29tL2xlYWZsZXQuZmVhdHVyZWdyb3VwLnN1Ymdyb3VwQDEuMC4yL2Rpc3QvbGVhZmxldC5mZWF0dXJlZ3JvdXAuc3ViZ3JvdXAuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF9kMzg5Zjc3ZjRhNTQ0YzBiYTEzNzkxNmQwOGMyYjlmZCIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfZDM4OWY3N2Y0YTU0NGMwYmExMzc5MTZkMDhjMmI5ZmQgPSBMLm1hcCgKICAgICAgICAnbWFwX2QzODlmNzdmNGE1NDRjMGJhMTM3OTE2ZDA4YzJiOWZkJywgewogICAgICAgIGNlbnRlcjogWzAsIDBdLAogICAgICAgIHpvb206IDYsCiAgICAgICAgbWF4Qm91bmRzOiBib3VuZHMsCiAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICB3b3JsZENvcHlKdW1wOiBmYWxzZSwKICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3CiAgICAgICAgfSk7CgogICAgCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzBiZjI2N2IzYTk1OTQ5MDliMzUwYjI3Y2U5YWE4Nzg0ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywKICAgICAgICB7CiAgICAgICAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAgICAgICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgICAgICAgIm1heE5hdGl2ZVpvb20iOiAxOCwKICAgICAgICAibWF4Wm9vbSI6IDE4LAogICAgICAgICJtaW5ab29tIjogMCwKICAgICAgICAibm9XcmFwIjogZmFsc2UsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIgp9KS5hZGRUbyhtYXBfZDM4OWY3N2Y0YTU0NGMwYmExMzc5MTZkMDhjMmI5ZmQpOwogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfY2x1c3Rlcl9iMmJhODVmY2M2N2U0NzUwOWVhYzc0ZmYyYmQzOTgyZCA9IEwubWFya2VyQ2x1c3Rlckdyb3VwKHsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgbWFwX2QzODlmNzdmNGE1NDRjMGJhMTM3OTE2ZDA4YzJiOWZkLmFkZExheWVyKG1hcmtlcl9jbHVzdGVyX2IyYmE4NWZjYzY3ZTQ3NTA5ZWFjNzRmZjJiZDM5ODJkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGZlYXR1cmVfZ3JvdXBfc3ViX2dyb3VwXzA4ZjA0MTdhZDA0YTRiNWZhMzU4NWNiODY3NjYwNjYzID0gTC5mZWF0dXJlR3JvdXAuc3ViR3JvdXAobWFya2VyX2NsdXN0ZXJfYjJiYTg1ZmNjNjdlNDc1MDllYWM3NGZmMmJkMzk4MmQpOwogICAgICAgICAgICBmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF8wOGYwNDE3YWQwNGE0YjVmYTM1ODVjYjg2NzY2MDY2My5hZGRUbyhtYXBfZDM4OWY3N2Y0YTU0NGMwYmExMzc5MTZkMDhjMmI5ZmQpOwogICAgICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl80ODdiNmI4OWRkNDA0OWQ2YjdlNmYxZDAwNDNiOTBlYiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWy0xLCAtMV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF8wOGYwNDE3YWQwNGE0YjVmYTM1ODVjYjg2NzY2MDY2Myk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2NmZDMwZDYzZDBjODRiNDk5ZDUzMmVkZmZmMjk1MWNlID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMSwgMV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF8wOGYwNDE3YWQwNGE0YjVmYTM1ODVjYjg2NzY2MDY2Myk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF84YmE1MDE0Y2JhNjc0NTdkOTI5Mzk5OWI1M2ZiNzdjZSA9IEwuZmVhdHVyZUdyb3VwLnN1Ykdyb3VwKG1hcmtlcl9jbHVzdGVyX2IyYmE4NWZjYzY3ZTQ3NTA5ZWFjNzRmZjJiZDM5ODJkKTsKICAgICAgICAgICAgZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfOGJhNTAxNGNiYTY3NDU3ZDkyOTM5OTliNTNmYjc3Y2UuYWRkVG8obWFwX2QzODlmNzdmNGE1NDRjMGJhMTM3OTE2ZDA4YzJiOWZkKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfZmMwNGI4ZDRhN2U1NDk2OGJlZGRhNzcyMjA4NTIzY2MgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFstMSwgMV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC5hZGRUbyhmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF84YmE1MDE0Y2JhNjc0NTdkOTI5Mzk5OWI1M2ZiNzdjZSk7CiAgICAgICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzcyMGVlMzUyMjFlODQ1Yzk5NTgxN2U0YTQzMWU5MDY0ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbMSwgLTFdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAuYWRkVG8oZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfOGJhNTAxNGNiYTY3NDU3ZDkyOTM5OTliNTNmYjc3Y2UpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbGF5ZXJfY29udHJvbF85Njg4MTgwYmZkNDQ0MjVkYTRhNjhmNTI3YTljOTIyZCA9IHsKICAgICAgICAgICAgICAgIGJhc2VfbGF5ZXJzIDogeyAib3BlbnN0cmVldG1hcCIgOiB0aWxlX2xheWVyXzBiZjI2N2IzYTk1OTQ5MDliMzUwYjI3Y2U5YWE4Nzg0LCB9LAogICAgICAgICAgICAgICAgb3ZlcmxheXMgOiB7ICJnMSIgOiBmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF8wOGYwNDE3YWQwNGE0YjVmYTM1ODVjYjg2NzY2MDY2MywiZzIiIDogZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfOGJhNTAxNGNiYTY3NDU3ZDkyOTM5OTliNTNmYjc3Y2UsIH0KICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIEwuY29udHJvbC5sYXllcnMoCiAgICAgICAgICAgICAgICBsYXllcl9jb250cm9sXzk2ODgxODBiZmQ0NDQyNWRhNGE2OGY1MjdhOWM5MjJkLmJhc2VfbGF5ZXJzLAogICAgICAgICAgICAgICAgbGF5ZXJfY29udHJvbF85Njg4MTgwYmZkNDQ0MjVkYTRhNjhmNTI3YTljOTIyZC5vdmVybGF5cywKICAgICAgICAgICAgICAgIHtwb3NpdGlvbjogJ3RvcHJpZ2h0JywKICAgICAgICAgICAgICAgICBjb2xsYXBzZWQ6IHRydWUsCiAgICAgICAgICAgICAgICAgYXV0b1pJbmRleDogdHJ1ZQogICAgICAgICAgICAgICAgfSkuYWRkVG8obWFwX2QzODlmNzdmNGE1NDRjMGJhMTM3OTE2ZDA4YzJiOWZkKTsKICAgICAgICAgICAgCiAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZmQ1NTQ3YjdhZDM3NGIwNWE3NzMzY2IyZjcxMTE2MTYgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5tYXJrZXJjbHVzdGVyLzEuMS4wL2xlYWZsZXQubWFya2VyY2x1c3Rlci5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQubWFya2VyY2x1c3Rlci8xLjEuMC9NYXJrZXJDbHVzdGVyLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMS4xLjAvTWFya2VyQ2x1c3Rlci5EZWZhdWx0LmNzcyIvPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vdW5wa2cuY29tL2xlYWZsZXQuZmVhdHVyZWdyb3VwLnN1Ymdyb3VwQDEuMC4yL2Rpc3QvbGVhZmxldC5mZWF0dXJlZ3JvdXAuc3ViZ3JvdXAuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF9mZDU1NDdiN2FkMzc0YjA1YTc3MzNjYjJmNzExMTYxNiIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfZmQ1NTQ3YjdhZDM3NGIwNWE3NzMzY2IyZjcxMTE2MTYgPSBMLm1hcCgKICAgICAgICAnbWFwX2ZkNTU0N2I3YWQzNzRiMDVhNzczM2NiMmY3MTExNjE2JywgewogICAgICAgIGNlbnRlcjogWzAsIDBdLAogICAgICAgIHpvb206IDYsCiAgICAgICAgbWF4Qm91bmRzOiBib3VuZHMsCiAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICB3b3JsZENvcHlKdW1wOiBmYWxzZSwKICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgIH0pOwoKICAgIAogICAgCiAgICB2YXIgdGlsZV9sYXllcl8xOWRkMjBkNjMyYzA0ZjA4ODAzMzhhOTMzOWQ5YjE5NSA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJvcGFjaXR5IjogMSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiLAogICAgICAgICJ0bXMiOiBmYWxzZQp9KS5hZGRUbyhtYXBfZmQ1NTQ3YjdhZDM3NGIwNWE3NzMzY2IyZjcxMTE2MTYpOwogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfY2x1c3Rlcl9jYTA3YjNmYWIyODI0MDVjYjMzNGJhNWM5YTExZWUyOCA9IEwubWFya2VyQ2x1c3Rlckdyb3VwKHt9KTsKICAgICAgICAgICAgbWFwX2ZkNTU0N2I3YWQzNzRiMDVhNzczM2NiMmY3MTExNjE2LmFkZExheWVyKG1hcmtlcl9jbHVzdGVyX2NhMDdiM2ZhYjI4MjQwNWNiMzM0YmE1YzlhMTFlZTI4KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGZlYXR1cmVfZ3JvdXBfc3ViX2dyb3VwX2ZjYTRlNWNmMDEwMDQ2ZWI5OWI1MzgzM2VmOWVjNjEzID0gTC5mZWF0dXJlR3JvdXAuc3ViR3JvdXAobWFya2VyX2NsdXN0ZXJfY2EwN2IzZmFiMjgyNDA1Y2IzMzRiYTVjOWExMWVlMjgpOwogICAgICAgICAgICBmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF9mY2E0ZTVjZjAxMDA0NmViOTliNTM4MzNlZjllYzYxMy5hZGRUbyhtYXBfZmQ1NTQ3YjdhZDM3NGIwNWE3NzMzY2IyZjcxMTE2MTYpOwogICAgICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfOTg1YzhiYTE2ODI3NGIyMmFlMmU0ZjdmOWRlNGU2OWYgPSBMLm1hcmtlcigKICAgICAgICAgICAgWy0xLCAtMV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8oZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfZmNhNGU1Y2YwMTAwNDZlYjk5YjUzODMzZWY5ZWM2MTMpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8zYTg2MjA5NTI1YjU0YWQ3OWMwMzRkMzEwODQ4ODY1MCA9IEwubWFya2VyKAogICAgICAgICAgICBbMSwgMV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8oZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfZmNhNGU1Y2YwMTAwNDZlYjk5YjUzODMzZWY5ZWM2MTMpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF85ZGQ4ZWQ5ZTY0OTM0YjI0OWQwYzIzOWQ1YzViNDQyZCA9IEwuZmVhdHVyZUdyb3VwLnN1Ykdyb3VwKG1hcmtlcl9jbHVzdGVyX2NhMDdiM2ZhYjI4MjQwNWNiMzM0YmE1YzlhMTFlZTI4KTsKICAgICAgICAgICAgZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfOWRkOGVkOWU2NDkzNGIyNDlkMGMyMzlkNWM1YjQ0MmQuYWRkVG8obWFwX2ZkNTU0N2I3YWQzNzRiMDVhNzczM2NiMmY3MTExNjE2KTsKICAgICAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzYwN2Y5MmFiYzBmYjQ3ZTc5YjY1YTBjYmUxNGVmZDAyID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFstMSwgMV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8oZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfOWRkOGVkOWU2NDkzNGIyNDlkMGMyMzlkNWM1YjQ0MmQpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl81MjMyMmEzMDM1MzQ0MWFjOTgwMzA5NDk2NzJjODM4NCA9IEwubWFya2VyKAogICAgICAgICAgICBbMSwgLTFdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKGZlYXR1cmVfZ3JvdXBfc3ViX2dyb3VwXzlkZDhlZDllNjQ5MzRiMjQ5ZDBjMjM5ZDVjNWI0NDJkKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbGF5ZXJfY29udHJvbF9kZjc2NDMxNDJhZGE0NjBmODMyMjQxMTY5M2E1NmMwNiA9IHsKICAgICAgICAgICAgICAgIGJhc2VfbGF5ZXJzIDogeyAib3BlbnN0cmVldG1hcCIgOiB0aWxlX2xheWVyXzE5ZGQyMGQ2MzJjMDRmMDg4MDMzOGE5MzM5ZDliMTk1LCB9LAogICAgICAgICAgICAgICAgb3ZlcmxheXMgOiB7ICJnMSIgOiBmZWF0dXJlX2dyb3VwX3N1Yl9ncm91cF9mY2E0ZTVjZjAxMDA0NmViOTliNTM4MzNlZjllYzYxMywiZzIiIDogZmVhdHVyZV9ncm91cF9zdWJfZ3JvdXBfOWRkOGVkOWU2NDkzNGIyNDlkMGMyMzlkNWM1YjQ0MmQsIH0KICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIEwuY29udHJvbC5sYXllcnMoCiAgICAgICAgICAgICAgICBsYXllcl9jb250cm9sX2RmNzY0MzE0MmFkYTQ2MGY4MzIyNDExNjkzYTU2YzA2LmJhc2VfbGF5ZXJzLAogICAgICAgICAgICAgICAgbGF5ZXJfY29udHJvbF9kZjc2NDMxNDJhZGE0NjBmODMyMjQxMTY5M2E1NmMwNi5vdmVybGF5cywKICAgICAgICAgICAgICAgIHtwb3NpdGlvbjogJ3RvcHJpZ2h0JywKICAgICAgICAgICAgICAgICBjb2xsYXBzZWQ6IHRydWUsCiAgICAgICAgICAgICAgICAgYXV0b1pJbmRleDogdHJ1ZQogICAgICAgICAgICAgICAgfSkuYWRkVG8obWFwX2ZkNTU0N2I3YWQzNzRiMDVhNzczM2NiMmY3MTExNjE2KTsKICAgICAgICAgICAgCiAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
       ],
       "text/plain": [
-       "<folium.folium.Map at 0x7f20bb9b3710>"
+       "<folium.folium.Map at 0x1b7d55ac470>"
       ]
      },
      "execution_count": 12,
@@ -682,6 +682,44 @@
     "\n",
     "m"
    ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Minimap\n",
+    "\n",
+    "Adds a locator minimap to a folium document"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4zLjQvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgPHN0eWxlPiNtYXBfZTk2N2FlMmU2YTU4NGExNzliYzVmZTZiYjM1NTg2OTQgewogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgdG9wOiAwLjAlOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC1taW5pbWFwLzMuNi4xL0NvbnRyb2wuTWluaU1hcC5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQtbWluaW1hcC8zLjYuMS9Db250cm9sLk1pbmlNYXAuY3NzIi8+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2U5NjdhZTJlNmE1ODRhMTc5YmM1ZmU2YmIzNTU4Njk0IiA+PC9kaXY+CjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgIAogICAgICAgIHZhciBib3VuZHMgPSBudWxsOwogICAgCgogICAgdmFyIG1hcF9lOTY3YWUyZTZhNTg0YTE3OWJjNWZlNmJiMzU1ODY5NCA9IEwubWFwKAogICAgICAgICdtYXBfZTk2N2FlMmU2YTU4NGExNzliYzVmZTZiYjM1NTg2OTQnLCB7CiAgICAgICAgY2VudGVyOiBbMzAsIDIwXSwKICAgICAgICB6b29tOiA0LAogICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgIGxheWVyczogW10sCiAgICAgICAgd29ybGRDb3B5SnVtcDogZmFsc2UsCiAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICB9KTsKCiAgICAKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfZWE4NjQ5ODExYmE0NDc3MmI5ZWEwNzQxNzljODk3YjggPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwX2U5NjdhZTJlNmE1ODRhMTc5YmM1ZmU2YmIzNTU4Njk0KTsKICAgIAoKICAgICAgICB2YXIgdGlsZV9sYXllcl85ODM0MjNhNWUyODg0YmYyOWIyYzU2NzlkZGIzOWEzNCA9IEwudGlsZUxheWVyKAogICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgewogICAgICAgICJhdHRyaWJ1dGlvbiI6IG51bGwsCiAgICAgICAgImRldGVjdFJldGluYSI6IGZhbHNlLAogICAgICAgICJtYXhOYXRpdmVab29tIjogMTgsCiAgICAgICAgIm1heFpvb20iOiAxOCwKICAgICAgICAibWluWm9vbSI6IDAsCiAgICAgICAgIm5vV3JhcCI6IGZhbHNlLAogICAgICAgICJvcGFjaXR5IjogMSwKICAgICAgICAic3ViZG9tYWlucyI6ICJhYmMiLAogICAgICAgICJ0bXMiOiBmYWxzZQp9ICk7CgogICAgICAgIHZhciBtaW5pX21hcF85NmJkOWVhZWU5NDA0OGIzOTIwZTY3MDA2ZGI3NzQxNyA9IG5ldyBMLkNvbnRyb2wuTWluaU1hcCggdGlsZV9sYXllcl85ODM0MjNhNWUyODg0YmYyOWIyYzU2NzlkZGIzOWEzNCwKICAgICAgICAgewogICJhdXRvVG9nZ2xlRGlzcGxheSI6IGZhbHNlLAogICJjZW50ZXJGaXhlZCI6IGZhbHNlLAogICJjb2xsYXBzZWRIZWlnaHQiOiAyNSwKICAiY29sbGFwc2VkV2lkdGgiOiAyNSwKICAiaGVpZ2h0IjogMTUwLAogICJtaW5pbWl6ZWQiOiBmYWxzZSwKICAicG9zaXRpb24iOiAiYm90dG9tcmlnaHQiLAogICJ0b2dnbGVEaXNwbGF5IjogZmFsc2UsCiAgIndpZHRoIjogMTUwLAogICJ6b29tQW5pbWF0aW9uIjogZmFsc2UsCiAgInpvb21MZXZlbEZpeGVkIjogbnVsbCwKICAiem9vbUxldmVsT2Zmc2V0IjogLTUKfSk7CiAgICAgICAgbWFwX2U5NjdhZTJlNmE1ODRhMTc5YmM1ZmU2YmIzNTU4Njk0LmFkZENvbnRyb2wobWluaV9tYXBfOTZiZDllYWVlOTQwNDhiMzkyMGU2NzAwNmRiNzc0MTcpOwoKICAgICAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
+      ],
+      "text/plain": [
+       "<folium.folium.Map at 0x1b7d5697198>"
+      ]
+     },
+     "execution_count": 16,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "from folium.plugins import MiniMap\n",
+    "\n",
+    "m = folium.Map(location=(30, 20), zoom_start=4)\n",
+    "\n",
+    "minimap = MiniMap()\n",
+    "m.add_child(minimap)\n",
+    "m"
+   ]
   }
  ],
  "metadata": {
@@ -700,9 +738,9 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.6.5"
+   "version": "3.6.6"
   }
  },
  "nbformat": 4,
- "nbformat_minor": 1
+ "nbformat_minor": 2
 }
diff --git a/folium/plugins/__init__.py b/folium/plugins/__init__.py
index ecf650f1..ff6b47ef 100644
--- a/folium/plugins/__init__.py
+++ b/folium/plugins/__init__.py
@@ -29,6 +29,7 @@ from folium.plugins.time_slider_choropleth import TimeSliderChoropleth
 from folium.plugins.timestamped_geo_json import TimestampedGeoJson
 from folium.plugins.timestamped_wmstilelayer import TimestampedWmsTileLayers
 from folium.plugins.search import Search
+from folium.plugins.minimap import MiniMap
 
 __all__ = [
     'BeautifyIcon',
@@ -50,4 +51,5 @@ __all__ = [
     'TimestampedGeoJson',
     'TimestampedWmsTileLayers',
     'Search',
+    'MiniMap',
     ]
diff --git a/folium/plugins/minimap.py b/folium/plugins/minimap.py
new file mode 100644
index 00000000..b3267989
--- /dev/null
+++ b/folium/plugins/minimap.py
@@ -0,0 +1,121 @@
+# -*- coding: utf-8 -*-
+
+from __future__ import (absolute_import, division, print_function)
+
+import json
+
+from branca.element import CssLink, Figure, JavascriptLink, MacroElement
+from folium.raster_layers import TileLayer
+
+from jinja2 import Template
+
+
+class MiniMap(MacroElement):
+    """Add a minimap (locator) to an existing map.
+
+    Uses the Leaflet plugin by Norkart under BSD 2-Clause "Simplified" License.
+    https://github.com/Norkart/Leaflet-MiniMap
+
+    Parameters
+    ----------
+    tile_layer : folium TileLayer object or str, default None
+        Provide a folium TileLayer object or the wanted tiles as string.
+        If not provided it will use the default of 'TileLayer', currently
+        OpenStreetMap.
+    position : str, default 'bottomright'
+        The standard Control position parameter for the widget.
+    width : int, default 150
+        The width of the minimap in pixels.
+    height : int, default 150
+        The height of the minimap in pixels.
+    collapsed_width : int, default 25
+        The width of the toggle marker and the minimap when collapsed in pixels.
+    collapsed_height : int, default 25
+        The height of the toggle marker and the minimap when collapsed
+    zoom_level_offset : int, default -5
+        The offset applied to the zoom in the minimap compared to the zoom of
+        the main map. Can be positive or negative.
+    zoom_level_fixed : int, default None
+        Overrides the offset to apply a fixed zoom level to the minimap
+        regardless of the main map zoom.
+        Set it to any valid zoom level, if unset zoom_level_offset is used
+        instead.
+    center_fixed : bool, default False
+        Applies a fixed position to the minimap regardless of the main map's
+        view / position. Prevents panning the minimap, but does allow zooming
+        (both in the minimap and the main map).
+        If the minimap is zoomed, it will always zoom around the centerFixed
+        point. You can pass in a LatLng-equivalent object.
+    zoom_animation : bool, default False
+        Sets whether the minimap should have an animated zoom.
+        (Will cause it to lag a bit after the movement of the main map.)
+    toggle_display : bool, default False
+        Sets whether the minimap should have a button to minimise it.
+    auto_toggle_display : bool, default False
+        Sets whether the minimap should hide automatically
+        if the parent map bounds does not fit within the minimap bounds.
+        Especially useful when 'zoomLevelFixed' is set.
+    minimized : bool, default False
+        Sets whether the minimap should start in a minimized position.
+
+    Examples
+    --------
+    >>> MiniMap(tile_layer='Stamen WaterColor', position='bottomleft')
+    """
+
+    _template = Template("""
+        {% macro script(this, kwargs) %}
+
+        var {{ this.tile_layer.get_name() }} = L.tileLayer(
+        '{{ this.tile_layer.tiles }}',
+        {{ this.tile_layer.options }} );
+
+        var {{ this.get_name() }} = new L.Control.MiniMap( {{this.tile_layer.get_name()}},
+         {{ this.options }});
+        {{ this._parent.get_name() }}.addControl({{ this.get_name() }});
+
+        {% endmacro %}
+    """)  # noqa
+
+    def __init__(self, tile_layer=None, position='bottomright', width=150,
+                 height=150, collapsed_width=25, collapsed_height=25,
+                 zoom_level_offset=-5, zoom_level_fixed=None,
+                 center_fixed=False, zoom_animation=False,
+                 toggle_display=False, auto_toggle_display=False,
+                 minimized=False):
+
+        super(MiniMap, self).__init__()
+        self._name = 'MiniMap'
+
+        if tile_layer is None:
+            self.tile_layer = TileLayer()
+        elif isinstance(tile_layer, TileLayer):
+            self.tile_layer = tile_layer
+        else:
+            self.tile_layer = TileLayer(tile_layer)
+
+        options = {
+            'position': position,
+            'width': width,
+            'height': height,
+            'collapsedWidth': collapsed_width,
+            'collapsedHeight': collapsed_height,
+            'zoomLevelOffset': zoom_level_offset,
+            'zoomLevelFixed': zoom_level_fixed,
+            'centerFixed': center_fixed,
+            'zoomAnimation': zoom_animation,
+            'toggleDisplay': toggle_display,
+            'autoToggleDisplay': auto_toggle_display,
+            'minimized': minimized,
+        }
+        self.options = json.dumps(options, sort_keys=True, indent=2)
+
+    def render(self, **kwargs):
+        figure = self.get_root()
+        assert isinstance(figure, Figure), ('You cannot render this Element '
+                                            'if it is not in a Figure.')
+        super(MiniMap, self).render()
+
+        figure.header.add_child(JavascriptLink('https://cdnjs.cloudflare.com/ajax/libs/leaflet-minimap/3.6.1/Control.MiniMap.js'))  # noqa
+
+        figure.header.add_child(CssLink('https://cdnjs.cloudflare.com/ajax/libs/leaflet-minimap/3.6.1/Control.MiniMap.css'))  # noqa


Test patch:
diff --git a/tests/plugins/test_minimap.py b/tests/plugins/test_minimap.py
new file mode 100644
index 00000000..a8b58d45
--- /dev/null
+++ b/tests/plugins/test_minimap.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+
+"""
+Test MiniMap
+---------------
+"""
+
+from __future__ import (absolute_import, division, print_function)
+
+import folium
+
+from folium import plugins
+
+
+def test_minimap():
+    m = folium.Map(location=(30, 20), zoom_start=4)
+
+    minimap = plugins.MiniMap()
+    m.add_child(minimap)
+
+    out = m._parent.render()
+
+    # Verify that a new minimap is getting created.
+    assert 'new L.Control.MiniMap' in out
+
+    m = folium.Map(location=(30, 20), zoom_start=4)
+    minimap = plugins.MiniMap(tile_layer="Stamen Toner")
+    minimap.add_to(m)
+
+    out = m._parent.render()
+    # verify that Stamen Toner tiles are being used
+    assert 'https://stamen-tiles' in out