aitech-wizualizacja/03.ipynb

6305 lines
48 MiB
Plaintext
Raw Normal View History

2021-04-21 12:47:19 +02:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Wizualizacja danych (Lab 3)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"library(repr) # To resize plots in Jupyter\n",
"options(repr.plot.width = 16, repr.plot.height = 9)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Biblioteka plotly"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pakiet *plotly* jest pakietem graficznym, który umożliwia tworzenie interaktywnych wykresów. Cała biblioteka jest napisana w JavaScript i dostępna również dla Pythona. Składania i pomysł na tworzenie grafiki są bardzo podobne do *ggplot2*.\n",
"\n",
"<img src=\"figs/plotly.png\" width=\"200\"> "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Karta pomocy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"figs/plotly1.png\" width=\"800\"> \n",
"<img src=\"figs/plotly2.png\" width=\"800\"> "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Konwersja grafiki ggplot2 na plotly"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Warning message:\n",
"“package plotly was built under R version 3.6.2”\n",
"Loading required package: ggplot2\n",
"\n",
"Warning message:\n",
"“package ggplot2 was built under R version 3.6.2”\n",
"\n",
"Attaching package: plotly\n",
"\n",
"\n",
"The following object is masked from package:ggplot2:\n",
"\n",
" last_plot\n",
"\n",
"\n",
"The following object is masked from package:stats:\n",
"\n",
" filter\n",
"\n",
"\n",
"The following object is masked from package:graphics:\n",
"\n",
" layout\n",
"\n",
"\n",
"Warning message:\n",
"“package dplyr was built under R version 3.6.2”\n",
"\n",
"Attaching package: dplyr\n",
"\n",
"\n",
"The following objects are masked from package:stats:\n",
"\n",
" filter, lag\n",
"\n",
"\n",
"The following objects are masked from package:base:\n",
"\n",
" intersect, setdiff, setequal, union\n",
"\n",
"\n"
]
}
],
"source": [
"library(plotly)\n",
"library(ggplot2)\n",
"library(dplyr)"
]
},
{
"cell_type": "code",
"execution_count": 3,
2021-04-28 15:38:01 +02:00
"metadata": {
"scrolled": true
},
2021-04-21 12:47:19 +02:00
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"attrs": {
2021-04-28 15:38:01 +02:00
"e682271a50ff": {
2021-04-21 12:47:19 +02:00
"colour": {},
"type": "scatter",
"x": {},
"y": {}
}
},
"base_url": "https://plot.ly",
"config": {
"doubleClick": "reset",
"showSendToCloud": false
},
2021-04-28 15:38:01 +02:00
"cur_data": "e682271a50ff",
2021-04-21 12:47:19 +02:00
"data": [
{
"hoverinfo": "text",
"hoveron": "points",
"legendgroup": "setosa",
"marker": {
"autocolorscale": false,
"color": "rgba(248,118,109,1)",
"line": {
"color": "rgba(248,118,109,1)",
"width": 1.8898
},
"opacity": 0.8,
"size": 5.6693,
"symbol": "circle"
},
"mode": "markers",
"name": "setosa",
"showlegend": true,
"text": [
"Sepal.Length: 5.1<br />Sepal.Width: 3.5<br />Species: setosa",
"Sepal.Length: 4.9<br />Sepal.Width: 3.0<br />Species: setosa",
"Sepal.Length: 4.7<br />Sepal.Width: 3.2<br />Species: setosa",
"Sepal.Length: 4.6<br />Sepal.Width: 3.1<br />Species: setosa",
"Sepal.Length: 5.0<br />Sepal.Width: 3.6<br />Species: setosa",
"Sepal.Length: 5.4<br />Sepal.Width: 3.9<br />Species: setosa",
"Sepal.Length: 4.6<br />Sepal.Width: 3.4<br />Species: setosa",
"Sepal.Length: 5.0<br />Sepal.Width: 3.4<br />Species: setosa",
"Sepal.Length: 4.4<br />Sepal.Width: 2.9<br />Species: setosa",
"Sepal.Length: 4.9<br />Sepal.Width: 3.1<br />Species: setosa",
"Sepal.Length: 5.4<br />Sepal.Width: 3.7<br />Species: setosa",
"Sepal.Length: 4.8<br />Sepal.Width: 3.4<br />Species: setosa",
"Sepal.Length: 4.8<br />Sepal.Width: 3.0<br />Species: setosa",
"Sepal.Length: 4.3<br />Sepal.Width: 3.0<br />Species: setosa",
"Sepal.Length: 5.8<br />Sepal.Width: 4.0<br />Species: setosa",
"Sepal.Length: 5.7<br />Sepal.Width: 4.4<br />Species: setosa",
"Sepal.Length: 5.4<br />Sepal.Width: 3.9<br />Species: setosa",
"Sepal.Length: 5.1<br />Sepal.Width: 3.5<br />Species: setosa",
"Sepal.Length: 5.7<br />Sepal.Width: 3.8<br />Species: setosa",
"Sepal.Length: 5.1<br />Sepal.Width: 3.8<br />Species: setosa",
"Sepal.Length: 5.4<br />Sepal.Width: 3.4<br />Species: setosa",
"Sepal.Length: 5.1<br />Sepal.Width: 3.7<br />Species: setosa",
"Sepal.Length: 4.6<br />Sepal.Width: 3.6<br />Species: setosa",
"Sepal.Length: 5.1<br />Sepal.Width: 3.3<br />Species: setosa",
"Sepal.Length: 4.8<br />Sepal.Width: 3.4<br />Species: setosa",
"Sepal.Length: 5.0<br />Sepal.Width: 3.0<br />Species: setosa",
"Sepal.Length: 5.0<br />Sepal.Width: 3.4<br />Species: setosa",
"Sepal.Length: 5.2<br />Sepal.Width: 3.5<br />Species: setosa",
"Sepal.Length: 5.2<br />Sepal.Width: 3.4<br />Species: setosa",
"Sepal.Length: 4.7<br />Sepal.Width: 3.2<br />Species: setosa",
"Sepal.Length: 4.8<br />Sepal.Width: 3.1<br />Species: setosa",
"Sepal.Length: 5.4<br />Sepal.Width: 3.4<br />Species: setosa",
"Sepal.Length: 5.2<br />Sepal.Width: 4.1<br />Species: setosa",
"Sepal.Length: 5.5<br />Sepal.Width: 4.2<br />Species: setosa",
"Sepal.Length: 4.9<br />Sepal.Width: 3.1<br />Species: setosa",
"Sepal.Length: 5.0<br />Sepal.Width: 3.2<br />Species: setosa",
"Sepal.Length: 5.5<br />Sepal.Width: 3.5<br />Species: setosa",
"Sepal.Length: 4.9<br />Sepal.Width: 3.6<br />Species: setosa",
"Sepal.Length: 4.4<br />Sepal.Width: 3.0<br />Species: setosa",
"Sepal.Length: 5.1<br />Sepal.Width: 3.4<br />Species: setosa",
"Sepal.Length: 5.0<br />Sepal.Width: 3.5<br />Species: setosa",
"Sepal.Length: 4.5<br />Sepal.Width: 2.3<br />Species: setosa",
"Sepal.Length: 4.4<br />Sepal.Width: 3.2<br />Species: setosa",
"Sepal.Length: 5.0<br />Sepal.Width: 3.5<br />Species: setosa",
"Sepal.Length: 5.1<br />Sepal.Width: 3.8<br />Species: setosa",
"Sepal.Length: 4.8<br />Sepal.Width: 3.0<br />Species: setosa",
"Sepal.Length: 5.1<br />Sepal.Width: 3.8<br />Species: setosa",
"Sepal.Length: 4.6<br />Sepal.Width: 3.2<br />Species: setosa",
"Sepal.Length: 5.3<br />Sepal.Width: 3.7<br />Species: setosa",
"Sepal.Length: 5.0<br />Sepal.Width: 3.3<br />Species: setosa"
],
"type": "scatter",
"x": [
5.1,
4.9,
4.7,
4.6,
5,
5.4,
4.6,
5,
4.4,
4.9,
5.4,
4.8,
4.8,
4.3,
5.8,
5.7,
5.4,
5.1,
5.7,
5.1,
5.4,
5.1,
4.6,
5.1,
4.8,
5,
5,
5.2,
5.2,
4.7,
4.8,
5.4,
5.2,
5.5,
4.9,
5,
5.5,
4.9,
4.4,
5.1,
5,
4.5,
4.4,
5,
5.1,
4.8,
5.1,
4.6,
5.3,
5
],
"xaxis": "x",
"y": [
3.5,
3,
3.2,
3.1,
3.6,
3.9,
3.4,
3.4,
2.9,
3.1,
3.7,
3.4,
3,
3,
4,
4.4,
3.9,
3.5,
3.8,
3.8,
3.4,
3.7,
3.6,
3.3,
3.4,
3,
3.4,
3.5,
3.4,
3.2,
3.1,
3.4,
4.1,
4.2,
3.1,
3.2,
3.5,
3.6,
3,
3.4,
3.5,
2.3,
3.2,
3.5,
3.8,
3,
3.8,
3.2,
3.7,
3.3
],
"yaxis": "y"
},
{
"hoverinfo": "text",
"hoveron": "points",
"legendgroup": "versicolor",
"marker": {
"autocolorscale": false,
"color": "rgba(0,186,56,1)",
"line": {
"color": "rgba(0,186,56,1)",
"width": 1.8898
},
"opacity": 0.8,
"size": 5.6693,
"symbol": "circle"
},
"mode": "markers",
"name": "versicolor",
"showlegend": true,
"text": [
"Sepal.Length: 7.0<br />Sepal.Width: 3.2<br />Species: versicolor",
"Sepal.Length: 6.4<br />Sepal.Width: 3.2<br />Species: versicolor",
"Sepal.Length: 6.9<br />Sepal.Width: 3.1<br />Species: versicolor",
"Sepal.Length: 5.5<br />Sepal.Width: 2.3<br />Species: versicolor",
"Sepal.Length: 6.5<br />Sepal.Width: 2.8<br />Species: versicolor",
"Sepal.Length: 5.7<br />Sepal.Width: 2.8<br />Species: versicolor",
"Sepal.Length: 6.3<br />Sepal.Width: 3.3<br />Species: versicolor",
"Sepal.Length: 4.9<br />Sepal.Width: 2.4<br />Species: versicolor",
"Sepal.Length: 6.6<br />Sepal.Width: 2.9<br />Species: versicolor",
"Sepal.Length: 5.2<br />Sepal.Width: 2.7<br />Species: versicolor",
"Sepal.Length: 5.0<br />Sepal.Width: 2.0<br />Species: versicolor",
"Sepal.Length: 5.9<br />Sepal.Width: 3.0<br />Species: versicolor",
"Sepal.Length: 6.0<br />Sepal.Width: 2.2<br />Species: versicolor",
"Sepal.Length: 6.1<br />Sepal.Width: 2.9<br />Species: versicolor",
"Sepal.Length: 5.6<br />Sepal.Width: 2.9<br />Species: versicolor",
"Sepal.Length: 6.7<br />Sepal.Width: 3.1<br />Species: versicolor",
"Sepal.Length: 5.6<br />Sepal.Width: 3.0<br />Species: versicolor",
"Sepal.Length: 5.8<br />Sepal.Width: 2.7<br />Species: versicolor",
"Sepal.Length: 6.2<br />Sepal.Width: 2.2<br />Species: versicolor",
"Sepal.Length: 5.6<br />Sepal.Width: 2.5<br />Species: versicolor",
"Sepal.Length: 5.9<br />Sepal.Width: 3.2<br />Species: versicolor",
"Sepal.Length: 6.1<br />Sepal.Width: 2.8<br />Species: versicolor",
"Sepal.Length: 6.3<br />Sepal.Width: 2.5<br />Species: versicolor",
"Sepal.Length: 6.1<br />Sepal.Width: 2.8<br />Species: versicolor",
"Sepal.Length: 6.4<br />Sepal.Width: 2.9<br />Species: versicolor",
"Sepal.Length: 6.6<br />Sepal.Width: 3.0<br />Species: versicolor",
"Sepal.Length: 6.8<br />Sepal.Width: 2.8<br />Species: versicolor",
"Sepal.Length: 6.7<br />Sepal.Width: 3.0<br />Species: versicolor",
"Sepal.Length: 6.0<br />Sepal.Width: 2.9<br />Species: versicolor",
"Sepal.Length: 5.7<br />Sepal.Width: 2.6<br />Species: versicolor",
"Sepal.Length: 5.5<br />Sepal.Width: 2.4<br />Species: versicolor",
"Sepal.Length: 5.5<br />Sepal.Width: 2.4<br />Species: versicolor",
"Sepal.Length: 5.8<br />Sepal.Width: 2.7<br />Species: versicolor",
"Sepal.Length: 6.0<br />Sepal.Width: 2.7<br />Species: versicolor",
"Sepal.Length: 5.4<br />Sepal.Width: 3.0<br />Species: versicolor",
"Sepal.Length: 6.0<br />Sepal.Width: 3.4<br />Species: versicolor",
"Sepal.Length: 6.7<br />Sepal.Width: 3.1<br />Species: versicolor",
"Sepal.Length: 6.3<br />Sepal.Width: 2.3<br />Species: versicolor",
"Sepal.Length: 5.6<br />Sepal.Width: 3.0<br />Species: versicolor",
"Sepal.Length: 5.5<br />Sepal.Width: 2.5<br />Species: versicolor",
"Sepal.Length: 5.5<br />Sepal.Width: 2.6<br />Species: versicolor",
"Sepal.Length: 6.1<br />Sepal.Width: 3.0<br />Species: versicolor",
"Sepal.Length: 5.8<br />Sepal.Width: 2.6<br />Species: versicolor",
"Sepal.Length: 5.0<br />Sepal.Width: 2.3<br />Species: versicolor",
"Sepal.Length: 5.6<br />Sepal.Width: 2.7<br />Species: versicolor",
"Sepal.Length: 5.7<br />Sepal.Width: 3.0<br />Species: versicolor",
"Sepal.Length: 5.7<br />Sepal.Width: 2.9<br />Species: versicolor",
"Sepal.Length: 6.2<br />Sepal.Width: 2.9<br />Species: versicolor",
"Sepal.Length: 5.1<br />Sepal.Width: 2.5<br />Species: versicolor",
"Sepal.Length: 5.7<br />Sepal.Width: 2.8<br />Species: versicolor"
],
"type": "scatter",
"x": [
7,
6.4,
6.9,
5.5,
6.5,
5.7,
6.3,
4.9,
6.6,
5.2,
5,
5.9,
6,
6.1,
5.6,
6.7,
5.6,
5.8,
6.2,
5.6,
5.9,
6.1,
6.3,
6.1,
6.4,
6.6,
6.8,
6.7,
6,
5.7,
5.5,
5.5,
5.8,
6,
5.4,
6,
6.7,
6.3,
5.6,
5.5,
5.5,
6.1,
5.8,
5,
5.6,
5.7,
5.7,
6.2,
5.1,
5.7
],
"xaxis": "x",
"y": [
3.2,
3.2,
3.1,
2.3,
2.8,
2.8,
3.3,
2.4,
2.9,
2.7,
2,
3,
2.2,
2.9,
2.9,
3.1,
3,
2.7,
2.2,
2.5,
3.2,
2.8,
2.5,
2.8,
2.9,
3,
2.8,
3,
2.9,
2.6,
2.4,
2.4,
2.7,
2.7,
3,
3.4,
3.1,
2.3,
3,
2.5,
2.6,
3,
2.6,
2.3,
2.7,
3,
2.9,
2.9,
2.5,
2.8
],
"yaxis": "y"
},
{
"hoverinfo": "text",
"hoveron": "points",
"legendgroup": "virginica",
"marker": {
"autocolorscale": false,
"color": "rgba(97,156,255,1)",
"line": {
"color": "rgba(97,156,255,1)",
"width": 1.8898
},
"opacity": 0.8,
"size": 5.6693,
"symbol": "circle"
},
"mode": "markers",
"name": "virginica",
"showlegend": true,
"text": [
"Sepal.Length: 6.3<br />Sepal.Width: 3.3<br />Species: virginica",
"Sepal.Length: 5.8<br />Sepal.Width: 2.7<br />Species: virginica",
"Sepal.Length: 7.1<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 6.3<br />Sepal.Width: 2.9<br />Species: virginica",
"Sepal.Length: 6.5<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 7.6<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 4.9<br />Sepal.Width: 2.5<br />Species: virginica",
"Sepal.Length: 7.3<br />Sepal.Width: 2.9<br />Species: virginica",
"Sepal.Length: 6.7<br />Sepal.Width: 2.5<br />Species: virginica",
"Sepal.Length: 7.2<br />Sepal.Width: 3.6<br />Species: virginica",
"Sepal.Length: 6.5<br />Sepal.Width: 3.2<br />Species: virginica",
"Sepal.Length: 6.4<br />Sepal.Width: 2.7<br />Species: virginica",
"Sepal.Length: 6.8<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 5.7<br />Sepal.Width: 2.5<br />Species: virginica",
"Sepal.Length: 5.8<br />Sepal.Width: 2.8<br />Species: virginica",
"Sepal.Length: 6.4<br />Sepal.Width: 3.2<br />Species: virginica",
"Sepal.Length: 6.5<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 7.7<br />Sepal.Width: 3.8<br />Species: virginica",
"Sepal.Length: 7.7<br />Sepal.Width: 2.6<br />Species: virginica",
"Sepal.Length: 6.0<br />Sepal.Width: 2.2<br />Species: virginica",
"Sepal.Length: 6.9<br />Sepal.Width: 3.2<br />Species: virginica",
"Sepal.Length: 5.6<br />Sepal.Width: 2.8<br />Species: virginica",
"Sepal.Length: 7.7<br />Sepal.Width: 2.8<br />Species: virginica",
"Sepal.Length: 6.3<br />Sepal.Width: 2.7<br />Species: virginica",
"Sepal.Length: 6.7<br />Sepal.Width: 3.3<br />Species: virginica",
"Sepal.Length: 7.2<br />Sepal.Width: 3.2<br />Species: virginica",
"Sepal.Length: 6.2<br />Sepal.Width: 2.8<br />Species: virginica",
"Sepal.Length: 6.1<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 6.4<br />Sepal.Width: 2.8<br />Species: virginica",
"Sepal.Length: 7.2<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 7.4<br />Sepal.Width: 2.8<br />Species: virginica",
"Sepal.Length: 7.9<br />Sepal.Width: 3.8<br />Species: virginica",
"Sepal.Length: 6.4<br />Sepal.Width: 2.8<br />Species: virginica",
"Sepal.Length: 6.3<br />Sepal.Width: 2.8<br />Species: virginica",
"Sepal.Length: 6.1<br />Sepal.Width: 2.6<br />Species: virginica",
"Sepal.Length: 7.7<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 6.3<br />Sepal.Width: 3.4<br />Species: virginica",
"Sepal.Length: 6.4<br />Sepal.Width: 3.1<br />Species: virginica",
"Sepal.Length: 6.0<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 6.9<br />Sepal.Width: 3.1<br />Species: virginica",
"Sepal.Length: 6.7<br />Sepal.Width: 3.1<br />Species: virginica",
"Sepal.Length: 6.9<br />Sepal.Width: 3.1<br />Species: virginica",
"Sepal.Length: 5.8<br />Sepal.Width: 2.7<br />Species: virginica",
"Sepal.Length: 6.8<br />Sepal.Width: 3.2<br />Species: virginica",
"Sepal.Length: 6.7<br />Sepal.Width: 3.3<br />Species: virginica",
"Sepal.Length: 6.7<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 6.3<br />Sepal.Width: 2.5<br />Species: virginica",
"Sepal.Length: 6.5<br />Sepal.Width: 3.0<br />Species: virginica",
"Sepal.Length: 6.2<br />Sepal.Width: 3.4<br />Species: virginica",
"Sepal.Length: 5.9<br />Sepal.Width: 3.0<br />Species: virginica"
],
"type": "scatter",
"x": [
6.3,
5.8,
7.1,
6.3,
6.5,
7.6,
4.9,
7.3,
6.7,
7.2,
6.5,
6.4,
6.8,
5.7,
5.8,
6.4,
6.5,
7.7,
7.7,
6,
6.9,
5.6,
7.7,
6.3,
6.7,
7.2,
6.2,
6.1,
6.4,
7.2,
7.4,
7.9,
6.4,
6.3,
6.1,
7.7,
6.3,
6.4,
6,
6.9,
6.7,
6.9,
5.8,
6.8,
6.7,
6.7,
6.3,
6.5,
6.2,
5.9
],
"xaxis": "x",
"y": [
3.3,
2.7,
3,
2.9,
3,
3,
2.5,
2.9,
2.5,
3.6,
3.2,
2.7,
3,
2.5,
2.8,
3.2,
3,
3.8,
2.6,
2.2,
3.2,
2.8,
2.8,
2.7,
3.3,
3.2,
2.8,
3,
2.8,
3,
2.8,
3.8,
2.8,
2.8,
2.6,
3,
3.4,
3.1,
3,
3.1,
3.1,
3.1,
2.7,
3.2,
3.3,
3,
2.5,
3,
3.4,
3
],
"yaxis": "y"
}
],
"highlight": {
"debounce": 0,
"dynamic": false,
"on": "plotly_click",
"opacityDim": 0.2,
"persistent": false,
"selected": {
"opacity": 1
},
"selectize": false
},
"layout": {
"annotations": [
{
"ax": 0,
"ay": 0,
"font": {
"color": "rgba(0,0,0,1)",
"family": "",
"size": 14.6119
},
"legendTitle": true,
"showarrow": false,
"text": "Species",
"textangle": 0,
"x": 1.02,
"xanchor": "left",
"xref": "paper",
"y": 1,
"yanchor": "bottom",
"yref": "paper"
}
],
"barmode": "relative",
"font": {
"color": "rgba(0,0,0,1)",
"family": "",
"size": 14.6119
},
"hovermode": "closest",
"legend": {
"bgcolor": "rgba(255,255,255,1)",
"bordercolor": "transparent",
"borderwidth": 1.8898,
"font": {
"color": "rgba(0,0,0,1)",
"family": "",
"size": 11.6895
},
"y": 0.9381
},
"margin": {
"b": 37.2603,
"l": 43.105,
"r": 7.3059,
"t": 23.3059
},
"paper_bgcolor": "rgba(255,255,255,1)",
"plot_bgcolor": "rgba(235,235,235,1)",
"shapes": [
{
"line": {
"linetype": [],
"width": 0
},
"type": "rect",
"x0": 0,
"x1": 1,
"xref": "paper",
"y0": 0,
"y1": 1,
"yref": "paper"
}
],
"showlegend": true,
"xaxis": {
"anchor": "y",
"automargin": true,
"autorange": false,
"categoryarray": [
"5",
"6",
"7",
"8"
],
"categoryorder": "array",
"domain": [
0,
1
],
"gridcolor": "rgba(255,255,255,1)",
"gridwidth": 0.6642,
"hoverformat": ".2f",
"linecolor": {},
"linewidth": 0,
"nticks": {},
"range": [
4.12,
8.08
],
"showgrid": true,
"showline": false,
"showticklabels": true,
"tickangle": 0,
"tickcolor": "rgba(51,51,51,1)",
"tickfont": {
"color": "rgba(77,77,77,1)",
"family": "",
"size": 11.6895
},
"ticklen": 3.653,
"tickmode": "array",
"ticks": "outside",
"ticktext": [
"5",
"6",
"7",
"8"
],
"tickvals": [
5,
6,
7,
8
],
"tickwidth": 0.6642,
"title": {
"font": {
"color": "rgba(0,0,0,1)",
"family": "",
"size": 14.6119
},
"text": "Sepal.Length"
},
"type": "linear",
"zeroline": false
},
"yaxis": {
"anchor": "x",
"automargin": true,
"autorange": false,
"categoryarray": [
"2.0",
"2.5",
"3.0",
"3.5",
"4.0",
"4.5"
],
"categoryorder": "array",
"domain": [
0,
1
],
"gridcolor": "rgba(255,255,255,1)",
"gridwidth": 0.6642,
"hoverformat": ".2f",
"linecolor": {},
"linewidth": 0,
"nticks": {},
"range": [
1.88,
4.52
],
"showgrid": true,
"showline": false,
"showticklabels": true,
"tickangle": 0,
"tickcolor": "rgba(51,51,51,1)",
"tickfont": {
"color": "rgba(77,77,77,1)",
"family": "",
"size": 11.6895
},
"ticklen": 3.653,
"tickmode": "array",
"ticks": "outside",
"ticktext": [
"2.0",
"2.5",
"3.0",
"3.5",
"4.0",
"4.5"
],
"tickvals": [
2,
2.5,
3,
3.5,
4,
4.5
],
"tickwidth": 0.6642,
"title": {
"font": {
"color": "rgba(0,0,0,1)",
"family": "",
"size": 14.6119
},
"text": "Sepal.Width"
},
"type": "linear",
"zeroline": false
}
},
"shinyEvents": [
"plotly_hover",
"plotly_click",
"plotly_selected",
"plotly_relayout",
"plotly_brushed",
"plotly_brushing",
"plotly_clickannotation",
"plotly_doubleclick",
"plotly_deselect",
"plotly_afterplot",
"plotly_sunburstclick"
],
"source": "A",
"visdat": {
2021-04-28 15:38:01 +02:00
"e682271a50ff": [
2021-04-21 12:47:19 +02:00
"function (y) ",
"x"
]
}
},
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"plotly-binding\" src=\"data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHgua
"<script title=\"typedarray\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpd
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"crosstalk\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj
"<link href=\"data:text/css;charset-utf-8;base64,LyogQWRqdXN0IG1hcmdpbnMgb3V0d2FyZHMsIHNvIGNvbHVtbiBjb250ZW50cyBsaW5lIHVwIHdpdGggdGhlIGVkZ2VzIG9mIHRoZQogICBwYXJlbnQgb2YgY29udGFpbmVyLWZsdWlkLiAqLwouY29udGFpbmVyLWZsdWlkLmNyb3NzdGFsay1ic2NvbHMgewogIG1hcmdpbi1sZWZ0OiAtMzBweDsKICBtYXJnaW4tcmlnaHQ6IC0zMHB4OwogIHdoaXRlLXNwYWNlOiBub3JtYWw7Cn0KCi8qIEJ1dCBkb24ndCBhZGp1c3QgdGhlIG1hcmdpbnMgb3V0d2FyZHMgaWYgd2UncmUgZGlyZWN0bHkgdW5kZXIgdGhlIGJvZHksCiAgIGkuZS4gd2Ugd2VyZSB0aGUgdG9wLWxldmVsIG9mIHNvbWV0aGluZyBhdCB0aGUgY29uc29sZS4gKi8KYm9keSA+IC5jb250YWluZXItZmx1aWQuY3Jvc3N0YWxrLWJzY29scyB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgouY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWdyb3VwIC5jcm9zc3RhbGstb3B0aW9ucy1jb2x1bW4gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwYWRkaW5nLXJpZ2h0OiAxMnB4OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCkgewogIC5jcm9zc3RhbGstaW5wdXQtY2hlY2tib3hncm91cCAuY3Jvc3N0YWxrLW9wdGlvbnMtZ3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWNvbHVtbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7CiAgfQp9Cg==\" rel=\"stylesheet\" />\n",
"<link href=\"data:text/css;charset-utf-8;base64,LyoKanVzdCBoZXJlIHNvIHRoYXQgcGxvdGx5IHdvcmtzCmNvcnJlY3RseSB3aXRoIGlvc2xpZGVzLgpzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvNDYzCiovCgpzbGlkZTpub3QoLmN1cnJlbnQpIC5wbG90bHkuaHRtbC13aWRnZXR7CiAgZGlzcGxheTogbm9uZTsKfQo=\" rel=\"stylesheet\" />\n",
"<script title=\"plotly-main\" src=\"data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFy
"\t</head>\n",
"\t<body>\n",
2021-04-28 15:38:01 +02:00
"\t\t<div id=\"htmlwidget-ef8e168bec3c3c5150f2\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-ef8e168bec3c3c5150f2\">{\"x\":{\"data\":[{\"x\":[5.1,4.9,4.7,4.6,5,5.4,4.6,5,4.4,4.9,5.4,4.8,4.8,4.3,5.8,5.7,5.4,5.1,5.7,5.1,5.4,5.1,4.6,5.1,4.8,5,5,5.2,5.2,4.7,4.8,5.4,5.2,5.5,4.9,5,5.5,4.9,4.4,5.1,5,4.5,4.4,5,5.1,4.8,5.1,4.6,5.3,5],\"y\":[3.5,3,3.2,3.1,3.6,3.9,3.4,3.4,2.9,3.1,3.7,3.4,3,3,4,4.4,3.9,3.5,3.8,3.8,3.4,3.7,3.6,3.3,3.4,3,3.4,3.5,3.4,3.2,3.1,3.4,4.1,4.2,3.1,3.2,3.5,3.6,3,3.4,3.5,2.3,3.2,3.5,3.8,3,3.8,3.2,3.7,3.3],\"text\":[\"Sepal.Length: 5.1<br />Sepal.Width: 3.5<br />Species: setosa\",\"Sepal.Length: 4.9<br />Sepal.Width: 3.0<br />Species: setosa\",\"Sepal.Length: 4.7<br />Sepal.Width: 3.2<br />Species: setosa\",\"Sepal.Length: 4.6<br />Sepal.Width: 3.1<br />Species: setosa\",\"Sepal.Length: 5.0<br />Sepal.Width: 3.6<br />Species: setosa\",\"Sepal.Length: 5.4<br />Sepal.Width: 3.9<br />Species: setosa\",\"Sepal.Length: 4.6<br />Sepal.Width: 3.4<br />Species: setosa\",\"Sepal.Length: 5.0<br />Sepal.Width: 3.4<br />Species: setosa\",\"Sepal.Length: 4.4<br />Sepal.Width: 2.9<br />Species: setosa\",\"Sepal.Length: 4.9<br />Sepal.Width: 3.1<br />Species: setosa\",\"Sepal.Length: 5.4<br />Sepal.Width: 3.7<br />Species: setosa\",\"Sepal.Length: 4.8<br />Sepal.Width: 3.4<br />Species: setosa\",\"Sepal.Length: 4.8<br />Sepal.Width: 3.0<br />Species: setosa\",\"Sepal.Length: 4.3<br />Sepal.Width: 3.0<br />Species: setosa\",\"Sepal.Length: 5.8<br />Sepal.Width: 4.0<br />Species: setosa\",\"Sepal.Length: 5.7<br />Sepal.Width: 4.4<br />Species: setosa\",\"Sepal.Length: 5.4<br />Sepal.Width: 3.9<br />Species: setosa\",\"Sepal.Length: 5.1<br />Sepal.Width: 3.5<br />Species: setosa\",\"Sepal.Length: 5.7<br />Sepal.Width: 3.8<br />Species: setosa\",\"Sepal.Length: 5.1<br />Sepal.Width: 3.8<br />Species: setosa\",\"Sepal.Length: 5.4<br />Sepal.Width: 3.4<br />Species: setosa\",\"Sepal.Length: 5.1<br />Sepal.Width: 3.7<br />Species: setosa\",\"Sepal.Length: 4.6<br />Sepal.Width: 3.6<br />Species: setosa\",\"Sepal.Length: 5.1<br />Sepal.Width: 3.3<br />Species: setosa\",\"Sepal.Length: 4.8<br />Sepal.Width: 3.4<br />Species: setosa\",\"Sepal.Length: 5.0<br />Sepal.Width: 3.0<br />Species: setosa\",\"Sepal.Length: 5.0<br />Sepal.Width: 3.4<br />Species: setosa\",\"Sepal.Length: 5.2<br />Sepal.Width: 3.5<br />Species: setosa\",\"Sepal.Length: 5.2<br />Sepal.Width: 3.4<br />Species: setosa\",\"Sepal.Length: 4.7<br />Sepal.Width: 3.2<br />Species: setosa\",\"Sepal.Length: 4.8<br />Sepal.Width: 3.1<br />Species: setosa\",\"Sepal.Length: 5.4<br />Sepal.Width: 3.4<br />Species: setosa\",\"Sepal.Length: 5.2<br />Sepal.Width: 4.1<br />Species: setosa\",\"Sepal.Length: 5.5<br />Sepal.Width: 4.2<br />Species: setosa\",\"Sepal.Length: 4.9<br />Sepal.Width: 3.1<br />Species: setosa\",\"Sepal.Length: 5.0<br />Sepal.Width: 3.2<br />Species: setosa\",\"Sepal.Length: 5.5<br />Sepal.Width: 3.5<br />Species: setosa\",\"Sepal.Length: 4.9<br />Sepal.Width: 3.6<br />Species: setosa\",\"Sepal.Length: 4.4<br />Sepal.Width: 3.0<br />Species: setosa\",\"Sepal.Length: 5.1<br />Sepal.Width: 3.4<br />Species: setosa\",\"Sepal.Length: 5.0<br />Sepal.Width: 3.5<br />Species: setosa\",\"Sepal.Length: 4.5<br />Sepal.Width: 2.3<br />Species: setosa\",\"Sepal.Length: 4.4<br />Sepal.Width: 3.2<br />Species: setosa\",\"Sepal.Length: 5.0<br />Sepal.Width: 3.5<br />Species: setosa\",\"Sepal.Length: 5.1<br />Sepal.Width: 3.8<br />Species: setosa\",\"Sepal.Length: 4.8<br />Sepal.Width: 3.0<br />Species: setosa\",\"Sepal.Length: 5.1<br />Sepal.Width: 3.8<br />Species: setosa\",\"Sepal.Length: 4.6<br />Sepal.Width: 3.2<br />Species: setosa\",\"Sepal.Length: 5.3<br />Sepal.Width: 3.7<br />Species: setosa\",\"Sepal.Length: 5.0<br />Sepal.Width: 3.3<br />Species: setosa\"],\"type\":\"scatter\",\"mode\":\"markers\",\"marker\":{\"autocolorscale\":false,\"color\":\"rgba(248,118,109,1)\",\"opacity\":0.8,\"size\":5.66929133858268,\"symbol\":\"circle\",\"line\":{\"width\":1.88976377952756,\"color\":\"rgba(248,118,109,1)\"}},\"hoveron\":\"points\",\"name\":\"setosa\",\"legendgroup\":\"setosa\",\"showlegend\":true,\"
2021-04-21 12:47:19 +02:00
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"iris %>%\n",
" ggplot(aes(x = Sepal.Length, y = Sepal.Width, col = Species)) +\n",
" geom_point(alpha = 0.8) -> figure\n",
"ggplotly(figure)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Podstawowe wykresy"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Warning message:\n",
"“`arrange_()` was deprecated in dplyr 0.7.0.\n",
"Please use `arrange()` instead.\n",
"See vignette('programming') for more help\n",
"\u001b[90mThis warning is displayed once every 8 hours.\u001b[39m\n",
"\u001b[90mCall `lifecycle::last_warnings()` to see where this warning was generated.\u001b[39m”\n"
]
},
{
"data": {
"application/vnd.plotly.v1+json": {
"attrs": {
2021-04-28 15:38:01 +02:00
"e68229139d1d": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"color": {},
"hoverinfo": "text",
"inherit": true,
"mode": "markers",
"sizes": [
10,
100
],
"spans": [
1,
20
],
"text": {},
"type": "scatter",
"x": {},
"y": {}
}
},
"base_url": "https://plot.ly",
"config": {
"showSendToCloud": false
},
2021-04-28 15:38:01 +02:00
"cur_data": "e68229139d1d",
2021-04-21 12:47:19 +02:00
"data": [
{
"error_x": {
"color": "rgba(102,194,165,1)"
},
"error_y": {
"color": "rgba(102,194,165,1)"
},
"hoverinfo": [
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text"
],
"line": {
"color": "rgba(102,194,165,1)"
},
"marker": {
"color": "rgba(102,194,165,1)",
"line": {
"color": "rgba(102,194,165,1)"
}
},
"mode": "markers",
"name": "1",
"text": [
"Phenols: 2.8 <br>Alcohol: 14.23",
"Phenols: 2.65 <br>Alcohol: 13.2",
"Phenols: 2.8 <br>Alcohol: 13.16",
"Phenols: 3.85 <br>Alcohol: 14.37",
"Phenols: 2.8 <br>Alcohol: 13.24",
"Phenols: 3.27 <br>Alcohol: 14.2",
"Phenols: 2.5 <br>Alcohol: 14.39",
"Phenols: 2.6 <br>Alcohol: 14.06",
"Phenols: 2.8 <br>Alcohol: 14.83",
"Phenols: 2.98 <br>Alcohol: 13.86",
"Phenols: 2.95 <br>Alcohol: 14.1",
"Phenols: 2.2 <br>Alcohol: 14.12",
"Phenols: 2.6 <br>Alcohol: 13.75",
"Phenols: 3.1 <br>Alcohol: 14.75",
"Phenols: 3.3 <br>Alcohol: 14.38",
"Phenols: 2.85 <br>Alcohol: 13.63",
"Phenols: 2.8 <br>Alcohol: 14.3",
"Phenols: 2.95 <br>Alcohol: 13.83",
"Phenols: 3.3 <br>Alcohol: 14.19",
"Phenols: 2.7 <br>Alcohol: 13.64",
"Phenols: 3 <br>Alcohol: 14.06",
"Phenols: 2.41 <br>Alcohol: 12.93",
"Phenols: 2.61 <br>Alcohol: 13.71",
"Phenols: 2.48 <br>Alcohol: 12.85",
"Phenols: 2.53 <br>Alcohol: 13.5",
"Phenols: 2.63 <br>Alcohol: 13.05",
"Phenols: 2.85 <br>Alcohol: 13.39",
"Phenols: 2.4 <br>Alcohol: 13.3",
"Phenols: 2.95 <br>Alcohol: 13.87",
"Phenols: 2.65 <br>Alcohol: 14.02",
"Phenols: 3 <br>Alcohol: 13.73",
"Phenols: 2.86 <br>Alcohol: 13.58",
"Phenols: 2.42 <br>Alcohol: 13.68",
"Phenols: 2.95 <br>Alcohol: 13.76",
"Phenols: 2.35 <br>Alcohol: 13.51",
"Phenols: 2.7 <br>Alcohol: 13.48",
"Phenols: 2.6 <br>Alcohol: 13.28",
"Phenols: 2.45 <br>Alcohol: 13.05",
"Phenols: 2.4 <br>Alcohol: 13.07",
"Phenols: 3 <br>Alcohol: 14.22",
"Phenols: 3.15 <br>Alcohol: 13.56",
"Phenols: 2.45 <br>Alcohol: 13.41",
"Phenols: 3.25 <br>Alcohol: 13.88",
"Phenols: 2.64 <br>Alcohol: 13.24",
"Phenols: 3 <br>Alcohol: 13.05",
"Phenols: 2.85 <br>Alcohol: 14.21",
"Phenols: 3.25 <br>Alcohol: 14.38",
"Phenols: 3.1 <br>Alcohol: 13.9",
"Phenols: 2.75 <br>Alcohol: 14.1",
"Phenols: 2.88 <br>Alcohol: 13.94",
"Phenols: 2.72 <br>Alcohol: 13.05",
"Phenols: 2.45 <br>Alcohol: 13.83",
"Phenols: 3.88 <br>Alcohol: 13.82",
"Phenols: 3 <br>Alcohol: 13.77",
"Phenols: 2.6 <br>Alcohol: 13.74",
"Phenols: 2.96 <br>Alcohol: 13.56",
"Phenols: 3.2 <br>Alcohol: 14.22",
"Phenols: 3 <br>Alcohol: 13.29",
"Phenols: 3.4 <br>Alcohol: 13.72"
],
"textfont": {
"color": "rgba(102,194,165,1)"
},
"type": "scatter",
"x": [
2.8,
2.65,
2.8,
3.85,
2.8,
3.27,
2.5,
2.6,
2.8,
2.98,
2.95,
2.2,
2.6,
3.1,
3.3,
2.85,
2.8,
2.95,
3.3,
2.7,
3,
2.41,
2.61,
2.48,
2.53,
2.63,
2.85,
2.4,
2.95,
2.65,
3,
2.86,
2.42,
2.95,
2.35,
2.7,
2.6,
2.45,
2.4,
3,
3.15,
2.45,
3.25,
2.64,
3,
2.85,
3.25,
3.1,
2.75,
2.88,
2.72,
2.45,
3.88,
3,
2.6,
2.96,
3.2,
3,
3.4
],
"xaxis": "x",
"y": [
14.23,
13.2,
13.16,
14.37,
13.24,
14.2,
14.39,
14.06,
14.83,
13.86,
14.1,
14.12,
13.75,
14.75,
14.38,
13.63,
14.3,
13.83,
14.19,
13.64,
14.06,
12.93,
13.71,
12.85,
13.5,
13.05,
13.39,
13.3,
13.87,
14.02,
13.73,
13.58,
13.68,
13.76,
13.51,
13.48,
13.28,
13.05,
13.07,
14.22,
13.56,
13.41,
13.88,
13.24,
13.05,
14.21,
14.38,
13.9,
14.1,
13.94,
13.05,
13.83,
13.82,
13.77,
13.74,
13.56,
14.22,
13.29,
13.72
],
"yaxis": "y"
},
{
"error_x": {
"color": "rgba(252,141,98,1)"
},
"error_y": {
"color": "rgba(252,141,98,1)"
},
"hoverinfo": [
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text"
],
"line": {
"color": "rgba(252,141,98,1)"
},
"marker": {
"color": "rgba(252,141,98,1)",
"line": {
"color": "rgba(252,141,98,1)"
}
},
"mode": "markers",
"name": "2",
"text": [
"Phenols: 1.98 <br>Alcohol: 12.37",
"Phenols: 2.05 <br>Alcohol: 12.33",
"Phenols: 2.02 <br>Alcohol: 12.64",
"Phenols: 2.1 <br>Alcohol: 13.67",
"Phenols: 3.5 <br>Alcohol: 12.37",
"Phenols: 1.89 <br>Alcohol: 12.17",
"Phenols: 2.42 <br>Alcohol: 12.37",
"Phenols: 2.98 <br>Alcohol: 13.11",
"Phenols: 2.11 <br>Alcohol: 12.37",
"Phenols: 2.53 <br>Alcohol: 13.34",
"Phenols: 1.85 <br>Alcohol: 12.21",
"Phenols: 1.1 <br>Alcohol: 12.29",
"Phenols: 2.95 <br>Alcohol: 13.86",
"Phenols: 1.88 <br>Alcohol: 13.49",
"Phenols: 3.3 <br>Alcohol: 12.99",
"Phenols: 3.38 <br>Alcohol: 11.96",
"Phenols: 1.61 <br>Alcohol: 11.66",
"Phenols: 1.95 <br>Alcohol: 13.03",
"Phenols: 1.72 <br>Alcohol: 11.84",
"Phenols: 1.9 <br>Alcohol: 12.33",
"Phenols: 2.83 <br>Alcohol: 12.7",
"Phenols: 2.42 <br>Alcohol: 12",
"Phenols: 2.2 <br>Alcohol: 12.72",
"Phenols: 2 <br>Alcohol: 12.08",
"Phenols: 1.65 <br>Alcohol: 13.05",
"Phenols: 2.2 <br>Alcohol: 11.84",
"Phenols: 2.2 <br>Alcohol: 12.67",
"Phenols: 1.78 <br>Alcohol: 12.16",
"Phenols: 1.92 <br>Alcohol: 11.65",
"Phenols: 1.95 <br>Alcohol: 11.64",
"Phenols: 2.2 <br>Alcohol: 12.08",
"Phenols: 1.6 <br>Alcohol: 12.08",
"Phenols: 1.45 <br>Alcohol: 12",
"Phenols: 1.38 <br>Alcohol: 12.69",
"Phenols: 2.45 <br>Alcohol: 12.29",
"Phenols: 3.02 <br>Alcohol: 11.62",
"Phenols: 2.5 <br>Alcohol: 12.47",
"Phenols: 1.6 <br>Alcohol: 11.81",
"Phenols: 2.55 <br>Alcohol: 12.29",
"Phenols: 3.52 <br>Alcohol: 12.37",
"Phenols: 2.85 <br>Alcohol: 12.29",
"Phenols: 2.23 <br>Alcohol: 12.08",
"Phenols: 1.45 <br>Alcohol: 12.6",
"Phenols: 2.56 <br>Alcohol: 12.34",
"Phenols: 2.5 <br>Alcohol: 11.82",
"Phenols: 2.2 <br>Alcohol: 12.51",
"Phenols: 1.68 <br>Alcohol: 12.42",
"Phenols: 1.65 <br>Alcohol: 12.25",
"Phenols: 1.38 <br>Alcohol: 12.72",
"Phenols: 2.36 <br>Alcohol: 12.22",
"Phenols: 2.74 <br>Alcohol: 11.61",
"Phenols: 3.18 <br>Alcohol: 11.46",
"Phenols: 2.55 <br>Alcohol: 12.52",
"Phenols: 1.75 <br>Alcohol: 11.76",
"Phenols: 2.48 <br>Alcohol: 11.41",
"Phenols: 2.56 <br>Alcohol: 12.08",
"Phenols: 2.46 <br>Alcohol: 11.03",
"Phenols: 1.98 <br>Alcohol: 11.82",
"Phenols: 2 <br>Alcohol: 12.42",
"Phenols: 1.63 <br>Alcohol: 12.77",
"Phenols: 2 <br>Alcohol: 12",
"Phenols: 2.9 <br>Alcohol: 11.45",
"Phenols: 3.18 <br>Alcohol: 11.56",
"Phenols: 2.2 <br>Alcohol: 12.42",
"Phenols: 2.62 <br>Alcohol: 13.05",
"Phenols: 2.86 <br>Alcohol: 11.87",
"Phenols: 2.6 <br>Alcohol: 12.07",
"Phenols: 2.74 <br>Alcohol: 12.43",
"Phenols: 2.13 <br>Alcohol: 11.79",
"Phenols: 2.22 <br>Alcohol: 12.37",
"Phenols: 2.1 <br>Alcohol: 12.04"
],
"textfont": {
"color": "rgba(252,141,98,1)"
},
"type": "scatter",
"x": [
1.98,
2.05,
2.02,
2.1,
3.5,
1.89,
2.42,
2.98,
2.11,
2.53,
1.85,
1.1,
2.95,
1.88,
3.3,
3.38,
1.61,
1.95,
1.72,
1.9,
2.83,
2.42,
2.2,
2,
1.65,
2.2,
2.2,
1.78,
1.92,
1.95,
2.2,
1.6,
1.45,
1.38,
2.45,
3.02,
2.5,
1.6,
2.55,
3.52,
2.85,
2.23,
1.45,
2.56,
2.5,
2.2,
1.68,
1.65,
1.38,
2.36,
2.74,
3.18,
2.55,
1.75,
2.48,
2.56,
2.46,
1.98,
2,
1.63,
2,
2.9,
3.18,
2.2,
2.62,
2.86,
2.6,
2.74,
2.13,
2.22,
2.1
],
"xaxis": "x",
"y": [
12.37,
12.33,
12.64,
13.67,
12.37,
12.17,
12.37,
13.11,
12.37,
13.34,
12.21,
12.29,
13.86,
13.49,
12.99,
11.96,
11.66,
13.03,
11.84,
12.33,
12.7,
12,
12.72,
12.08,
13.05,
11.84,
12.67,
12.16,
11.65,
11.64,
12.08,
12.08,
12,
12.69,
12.29,
11.62,
12.47,
11.81,
12.29,
12.37,
12.29,
12.08,
12.6,
12.34,
11.82,
12.51,
12.42,
12.25,
12.72,
12.22,
11.61,
11.46,
12.52,
11.76,
11.41,
12.08,
11.03,
11.82,
12.42,
12.77,
12,
11.45,
11.56,
12.42,
13.05,
11.87,
12.07,
12.43,
11.79,
12.37,
12.04
],
"yaxis": "y"
},
{
"error_x": {
"color": "rgba(141,160,203,1)"
},
"error_y": {
"color": "rgba(141,160,203,1)"
},
"hoverinfo": [
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text",
"text"
],
"line": {
"color": "rgba(141,160,203,1)"
},
"marker": {
"color": "rgba(141,160,203,1)",
"line": {
"color": "rgba(141,160,203,1)"
}
},
"mode": "markers",
"name": "3",
"text": [
"Phenols: 1.51 <br>Alcohol: 12.86",
"Phenols: 1.3 <br>Alcohol: 12.88",
"Phenols: 1.15 <br>Alcohol: 12.81",
"Phenols: 1.7 <br>Alcohol: 12.7",
"Phenols: 2 <br>Alcohol: 12.51",
"Phenols: 1.62 <br>Alcohol: 12.6",
"Phenols: 1.38 <br>Alcohol: 12.25",
"Phenols: 1.79 <br>Alcohol: 12.53",
"Phenols: 1.62 <br>Alcohol: 13.49",
"Phenols: 2.32 <br>Alcohol: 12.84",
"Phenols: 1.54 <br>Alcohol: 12.93",
"Phenols: 1.4 <br>Alcohol: 13.36",
"Phenols: 1.55 <br>Alcohol: 13.52",
"Phenols: 2 <br>Alcohol: 13.62",
"Phenols: 1.38 <br>Alcohol: 12.25",
"Phenols: 1.5 <br>Alcohol: 13.16",
"Phenols: 0.98 <br>Alcohol: 13.88",
"Phenols: 1.7 <br>Alcohol: 12.87",
"Phenols: 1.93 <br>Alcohol: 13.32",
"Phenols: 1.41 <br>Alcohol: 13.08",
"Phenols: 1.4 <br>Alcohol: 13.5",
"Phenols: 1.48 <br>Alcohol: 12.79",
"Phenols: 2.2 <br>Alcohol: 13.11",
"Phenols: 1.8 <br>Alcohol: 13.23",
"Phenols: 1.48 <br>Alcohol: 12.58",
"Phenols: 1.74 <br>Alcohol: 13.17",
"Phenols: 1.8 <br>Alcohol: 13.84",
"Phenols: 1.9 <br>Alcohol: 12.45",
"Phenols: 2.8 <br>Alcohol: 14.34",
"Phenols: 2.6 <br>Alcohol: 13.48",
"Phenols: 2.3 <br>Alcohol: 12.36",
"Phenols: 1.83 <br>Alcohol: 13.69",
"Phenols: 1.65 <br>Alcohol: 12.85",
"Phenols: 1.39 <br>Alcohol: 12.96",
"Phenols: 1.35 <br>Alcohol: 13.78",
"Phenols: 1.28 <br>Alcohol: 13.73",
"Phenols: 1.7 <br>Alcohol: 13.45",
"Phenols: 1.48 <br>Alcohol: 12.82",
"Phenols: 1.55 <br>Alcohol: 13.58",
"Phenols: 1.98 <br>Alcohol: 13.4",
"Phenols: 1.25 <br>Alcohol: 12.2",
"Phenols: 1.39 <br>Alcohol: 12.77",
"Phenols: 1.68 <br>Alcohol: 14.16",
"Phenols: 1.68 <br>Alcohol: 13.71",
"Phenols: 1.8 <br>Alcohol: 13.4",
"Phenols: 1.59 <br>Alcohol: 13.27",
"Phenols: 1.65 <br>Alcohol: 13.17",
"Phenols: 2.05 <br>Alcohol: 14.13"
],
"textfont": {
"color": "rgba(141,160,203,1)"
},
"type": "scatter",
"x": [
1.51,
1.3,
1.15,
1.7,
2,
1.62,
1.38,
1.79,
1.62,
2.32,
1.54,
1.4,
1.55,
2,
1.38,
1.5,
0.98,
1.7,
1.93,
1.41,
1.4,
1.48,
2.2,
1.8,
1.48,
1.74,
1.8,
1.9,
2.8,
2.6,
2.3,
1.83,
1.65,
1.39,
1.35,
1.28,
1.7,
1.48,
1.55,
1.98,
1.25,
1.39,
1.68,
1.68,
1.8,
1.59,
1.65,
2.05
],
"xaxis": "x",
"y": [
12.86,
12.88,
12.81,
12.7,
12.51,
12.6,
12.25,
12.53,
13.49,
12.84,
12.93,
13.36,
13.52,
13.62,
12.25,
13.16,
13.88,
12.87,
13.32,
13.08,
13.5,
12.79,
13.11,
13.23,
12.58,
13.17,
13.84,
12.45,
14.34,
13.48,
12.36,
13.69,
12.85,
12.96,
13.78,
13.73,
13.45,
12.82,
13.58,
13.4,
12.2,
12.77,
14.16,
13.71,
13.4,
13.27,
13.17,
14.13
],
"yaxis": "y"
}
],
"highlight": {
"debounce": 0,
"dynamic": false,
"on": "plotly_click",
"opacityDim": 0.2,
"persistent": false,
"selected": {
"opacity": 1
},
"selectize": false
},
"layout": {
"hovermode": "closest",
"margin": {
"b": 40,
"l": 60,
"r": 10,
"t": 25
},
"showlegend": true,
"xaxis": {
"automargin": true,
"domain": [
0,
1
],
"title": "Phenols"
},
"yaxis": {
"automargin": true,
"domain": [
0,
1
],
"title": "Alcohol"
}
},
"shinyEvents": [
"plotly_hover",
"plotly_click",
"plotly_selected",
"plotly_relayout",
"plotly_brushed",
"plotly_brushing",
"plotly_clickannotation",
"plotly_doubleclick",
"plotly_deselect",
"plotly_afterplot",
"plotly_sunburstclick"
],
"source": "A",
"visdat": {
2021-04-28 15:38:01 +02:00
"e68229139d1d": [
2021-04-21 12:47:19 +02:00
"function () ",
"plotlyVisDat"
]
}
},
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"plotly-binding\" src=\"data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHgua
"<script title=\"typedarray\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpd
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"crosstalk\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj
"<link href=\"data:text/css;charset-utf-8;base64,LyogQWRqdXN0IG1hcmdpbnMgb3V0d2FyZHMsIHNvIGNvbHVtbiBjb250ZW50cyBsaW5lIHVwIHdpdGggdGhlIGVkZ2VzIG9mIHRoZQogICBwYXJlbnQgb2YgY29udGFpbmVyLWZsdWlkLiAqLwouY29udGFpbmVyLWZsdWlkLmNyb3NzdGFsay1ic2NvbHMgewogIG1hcmdpbi1sZWZ0OiAtMzBweDsKICBtYXJnaW4tcmlnaHQ6IC0zMHB4OwogIHdoaXRlLXNwYWNlOiBub3JtYWw7Cn0KCi8qIEJ1dCBkb24ndCBhZGp1c3QgdGhlIG1hcmdpbnMgb3V0d2FyZHMgaWYgd2UncmUgZGlyZWN0bHkgdW5kZXIgdGhlIGJvZHksCiAgIGkuZS4gd2Ugd2VyZSB0aGUgdG9wLWxldmVsIG9mIHNvbWV0aGluZyBhdCB0aGUgY29uc29sZS4gKi8KYm9keSA+IC5jb250YWluZXItZmx1aWQuY3Jvc3N0YWxrLWJzY29scyB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgouY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWdyb3VwIC5jcm9zc3RhbGstb3B0aW9ucy1jb2x1bW4gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwYWRkaW5nLXJpZ2h0OiAxMnB4OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCkgewogIC5jcm9zc3RhbGstaW5wdXQtY2hlY2tib3hncm91cCAuY3Jvc3N0YWxrLW9wdGlvbnMtZ3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWNvbHVtbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7CiAgfQp9Cg==\" rel=\"stylesheet\" />\n",
"<link href=\"data:text/css;charset-utf-8;base64,LyoKanVzdCBoZXJlIHNvIHRoYXQgcGxvdGx5IHdvcmtzCmNvcnJlY3RseSB3aXRoIGlvc2xpZGVzLgpzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvNDYzCiovCgpzbGlkZTpub3QoLmN1cnJlbnQpIC5wbG90bHkuaHRtbC13aWRnZXR7CiAgZGlzcGxheTogbm9uZTsKfQo=\" rel=\"stylesheet\" />\n",
"<script title=\"plotly-main\" src=\"data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFy
"\t</head>\n",
"\t<body>\n",
2021-04-28 15:38:01 +02:00
"\t\t<div id=\"htmlwidget-d7348e103aec020c1812\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-d7348e103aec020c1812\">{\"x\":{\"visdat\":{\"e68229139d1d\":[\"function () \",\"plotlyVisDat\"]},\"cur_data\":\"e68229139d1d\",\"attrs\":{\"e68229139d1d\":{\"x\":{},\"y\":{},\"hoverinfo\":\"text\",\"text\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"scatter\",\"mode\":\"markers\",\"color\":{},\"inherit\":true}},\"layout\":{\"margin\":{\"b\":40,\"l\":60,\"t\":25,\"r\":10},\"xaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Phenols\"},\"yaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Alcohol\"},\"hovermode\":\"closest\",\"showlegend\":true},\"source\":\"A\",\"config\":{\"showSendToCloud\":false},\"data\":[{\"x\":[2.8,2.65,2.8,3.85,2.8,3.27,2.5,2.6,2.8,2.98,2.95,2.2,2.6,3.1,3.3,2.85,2.8,2.95,3.3,2.7,3,2.41,2.61,2.48,2.53,2.63,2.85,2.4,2.95,2.65,3,2.86,2.42,2.95,2.35,2.7,2.6,2.45,2.4,3,3.15,2.45,3.25,2.64,3,2.85,3.25,3.1,2.75,2.88,2.72,2.45,3.88,3,2.6,2.96,3.2,3,3.4],\"y\":[14.23,13.2,13.16,14.37,13.24,14.2,14.39,14.06,14.83,13.86,14.1,14.12,13.75,14.75,14.38,13.63,14.3,13.83,14.19,13.64,14.06,12.93,13.71,12.85,13.5,13.05,13.39,13.3,13.87,14.02,13.73,13.58,13.68,13.76,13.51,13.48,13.28,13.05,13.07,14.22,13.56,13.41,13.88,13.24,13.05,14.21,14.38,13.9,14.1,13.94,13.05,13.83,13.82,13.77,13.74,13.56,14.22,13.29,13.72],\"hoverinfo\":[\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\",\"text\"],\"text\":[\"Phenols: 2.8 <br>Alcohol: 14.23\",\"Phenols: 2.65 <br>Alcohol: 13.2\",\"Phenols: 2.8 <br>Alcohol: 13.16\",\"Phenols: 3.85 <br>Alcohol: 14.37\",\"Phenols: 2.8 <br>Alcohol: 13.24\",\"Phenols: 3.27 <br>Alcohol: 14.2\",\"Phenols: 2.5 <br>Alcohol: 14.39\",\"Phenols: 2.6 <br>Alcohol: 14.06\",\"Phenols: 2.8 <br>Alcohol: 14.83\",\"Phenols: 2.98 <br>Alcohol: 13.86\",\"Phenols: 2.95 <br>Alcohol: 14.1\",\"Phenols: 2.2 <br>Alcohol: 14.12\",\"Phenols: 2.6 <br>Alcohol: 13.75\",\"Phenols: 3.1 <br>Alcohol: 14.75\",\"Phenols: 3.3 <br>Alcohol: 14.38\",\"Phenols: 2.85 <br>Alcohol: 13.63\",\"Phenols: 2.8 <br>Alcohol: 14.3\",\"Phenols: 2.95 <br>Alcohol: 13.83\",\"Phenols: 3.3 <br>Alcohol: 14.19\",\"Phenols: 2.7 <br>Alcohol: 13.64\",\"Phenols: 3 <br>Alcohol: 14.06\",\"Phenols: 2.41 <br>Alcohol: 12.93\",\"Phenols: 2.61 <br>Alcohol: 13.71\",\"Phenols: 2.48 <br>Alcohol: 12.85\",\"Phenols: 2.53 <br>Alcohol: 13.5\",\"Phenols: 2.63 <br>Alcohol: 13.05\",\"Phenols: 2.85 <br>Alcohol: 13.39\",\"Phenols: 2.4 <br>Alcohol: 13.3\",\"Phenols: 2.95 <br>Alcohol: 13.87\",\"Phenols: 2.65 <br>Alcohol: 14.02\",\"Phenols: 3 <br>Alcohol: 13.73\",\"Phenols: 2.86 <br>Alcohol: 13.58\",\"Phenols: 2.42 <br>Alcohol: 13.68\",\"Phenols: 2.95 <br>Alcohol: 13.76\",\"Phenols: 2.35 <br>Alcohol: 13.51\",\"Phenols: 2.7 <br>Alcohol: 13.48\",\"Phenols: 2.6 <br>Alcohol: 13.28\",\"Phenols: 2.45 <br>Alcohol: 13.05\",\"Phenols: 2.4 <br>Alcohol: 13.07\",\"Phenols: 3 <br>Alcohol: 14.22\",\"Phenols: 3.15 <br>Alcohol: 13.56\",\"Phenols: 2.45 <br>Alcohol: 13.41\",\"Phenols: 3.25 <br>Alcohol: 13.88\",\"Phenols: 2.64 <br>Alcohol: 13.24\",\"Phenols: 3 <br>Alcohol: 13.05\",\"Phenols: 2.85 <br>Alcohol: 14.21\",\"Phenols: 3.25 <br>Alcohol: 14.38\",\"Phenols: 3.1 <br>Alcohol: 13.9\",\"Phenols: 2.75 <br>Alcohol: 14.1\",\"Phenols: 2.88 <br>Alcohol: 13.94\",\"Phenols: 2.72 <br>Alcohol: 13.05\",\"Phenols: 2.45 <br>Alcohol: 13.83\",\"Phenols: 3.88 <br>Alcohol: 13.82\",\"Phenols: 3 <br>Alcohol: 13.77\",\"Phenols: 2.6 <br>Alcohol: 13.74\",\"Phenols: 2.96 <br>Alcohol: 13.56\",\"Phenols: 3.2 <br>Alcohol: 14.22\",\"Phenols: 3 <br>Alcohol: 13.29\",\"Phenols: 3.4 <br>Alcohol: 13.72\"],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"1\",\"marke
2021-04-21 12:47:19 +02:00
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"# Scatterplot\n",
"rattle.data::wine %>% # data set\n",
" plot_ly(x = ~Phenols, \n",
" y = ~Alcohol, \n",
" hoverinfo = 'text',\n",
" text = ~paste('Phenols:', Phenols, '<br>Alcohol:', Alcohol)) %>% \n",
" add_markers(color = ~Type) # add points"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"attrs": {
2021-04-28 15:38:01 +02:00
"e6824d87f900": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"inherit": true,
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "bar",
"x": {},
"y": {}
}
},
"base_url": "https://plot.ly",
"config": {
"showSendToCloud": false
},
2021-04-28 15:38:01 +02:00
"cur_data": "e6824d87f900",
2021-04-21 12:47:19 +02:00
"data": [
{
"error_x": {
"color": "rgba(31,119,180,1)"
},
"error_y": {
"color": "rgba(31,119,180,1)"
},
"marker": {
"color": "rgba(31,119,180,1)",
"line": {
"color": "rgba(31,119,180,1)"
}
},
"type": "bar",
"x": [
"1",
"2",
"3"
],
"xaxis": "x",
"y": [
59,
71,
48
],
"yaxis": "y"
}
],
"highlight": {
"debounce": 0,
"dynamic": false,
"on": "plotly_click",
"opacityDim": 0.2,
"persistent": false,
"selected": {
"opacity": 1
},
"selectize": false
},
"layout": {
"hovermode": "closest",
"margin": {
"b": 40,
"l": 60,
"r": 10,
"t": 25
},
"showlegend": false,
"xaxis": {
"automargin": true,
"categoryarray": [
"1",
"2",
"3"
],
"categoryorder": "array",
"domain": [
0,
1
],
"title": "Type",
"type": "category"
},
"yaxis": {
"automargin": true,
"domain": [
0,
1
],
"title": "n"
}
},
"shinyEvents": [
"plotly_hover",
"plotly_click",
"plotly_selected",
"plotly_relayout",
"plotly_brushed",
"plotly_brushing",
"plotly_clickannotation",
"plotly_doubleclick",
"plotly_deselect",
"plotly_afterplot",
"plotly_sunburstclick"
],
"source": "A",
"visdat": {
2021-04-28 15:38:01 +02:00
"e6824d87f900": [
2021-04-21 12:47:19 +02:00
"function () ",
"plotlyVisDat"
]
}
},
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"plotly-binding\" src=\"data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHgua
"<script title=\"typedarray\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpd
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"crosstalk\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj
"<link href=\"data:text/css;charset-utf-8;base64,LyogQWRqdXN0IG1hcmdpbnMgb3V0d2FyZHMsIHNvIGNvbHVtbiBjb250ZW50cyBsaW5lIHVwIHdpdGggdGhlIGVkZ2VzIG9mIHRoZQogICBwYXJlbnQgb2YgY29udGFpbmVyLWZsdWlkLiAqLwouY29udGFpbmVyLWZsdWlkLmNyb3NzdGFsay1ic2NvbHMgewogIG1hcmdpbi1sZWZ0OiAtMzBweDsKICBtYXJnaW4tcmlnaHQ6IC0zMHB4OwogIHdoaXRlLXNwYWNlOiBub3JtYWw7Cn0KCi8qIEJ1dCBkb24ndCBhZGp1c3QgdGhlIG1hcmdpbnMgb3V0d2FyZHMgaWYgd2UncmUgZGlyZWN0bHkgdW5kZXIgdGhlIGJvZHksCiAgIGkuZS4gd2Ugd2VyZSB0aGUgdG9wLWxldmVsIG9mIHNvbWV0aGluZyBhdCB0aGUgY29uc29sZS4gKi8KYm9keSA+IC5jb250YWluZXItZmx1aWQuY3Jvc3N0YWxrLWJzY29scyB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgouY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWdyb3VwIC5jcm9zc3RhbGstb3B0aW9ucy1jb2x1bW4gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwYWRkaW5nLXJpZ2h0OiAxMnB4OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCkgewogIC5jcm9zc3RhbGstaW5wdXQtY2hlY2tib3hncm91cCAuY3Jvc3N0YWxrLW9wdGlvbnMtZ3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWNvbHVtbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7CiAgfQp9Cg==\" rel=\"stylesheet\" />\n",
"<link href=\"data:text/css;charset-utf-8;base64,LyoKanVzdCBoZXJlIHNvIHRoYXQgcGxvdGx5IHdvcmtzCmNvcnJlY3RseSB3aXRoIGlvc2xpZGVzLgpzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvNDYzCiovCgpzbGlkZTpub3QoLmN1cnJlbnQpIC5wbG90bHkuaHRtbC13aWRnZXR7CiAgZGlzcGxheTogbm9uZTsKfQo=\" rel=\"stylesheet\" />\n",
"<script title=\"plotly-main\" src=\"data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFy
"\t</head>\n",
"\t<body>\n",
2021-04-28 15:38:01 +02:00
"\t\t<div id=\"htmlwidget-534c7b0a8ce8ee788c5c\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-534c7b0a8ce8ee788c5c\">{\"x\":{\"visdat\":{\"e6824d87f900\":[\"function () \",\"plotlyVisDat\"]},\"cur_data\":\"e6824d87f900\",\"attrs\":{\"e6824d87f900\":{\"x\":{},\"y\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"bar\",\"inherit\":true}},\"layout\":{\"margin\":{\"b\":40,\"l\":60,\"t\":25,\"r\":10},\"xaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Type\",\"type\":\"category\",\"categoryorder\":\"array\",\"categoryarray\":[\"1\",\"2\",\"3\"]},\"yaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"n\"},\"hovermode\":\"closest\",\"showlegend\":false},\"source\":\"A\",\"config\":{\"showSendToCloud\":false},\"data\":[{\"x\":[\"1\",\"2\",\"3\"],\"y\":[59,71,48],\"type\":\"bar\",\"marker\":{\"color\":\"rgba(31,119,180,1)\",\"line\":{\"color\":\"rgba(31,119,180,1)\"}},\"error_y\":{\"color\":\"rgba(31,119,180,1)\"},\"error_x\":{\"color\":\"rgba(31,119,180,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null}],\"highlight\":{\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1},\"debounce\":0},\"shinyEvents\":[\"plotly_hover\",\"plotly_click\",\"plotly_selected\",\"plotly_relayout\",\"plotly_brushed\",\"plotly_brushing\",\"plotly_clickannotation\",\"plotly_doubleclick\",\"plotly_deselect\",\"plotly_afterplot\",\"plotly_sunburstclick\"],\"base_url\":\"https://plot.ly\"},\"evals\":[],\"jsHooks\":[]}</script>\n",
2021-04-21 12:47:19 +02:00
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"attrs": {
2021-04-28 15:38:01 +02:00
"e6827460e057": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"inherit": true,
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "bar",
"x": {},
"y": {}
}
},
"base_url": "https://plot.ly",
"config": {
"showSendToCloud": false
},
2021-04-28 15:38:01 +02:00
"cur_data": "e6827460e057",
2021-04-21 12:47:19 +02:00
"data": [
{
"error_x": {
"color": "rgba(31,119,180,1)"
},
"error_y": {
"color": "rgba(31,119,180,1)"
},
"marker": {
"color": "rgba(31,119,180,1)",
"line": {
"color": "rgba(31,119,180,1)"
}
},
"type": "bar",
"x": [
"1",
"2",
"3"
],
"xaxis": "x",
"y": [
59,
71,
48
],
"yaxis": "y"
}
],
"highlight": {
"debounce": 0,
"dynamic": false,
"on": "plotly_click",
"opacityDim": 0.2,
"persistent": false,
"selected": {
"opacity": 1
},
"selectize": false
},
"layout": {
"hovermode": "closest",
"margin": {
"b": 40,
"l": 60,
"r": 10,
"t": 25
},
"showlegend": false,
"xaxis": {
"automargin": true,
"categoryarray": [
"2",
"1",
"3"
],
"categoryorder": "array",
"domain": [
0,
1
],
"title": "Type",
"type": "category"
},
"yaxis": {
"automargin": true,
"domain": [
0,
1
],
"title": "n"
}
},
"shinyEvents": [
"plotly_hover",
"plotly_click",
"plotly_selected",
"plotly_relayout",
"plotly_brushed",
"plotly_brushing",
"plotly_clickannotation",
"plotly_doubleclick",
"plotly_deselect",
"plotly_afterplot",
"plotly_sunburstclick"
],
"source": "A",
"visdat": {
2021-04-28 15:38:01 +02:00
"e6827460e057": [
2021-04-21 12:47:19 +02:00
"function () ",
"plotlyVisDat"
]
}
},
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"plotly-binding\" src=\"data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHgua
"<script title=\"typedarray\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpd
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"crosstalk\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj
"<link href=\"data:text/css;charset-utf-8;base64,LyogQWRqdXN0IG1hcmdpbnMgb3V0d2FyZHMsIHNvIGNvbHVtbiBjb250ZW50cyBsaW5lIHVwIHdpdGggdGhlIGVkZ2VzIG9mIHRoZQogICBwYXJlbnQgb2YgY29udGFpbmVyLWZsdWlkLiAqLwouY29udGFpbmVyLWZsdWlkLmNyb3NzdGFsay1ic2NvbHMgewogIG1hcmdpbi1sZWZ0OiAtMzBweDsKICBtYXJnaW4tcmlnaHQ6IC0zMHB4OwogIHdoaXRlLXNwYWNlOiBub3JtYWw7Cn0KCi8qIEJ1dCBkb24ndCBhZGp1c3QgdGhlIG1hcmdpbnMgb3V0d2FyZHMgaWYgd2UncmUgZGlyZWN0bHkgdW5kZXIgdGhlIGJvZHksCiAgIGkuZS4gd2Ugd2VyZSB0aGUgdG9wLWxldmVsIG9mIHNvbWV0aGluZyBhdCB0aGUgY29uc29sZS4gKi8KYm9keSA+IC5jb250YWluZXItZmx1aWQuY3Jvc3N0YWxrLWJzY29scyB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgouY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWdyb3VwIC5jcm9zc3RhbGstb3B0aW9ucy1jb2x1bW4gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwYWRkaW5nLXJpZ2h0OiAxMnB4OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCkgewogIC5jcm9zc3RhbGstaW5wdXQtY2hlY2tib3hncm91cCAuY3Jvc3N0YWxrLW9wdGlvbnMtZ3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWNvbHVtbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7CiAgfQp9Cg==\" rel=\"stylesheet\" />\n",
"<link href=\"data:text/css;charset-utf-8;base64,LyoKanVzdCBoZXJlIHNvIHRoYXQgcGxvdGx5IHdvcmtzCmNvcnJlY3RseSB3aXRoIGlvc2xpZGVzLgpzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvNDYzCiovCgpzbGlkZTpub3QoLmN1cnJlbnQpIC5wbG90bHkuaHRtbC13aWRnZXR7CiAgZGlzcGxheTogbm9uZTsKfQo=\" rel=\"stylesheet\" />\n",
"<script title=\"plotly-main\" src=\"data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFy
"\t</head>\n",
"\t<body>\n",
2021-04-28 15:38:01 +02:00
"\t\t<div id=\"htmlwidget-85395f75852ed8acf140\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-85395f75852ed8acf140\">{\"x\":{\"visdat\":{\"e6827460e057\":[\"function () \",\"plotlyVisDat\"]},\"cur_data\":\"e6827460e057\",\"attrs\":{\"e6827460e057\":{\"x\":{},\"y\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"bar\",\"inherit\":true}},\"layout\":{\"margin\":{\"b\":40,\"l\":60,\"t\":25,\"r\":10},\"xaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Type\",\"type\":\"category\",\"categoryorder\":\"array\",\"categoryarray\":[\"2\",\"1\",\"3\"]},\"yaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"n\"},\"hovermode\":\"closest\",\"showlegend\":false},\"source\":\"A\",\"config\":{\"showSendToCloud\":false},\"data\":[{\"x\":[\"1\",\"2\",\"3\"],\"y\":[59,71,48],\"type\":\"bar\",\"marker\":{\"color\":\"rgba(31,119,180,1)\",\"line\":{\"color\":\"rgba(31,119,180,1)\"}},\"error_y\":{\"color\":\"rgba(31,119,180,1)\"},\"error_x\":{\"color\":\"rgba(31,119,180,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null}],\"highlight\":{\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1},\"debounce\":0},\"shinyEvents\":[\"plotly_hover\",\"plotly_click\",\"plotly_selected\",\"plotly_relayout\",\"plotly_brushed\",\"plotly_brushing\",\"plotly_clickannotation\",\"plotly_doubleclick\",\"plotly_deselect\",\"plotly_afterplot\",\"plotly_sunburstclick\"],\"base_url\":\"https://plot.ly\"},\"evals\":[],\"jsHooks\":[]}</script>\n",
2021-04-21 12:47:19 +02:00
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"# Barplot\n",
"rattle.data::wine %>%\n",
" count(Type) %>%\n",
" plot_ly(x = ~Type, y = ~n) %>%\n",
" add_bars()\n",
"\n",
"rattle.data::wine %>%\n",
" count(Type) %>%\n",
" mutate(Type = forcats::fct_reorder(Type, n, .desc = TRUE)) %>%\n",
" plot_ly(x = ~Type, y = ~n) %>%\n",
" add_bars()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"attrs": {
2021-04-28 15:38:01 +02:00
"e6825d2021cd": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"color": {},
"inherit": true,
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "bar",
"x": {},
"y": {}
}
},
"base_url": "https://plot.ly",
"config": {
"showSendToCloud": false
},
2021-04-28 15:38:01 +02:00
"cur_data": "e6825d2021cd",
2021-04-21 12:47:19 +02:00
"data": [
{
"error_x": {
"color": "rgba(102,194,165,1)"
},
"error_y": {
"color": "rgba(102,194,165,1)"
},
"marker": {
"color": "rgba(102,194,165,1)",
"line": {
"color": "rgba(102,194,165,1)"
}
},
"name": "1",
"textfont": {
"color": "rgba(102,194,165,1)"
},
"type": "bar",
"x": [
"Strong",
"Weak"
],
"xaxis": "x",
"y": [
57,
2
],
"yaxis": "y"
},
{
"error_x": {
"color": "rgba(252,141,98,1)"
},
"error_y": {
"color": "rgba(252,141,98,1)"
},
"marker": {
"color": "rgba(252,141,98,1)",
"line": {
"color": "rgba(252,141,98,1)"
}
},
"name": "2",
"textfont": {
"color": "rgba(252,141,98,1)"
},
"type": "bar",
"x": [
"Strong",
"Weak"
],
"xaxis": "x",
"y": [
8,
63
],
"yaxis": "y"
},
{
"error_x": {
"color": "rgba(141,160,203,1)"
},
"error_y": {
"color": "rgba(141,160,203,1)"
},
"marker": {
"color": "rgba(141,160,203,1)",
"line": {
"color": "rgba(141,160,203,1)"
}
},
"name": "3",
"textfont": {
"color": "rgba(141,160,203,1)"
},
"type": "bar",
"x": [
"Strong",
"Weak"
],
"xaxis": "x",
"y": [
27,
21
],
"yaxis": "y"
}
],
"highlight": {
"debounce": 0,
"dynamic": false,
"on": "plotly_click",
"opacityDim": 0.2,
"persistent": false,
"selected": {
"opacity": 1
},
"selectize": false
},
"layout": {
"barmode": "stack",
"hovermode": "closest",
"margin": {
"b": 40,
"l": 60,
"r": 10,
"t": 25
},
"showlegend": true,
"xaxis": {
"automargin": true,
"categoryarray": [
"Strong",
"Weak"
],
"categoryorder": "array",
"domain": [
0,
1
],
"title": "Power",
"type": "category"
},
"yaxis": {
"automargin": true,
"domain": [
0,
1
],
"title": "n"
}
},
"shinyEvents": [
"plotly_hover",
"plotly_click",
"plotly_selected",
"plotly_relayout",
"plotly_brushed",
"plotly_brushing",
"plotly_clickannotation",
"plotly_doubleclick",
"plotly_deselect",
"plotly_afterplot",
"plotly_sunburstclick"
],
"source": "A",
"visdat": {
2021-04-28 15:38:01 +02:00
"e6825d2021cd": [
2021-04-21 12:47:19 +02:00
"function () ",
"plotlyVisDat"
]
}
},
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"plotly-binding\" src=\"data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHgua
"<script title=\"typedarray\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpd
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"crosstalk\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj
"<link href=\"data:text/css;charset-utf-8;base64,LyogQWRqdXN0IG1hcmdpbnMgb3V0d2FyZHMsIHNvIGNvbHVtbiBjb250ZW50cyBsaW5lIHVwIHdpdGggdGhlIGVkZ2VzIG9mIHRoZQogICBwYXJlbnQgb2YgY29udGFpbmVyLWZsdWlkLiAqLwouY29udGFpbmVyLWZsdWlkLmNyb3NzdGFsay1ic2NvbHMgewogIG1hcmdpbi1sZWZ0OiAtMzBweDsKICBtYXJnaW4tcmlnaHQ6IC0zMHB4OwogIHdoaXRlLXNwYWNlOiBub3JtYWw7Cn0KCi8qIEJ1dCBkb24ndCBhZGp1c3QgdGhlIG1hcmdpbnMgb3V0d2FyZHMgaWYgd2UncmUgZGlyZWN0bHkgdW5kZXIgdGhlIGJvZHksCiAgIGkuZS4gd2Ugd2VyZSB0aGUgdG9wLWxldmVsIG9mIHNvbWV0aGluZyBhdCB0aGUgY29uc29sZS4gKi8KYm9keSA+IC5jb250YWluZXItZmx1aWQuY3Jvc3N0YWxrLWJzY29scyB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgouY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWdyb3VwIC5jcm9zc3RhbGstb3B0aW9ucy1jb2x1bW4gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwYWRkaW5nLXJpZ2h0OiAxMnB4OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCkgewogIC5jcm9zc3RhbGstaW5wdXQtY2hlY2tib3hncm91cCAuY3Jvc3N0YWxrLW9wdGlvbnMtZ3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWNvbHVtbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7CiAgfQp9Cg==\" rel=\"stylesheet\" />\n",
"<link href=\"data:text/css;charset-utf-8;base64,LyoKanVzdCBoZXJlIHNvIHRoYXQgcGxvdGx5IHdvcmtzCmNvcnJlY3RseSB3aXRoIGlvc2xpZGVzLgpzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvNDYzCiovCgpzbGlkZTpub3QoLmN1cnJlbnQpIC5wbG90bHkuaHRtbC13aWRnZXR7CiAgZGlzcGxheTogbm9uZTsKfQo=\" rel=\"stylesheet\" />\n",
"<script title=\"plotly-main\" src=\"data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFy
"\t</head>\n",
"\t<body>\n",
2021-04-28 15:38:01 +02:00
"\t\t<div id=\"htmlwidget-2146f05e99a7d970e65e\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-2146f05e99a7d970e65e\">{\"x\":{\"visdat\":{\"e6825d2021cd\":[\"function () \",\"plotlyVisDat\"]},\"cur_data\":\"e6825d2021cd\",\"attrs\":{\"e6825d2021cd\":{\"x\":{},\"y\":{},\"color\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"bar\",\"inherit\":true}},\"layout\":{\"margin\":{\"b\":40,\"l\":60,\"t\":25,\"r\":10},\"barmode\":\"stack\",\"xaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Power\",\"type\":\"category\",\"categoryorder\":\"array\",\"categoryarray\":[\"Strong\",\"Weak\"]},\"yaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"n\"},\"hovermode\":\"closest\",\"showlegend\":true},\"source\":\"A\",\"config\":{\"showSendToCloud\":false},\"data\":[{\"x\":[\"Strong\",\"Weak\"],\"y\":[57,2],\"type\":\"bar\",\"name\":\"1\",\"marker\":{\"color\":\"rgba(102,194,165,1)\",\"line\":{\"color\":\"rgba(102,194,165,1)\"}},\"textfont\":{\"color\":\"rgba(102,194,165,1)\"},\"error_y\":{\"color\":\"rgba(102,194,165,1)\"},\"error_x\":{\"color\":\"rgba(102,194,165,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[\"Strong\",\"Weak\"],\"y\":[8,63],\"type\":\"bar\",\"name\":\"2\",\"marker\":{\"color\":\"rgba(252,141,98,1)\",\"line\":{\"color\":\"rgba(252,141,98,1)\"}},\"textfont\":{\"color\":\"rgba(252,141,98,1)\"},\"error_y\":{\"color\":\"rgba(252,141,98,1)\"},\"error_x\":{\"color\":\"rgba(252,141,98,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[\"Strong\",\"Weak\"],\"y\":[27,21],\"type\":\"bar\",\"name\":\"3\",\"marker\":{\"color\":\"rgba(141,160,203,1)\",\"line\":{\"color\":\"rgba(141,160,203,1)\"}},\"textfont\":{\"color\":\"rgba(141,160,203,1)\"},\"error_y\":{\"color\":\"rgba(141,160,203,1)\"},\"error_x\":{\"color\":\"rgba(141,160,203,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null}],\"highlight\":{\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1},\"debounce\":0},\"shinyEvents\":[\"plotly_hover\",\"plotly_click\",\"plotly_selected\",\"plotly_relayout\",\"plotly_brushed\",\"plotly_brushing\",\"plotly_clickannotation\",\"plotly_doubleclick\",\"plotly_deselect\",\"plotly_afterplot\",\"plotly_sunburstclick\"],\"base_url\":\"https://plot.ly\"},\"evals\":[],\"jsHooks\":[]}</script>\n",
2021-04-21 12:47:19 +02:00
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"# Stacked barplot\n",
"rattle.data::wine %>%\n",
" mutate(Power = ifelse(Alcohol < 13, 'Weak', 'Strong')) %>%\n",
" as_tibble() %>% \n",
" count(Type, Power) %>% \n",
" plot_ly(x = ~Power, y = ~n, color = ~Type) %>%\n",
" add_bars() %>%\n",
" layout(barmode = 'stack')"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"attrs": {
2021-04-28 15:38:01 +02:00
"e6824b256193": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"color": "navy",
"inherit": true,
"nbinsx": 10,
"opacity": 0.5,
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "histogram",
"x": {}
}
},
"base_url": "https://plot.ly",
"config": {
"showSendToCloud": false
},
2021-04-28 15:38:01 +02:00
"cur_data": "e6824b256193",
2021-04-21 12:47:19 +02:00
"data": [
{
"error_x": {
"color": "rgba(0,0,128,1)"
},
"error_y": {
"color": "rgba(0,0,128,1)"
},
"marker": {
"color": "rgba(0,0,128,1)",
"line": {
"color": "rgba(0,0,128,1)"
}
},
"nbinsx": 10,
"opacity": 0.5,
"type": "histogram",
"x": [
2.8,
2.65,
2.8,
3.85,
2.8,
3.27,
2.5,
2.6,
2.8,
2.98,
2.95,
2.2,
2.6,
3.1,
3.3,
2.85,
2.8,
2.95,
3.3,
2.7,
3,
2.41,
2.61,
2.48,
2.53,
2.63,
2.85,
2.4,
2.95,
2.65,
3,
2.86,
2.42,
2.95,
2.35,
2.7,
2.6,
2.45,
2.4,
3,
3.15,
2.45,
3.25,
2.64,
3,
2.85,
3.25,
3.1,
2.75,
2.88,
2.72,
2.45,
3.88,
3,
2.6,
2.96,
3.2,
3,
3.4,
1.98,
2.05,
2.02,
2.1,
3.5,
1.89,
2.42,
2.98,
2.11,
2.53,
1.85,
1.1,
2.95,
1.88,
3.3,
3.38,
1.61,
1.95,
1.72,
1.9,
2.83,
2.42,
2.2,
2,
1.65,
2.2,
2.2,
1.78,
1.92,
1.95,
2.2,
1.6,
1.45,
1.38,
2.45,
3.02,
2.5,
1.6,
2.55,
3.52,
2.85,
2.23,
1.45,
2.56,
2.5,
2.2,
1.68,
1.65,
1.38,
2.36,
2.74,
3.18,
2.55,
1.75,
2.48,
2.56,
2.46,
1.98,
2,
1.63,
2,
2.9,
3.18,
2.2,
2.62,
2.86,
2.6,
2.74,
2.13,
2.22,
2.1,
1.51,
1.3,
1.15,
1.7,
2,
1.62,
1.38,
1.79,
1.62,
2.32,
1.54,
1.4,
1.55,
2,
1.38,
1.5,
0.98,
1.7,
1.93,
1.41,
1.4,
1.48,
2.2,
1.8,
1.48,
1.74,
1.8,
1.9,
2.8,
2.6,
2.3,
1.83,
1.65,
1.39,
1.35,
1.28,
1.7,
1.48,
1.55,
1.98,
1.25,
1.39,
1.68,
1.68,
1.8,
1.59,
1.65,
2.05
],
"xaxis": "x",
"yaxis": "y"
}
],
"highlight": {
"debounce": 0,
"dynamic": false,
"on": "plotly_click",
"opacityDim": 0.2,
"persistent": false,
"selected": {
"opacity": 1
},
"selectize": false
},
"layout": {
"hovermode": "closest",
"margin": {
"b": 40,
"l": 60,
"r": 10,
"t": 25
},
"showlegend": false,
"xaxis": {
"automargin": true,
"domain": [
0,
1
],
"title": "Phenols"
},
"yaxis": {
"automargin": true,
"domain": [
0,
1
]
}
},
"shinyEvents": [
"plotly_hover",
"plotly_click",
"plotly_selected",
"plotly_relayout",
"plotly_brushed",
"plotly_brushing",
"plotly_clickannotation",
"plotly_doubleclick",
"plotly_deselect",
"plotly_afterplot",
"plotly_sunburstclick"
],
"source": "A",
"visdat": {
2021-04-28 15:38:01 +02:00
"e6824b256193": [
2021-04-21 12:47:19 +02:00
"function () ",
"plotlyVisDat"
]
}
},
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"plotly-binding\" src=\"data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHgua
"<script title=\"typedarray\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpd
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"crosstalk\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj
"<link href=\"data:text/css;charset-utf-8;base64,LyogQWRqdXN0IG1hcmdpbnMgb3V0d2FyZHMsIHNvIGNvbHVtbiBjb250ZW50cyBsaW5lIHVwIHdpdGggdGhlIGVkZ2VzIG9mIHRoZQogICBwYXJlbnQgb2YgY29udGFpbmVyLWZsdWlkLiAqLwouY29udGFpbmVyLWZsdWlkLmNyb3NzdGFsay1ic2NvbHMgewogIG1hcmdpbi1sZWZ0OiAtMzBweDsKICBtYXJnaW4tcmlnaHQ6IC0zMHB4OwogIHdoaXRlLXNwYWNlOiBub3JtYWw7Cn0KCi8qIEJ1dCBkb24ndCBhZGp1c3QgdGhlIG1hcmdpbnMgb3V0d2FyZHMgaWYgd2UncmUgZGlyZWN0bHkgdW5kZXIgdGhlIGJvZHksCiAgIGkuZS4gd2Ugd2VyZSB0aGUgdG9wLWxldmVsIG9mIHNvbWV0aGluZyBhdCB0aGUgY29uc29sZS4gKi8KYm9keSA+IC5jb250YWluZXItZmx1aWQuY3Jvc3N0YWxrLWJzY29scyB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgouY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWdyb3VwIC5jcm9zc3RhbGstb3B0aW9ucy1jb2x1bW4gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwYWRkaW5nLXJpZ2h0OiAxMnB4OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCkgewogIC5jcm9zc3RhbGstaW5wdXQtY2hlY2tib3hncm91cCAuY3Jvc3N0YWxrLW9wdGlvbnMtZ3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWNvbHVtbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7CiAgfQp9Cg==\" rel=\"stylesheet\" />\n",
"<link href=\"data:text/css;charset-utf-8;base64,LyoKanVzdCBoZXJlIHNvIHRoYXQgcGxvdGx5IHdvcmtzCmNvcnJlY3RseSB3aXRoIGlvc2xpZGVzLgpzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvNDYzCiovCgpzbGlkZTpub3QoLmN1cnJlbnQpIC5wbG90bHkuaHRtbC13aWRnZXR7CiAgZGlzcGxheTogbm9uZTsKfQo=\" rel=\"stylesheet\" />\n",
"<script title=\"plotly-main\" src=\"data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFy
"\t</head>\n",
"\t<body>\n",
2021-04-28 15:38:01 +02:00
"\t\t<div id=\"htmlwidget-acfdb21d637083d5753a\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-acfdb21d637083d5753a\">{\"x\":{\"visdat\":{\"e6824b256193\":[\"function () \",\"plotlyVisDat\"]},\"cur_data\":\"e6824b256193\",\"attrs\":{\"e6824b256193\":{\"x\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"histogram\",\"nbinsx\":10,\"color\":[\"navy\"],\"opacity\":0.5,\"inherit\":true}},\"layout\":{\"margin\":{\"b\":40,\"l\":60,\"t\":25,\"r\":10},\"xaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Phenols\"},\"yaxis\":{\"domain\":[0,1],\"automargin\":true},\"hovermode\":\"closest\",\"showlegend\":false},\"source\":\"A\",\"config\":{\"showSendToCloud\":false},\"data\":[{\"x\":[2.8,2.65,2.8,3.85,2.8,3.27,2.5,2.6,2.8,2.98,2.95,2.2,2.6,3.1,3.3,2.85,2.8,2.95,3.3,2.7,3,2.41,2.61,2.48,2.53,2.63,2.85,2.4,2.95,2.65,3,2.86,2.42,2.95,2.35,2.7,2.6,2.45,2.4,3,3.15,2.45,3.25,2.64,3,2.85,3.25,3.1,2.75,2.88,2.72,2.45,3.88,3,2.6,2.96,3.2,3,3.4,1.98,2.05,2.02,2.1,3.5,1.89,2.42,2.98,2.11,2.53,1.85,1.1,2.95,1.88,3.3,3.38,1.61,1.95,1.72,1.9,2.83,2.42,2.2,2,1.65,2.2,2.2,1.78,1.92,1.95,2.2,1.6,1.45,1.38,2.45,3.02,2.5,1.6,2.55,3.52,2.85,2.23,1.45,2.56,2.5,2.2,1.68,1.65,1.38,2.36,2.74,3.18,2.55,1.75,2.48,2.56,2.46,1.98,2,1.63,2,2.9,3.18,2.2,2.62,2.86,2.6,2.74,2.13,2.22,2.1,1.51,1.3,1.15,1.7,2,1.62,1.38,1.79,1.62,2.32,1.54,1.4,1.55,2,1.38,1.5,0.98,1.7,1.93,1.41,1.4,1.48,2.2,1.8,1.48,1.74,1.8,1.9,2.8,2.6,2.3,1.83,1.65,1.39,1.35,1.28,1.7,1.48,1.55,1.98,1.25,1.39,1.68,1.68,1.8,1.59,1.65,2.05],\"type\":\"histogram\",\"nbinsx\":10,\"opacity\":0.5,\"marker\":{\"color\":\"rgba(0,0,128,1)\",\"line\":{\"color\":\"rgba(0,0,128,1)\"}},\"error_y\":{\"color\":\"rgba(0,0,128,1)\"},\"error_x\":{\"color\":\"rgba(0,0,128,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null}],\"highlight\":{\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1},\"debounce\":0},\"shinyEvents\":[\"plotly_hover\",\"plotly_click\",\"plotly_selected\",\"plotly_relayout\",\"plotly_brushed\",\"plotly_brushing\",\"plotly_clickannotation\",\"plotly_doubleclick\",\"plotly_deselect\",\"plotly_afterplot\",\"plotly_sunburstclick\"],\"base_url\":\"https://plot.ly\"},\"evals\":[],\"jsHooks\":[]}</script>\n",
2021-04-21 12:47:19 +02:00
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"# Histogram\n",
"rattle.data::wine %>%\n",
" plot_ly(x = ~Phenols) %>% \n",
" add_histogram(nbinsx = 10, color = I('navy'), opacity = 0.5)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"attrs": {
2021-04-28 15:38:01 +02:00
"e6822901b5c": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"inherit": true,
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "box",
"x": {},
"y": {}
}
},
"base_url": "https://plot.ly",
"config": {
"showSendToCloud": false
},
2021-04-28 15:38:01 +02:00
"cur_data": "e6822901b5c",
2021-04-21 12:47:19 +02:00
"data": [
{
"fillcolor": "rgba(31,119,180,0.5)",
"line": {
"color": "rgba(31,119,180,1)"
},
"marker": {
"color": "rgba(31,119,180,1)",
"line": {
"color": "rgba(31,119,180,1)"
}
},
"type": "box",
"x": [
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3"
],
"xaxis": "x",
"y": [
2.8,
2.65,
2.8,
3.85,
2.8,
3.27,
2.5,
2.6,
2.8,
2.98,
2.95,
2.2,
2.6,
3.1,
3.3,
2.85,
2.8,
2.95,
3.3,
2.7,
3,
2.41,
2.61,
2.48,
2.53,
2.63,
2.85,
2.4,
2.95,
2.65,
3,
2.86,
2.42,
2.95,
2.35,
2.7,
2.6,
2.45,
2.4,
3,
3.15,
2.45,
3.25,
2.64,
3,
2.85,
3.25,
3.1,
2.75,
2.88,
2.72,
2.45,
3.88,
3,
2.6,
2.96,
3.2,
3,
3.4,
1.98,
2.05,
2.02,
2.1,
3.5,
1.89,
2.42,
2.98,
2.11,
2.53,
1.85,
1.1,
2.95,
1.88,
3.3,
3.38,
1.61,
1.95,
1.72,
1.9,
2.83,
2.42,
2.2,
2,
1.65,
2.2,
2.2,
1.78,
1.92,
1.95,
2.2,
1.6,
1.45,
1.38,
2.45,
3.02,
2.5,
1.6,
2.55,
3.52,
2.85,
2.23,
1.45,
2.56,
2.5,
2.2,
1.68,
1.65,
1.38,
2.36,
2.74,
3.18,
2.55,
1.75,
2.48,
2.56,
2.46,
1.98,
2,
1.63,
2,
2.9,
3.18,
2.2,
2.62,
2.86,
2.6,
2.74,
2.13,
2.22,
2.1,
1.51,
1.3,
1.15,
1.7,
2,
1.62,
1.38,
1.79,
1.62,
2.32,
1.54,
1.4,
1.55,
2,
1.38,
1.5,
0.98,
1.7,
1.93,
1.41,
1.4,
1.48,
2.2,
1.8,
1.48,
1.74,
1.8,
1.9,
2.8,
2.6,
2.3,
1.83,
1.65,
1.39,
1.35,
1.28,
1.7,
1.48,
1.55,
1.98,
1.25,
1.39,
1.68,
1.68,
1.8,
1.59,
1.65,
2.05
],
"yaxis": "y"
}
],
"highlight": {
"debounce": 0,
"dynamic": false,
"on": "plotly_click",
"opacityDim": 0.2,
"persistent": false,
"selected": {
"opacity": 1
},
"selectize": false
},
"layout": {
"hovermode": "closest",
"margin": {
"b": 40,
"l": 60,
"r": 10,
"t": 25
},
"showlegend": false,
"title": "Phenols and type of wine",
"xaxis": {
"automargin": true,
"categoryarray": [
"1",
"2",
"3"
],
"categoryorder": "array",
"domain": [
0,
1
],
"title": "Type of wine",
"type": "category"
},
"yaxis": {
"automargin": true,
"domain": [
0,
1
],
"title": "Total phenols"
}
},
"shinyEvents": [
"plotly_hover",
"plotly_click",
"plotly_selected",
"plotly_relayout",
"plotly_brushed",
"plotly_brushing",
"plotly_clickannotation",
"plotly_doubleclick",
"plotly_deselect",
"plotly_afterplot",
"plotly_sunburstclick"
],
"source": "A",
"visdat": {
2021-04-28 15:38:01 +02:00
"e6822901b5c": [
2021-04-21 12:47:19 +02:00
"function () ",
"plotlyVisDat"
]
}
},
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"plotly-binding\" src=\"data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHgua
"<script title=\"typedarray\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpd
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"crosstalk\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj
"<link href=\"data:text/css;charset-utf-8;base64,LyogQWRqdXN0IG1hcmdpbnMgb3V0d2FyZHMsIHNvIGNvbHVtbiBjb250ZW50cyBsaW5lIHVwIHdpdGggdGhlIGVkZ2VzIG9mIHRoZQogICBwYXJlbnQgb2YgY29udGFpbmVyLWZsdWlkLiAqLwouY29udGFpbmVyLWZsdWlkLmNyb3NzdGFsay1ic2NvbHMgewogIG1hcmdpbi1sZWZ0OiAtMzBweDsKICBtYXJnaW4tcmlnaHQ6IC0zMHB4OwogIHdoaXRlLXNwYWNlOiBub3JtYWw7Cn0KCi8qIEJ1dCBkb24ndCBhZGp1c3QgdGhlIG1hcmdpbnMgb3V0d2FyZHMgaWYgd2UncmUgZGlyZWN0bHkgdW5kZXIgdGhlIGJvZHksCiAgIGkuZS4gd2Ugd2VyZSB0aGUgdG9wLWxldmVsIG9mIHNvbWV0aGluZyBhdCB0aGUgY29uc29sZS4gKi8KYm9keSA+IC5jb250YWluZXItZmx1aWQuY3Jvc3N0YWxrLWJzY29scyB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgouY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWdyb3VwIC5jcm9zc3RhbGstb3B0aW9ucy1jb2x1bW4gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwYWRkaW5nLXJpZ2h0OiAxMnB4OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCkgewogIC5jcm9zc3RhbGstaW5wdXQtY2hlY2tib3hncm91cCAuY3Jvc3N0YWxrLW9wdGlvbnMtZ3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWNvbHVtbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7CiAgfQp9Cg==\" rel=\"stylesheet\" />\n",
"<link href=\"data:text/css;charset-utf-8;base64,LyoKanVzdCBoZXJlIHNvIHRoYXQgcGxvdGx5IHdvcmtzCmNvcnJlY3RseSB3aXRoIGlvc2xpZGVzLgpzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvNDYzCiovCgpzbGlkZTpub3QoLmN1cnJlbnQpIC5wbG90bHkuaHRtbC13aWRnZXR7CiAgZGlzcGxheTogbm9uZTsKfQo=\" rel=\"stylesheet\" />\n",
"<script title=\"plotly-main\" src=\"data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFy
"\t</head>\n",
"\t<body>\n",
2021-04-28 15:38:01 +02:00
"\t\t<div id=\"htmlwidget-b78b4bfeffd258add091\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-b78b4bfeffd258add091\">{\"x\":{\"visdat\":{\"e6822901b5c\":[\"function () \",\"plotlyVisDat\"]},\"cur_data\":\"e6822901b5c\",\"attrs\":{\"e6822901b5c\":{\"y\":{},\"x\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"box\",\"inherit\":true}},\"layout\":{\"margin\":{\"b\":40,\"l\":60,\"t\":25,\"r\":10},\"xaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Type of wine\",\"type\":\"category\",\"categoryorder\":\"array\",\"categoryarray\":[\"1\",\"2\",\"3\"]},\"yaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Total phenols\"},\"title\":\"Phenols and type of wine\",\"hovermode\":\"closest\",\"showlegend\":false},\"source\":\"A\",\"config\":{\"showSendToCloud\":false},\"data\":[{\"fillcolor\":\"rgba(31,119,180,0.5)\",\"y\":[2.8,2.65,2.8,3.85,2.8,3.27,2.5,2.6,2.8,2.98,2.95,2.2,2.6,3.1,3.3,2.85,2.8,2.95,3.3,2.7,3,2.41,2.61,2.48,2.53,2.63,2.85,2.4,2.95,2.65,3,2.86,2.42,2.95,2.35,2.7,2.6,2.45,2.4,3,3.15,2.45,3.25,2.64,3,2.85,3.25,3.1,2.75,2.88,2.72,2.45,3.88,3,2.6,2.96,3.2,3,3.4,1.98,2.05,2.02,2.1,3.5,1.89,2.42,2.98,2.11,2.53,1.85,1.1,2.95,1.88,3.3,3.38,1.61,1.95,1.72,1.9,2.83,2.42,2.2,2,1.65,2.2,2.2,1.78,1.92,1.95,2.2,1.6,1.45,1.38,2.45,3.02,2.5,1.6,2.55,3.52,2.85,2.23,1.45,2.56,2.5,2.2,1.68,1.65,1.38,2.36,2.74,3.18,2.55,1.75,2.48,2.56,2.46,1.98,2,1.63,2,2.9,3.18,2.2,2.62,2.86,2.6,2.74,2.13,2.22,2.1,1.51,1.3,1.15,1.7,2,1.62,1.38,1.79,1.62,2.32,1.54,1.4,1.55,2,1.38,1.5,0.98,1.7,1.93,1.41,1.4,1.48,2.2,1.8,1.48,1.74,1.8,1.9,2.8,2.6,2.3,1.83,1.65,1.39,1.35,1.28,1.7,1.48,1.55,1.98,1.25,1.39,1.68,1.68,1.8,1.59,1.65,2.05],\"x\":[\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"1\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"2\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\",\"3\"],\"type\":\"box\",\"marker\":{\"color\":\"rgba(31,119,180,1)\",\"line\":{\"color\":\"rgba(31,119,180,1)\"}},\"line\":{\"color\":\"rgba(31,119,180,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null}],\"highlight\":{\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1},\"debounce\":0},\"shinyEvents\":[\"plotly_hover\",\"plotly_click\",\"plotly_selected\",\"plotly_relayout\",\"plotly_brushed\",\"plotly_brushing\",\"plotly_clickannotation\",\"plotly_doubleclick\",\"plotly_deselect\",\"plotly_afterplot\",\"plotly_sunburstclick\"],\"base_url\":\"https://plot.ly\"},\"evals\":[],\"jsHooks\":[]}</script>\n",
2021-04-21 12:47:19 +02:00
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"# Boxplot\n",
"rattle.data::wine %>%\n",
" plot_ly(y = ~Phenols, x = ~Type) %>%\n",
" add_boxplot() %>% \n",
" layout(xaxis = list(title = 'Type of wine'),\n",
" yaxis = list(title = 'Total phenols'),\n",
" title = 'Phenols and type of wine')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"attrs": {
2021-04-28 15:38:01 +02:00
"e68275cd1338": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"inherit": true,
"mode": "markers",
"showlegend": false,
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "scatter",
"x": {},
"y": {}
},
2021-04-28 15:38:01 +02:00
"e68275cd1338.1": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"inherit": true,
"mode": "lines",
"name": "LOESS",
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "scatter",
"x": {},
"y": {}
},
2021-04-28 15:38:01 +02:00
"e68275cd1338.2": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"inherit": true,
"mode": "lines",
"name": "LM",
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "scatter",
"x": {},
"y": {}
}
},
"base_url": "https://plot.ly",
"config": {
"showSendToCloud": false
},
2021-04-28 15:38:01 +02:00
"cur_data": "e68275cd1338",
2021-04-21 12:47:19 +02:00
"data": [
{
"error_x": {
"color": "rgba(31,119,180,1)"
},
"error_y": {
"color": "rgba(31,119,180,1)"
},
"line": {
"color": "rgba(31,119,180,1)"
},
"marker": {
"color": "rgba(31,119,180,1)",
"line": {
"color": "rgba(31,119,180,1)"
}
},
"mode": "markers",
"showlegend": false,
"type": "scatter",
"x": [
3.06,
2.76,
3.24,
3.49,
2.69,
3.39,
2.52,
2.51,
2.98,
3.15,
3.32,
2.43,
2.76,
3.69,
3.64,
2.91,
3.14,
3.4,
3.93,
3.03,
3.17,
2.41,
2.88,
2.37,
2.61,
2.68,
2.94,
2.19,
2.97,
2.33,
3.25,
3.19,
2.69,
2.74,
2.53,
2.98,
2.68,
2.43,
2.64,
3.04,
3.29,
2.68,
3.56,
2.63,
3,
2.65,
3.17,
3.39,
2.92,
3.54,
3.27,
2.99,
3.74,
2.79,
2.9,
2.78,
3,
3.23,
3.67,
0.57,
1.09,
1.41,
1.79,
3.1,
1.75,
2.65,
3.18,
2,
1.3,
1.28,
1.02,
2.86,
1.84,
2.89,
2.14,
1.57,
2.03,
1.32,
1.85,
2.55,
2.26,
2.53,
1.58,
1.59,
2.21,
1.94,
1.69,
1.61,
1.69,
1.59,
1.5,
1.25,
1.46,
2.25,
2.26,
2.27,
0.99,
2.5,
3.75,
2.99,
2.17,
1.36,
2.11,
1.64,
1.92,
1.84,
2.03,
1.76,
2.04,
2.92,
2.58,
2.27,
2.03,
2.01,
2.29,
2.17,
1.6,
2.09,
1.25,
1.64,
2.79,
5.08,
2.13,
2.65,
3.03,
2.65,
3.15,
2.24,
2.45,
1.75,
1.25,
1.22,
1.09,
1.2,
0.58,
0.66,
0.47,
0.6,
0.48,
0.6,
0.5,
0.5,
0.52,
0.8,
0.78,
0.55,
0.34,
0.65,
0.76,
1.39,
1.57,
1.36,
1.28,
0.83,
0.58,
0.63,
0.83,
0.58,
1.31,
1.1,
0.92,
0.56,
0.6,
0.7,
0.68,
0.47,
0.92,
0.66,
0.84,
0.96,
0.49,
0.51,
0.7,
0.61,
0.75,
0.69,
0.68,
0.76
],
"xaxis": "x",
"y": [
14.23,
13.2,
13.16,
14.37,
13.24,
14.2,
14.39,
14.06,
14.83,
13.86,
14.1,
14.12,
13.75,
14.75,
14.38,
13.63,
14.3,
13.83,
14.19,
13.64,
14.06,
12.93,
13.71,
12.85,
13.5,
13.05,
13.39,
13.3,
13.87,
14.02,
13.73,
13.58,
13.68,
13.76,
13.51,
13.48,
13.28,
13.05,
13.07,
14.22,
13.56,
13.41,
13.88,
13.24,
13.05,
14.21,
14.38,
13.9,
14.1,
13.94,
13.05,
13.83,
13.82,
13.77,
13.74,
13.56,
14.22,
13.29,
13.72,
12.37,
12.33,
12.64,
13.67,
12.37,
12.17,
12.37,
13.11,
12.37,
13.34,
12.21,
12.29,
13.86,
13.49,
12.99,
11.96,
11.66,
13.03,
11.84,
12.33,
12.7,
12,
12.72,
12.08,
13.05,
11.84,
12.67,
12.16,
11.65,
11.64,
12.08,
12.08,
12,
12.69,
12.29,
11.62,
12.47,
11.81,
12.29,
12.37,
12.29,
12.08,
12.6,
12.34,
11.82,
12.51,
12.42,
12.25,
12.72,
12.22,
11.61,
11.46,
12.52,
11.76,
11.41,
12.08,
11.03,
11.82,
12.42,
12.77,
12,
11.45,
11.56,
12.42,
13.05,
11.87,
12.07,
12.43,
11.79,
12.37,
12.04,
12.86,
12.88,
12.81,
12.7,
12.51,
12.6,
12.25,
12.53,
13.49,
12.84,
12.93,
13.36,
13.52,
13.62,
12.25,
13.16,
13.88,
12.87,
13.32,
13.08,
13.5,
12.79,
13.11,
13.23,
12.58,
13.17,
13.84,
12.45,
14.34,
13.48,
12.36,
13.69,
12.85,
12.96,
13.78,
13.73,
13.45,
12.82,
13.58,
13.4,
12.2,
12.77,
14.16,
13.71,
13.4,
13.27,
13.17,
14.13
],
"yaxis": "y"
},
{
"error_x": {
"color": "rgba(255,127,14,1)"
},
"error_y": {
"color": "rgba(255,127,14,1)"
},
"line": {
"color": "rgba(255,127,14,1)"
},
"marker": {
"color": "rgba(255,127,14,1)",
"line": {
"color": "rgba(255,127,14,1)"
}
},
"mode": "lines",
"name": "LOESS",
"type": "scatter",
"x": [
0.34,
0.47,
0.47,
0.48,
0.49,
0.5,
0.5,
0.51,
0.52,
0.55,
0.56,
0.57,
0.58,
0.58,
0.58,
0.6,
0.6,
0.6,
0.61,
0.63,
0.65,
0.66,
0.66,
0.68,
0.68,
0.69,
0.7,
0.7,
0.75,
0.76,
0.76,
0.78,
0.8,
0.83,
0.83,
0.84,
0.92,
0.92,
0.96,
0.99,
1.02,
1.09,
1.09,
1.1,
1.2,
1.22,
1.25,
1.25,
1.25,
1.28,
1.28,
1.3,
1.31,
1.32,
1.36,
1.36,
1.39,
1.41,
1.46,
1.5,
1.57,
1.57,
1.58,
1.59,
1.59,
1.6,
1.61,
1.64,
1.64,
1.69,
1.69,
1.75,
1.75,
1.76,
1.79,
1.84,
1.84,
1.85,
1.92,
1.94,
2,
2.01,
2.03,
2.03,
2.03,
2.04,
2.09,
2.11,
2.13,
2.14,
2.17,
2.17,
2.19,
2.21,
2.24,
2.25,
2.26,
2.26,
2.27,
2.27,
2.29,
2.33,
2.37,
2.41,
2.43,
2.43,
2.45,
2.5,
2.51,
2.52,
2.53,
2.53,
2.55,
2.58,
2.61,
2.63,
2.64,
2.65,
2.65,
2.65,
2.65,
2.68,
2.68,
2.68,
2.69,
2.69,
2.74,
2.76,
2.76,
2.78,
2.79,
2.79,
2.86,
2.88,
2.89,
2.9,
2.91,
2.92,
2.92,
2.94,
2.97,
2.98,
2.98,
2.99,
2.99,
3,
3,
3.03,
3.03,
3.04,
3.06,
3.1,
3.14,
3.15,
3.15,
3.17,
3.17,
3.18,
3.19,
3.23,
3.24,
3.25,
3.27,
3.29,
3.32,
3.39,
3.39,
3.4,
3.49,
3.54,
3.56,
3.64,
3.67,
3.69,
3.74,
3.75,
3.93,
5.08
],
"xaxis": "x",
"y": [
13.3267,
13.2212,
13.2212,
13.2133,
13.2055,
13.1977,
13.1977,
13.1899,
13.1821,
13.1587,
13.1509,
13.1431,
13.1353,
13.1353,
13.1353,
13.1197,
13.1197,
13.1197,
13.1118,
13.0961,
13.0802,
13.0722,
13.0722,
13.0562,
13.0562,
13.0482,
13.0401,
13.0401,
12.9999,
12.9918,
12.9918,
12.9758,
12.9597,
12.9358,
12.9358,
12.9279,
12.8653,
12.8653,
12.8348,
12.8124,
12.7905,
12.7415,
12.7415,
12.7348,
12.6718,
12.6596,
12.6396,
12.6396,
12.6396,
12.6179,
12.6179,
12.6028,
12.5951,
12.5873,
12.5556,
12.5556,
12.5317,
12.5159,
12.4781,
12.4505,
12.4112,
12.4112,
12.4067,
12.4027,
12.4027,
12.3989,
12.3956,
12.3866,
12.3866,
12.3743,
12.3743,
12.3641,
12.3641,
12.363,
12.3604,
12.3592,
12.3592,
12.3595,
12.3663,
12.3699,
12.3854,
12.3887,
12.3958,
12.3958,
12.3958,
12.3997,
12.4224,
12.433,
12.4445,
12.4508,
12.4731,
12.4731,
12.4906,
12.5099,
12.5419,
12.5533,
12.565,
12.565,
12.5769,
12.5769,
12.6016,
12.6532,
12.7066,
12.7599,
12.7861,
12.7861,
12.8117,
12.8717,
12.8828,
12.8935,
12.9039,
12.9039,
12.9248,
12.958,
12.9931,
13.0172,
13.0294,
13.0418,
13.0418,
13.0418,
13.0418,
13.0792,
13.0792,
13.0792,
13.0918,
13.0918,
13.1545,
13.1791,
13.1791,
13.2034,
13.2153,
13.2153,
13.2932,
13.3132,
13.3229,
13.3326,
13.3424,
13.3522,
13.3522,
13.372,
13.4016,
13.4115,
13.4115,
13.4213,
13.4213,
13.4312,
13.4312,
13.4605,
13.4605,
13.4702,
13.4893,
13.5269,
13.5629,
13.5716,
13.5716,
13.5887,
13.5887,
13.597,
13.605,
13.6353,
13.6423,
13.6492,
13.6622,
13.6744,
13.6913,
13.7235,
13.7235,
13.7273,
13.7526,
13.7599,
13.7614,
13.76,
13.7564,
13.7531,
13.7416,
13.7387,
13.6567,
11.9296
],
"yaxis": "y"
},
{
"error_x": {
"color": "rgba(44,160,44,1)"
},
"error_y": {
"color": "rgba(44,160,44,1)"
},
"line": {
"color": "rgba(44,160,44,1)"
},
"marker": {
"color": "rgba(44,160,44,1)",
"line": {
"color": "rgba(44,160,44,1)"
}
},
"mode": "lines",
"name": "LM",
"type": "scatter",
"x": [
0.34,
0.47,
0.47,
0.48,
0.49,
0.5,
0.5,
0.51,
0.52,
0.55,
0.56,
0.57,
0.58,
0.58,
0.58,
0.6,
0.6,
0.6,
0.61,
0.63,
0.65,
0.66,
0.66,
0.68,
0.68,
0.69,
0.7,
0.7,
0.75,
0.76,
0.76,
0.78,
0.8,
0.83,
0.83,
0.84,
0.92,
0.92,
0.96,
0.99,
1.02,
1.09,
1.09,
1.1,
1.2,
1.22,
1.25,
1.25,
1.25,
1.28,
1.28,
1.3,
1.31,
1.32,
1.36,
1.36,
1.39,
1.41,
1.46,
1.5,
1.57,
1.57,
1.58,
1.59,
1.59,
1.6,
1.61,
1.64,
1.64,
1.69,
1.69,
1.75,
1.75,
1.76,
1.79,
1.84,
1.84,
1.85,
1.92,
1.94,
2,
2.01,
2.03,
2.03,
2.03,
2.04,
2.09,
2.11,
2.13,
2.14,
2.17,
2.17,
2.19,
2.21,
2.24,
2.25,
2.26,
2.26,
2.27,
2.27,
2.29,
2.33,
2.37,
2.41,
2.43,
2.43,
2.45,
2.5,
2.51,
2.52,
2.53,
2.53,
2.55,
2.58,
2.61,
2.63,
2.64,
2.65,
2.65,
2.65,
2.65,
2.68,
2.68,
2.68,
2.69,
2.69,
2.74,
2.76,
2.76,
2.78,
2.79,
2.79,
2.86,
2.88,
2.89,
2.9,
2.91,
2.92,
2.92,
2.94,
2.97,
2.98,
2.98,
2.99,
2.99,
3,
3,
3.03,
3.03,
3.04,
3.06,
3.1,
3.14,
3.15,
3.15,
3.17,
3.17,
3.18,
3.19,
3.23,
3.24,
3.25,
3.27,
3.29,
3.32,
3.39,
3.39,
3.4,
3.49,
3.54,
3.56,
3.64,
3.67,
3.69,
3.74,
3.75,
3.93,
5.08
],
"xaxis": "x",
"y": [
13.0266,
12.9731,
12.9731,
12.9693,
12.9654,
12.9617,
12.9617,
12.9579,
12.9542,
12.9433,
12.9398,
12.9362,
12.9328,
12.9328,
12.9328,
12.9259,
12.9259,
12.9259,
12.9225,
12.9159,
12.9094,
12.9062,
12.9062,
12.8999,
12.8999,
12.8968,
12.8938,
12.8938,
12.8791,
12.8763,
12.8763,
12.8708,
12.8654,
12.8576,
12.8576,
12.8551,
12.8362,
12.8362,
12.8276,
12.8216,
12.8159,
12.8039,
12.8039,
12.8023,
12.7887,
12.7864,
12.7833,
12.7833,
12.7833,
12.7804,
12.7804,
12.7787,
12.7779,
12.7772,
12.7745,
12.7745,
12.7729,
12.772,
12.7705,
12.7699,
12.7703,
12.7703,
12.7705,
12.7707,
12.7707,
12.771,
12.7713,
12.7725,
12.7725,
12.7751,
12.7751,
12.7796,
12.7796,
12.7804,
12.7833,
12.7887,
12.7887,
12.7899,
12.7993,
12.8024,
12.8123,
12.8141,
12.8178,
12.8178,
12.8178,
12.8197,
12.8297,
12.834,
12.8384,
12.8407,
12.8477,
12.8477,
12.8526,
12.8576,
12.8654,
12.8681,
12.8708,
12.8708,
12.8736,
12.8736,
12.8792,
12.8908,
12.9031,
12.9159,
12.9225,
12.9225,
12.9293,
12.9469,
12.9506,
12.9542,
12.958,
12.958,
12.9655,
12.977,
12.9889,
12.9971,
13.0012,
13.0053,
13.0053,
13.0053,
13.0053,
13.018,
13.018,
13.018,
13.0223,
13.0223,
13.0443,
13.0534,
13.0534,
13.0626,
13.0673,
13.0673,
13.101,
13.1109,
13.116,
13.121,
13.1262,
13.1313,
13.1313,
13.1417,
13.1576,
13.1629,
13.1629,
13.1684,
13.1684,
13.1738,
13.1738,
13.1903,
13.1903,
13.1959,
13.2072,
13.2302,
13.2538,
13.2598,
13.2598,
13.2719,
13.2719,
13.278,
13.2842,
13.3091,
13.3154,
13.3218,
13.3346,
13.3476,
13.3674,
13.4147,
13.4147,
13.4217,
13.4856,
13.5224,
13.5373,
13.5987,
13.6223,
13.6383,
13.6788,
13.687,
13.841,
15.1072
],
"yaxis": "y"
}
],
"highlight": {
"debounce": 0,
"dynamic": false,
"on": "plotly_click",
"opacityDim": 0.2,
"persistent": false,
"selected": {
"opacity": 1
},
"selectize": false
},
"layout": {
"hovermode": "closest",
"margin": {
"b": 40,
"l": 60,
"r": 10,
"t": 25
},
"showlegend": true,
"xaxis": {
"automargin": true,
"domain": [
0,
1
],
"title": "Flavanoids"
},
"yaxis": {
"automargin": true,
"domain": [
0,
1
],
"title": "Alcohol"
}
},
"shinyEvents": [
"plotly_hover",
"plotly_click",
"plotly_selected",
"plotly_relayout",
"plotly_brushed",
"plotly_brushing",
"plotly_clickannotation",
"plotly_doubleclick",
"plotly_deselect",
"plotly_afterplot",
"plotly_sunburstclick"
],
"source": "A",
"visdat": {
2021-04-28 15:38:01 +02:00
"e68275cd1338": [
2021-04-21 12:47:19 +02:00
"function () ",
"plotlyVisDat"
]
}
},
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"plotly-binding\" src=\"data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHgua
"<script title=\"typedarray\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpd
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"crosstalk\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj
"<link href=\"data:text/css;charset-utf-8;base64,LyogQWRqdXN0IG1hcmdpbnMgb3V0d2FyZHMsIHNvIGNvbHVtbiBjb250ZW50cyBsaW5lIHVwIHdpdGggdGhlIGVkZ2VzIG9mIHRoZQogICBwYXJlbnQgb2YgY29udGFpbmVyLWZsdWlkLiAqLwouY29udGFpbmVyLWZsdWlkLmNyb3NzdGFsay1ic2NvbHMgewogIG1hcmdpbi1sZWZ0OiAtMzBweDsKICBtYXJnaW4tcmlnaHQ6IC0zMHB4OwogIHdoaXRlLXNwYWNlOiBub3JtYWw7Cn0KCi8qIEJ1dCBkb24ndCBhZGp1c3QgdGhlIG1hcmdpbnMgb3V0d2FyZHMgaWYgd2UncmUgZGlyZWN0bHkgdW5kZXIgdGhlIGJvZHksCiAgIGkuZS4gd2Ugd2VyZSB0aGUgdG9wLWxldmVsIG9mIHNvbWV0aGluZyBhdCB0aGUgY29uc29sZS4gKi8KYm9keSA+IC5jb250YWluZXItZmx1aWQuY3Jvc3N0YWxrLWJzY29scyB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgouY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWdyb3VwIC5jcm9zc3RhbGstb3B0aW9ucy1jb2x1bW4gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwYWRkaW5nLXJpZ2h0OiAxMnB4OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCkgewogIC5jcm9zc3RhbGstaW5wdXQtY2hlY2tib3hncm91cCAuY3Jvc3N0YWxrLW9wdGlvbnMtZ3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWNvbHVtbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7CiAgfQp9Cg==\" rel=\"stylesheet\" />\n",
"<link href=\"data:text/css;charset-utf-8;base64,LyoKanVzdCBoZXJlIHNvIHRoYXQgcGxvdGx5IHdvcmtzCmNvcnJlY3RseSB3aXRoIGlvc2xpZGVzLgpzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvNDYzCiovCgpzbGlkZTpub3QoLmN1cnJlbnQpIC5wbG90bHkuaHRtbC13aWRnZXR7CiAgZGlzcGxheTogbm9uZTsKfQo=\" rel=\"stylesheet\" />\n",
"<script title=\"plotly-main\" src=\"data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFy
"\t</head>\n",
"\t<body>\n",
2021-04-28 15:38:01 +02:00
"\t\t<div id=\"htmlwidget-547ba3e022bc2572f40e\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-547ba3e022bc2572f40e\">{\"x\":{\"visdat\":{\"e68275cd1338\":[\"function () \",\"plotlyVisDat\"]},\"cur_data\":\"e68275cd1338\",\"attrs\":{\"e68275cd1338\":{\"x\":{},\"y\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"scatter\",\"mode\":\"markers\",\"showlegend\":false,\"inherit\":true},\"e68275cd1338.1\":{\"x\":{},\"y\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"scatter\",\"mode\":\"lines\",\"name\":\"LOESS\",\"inherit\":true},\"e68275cd1338.2\":{\"x\":{},\"y\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"scatter\",\"mode\":\"lines\",\"name\":\"LM\",\"inherit\":true}},\"layout\":{\"margin\":{\"b\":40,\"l\":60,\"t\":25,\"r\":10},\"xaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Flavanoids\"},\"yaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Alcohol\"},\"hovermode\":\"closest\",\"showlegend\":true},\"source\":\"A\",\"config\":{\"showSendToCloud\":false},\"data\":[{\"x\":[3.06,2.76,3.24,3.49,2.69,3.39,2.52,2.51,2.98,3.15,3.32,2.43,2.76,3.69,3.64,2.91,3.14,3.4,3.93,3.03,3.17,2.41,2.88,2.37,2.61,2.68,2.94,2.19,2.97,2.33,3.25,3.19,2.69,2.74,2.53,2.98,2.68,2.43,2.64,3.04,3.29,2.68,3.56,2.63,3,2.65,3.17,3.39,2.92,3.54,3.27,2.99,3.74,2.79,2.9,2.78,3,3.23,3.67,0.57,1.09,1.41,1.79,3.1,1.75,2.65,3.18,2,1.3,1.28,1.02,2.86,1.84,2.89,2.14,1.57,2.03,1.32,1.85,2.55,2.26,2.53,1.58,1.59,2.21,1.94,1.69,1.61,1.69,1.59,1.5,1.25,1.46,2.25,2.26,2.27,0.99,2.5,3.75,2.99,2.17,1.36,2.11,1.64,1.92,1.84,2.03,1.76,2.04,2.92,2.58,2.27,2.03,2.01,2.29,2.17,1.6,2.09,1.25,1.64,2.79,5.08,2.13,2.65,3.03,2.65,3.15,2.24,2.45,1.75,1.25,1.22,1.09,1.2,0.58,0.66,0.47,0.6,0.48,0.6,0.5,0.5,0.52,0.8,0.78,0.55,0.34,0.65,0.76,1.39,1.57,1.36,1.28,0.83,0.58,0.63,0.83,0.58,1.31,1.1,0.92,0.56,0.6,0.7,0.68,0.47,0.92,0.66,0.84,0.96,0.49,0.51,0.7,0.61,0.75,0.69,0.68,0.76],\"y\":[14.23,13.2,13.16,14.37,13.24,14.2,14.39,14.06,14.83,13.86,14.1,14.12,13.75,14.75,14.38,13.63,14.3,13.83,14.19,13.64,14.06,12.93,13.71,12.85,13.5,13.05,13.39,13.3,13.87,14.02,13.73,13.58,13.68,13.76,13.51,13.48,13.28,13.05,13.07,14.22,13.56,13.41,13.88,13.24,13.05,14.21,14.38,13.9,14.1,13.94,13.05,13.83,13.82,13.77,13.74,13.56,14.22,13.29,13.72,12.37,12.33,12.64,13.67,12.37,12.17,12.37,13.11,12.37,13.34,12.21,12.29,13.86,13.49,12.99,11.96,11.66,13.03,11.84,12.33,12.7,12,12.72,12.08,13.05,11.84,12.67,12.16,11.65,11.64,12.08,12.08,12,12.69,12.29,11.62,12.47,11.81,12.29,12.37,12.29,12.08,12.6,12.34,11.82,12.51,12.42,12.25,12.72,12.22,11.61,11.46,12.52,11.76,11.41,12.08,11.03,11.82,12.42,12.77,12,11.45,11.56,12.42,13.05,11.87,12.07,12.43,11.79,12.37,12.04,12.86,12.88,12.81,12.7,12.51,12.6,12.25,12.53,13.49,12.84,12.93,13.36,13.52,13.62,12.25,13.16,13.88,12.87,13.32,13.08,13.5,12.79,13.11,13.23,12.58,13.17,13.84,12.45,14.34,13.48,12.36,13.69,12.85,12.96,13.78,13.73,13.45,12.82,13.58,13.4,12.2,12.77,14.16,13.71,13.4,13.27,13.17,14.13],\"type\":\"scatter\",\"mode\":\"markers\",\"showlegend\":false,\"marker\":{\"color\":\"rgba(31,119,180,1)\",\"line\":{\"color\":\"rgba(31,119,180,1)\"}},\"error_y\":{\"color\":\"rgba(31,119,180,1)\"},\"error_x\":{\"color\":\"rgba(31,119,180,1)\"},\"line\":{\"color\":\"rgba(31,119,180,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[0.34,0.47,0.47,0.48,0.49,0.5,0.5,0.51,0.52,0.55,0.56,0.57,0.58,0.58,0.58,0.6,0.6,0.6,0.61,0.63,0.65,0.66,0.66,0.68,0.68,0.69,0.7,0.7,0.75,0.76,0.76,0.78,0.8,0.83,0.83,0.84,0.92,0.92,0.96,0.99,1.02,1.09,1.09,1.1,1.2,1.22,1.25,1.25,1.25,1.28,1.28,1.3,1.31,1.32,1.36,1.36,1.39,1.41,1.46,1.5,1.57,1.57,1.58,1.59,1.59,1.6,1.61,1.64,1.64,1.69,1.69,1.75,1.75,1.76,1.79,1.84,1.84,1.85,1.92,1.94,2,2.01,2.03,2.03,2.03,2.04,2.09,2.11,2.13,2.14,2.17,2.17,2.19,2.21,2.24,2.25,2.26,2.26,2.27,2.27,2.29,2.33,2.37,2.41,2.43,2.43,2.45,2.5,2.51,2.52,2.53,2.53,2.55,2.58,2.61,2.63,2.64,2.65,2.65,2.65,2.65,2.68,2.68,2.68,2.69,2.69,2.74,2.76,2.76,2.78,2.79,2.79,2.86,2.88,2.89,2.9,2.91,2.92,2.92,2.94,2.97,2.98,2.98,2.99,2.99,3,3,3.03,3.03,3.04,3.06,3.1,3.14,3.15,3.15,3.17,3.17,3.18,3.19,3.23,3.24,3.25,3.27,3.2
2021-04-21 12:47:19 +02:00
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"# Adding a smoother\n",
"model.loess <- loess(Alcohol ~ Flavanoids, data = rattle.data::wine)\n",
"model.lm <- lm(Alcohol ~ poly(Flavanoids, 2), data = rattle.data::wine)\n",
"rattle.data::wine %>%\n",
" plot_ly(x = ~Flavanoids, y = ~Alcohol) %>% \n",
" add_markers(showlegend = FALSE) %>%\n",
" add_lines(y = ~fitted(model.loess), name = 'LOESS') %>% \n",
" add_lines(y = ~fitted(model.lm), name = 'LM')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Subplot"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"attrs": {
2021-04-28 15:38:01 +02:00
"e68213936778": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"inherit": true,
"mode": "markers",
"name": {},
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "scatter",
"x": {},
"y": {}
},
2021-04-28 15:38:01 +02:00
"e68275832f87": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"inherit": true,
"mode": "markers",
"name": {},
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "scatter",
"x": {},
"y": {}
},
2021-04-28 15:38:01 +02:00
"e68277a58456": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"inherit": true,
"mode": "markers",
"name": {},
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "scatter",
"x": {},
"y": {}
}
},
"base_url": "https://plot.ly",
"config": {
"showSendToCloud": false
},
"data": [
{
"error_x": {
"color": "rgba(31,119,180,1)"
},
"error_y": {
"color": "rgba(31,119,180,1)"
},
"line": {
"color": "rgba(31,119,180,1)"
},
"marker": {
"color": "rgba(31,119,180,1)",
"line": {
"color": "rgba(31,119,180,1)"
}
},
"mode": "markers",
"name": "1",
"type": "scatter",
"x": [
3.06,
2.76,
3.24,
3.49,
2.69,
3.39,
2.52,
2.51,
2.98,
3.15,
3.32,
2.43,
2.76,
3.69,
3.64,
2.91,
3.14,
3.4,
3.93,
3.03,
3.17,
2.41,
2.88,
2.37,
2.61,
2.68,
2.94,
2.19,
2.97,
2.33,
3.25,
3.19,
2.69,
2.74,
2.53,
2.98,
2.68,
2.43,
2.64,
3.04,
3.29,
2.68,
3.56,
2.63,
3,
2.65,
3.17,
3.39,
2.92,
3.54,
3.27,
2.99,
3.74,
2.79,
2.9,
2.78,
3,
3.23,
3.67
],
"xaxis": "x",
"y": [
14.23,
13.2,
13.16,
14.37,
13.24,
14.2,
14.39,
14.06,
14.83,
13.86,
14.1,
14.12,
13.75,
14.75,
14.38,
13.63,
14.3,
13.83,
14.19,
13.64,
14.06,
12.93,
13.71,
12.85,
13.5,
13.05,
13.39,
13.3,
13.87,
14.02,
13.73,
13.58,
13.68,
13.76,
13.51,
13.48,
13.28,
13.05,
13.07,
14.22,
13.56,
13.41,
13.88,
13.24,
13.05,
14.21,
14.38,
13.9,
14.1,
13.94,
13.05,
13.83,
13.82,
13.77,
13.74,
13.56,
14.22,
13.29,
13.72
],
"yaxis": "y"
},
{
"error_x": {
"color": "rgba(255,127,14,1)"
},
"error_y": {
"color": "rgba(255,127,14,1)"
},
"line": {
"color": "rgba(255,127,14,1)"
},
"marker": {
"color": "rgba(255,127,14,1)",
"line": {
"color": "rgba(255,127,14,1)"
}
},
"mode": "markers",
"name": "2",
"type": "scatter",
"x": [
0.57,
1.09,
1.41,
1.79,
3.1,
1.75,
2.65,
3.18,
2,
1.3,
1.28,
1.02,
2.86,
1.84,
2.89,
2.14,
1.57,
2.03,
1.32,
1.85,
2.55,
2.26,
2.53,
1.58,
1.59,
2.21,
1.94,
1.69,
1.61,
1.69,
1.59,
1.5,
1.25,
1.46,
2.25,
2.26,
2.27,
0.99,
2.5,
3.75,
2.99,
2.17,
1.36,
2.11,
1.64,
1.92,
1.84,
2.03,
1.76,
2.04,
2.92,
2.58,
2.27,
2.03,
2.01,
2.29,
2.17,
1.6,
2.09,
1.25,
1.64,
2.79,
5.08,
2.13,
2.65,
3.03,
2.65,
3.15,
2.24,
2.45,
1.75
],
"xaxis": "x2",
"y": [
12.37,
12.33,
12.64,
13.67,
12.37,
12.17,
12.37,
13.11,
12.37,
13.34,
12.21,
12.29,
13.86,
13.49,
12.99,
11.96,
11.66,
13.03,
11.84,
12.33,
12.7,
12,
12.72,
12.08,
13.05,
11.84,
12.67,
12.16,
11.65,
11.64,
12.08,
12.08,
12,
12.69,
12.29,
11.62,
12.47,
11.81,
12.29,
12.37,
12.29,
12.08,
12.6,
12.34,
11.82,
12.51,
12.42,
12.25,
12.72,
12.22,
11.61,
11.46,
12.52,
11.76,
11.41,
12.08,
11.03,
11.82,
12.42,
12.77,
12,
11.45,
11.56,
12.42,
13.05,
11.87,
12.07,
12.43,
11.79,
12.37,
12.04
],
"yaxis": "y"
},
{
"error_x": {
"color": "rgba(44,160,44,1)"
},
"error_y": {
"color": "rgba(44,160,44,1)"
},
"line": {
"color": "rgba(44,160,44,1)"
},
"marker": {
"color": "rgba(44,160,44,1)",
"line": {
"color": "rgba(44,160,44,1)"
}
},
"mode": "markers",
"name": "3",
"type": "scatter",
"x": [
1.25,
1.22,
1.09,
1.2,
0.58,
0.66,
0.47,
0.6,
0.48,
0.6,
0.5,
0.5,
0.52,
0.8,
0.78,
0.55,
0.34,
0.65,
0.76,
1.39,
1.57,
1.36,
1.28,
0.83,
0.58,
0.63,
0.83,
0.58,
1.31,
1.1,
0.92,
0.56,
0.6,
0.7,
0.68,
0.47,
0.92,
0.66,
0.84,
0.96,
0.49,
0.51,
0.7,
0.61,
0.75,
0.69,
0.68,
0.76
],
"xaxis": "x3",
"y": [
12.86,
12.88,
12.81,
12.7,
12.51,
12.6,
12.25,
12.53,
13.49,
12.84,
12.93,
13.36,
13.52,
13.62,
12.25,
13.16,
13.88,
12.87,
13.32,
13.08,
13.5,
12.79,
13.11,
13.23,
12.58,
13.17,
13.84,
12.45,
14.34,
13.48,
12.36,
13.69,
12.85,
12.96,
13.78,
13.73,
13.45,
12.82,
13.58,
13.4,
12.2,
12.77,
14.16,
13.71,
13.4,
13.27,
13.17,
14.13
],
"yaxis": "y"
}
],
"highlight": {
"debounce": 0,
"dynamic": false,
"on": "plotly_click",
"opacityDim": 0.2,
"persistent": false,
"selected": {
"opacity": 1
},
"selectize": false
},
"layout": {
"annotations": [],
"hovermode": "closest",
"images": [],
"margin": {
"b": 40,
"l": 60,
"r": 10,
"t": 25
},
"shapes": [],
"showlegend": true,
"xaxis": {
"anchor": "y",
"automargin": true,
"domain": [
0,
0.3133
]
},
"xaxis2": {
"anchor": "y",
"automargin": true,
"domain": [
0.3533,
0.6467
]
},
"xaxis3": {
"anchor": "y",
"automargin": true,
"domain": [
0.6867,
1
]
},
"yaxis": {
"anchor": "x",
"automargin": true,
"domain": [
0,
1
],
"title": "Alcohol"
}
},
"shinyEvents": [
"plotly_hover",
"plotly_click",
"plotly_selected",
"plotly_relayout",
"plotly_brushed",
"plotly_brushing",
"plotly_clickannotation",
"plotly_doubleclick",
"plotly_deselect",
"plotly_afterplot",
"plotly_sunburstclick"
],
"source": "A",
"subplot": true
},
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"plotly-binding\" src=\"data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHgua
"<script title=\"typedarray\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpd
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"crosstalk\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj
"<link href=\"data:text/css;charset-utf-8;base64,LyogQWRqdXN0IG1hcmdpbnMgb3V0d2FyZHMsIHNvIGNvbHVtbiBjb250ZW50cyBsaW5lIHVwIHdpdGggdGhlIGVkZ2VzIG9mIHRoZQogICBwYXJlbnQgb2YgY29udGFpbmVyLWZsdWlkLiAqLwouY29udGFpbmVyLWZsdWlkLmNyb3NzdGFsay1ic2NvbHMgewogIG1hcmdpbi1sZWZ0OiAtMzBweDsKICBtYXJnaW4tcmlnaHQ6IC0zMHB4OwogIHdoaXRlLXNwYWNlOiBub3JtYWw7Cn0KCi8qIEJ1dCBkb24ndCBhZGp1c3QgdGhlIG1hcmdpbnMgb3V0d2FyZHMgaWYgd2UncmUgZGlyZWN0bHkgdW5kZXIgdGhlIGJvZHksCiAgIGkuZS4gd2Ugd2VyZSB0aGUgdG9wLWxldmVsIG9mIHNvbWV0aGluZyBhdCB0aGUgY29uc29sZS4gKi8KYm9keSA+IC5jb250YWluZXItZmx1aWQuY3Jvc3N0YWxrLWJzY29scyB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgouY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWdyb3VwIC5jcm9zc3RhbGstb3B0aW9ucy1jb2x1bW4gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwYWRkaW5nLXJpZ2h0OiAxMnB4OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCkgewogIC5jcm9zc3RhbGstaW5wdXQtY2hlY2tib3hncm91cCAuY3Jvc3N0YWxrLW9wdGlvbnMtZ3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWNvbHVtbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7CiAgfQp9Cg==\" rel=\"stylesheet\" />\n",
"<link href=\"data:text/css;charset-utf-8;base64,LyoKanVzdCBoZXJlIHNvIHRoYXQgcGxvdGx5IHdvcmtzCmNvcnJlY3RseSB3aXRoIGlvc2xpZGVzLgpzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvNDYzCiovCgpzbGlkZTpub3QoLmN1cnJlbnQpIC5wbG90bHkuaHRtbC13aWRnZXR7CiAgZGlzcGxheTogbm9uZTsKfQo=\" rel=\"stylesheet\" />\n",
"<script title=\"plotly-main\" src=\"data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFy
"\t</head>\n",
"\t<body>\n",
2021-04-28 15:38:01 +02:00
"\t\t<div id=\"htmlwidget-0f4396350c7e9b0c315a\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-0f4396350c7e9b0c315a\">{\"x\":{\"data\":[{\"x\":[3.06,2.76,3.24,3.49,2.69,3.39,2.52,2.51,2.98,3.15,3.32,2.43,2.76,3.69,3.64,2.91,3.14,3.4,3.93,3.03,3.17,2.41,2.88,2.37,2.61,2.68,2.94,2.19,2.97,2.33,3.25,3.19,2.69,2.74,2.53,2.98,2.68,2.43,2.64,3.04,3.29,2.68,3.56,2.63,3,2.65,3.17,3.39,2.92,3.54,3.27,2.99,3.74,2.79,2.9,2.78,3,3.23,3.67],\"y\":[14.23,13.2,13.16,14.37,13.24,14.2,14.39,14.06,14.83,13.86,14.1,14.12,13.75,14.75,14.38,13.63,14.3,13.83,14.19,13.64,14.06,12.93,13.71,12.85,13.5,13.05,13.39,13.3,13.87,14.02,13.73,13.58,13.68,13.76,13.51,13.48,13.28,13.05,13.07,14.22,13.56,13.41,13.88,13.24,13.05,14.21,14.38,13.9,14.1,13.94,13.05,13.83,13.82,13.77,13.74,13.56,14.22,13.29,13.72],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"1\",\"marker\":{\"color\":\"rgba(31,119,180,1)\",\"line\":{\"color\":\"rgba(31,119,180,1)\"}},\"error_y\":{\"color\":\"rgba(31,119,180,1)\"},\"error_x\":{\"color\":\"rgba(31,119,180,1)\"},\"line\":{\"color\":\"rgba(31,119,180,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[0.57,1.09,1.41,1.79,3.1,1.75,2.65,3.18,2,1.3,1.28,1.02,2.86,1.84,2.89,2.14,1.57,2.03,1.32,1.85,2.55,2.26,2.53,1.58,1.59,2.21,1.94,1.69,1.61,1.69,1.59,1.5,1.25,1.46,2.25,2.26,2.27,0.99,2.5,3.75,2.99,2.17,1.36,2.11,1.64,1.92,1.84,2.03,1.76,2.04,2.92,2.58,2.27,2.03,2.01,2.29,2.17,1.6,2.09,1.25,1.64,2.79,5.08,2.13,2.65,3.03,2.65,3.15,2.24,2.45,1.75],\"y\":[12.37,12.33,12.64,13.67,12.37,12.17,12.37,13.11,12.37,13.34,12.21,12.29,13.86,13.49,12.99,11.96,11.66,13.03,11.84,12.33,12.7,12,12.72,12.08,13.05,11.84,12.67,12.16,11.65,11.64,12.08,12.08,12,12.69,12.29,11.62,12.47,11.81,12.29,12.37,12.29,12.08,12.6,12.34,11.82,12.51,12.42,12.25,12.72,12.22,11.61,11.46,12.52,11.76,11.41,12.08,11.03,11.82,12.42,12.77,12,11.45,11.56,12.42,13.05,11.87,12.07,12.43,11.79,12.37,12.04],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"2\",\"marker\":{\"color\":\"rgba(255,127,14,1)\",\"line\":{\"color\":\"rgba(255,127,14,1)\"}},\"error_y\":{\"color\":\"rgba(255,127,14,1)\"},\"error_x\":{\"color\":\"rgba(255,127,14,1)\"},\"line\":{\"color\":\"rgba(255,127,14,1)\"},\"xaxis\":\"x2\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[1.25,1.22,1.09,1.2,0.58,0.66,0.47,0.6,0.48,0.6,0.5,0.5,0.52,0.8,0.78,0.55,0.34,0.65,0.76,1.39,1.57,1.36,1.28,0.83,0.58,0.63,0.83,0.58,1.31,1.1,0.92,0.56,0.6,0.7,0.68,0.47,0.92,0.66,0.84,0.96,0.49,0.51,0.7,0.61,0.75,0.69,0.68,0.76],\"y\":[12.86,12.88,12.81,12.7,12.51,12.6,12.25,12.53,13.49,12.84,12.93,13.36,13.52,13.62,12.25,13.16,13.88,12.87,13.32,13.08,13.5,12.79,13.11,13.23,12.58,13.17,13.84,12.45,14.34,13.48,12.36,13.69,12.85,12.96,13.78,13.73,13.45,12.82,13.58,13.4,12.2,12.77,14.16,13.71,13.4,13.27,13.17,14.13],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"3\",\"marker\":{\"color\":\"rgba(44,160,44,1)\",\"line\":{\"color\":\"rgba(44,160,44,1)\"}},\"error_y\":{\"color\":\"rgba(44,160,44,1)\"},\"error_x\":{\"color\":\"rgba(44,160,44,1)\"},\"line\":{\"color\":\"rgba(44,160,44,1)\"},\"xaxis\":\"x3\",\"yaxis\":\"y\",\"frame\":null}],\"layout\":{\"xaxis\":{\"domain\":[0,0.313333333333333],\"automargin\":true,\"anchor\":\"y\"},\"xaxis2\":{\"domain\":[0.353333333333333,0.646666666666667],\"automargin\":true,\"anchor\":\"y\"},\"xaxis3\":{\"domain\":[0.686666666666667,1],\"automargin\":true,\"anchor\":\"y\"},\"yaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Alcohol\",\"anchor\":\"x\"},\"annotations\":[],\"shapes\":[],\"images\":[],\"margin\":{\"b\":40,\"l\":60,\"t\":25,\"r\":10},\"hovermode\":\"closest\",\"showlegend\":true},\"attrs\":{\"e68275832f87\":{\"x\":{},\"y\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":{},\"inherit\":true},\"e68277a58456\":{\"x\":{},\"y\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":{},\"inherit\":true},\"e68213936778\":{\"x\":{},\"y\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":{},\"inherit\":true}},\"source\":\"A\",\"config\"
2021-04-21 12:47:19 +02:00
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"# Subplot\n",
"rattle.data::wine %>% \n",
" group_by(Type) %>% \n",
" do(plot = plot_ly(data = ., x = ~Flavanoids, y = ~Alcohol) %>% \n",
" add_markers(name = ~Type)) %>% \n",
" subplot(nrows = 1, shareY = TRUE)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Customizing the plot"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
2021-04-28 15:38:01 +02:00
"scrolled": false
2021-04-21 12:47:19 +02:00
},
"outputs": [
{
"data": {
"application/vnd.plotly.v1+json": {
"attrs": {
2021-04-28 15:38:01 +02:00
"e6825d1a6c15": {
2021-04-21 12:47:19 +02:00
"alpha_stroke": 1,
"color": {},
"inherit": true,
"mode": "markers",
"sizes": [
10,
100
],
"spans": [
1,
20
],
"type": "scatter",
"x": {},
"y": {}
}
},
"base_url": "https://plot.ly",
"config": {
"showSendToCloud": false
},
2021-04-28 15:38:01 +02:00
"cur_data": "e6825d1a6c15",
2021-04-21 12:47:19 +02:00
"data": [
{
"error_x": {
"color": "rgba(102,194,165,1)"
},
"error_y": {
"color": "rgba(102,194,165,1)"
},
"line": {
"color": "rgba(102,194,165,1)"
},
"marker": {
"color": "rgba(102,194,165,1)",
"line": {
"color": "rgba(102,194,165,1)"
}
},
"mode": "markers",
"name": "1",
"textfont": {
"color": "rgba(102,194,165,1)"
},
"type": "scatter",
"x": [
2.8,
2.65,
2.8,
3.85,
2.8,
3.27,
2.5,
2.6,
2.8,
2.98,
2.95,
2.2,
2.6,
3.1,
3.3,
2.85,
2.8,
2.95,
3.3,
2.7,
3,
2.41,
2.61,
2.48,
2.53,
2.63,
2.85,
2.4,
2.95,
2.65,
3,
2.86,
2.42,
2.95,
2.35,
2.7,
2.6,
2.45,
2.4,
3,
3.15,
2.45,
3.25,
2.64,
3,
2.85,
3.25,
3.1,
2.75,
2.88,
2.72,
2.45,
3.88,
3,
2.6,
2.96,
3.2,
3,
3.4
],
"xaxis": "x",
"y": [
14.23,
13.2,
13.16,
14.37,
13.24,
14.2,
14.39,
14.06,
14.83,
13.86,
14.1,
14.12,
13.75,
14.75,
14.38,
13.63,
14.3,
13.83,
14.19,
13.64,
14.06,
12.93,
13.71,
12.85,
13.5,
13.05,
13.39,
13.3,
13.87,
14.02,
13.73,
13.58,
13.68,
13.76,
13.51,
13.48,
13.28,
13.05,
13.07,
14.22,
13.56,
13.41,
13.88,
13.24,
13.05,
14.21,
14.38,
13.9,
14.1,
13.94,
13.05,
13.83,
13.82,
13.77,
13.74,
13.56,
14.22,
13.29,
13.72
],
"yaxis": "y"
},
{
"error_x": {
"color": "rgba(252,141,98,1)"
},
"error_y": {
"color": "rgba(252,141,98,1)"
},
"line": {
"color": "rgba(252,141,98,1)"
},
"marker": {
"color": "rgba(252,141,98,1)",
"line": {
"color": "rgba(252,141,98,1)"
}
},
"mode": "markers",
"name": "2",
"textfont": {
"color": "rgba(252,141,98,1)"
},
"type": "scatter",
"x": [
1.98,
2.05,
2.02,
2.1,
3.5,
1.89,
2.42,
2.98,
2.11,
2.53,
1.85,
1.1,
2.95,
1.88,
3.3,
3.38,
1.61,
1.95,
1.72,
1.9,
2.83,
2.42,
2.2,
2,
1.65,
2.2,
2.2,
1.78,
1.92,
1.95,
2.2,
1.6,
1.45,
1.38,
2.45,
3.02,
2.5,
1.6,
2.55,
3.52,
2.85,
2.23,
1.45,
2.56,
2.5,
2.2,
1.68,
1.65,
1.38,
2.36,
2.74,
3.18,
2.55,
1.75,
2.48,
2.56,
2.46,
1.98,
2,
1.63,
2,
2.9,
3.18,
2.2,
2.62,
2.86,
2.6,
2.74,
2.13,
2.22,
2.1
],
"xaxis": "x",
"y": [
12.37,
12.33,
12.64,
13.67,
12.37,
12.17,
12.37,
13.11,
12.37,
13.34,
12.21,
12.29,
13.86,
13.49,
12.99,
11.96,
11.66,
13.03,
11.84,
12.33,
12.7,
12,
12.72,
12.08,
13.05,
11.84,
12.67,
12.16,
11.65,
11.64,
12.08,
12.08,
12,
12.69,
12.29,
11.62,
12.47,
11.81,
12.29,
12.37,
12.29,
12.08,
12.6,
12.34,
11.82,
12.51,
12.42,
12.25,
12.72,
12.22,
11.61,
11.46,
12.52,
11.76,
11.41,
12.08,
11.03,
11.82,
12.42,
12.77,
12,
11.45,
11.56,
12.42,
13.05,
11.87,
12.07,
12.43,
11.79,
12.37,
12.04
],
"yaxis": "y"
},
{
"error_x": {
"color": "rgba(141,160,203,1)"
},
"error_y": {
"color": "rgba(141,160,203,1)"
},
"line": {
"color": "rgba(141,160,203,1)"
},
"marker": {
"color": "rgba(141,160,203,1)",
"line": {
"color": "rgba(141,160,203,1)"
}
},
"mode": "markers",
"name": "3",
"textfont": {
"color": "rgba(141,160,203,1)"
},
"type": "scatter",
"x": [
1.51,
1.3,
1.15,
1.7,
2,
1.62,
1.38,
1.79,
1.62,
2.32,
1.54,
1.4,
1.55,
2,
1.38,
1.5,
0.98,
1.7,
1.93,
1.41,
1.4,
1.48,
2.2,
1.8,
1.48,
1.74,
1.8,
1.9,
2.8,
2.6,
2.3,
1.83,
1.65,
1.39,
1.35,
1.28,
1.7,
1.48,
1.55,
1.98,
1.25,
1.39,
1.68,
1.68,
1.8,
1.59,
1.65,
2.05
],
"xaxis": "x",
"y": [
12.86,
12.88,
12.81,
12.7,
12.51,
12.6,
12.25,
12.53,
13.49,
12.84,
12.93,
13.36,
13.52,
13.62,
12.25,
13.16,
13.88,
12.87,
13.32,
13.08,
13.5,
12.79,
13.11,
13.23,
12.58,
13.17,
13.84,
12.45,
14.34,
13.48,
12.36,
13.69,
12.85,
12.96,
13.78,
13.73,
13.45,
12.82,
13.58,
13.4,
12.2,
12.77,
14.16,
13.71,
13.4,
13.27,
13.17,
14.13
],
"yaxis": "y"
}
],
"highlight": {
"debounce": 0,
"dynamic": false,
"on": "plotly_click",
"opacityDim": 0.2,
"persistent": false,
"selected": {
"opacity": 1
},
"selectize": false
},
"layout": {
"hovermode": "closest",
"margin": {
"b": 40,
"l": 60,
"r": 10,
"t": 25
},
"paper_bgcolor": "#ebebeb",
"showlegend": true,
"title": "Alcohol and Phenols",
"xaxis": {
"automargin": true,
"domain": [
0,
1
],
"showgrid": false,
"title": "Alcohol",
"zeroline": false
},
"yaxis": {
"automargin": true,
"domain": [
0,
1
],
"showgrid": false,
"title": "Total phenols",
"zeroline": false
}
},
"shinyEvents": [
"plotly_hover",
"plotly_click",
"plotly_selected",
"plotly_relayout",
"plotly_brushed",
"plotly_brushing",
"plotly_clickannotation",
"plotly_doubleclick",
"plotly_deselect",
"plotly_afterplot",
"plotly_sunburstclick"
],
"source": "A",
"visdat": {
2021-04-28 15:38:01 +02:00
"e6825d1a6c15": [
2021-04-21 12:47:19 +02:00
"function () ",
"plotlyVisDat"
]
}
},
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"plotly-binding\" src=\"data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKHguc2VsZWN0aXplIHx8IHguaGlnaGxpZ2h0LmR5bmFtaWMgJiYgIWluc3RhbmNlLnBsb3RseSkgewogICAgICB2YXIgZmxleCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBmbGV4LmNsYXNzID0gInBsb3RseS1jcm9zc3RhbGstY29udHJvbC1wYW5lbCI7CiAgICAgIGZsZXguc3R5bGUgPSAiZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwIjsKICAgICAgCiAgICAgIC8vIGluamVjdCB0aGUgY29sb3VycGlja2VyIEhUTUwgY29udGFpbmVyIGludG8gdGhlIGZsZXhib3gKICAgICAgaWYgKHgua
"<script title=\"typedarray\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpd
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"crosstalk\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj
"<link href=\"data:text/css;charset-utf-8;base64,LyogQWRqdXN0IG1hcmdpbnMgb3V0d2FyZHMsIHNvIGNvbHVtbiBjb250ZW50cyBsaW5lIHVwIHdpdGggdGhlIGVkZ2VzIG9mIHRoZQogICBwYXJlbnQgb2YgY29udGFpbmVyLWZsdWlkLiAqLwouY29udGFpbmVyLWZsdWlkLmNyb3NzdGFsay1ic2NvbHMgewogIG1hcmdpbi1sZWZ0OiAtMzBweDsKICBtYXJnaW4tcmlnaHQ6IC0zMHB4OwogIHdoaXRlLXNwYWNlOiBub3JtYWw7Cn0KCi8qIEJ1dCBkb24ndCBhZGp1c3QgdGhlIG1hcmdpbnMgb3V0d2FyZHMgaWYgd2UncmUgZGlyZWN0bHkgdW5kZXIgdGhlIGJvZHksCiAgIGkuZS4gd2Ugd2VyZSB0aGUgdG9wLWxldmVsIG9mIHNvbWV0aGluZyBhdCB0aGUgY29uc29sZS4gKi8KYm9keSA+IC5jb250YWluZXItZmx1aWQuY3Jvc3N0YWxrLWJzY29scyB7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgouY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWdyb3VwIC5jcm9zc3RhbGstb3B0aW9ucy1jb2x1bW4gewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBwYWRkaW5nLXJpZ2h0OiAxMnB4OwogIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCkgewogIC5jcm9zc3RhbGstaW5wdXQtY2hlY2tib3hncm91cCAuY3Jvc3N0YWxrLW9wdGlvbnMtZ3JvdXAgLmNyb3NzdGFsay1vcHRpb25zLWNvbHVtbiB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7CiAgfQp9Cg==\" rel=\"stylesheet\" />\n",
"<link href=\"data:text/css;charset-utf-8;base64,LyoKanVzdCBoZXJlIHNvIHRoYXQgcGxvdGx5IHdvcmtzCmNvcnJlY3RseSB3aXRoIGlvc2xpZGVzLgpzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvNDYzCiovCgpzbGlkZTpub3QoLmN1cnJlbnQpIC5wbG90bHkuaHRtbC13aWRnZXR7CiAgZGlzcGxheTogbm9uZTsKfQo=\" rel=\"stylesheet\" />\n",
"<script title=\"plotly-main\" src=\"data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjUyLjIKKiBDb3B5cmlnaHQgMjAxMi0yMDIwLCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNleygidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOnRoaXMpLlBsb3RseT10KCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBhKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cyxmdW5jdGlvbih0KXtyZXR1cm4gYShlW29dWzFdW3RdfHx0KX0sdSx1LmV4cG9ydHMsdCxlLHIsbil9cmV0dXJuIHJbb10uZXhwb3J0c31mb3IodmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsbz0wO288bi5sZW5ndGg7bysrKWEobltvXSk7cmV0dXJuIGF9fSgpKHsxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NyYy9saWIiKSxhPXsiWCxYIGRpdiI6ImRpcmVjdGlvbjpsdHI7Zm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItZGVmYXVsdCI6ImN1cnNvcjpkZWZhdWx0OyIsIlggLmN1cnNvci1wb2ludGVyIjoiY3Vyc29yOnBvaW50ZXI7IiwiWCAuY3Vyc29yLWNyb3NzaGFpciI6ImN1cnNvcjpjcm9zc2hhaXI7IiwiWCAuY3Vyc29yLW1vdmUiOiJjdXJzb3I6bW92ZTsiLCJYIC5jdXJzb3ItY29sLXJlc2l6ZSI6ImN1cnNvcjpjb2wtcmVzaXplOyIsIlggLmN1cnNvci1yb3ctcmVzaXplIjoiY3Vyc29yOnJvdy1yZXNpemU7IiwiWCAuY3Vyc29yLW5zLXJlc2l6ZSI6ImN1cnNvcjpucy1yZXNpemU7IiwiWCAuY3Vyc29yLWV3LXJlc2l6ZSI6ImN1cnNvcjpldy1yZXNpemU7IiwiWCAuY3Vyc29yLXN3LXJlc2l6ZSI6ImN1cnNvcjpzdy1yZXNpemU7IiwiWCAuY3Vyc29yLXMtcmVzaXplIjoiY3Vyc29yOnMtcmVzaXplOyIsIlggLmN1cnNvci1zZS1yZXNpemUiOiJjdXJzb3I6c2UtcmVzaXplOyIsIlggLmN1cnNvci13LXJlc2l6ZSI6ImN1cnNvcjp3LXJlc2l6ZTsiLCJYIC5jdXJzb3ItZS1yZXNpemUiOiJjdXJzb3I6ZS1yZXNpemU7IiwiWCAuY3Vyc29yLW53LXJlc2l6ZSI6ImN1cnNvcjpudy1yZXNpemU7IiwiWCAuY3Vyc29yLW4tcmVzaXplIjoiY3Vyc29yOm4tcmVzaXplOyIsIlggLmN1cnNvci1uZS1yZXNpemUiOiJjdXJzb3I6bmUtcmVzaXplOyIsIlggLmN1cnNvci1ncmFiIjoiY3Vyc29yOi13ZWJraXQtZ3JhYjtjdXJzb3I6Z3JhYjsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7IiwiWCAuZWFzZS1iZyI6Ii13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7IiwiWDpob3ZlciAubW9kZWJhci0taG92ZXIgLm1vZGViYXItZ3JvdXAiOiJvcGFjaXR5OjE7IiwiWCAubW9kZWJhci1ncm91cCI6ImZsb2F0OmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmctbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFy
"\t</head>\n",
"\t<body>\n",
2021-04-28 15:38:01 +02:00
"\t\t<div id=\"htmlwidget-d38ade5e852e90521611\" style=\"width:100%;height:400px;\" class=\"plotly html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-d38ade5e852e90521611\">{\"x\":{\"visdat\":{\"e6825d1a6c15\":[\"function () \",\"plotlyVisDat\"]},\"cur_data\":\"e6825d1a6c15\",\"attrs\":{\"e6825d1a6c15\":{\"x\":{},\"y\":{},\"alpha_stroke\":1,\"sizes\":[10,100],\"spans\":[1,20],\"type\":\"scatter\",\"mode\":\"markers\",\"color\":{},\"inherit\":true}},\"layout\":{\"margin\":{\"b\":40,\"l\":60,\"t\":25,\"r\":10},\"xaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Alcohol\",\"showgrid\":false,\"zeroline\":false},\"yaxis\":{\"domain\":[0,1],\"automargin\":true,\"title\":\"Total phenols\",\"showgrid\":false,\"zeroline\":false},\"title\":\"Alcohol and Phenols\",\"paper_bgcolor\":\"#ebebeb\",\"hovermode\":\"closest\",\"showlegend\":true},\"source\":\"A\",\"config\":{\"showSendToCloud\":false},\"data\":[{\"x\":[2.8,2.65,2.8,3.85,2.8,3.27,2.5,2.6,2.8,2.98,2.95,2.2,2.6,3.1,3.3,2.85,2.8,2.95,3.3,2.7,3,2.41,2.61,2.48,2.53,2.63,2.85,2.4,2.95,2.65,3,2.86,2.42,2.95,2.35,2.7,2.6,2.45,2.4,3,3.15,2.45,3.25,2.64,3,2.85,3.25,3.1,2.75,2.88,2.72,2.45,3.88,3,2.6,2.96,3.2,3,3.4],\"y\":[14.23,13.2,13.16,14.37,13.24,14.2,14.39,14.06,14.83,13.86,14.1,14.12,13.75,14.75,14.38,13.63,14.3,13.83,14.19,13.64,14.06,12.93,13.71,12.85,13.5,13.05,13.39,13.3,13.87,14.02,13.73,13.58,13.68,13.76,13.51,13.48,13.28,13.05,13.07,14.22,13.56,13.41,13.88,13.24,13.05,14.21,14.38,13.9,14.1,13.94,13.05,13.83,13.82,13.77,13.74,13.56,14.22,13.29,13.72],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"1\",\"marker\":{\"color\":\"rgba(102,194,165,1)\",\"line\":{\"color\":\"rgba(102,194,165,1)\"}},\"textfont\":{\"color\":\"rgba(102,194,165,1)\"},\"error_y\":{\"color\":\"rgba(102,194,165,1)\"},\"error_x\":{\"color\":\"rgba(102,194,165,1)\"},\"line\":{\"color\":\"rgba(102,194,165,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[1.98,2.05,2.02,2.1,3.5,1.89,2.42,2.98,2.11,2.53,1.85,1.1,2.95,1.88,3.3,3.38,1.61,1.95,1.72,1.9,2.83,2.42,2.2,2,1.65,2.2,2.2,1.78,1.92,1.95,2.2,1.6,1.45,1.38,2.45,3.02,2.5,1.6,2.55,3.52,2.85,2.23,1.45,2.56,2.5,2.2,1.68,1.65,1.38,2.36,2.74,3.18,2.55,1.75,2.48,2.56,2.46,1.98,2,1.63,2,2.9,3.18,2.2,2.62,2.86,2.6,2.74,2.13,2.22,2.1],\"y\":[12.37,12.33,12.64,13.67,12.37,12.17,12.37,13.11,12.37,13.34,12.21,12.29,13.86,13.49,12.99,11.96,11.66,13.03,11.84,12.33,12.7,12,12.72,12.08,13.05,11.84,12.67,12.16,11.65,11.64,12.08,12.08,12,12.69,12.29,11.62,12.47,11.81,12.29,12.37,12.29,12.08,12.6,12.34,11.82,12.51,12.42,12.25,12.72,12.22,11.61,11.46,12.52,11.76,11.41,12.08,11.03,11.82,12.42,12.77,12,11.45,11.56,12.42,13.05,11.87,12.07,12.43,11.79,12.37,12.04],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"2\",\"marker\":{\"color\":\"rgba(252,141,98,1)\",\"line\":{\"color\":\"rgba(252,141,98,1)\"}},\"textfont\":{\"color\":\"rgba(252,141,98,1)\"},\"error_y\":{\"color\":\"rgba(252,141,98,1)\"},\"error_x\":{\"color\":\"rgba(252,141,98,1)\"},\"line\":{\"color\":\"rgba(252,141,98,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null},{\"x\":[1.51,1.3,1.15,1.7,2,1.62,1.38,1.79,1.62,2.32,1.54,1.4,1.55,2,1.38,1.5,0.98,1.7,1.93,1.41,1.4,1.48,2.2,1.8,1.48,1.74,1.8,1.9,2.8,2.6,2.3,1.83,1.65,1.39,1.35,1.28,1.7,1.48,1.55,1.98,1.25,1.39,1.68,1.68,1.8,1.59,1.65,2.05],\"y\":[12.86,12.88,12.81,12.7,12.51,12.6,12.25,12.53,13.49,12.84,12.93,13.36,13.52,13.62,12.25,13.16,13.88,12.87,13.32,13.08,13.5,12.79,13.11,13.23,12.58,13.17,13.84,12.45,14.34,13.48,12.36,13.69,12.85,12.96,13.78,13.73,13.45,12.82,13.58,13.4,12.2,12.77,14.16,13.71,13.4,13.27,13.17,14.13],\"type\":\"scatter\",\"mode\":\"markers\",\"name\":\"3\",\"marker\":{\"color\":\"rgba(141,160,203,1)\",\"line\":{\"color\":\"rgba(141,160,203,1)\"}},\"textfont\":{\"color\":\"rgba(141,160,203,1)\"},\"error_y\":{\"color\":\"rgba(141,160,203,1)\"},\"error_x\":{\"color\":\"rgba(141,160,203,1)\"},\"line\":{\"color\":\"rgba(141,160,203,1)\"},\"xaxis\":\"x\",\"yaxis\":\"y\",\"frame\":null}],\"highlight\":{\"on\":\"plotly_click\",\"persistent\":false,\"dynamic\":false,\"selectize\":false,\"opacityDim\":0.2,\"selected\":{\"opacity\":1},\"debounce\":0},\"shinyEvents\":[\"plotly_hover\",\"plotly_click\",
2021-04-21 12:47:19 +02:00
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"# Customizing the plot\n",
"rattle.data::wine %>% \n",
" plot_ly(x = ~Phenols, \n",
" y = ~Alcohol) %>% \n",
" add_markers(color = ~Type) %>% \n",
" layout(xaxis = list(title = 'Alcohol', showgrid = FALSE, zeroline = FALSE),\n",
" yaxis = list(title = 'Total phenols', showgrid = FALSE, zeroline = FALSE),\n",
" title = 'Alcohol and Phenols',\n",
" paper_bgcolor = '#ebebeb')"
]
},
2021-04-28 15:38:01 +02:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Biblioteka highcharter"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Jest to wrapper dla biblioteki *Highcharts*. *Highcharts* (<http://www.highcharts.com/>) jest biblioteką do tworzenia wykresów napisaną w języku JavaScript, wydaną po raz pierwszy w 2009 roku. Jest bezpłatna do użytku osobistego / niekomercyjnego i płatna w przypadku zastosowań komercyjnych."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Warning message:\n",
"“package highcharter was built under R version 3.6.2”\n",
"Registered S3 method overwritten by 'quantmod':\n",
" method from\n",
" as.zoo.data.frame zoo \n",
"\n"
]
}
],
"source": [
"library(highcharter)\n",
"library(dplyr)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Parsed with column specification:\n",
"cols(\n",
" name = \u001b[31mcol_character()\u001b[39m,\n",
" sport = \u001b[31mcol_character()\u001b[39m,\n",
" nationality = \u001b[31mcol_character()\u001b[39m,\n",
" sex = \u001b[31mcol_character()\u001b[39m,\n",
" date_of_birth = \u001b[31mcol_character()\u001b[39m,\n",
" age = \u001b[32mcol_double()\u001b[39m,\n",
" height = \u001b[32mcol_double()\u001b[39m,\n",
" weight = \u001b[32mcol_double()\u001b[39m\n",
")\n",
"\n"
]
}
],
"source": [
"readr::read_csv('https://raw.githubusercontent.com/mekhatria/demo_highcharts/master/Olympics2012CapitalLetter.csv') %>% \n",
" select(-nationality, -date_of_birth, -name, -age) %>% \n",
" filter(sport %in% c('Gymnastics', 'Canoe', 'Hockey', 'Modern Pentathlon'), \n",
" sex == 'male') -> df"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Warning message:\n",
"“'hcboxplot' is deprecated.\n",
"Use 'data_to_boxplot' instead.\n",
"See help(\"Deprecated\")”\n"
]
},
{
"data": {
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjAgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4wIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyP
"<script title=\"proj4js\" src=\"data:application/javascript;base64,IWZ1bmN0aW9uKGEpe2lmKCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGUpbW9kdWxlLmV4cG9ydHM9YSgpO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZClkZWZpbmUoW10sYSk7ZWxzZXt2YXIgYjtiPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6dGhpcyxiLnByb2o0PWEoKX19KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGEoYixjLGQpe2Z1bmN0aW9uIGUoZyxoKXtpZighY1tnXSl7aWYoIWJbZ10pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFoJiZpKXJldHVybiBpKGcsITApO2lmKGYpcmV0dXJuIGYoZywhMCk7dmFyIGo9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrZysiJyIpO3Rocm93IGouY29kZT0iTU9EVUxFX05PVF9GT1VORCIsan12YXIgaz1jW2ddPXtleHBvcnRzOnt9fTtiW2ddWzBdLmNhbGwoay5leHBvcnRzLGZ1bmN0aW9uKGEpe3ZhciBjPWJbZ11bMV1bYV07cmV0dXJuIGUoYz9jOmEpfSxrLGsuZXhwb3J0cyxhLGIsYyxkKX1yZXR1cm4gY1tnXS5leHBvcnRzfWZvcih2YXIgZj0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxnPTA7ZzxkLmxlbmd0aDtnKyspZShkW2ddKTtyZXR1cm4gZX0oeyIuL2luY2x1ZGVkUHJvamVjdGlvbnMiOltmdW5jdGlvbihhLGIsYyl7dmFyIGQ9W2EoIi4vbGliL3Byb2plY3Rpb25zL3RtZXJjIiksYSgiLi9saWIvcHJvamVjdGlvbnMvdXRtIiksYSgiLi9saWIvcHJvamVjdGlvbnMvc3RlcmVhIiksYSgiLi9saWIvcHJvamVjdGlvbnMvc3RlcmUiKSxhKCIuL2xpYi9wcm9qZWN0aW9ucy9zb21lcmMiKSxhKCIuL2xpYi9wcm9qZWN0aW9ucy9vbWVyYyIpLGEoIi4vbGliL3Byb2plY3Rpb25zL2xjYyIpLGEoIi4vbGliL3Byb2plY3Rpb25zL2tyb3ZhayIpLGEoIi4vbGliL3Byb2plY3Rpb25zL2Nhc3MiKSxhKCIuL2xpYi9wcm9qZWN0aW9ucy9sYWVhIiksYSgiLi9saWIvcHJvamVjdGlvbnMvYWVhIiksYSgiLi9saWIvcHJvamVjdGlvbnMvZ25vbSIpLGEoIi4vbGliL3Byb2plY3Rpb25zL2NlYSIpLGEoIi4vbGliL3Byb2plY3Rpb25zL2VxYyIpLGEoIi4vbGliL3Byb2plY3Rpb25zL3BvbHkiKSxhKCIuL2xpYi9wcm9qZWN0aW9ucy9uem1nIiksYSgiLi9saWIvcHJvamVjdGlvbnMvbWlsbCIpLGEoIi4vbGliL3Byb2plY3Rpb25zL3NpbnUiKSxhKCIuL2xpYi9wcm9qZWN0aW9ucy9tb2xsIiksYSgiLi9saWIvcHJvamVjdGlvbnMvZXFkYyIpLGEoIi4vbGliL3Byb2plY3Rpb25zL3ZhbmRnIiksYSgiLi9saWIvcHJvamVjdGlvbnMvYWVxZCIpLGEoIi4vbGliL3Byb2plY3Rpb25zL29ydGhvIildO2IuZXhwb3J0cz1mdW5jdGlvbihwcm9qNCl7ZC5mb3JFYWNoKGZ1bmN0aW9uKGEpe3Byb2o0LlByb2oucHJvamVjdGlvbnMuYWRkKGEpfSl9fSx7Ii4vbGliL3Byb2plY3Rpb25zL2FlYSI6NDAsIi4vbGliL3Byb2plY3Rpb25zL2FlcWQiOjQxLCIuL2xpYi9wcm9qZWN0aW9ucy9jYXNzIjo0MiwiLi9saWIvcHJvamVjdGlvbnMvY2VhIjo0MywiLi9saWIvcHJvamVjdGlvbnMvZXFjIjo0NCwiLi9saWIvcHJvamVjdGlvbnMvZXFkYyI6NDUsIi4vbGliL3Byb2plY3Rpb25zL2dub20iOjQ3LCIuL2xpYi9wcm9qZWN0aW9ucy9rcm92YWsiOjQ4LCIuL2xpYi9wcm9qZWN0aW9ucy9sYWVhIjo0OSwiLi9saWIvcHJvamVjdGlvbnMvbGNjIjo1MCwiLi9saWIvcHJvamVjdGlvbnMvbWlsbCI6NTMsIi4vbGliL3Byb2plY3Rpb25zL21vbGwiOjU0LCIuL2xpYi9wcm9qZWN0aW9ucy9uem1nIjo1NSwiLi9saWIvcHJvamVjdGlvbnMvb21lcmMiOjU2LCIuL2xpYi9wcm9qZWN0aW9ucy9vcnRobyI6NTcsIi4vbGliL3Byb2plY3Rpb25zL3BvbHkiOjU4LCIuL2xpYi9wcm9qZWN0aW9ucy9zaW51Ijo1OSwiLi9saWIvcHJvamVjdGlvbnMvc29tZXJjIjo2MCwiLi9saWIvcHJvamVjdGlvbnMvc3RlcmUiOjYxLCIuL2xpYi9wcm9qZWN0aW9ucy9zdGVyZWEiOjYyLCIuL2xpYi9wcm9qZWN0aW9ucy90bWVyYyI6NjMsIi4vbGliL3Byb2plY3Rpb25zL3V0bSI6NjQsIi4vbGliL3Byb2plY3Rpb25zL3ZhbmRnIjo2NX1dLDE6W2Z1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBQb2ludChhLGIsYyl7aWYoISh0aGlzIGluc3RhbmNlb2YgUG9pbnQpKXJldHVybiBuZXcgUG9pbnQoYSxiLGMpO2lmKEFycmF5LmlzQXJyYXkoYSkpdGhpcy54PWFbMF0sdGhpcy55PWFbMV0sdGhpcy56PWFbMl18fDA7ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIGEpdGhpcy54PWEueCx0aGlzLnk9YS55LHRoaXMuej1hLnp8fDA7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGEmJiJ1bmRlZmluZWQiPT10eXBlb2YgYil7dmFyIGQ9YS5zcGxpdCgiLCIpO3RoaXMueD1wYXJzZUZsb2F0KGRbMF0sMTApLHRoaXMueT1wYXJzZUZsb2F0KGRbMV0sMTApLHRoaXMuej1wYXJzZUZsb2F0KGRbMl0sMTApfHwwfWVsc2UgdGhpcy54PWEsdGhpcy55PWIsdGhpcy56PWN8fDA7Y29uc29sZS53YXJuKCJwcm9qNC5Qb2ludCB3aWxsIGJlIHJlbW92ZWQgaW4gdmVyc2lvbiAzLCB1c2UgcHJvajQudG9Qb2ludCIpfXZhciBkPWEoIm1ncnMiKTtQb2ludC5mcm9tTUdSUz1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IFBvaW50KGQudG9Qb2ludChhKSl9LFBvaW50LnByb3RvdHlwZS50b01HUlM9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZm9yd2FyZChbdGhpcy54LHRoaXMueV0sYSl9LGIuZXhwb3J0cz1Qb2ludH0se21ncnM6Njh9XSwyOltmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gUHJvamVjdGlvbihhLGIpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFByb2plY3Rpb24pKXJldHVybiBuZXcgUHJvamVjdGlvbihhKTtiPWJ8fGZ1bmN0aW9uKGEpe2lmKGEpdGhyb3cgYX07dmFyIGM9ZChhKTtpZigib2JqZWN0IiE9dHlwZW9mIGMpcmV0dXJuIHZvaWQgYihhKTt2YXIgZj1nKGMp
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIChjKSAyMDA5LTIwMTggVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oVCxPKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhPWyJkZWZhdWx0Il09Tyxtb2R1bGUuZXhwb3J0cz1ULmRvY3VtZW50P08oVCk6Tyk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL2hpZ2hjaGFydHMiLGZ1bmN0aW9uKCl7cmV0dXJuIE8oVCl9KTooVC5IaWdoY2hhcnRzJiZULkhpZ2hjaGFydHMuZXJyb3IoMTYsITApLFQuSGlnaGNoYXJ0cz1PKFQpKX0pKCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihUKXtmdW5jdGlvbiBPKGcsYyxSLHkpe2cuaGFzT3duUHJvcGVydHkoYyl8fChnW2NdPXkuYXBwbHkobnVsbCxSKSl9dmFyIHE9e307TyhxLCJwYXJ0cy9HbG9iYWxzLmpzIixbXSxmdW5jdGlvbigpe3ZhciBnPSJ1bmRlZmluZWQiIT09dHlwZW9mIFQ/VDoidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3c/d2luZG93Ont9LGM9Zy5kb2N1bWVudCwKUj1nLm5hdmlnYXRvciYmZy5uYXZpZ2F0b3IudXNlckFnZW50fHwiIix5PWMmJmMuY3JlYXRlRWxlbWVudE5TJiYhIWMuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInN2ZyIpLmNyZWF0ZVNWR1JlY3QscT0vKGVkZ2V8bXNpZXx0cmlkZW50KS9pLnRlc3QoUikmJiFnLm9wZXJhLEg9LTEhPT1SLmluZGV4T2YoIkZpcmVmb3giKSxEPS0xIT09Ui5pbmRleE9mKCJDaHJvbWUiKSxKPUgmJjQ+cGFyc2VJbnQoUi5zcGxpdCgiRmlyZWZveC8iKVsxXSwxMCk7cmV0dXJue3Byb2R1Y3Q6IkhpZ2hjaGFydHMiLHZlcnNpb246IjguMS4yIixkZWcycmFkOjIqTWF0aC5QSS8zNjAsZG9jOmMsaGFzQmlkaUJ1ZzpKLGhhc1RvdWNoOiEhZy5Ub3VjaEV2ZW50LGlzTVM6cSxpc1dlYktpdDotMSE9PVIuaW5kZXhPZigiQXBwbGVXZWJLaXQiKSxpc0ZpcmVmb3g6SCxpc0Nocm9tZTpELGlzU2FmYXJpOiFEJiYtMSE9PVIuaW5kZXhPZigiU2FmYXJpIiksaXNUb3VjaERldmljZTovKE1vYmlsZXxBbmRyb2lkfFdpbmRvd3MgUGhvbmUpLy50ZXN0KFIpLApTVkdfTlM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGFydENvdW50OjAsc2VyaWVzVHlwZXM6e30sc3ltYm9sU2l6ZXM6e30sc3ZnOnksd2luOmcsbWFyZ2luTmFtZXM6WyJwbG90VG9wIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5Cb3R0b20iLCJwbG90TGVmdCJdLG5vb3A6ZnVuY3Rpb24oKXt9LGNoYXJ0czpbXSxkYXRlRm9ybWF0czp7fX19KTtPKHEsInBhcnRzL1V0aWxpdGllcy5qcyIsW3FbInBhcnRzL0dsb2JhbHMuanMiXV0sZnVuY3Rpb24oZyl7ZnVuY3Rpb24gYyhiLGgsZSx6KXt2YXIgYT1oPyJIaWdoY2hhcnRzIGVycm9yIjoiSGlnaGNoYXJ0cyB3YXJuaW5nIjszMj09PWImJihiPWErIjogRGVwcmVjYXRlZCBtZW1iZXIiKTt2YXIgeD1JKGIpLGY9eD9hKyIgIyIrYisiOiB3d3cuaGlnaGNoYXJ0cy5jb20vZXJyb3JzLyIrYisiLyI6Yi50b1N0cmluZygpO2E9ZnVuY3Rpb24oKXtpZihoKXRocm93IEVycm9yKGYpO0cuY29uc29sZSYmLTE9PT1jLm1lc3NhZ2VzLmluZGV4T2YoZikmJgpjb25zb2xlLmxvZyhmKX07aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygeil7dmFyIGQ9IiI7eCYmKGYrPSI/Iik7Vyh6LGZ1bmN0aW9uKGIsaCl7ZCs9IlxuIC0gIitoKyI6ICIrYjt4JiYoZis9ZW5jb2RlVVJJKGgpKyI9IitlbmNvZGVVUkkoYikpfSk7Zis9ZH1lP2RhKGUsImRpc3BsYXlFcnJvciIse2NvZGU6YixtZXNzYWdlOmYscGFyYW1zOnp9LGEpOmEoKTtjLm1lc3NhZ2VzLnB1c2goZil9ZnVuY3Rpb24gUigpe3ZhciBiLGg9YXJndW1lbnRzLGU9e30sej1mdW5jdGlvbihiLGgpeyJvYmplY3QiIT09dHlwZW9mIGImJihiPXt9KTtXKGgsZnVuY3Rpb24oZSxhKXsheShlLCEwKXx8QyhlKXx8cihlKT9iW2FdPWhbYV06YlthXT16KGJbYV18fHt9LGUpfSk7cmV0dXJuIGJ9OyEwPT09aFswXSYmKGU9aFsxXSxoPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGgsMikpO3ZhciBhPWgubGVuZ3RoO2ZvcihiPTA7YjxhO2IrKyllPXooZSxoW2JdKTtyZXR1cm4gZX1mdW5jdGlvbiB5KGIsCmgpe3JldHVybiEhYiYmIm9iamVjdCI9PT10eXBlb2YgYiYmKCFofHwhbihiKSl9ZnVuY3Rpb24gcShiLGgsZSl7dmFyIGE7SyhoKT9tKGUpP2Iuc2V0QXR0cmlidXRlKGgsZSk6YiYmYi5nZXRBdHRyaWJ1dGUmJigoYT1iLmdldEF0dHJpYnV0ZShoKSl8fCJjbGFzcyIhPT1ofHwoYT1iLmdldEF0dHJpYnV0ZShoKyJOYW1lIikpKTpXKGgsZnVuY3Rpb24oaCxlKXtiLnNldEF0dHJpYnV0ZShlLGgpfSk7cmV0dXJuIGF9ZnVuY3Rpb24gSCgpe2Zvcih2YXIgYj1hcmd1bWVudHMsaD1iLmxlbmd0aCxlPTA7ZTxoO2UrKyl7dmFyIGE9YltlXTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBhJiZudWxsIT09YSlyZXR1cm4gYX19ZnVuY3Rpb24gRChiLGgpe2lmKCFiKXJldHVybiBoO3ZhciBlPWIuc3BsaXQoIi4iKS5yZXZlcnNlKCk7aWYoMT09PWUubGVuZ3RoKXJldHVybiBoW2JdO2ZvcihiPWUucG9wKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgYiYmInVuZGVmaW5lZCIhPT10eXBlb2YgaCYmbnVsbCE9PQpoOyloPWhbYl0sYj1lLnBvcCgpO3JldHVybiBofWcudGltZXJzPVtdO3ZhciBKPWcuY2hhcnRzLHQ9Zy5kb2MsRz1nLndpbjsoY3x8KGM9e30pKS5tZXNzYWdlcz1bXTtnLmVycm9yPWM7dmFyIEw9ZnVuY3Rpb24oKXtmdW5jdGlvbiBiKGIsaCxlKXt0aGlzLm9wdGlvbnM9aDt0aGlzLmVsZW09Yjt0aGlzLnByb3A9ZX1iLnByb3RvdHlwZS5kU2V0dGVyPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5wYXRocyxoPWImJmJbMF07Yj1iJiZiWzFdO3ZhciBlPVtdLGE9dGhpcy5ub3d8fDA7aWYoMSE9PWEmJmgmJmIpaWYoaC5sZW5ndGg9PT1iLmxlbmd0aCYmMT5hKWZvcih2YXIge
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIDNEIGZlYXR1cmVzIGZvciBIaWdoY2hhcnRzIEpTCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGIpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGJbImRlZmF1bHQiXT1iLG1vZHVsZS5leHBvcnRzPWIpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9oaWdoY2hhcnRzLTNkIixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbihGKXtiKEYpO2IuSGlnaGNoYXJ0cz1GO3JldHVybiBifSk6YigidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGIpe2Z1bmN0aW9uIEYoYix0LGwsZCl7Yi5oYXNPd25Qcm9wZXJ0eSh0KXx8KGJbdF09ZC5hcHBseShudWxsLGwpKX1iPWI/Yi5fbW9kdWxlczp7fTtGKGIsInBhcnRzLTNkL01hdGguanMiLFtiWyJwYXJ0cy9HbG9iYWxzLmpzIl0sYlsicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGIsdCl7dmFyIGw9dC5waWNrLGQ9Yi5kZWcycmFkO2IucGVyc3BlY3RpdmUzRD1mdW5jdGlvbihkLApuLHEpe249MDxxJiZxPE51bWJlci5QT1NJVElWRV9JTkZJTklUWT9xLyhkLnorbi56K3EpOjE7cmV0dXJue3g6ZC54Km4seTpkLnkqbn19O2IucGVyc3BlY3RpdmU9ZnVuY3Rpb24odyxuLHEsRCl7dmFyIG09bi5vcHRpb25zLmNoYXJ0Lm9wdGlvbnMzZCx1PWwoRCxxP24uaW52ZXJ0ZWQ6ITEpLGc9e3g6bi5wbG90V2lkdGgvMix5Om4ucGxvdEhlaWdodC8yLHo6bS5kZXB0aC8yLHZkOmwobS5kZXB0aCwxKSpsKG0udmlld0Rpc3RhbmNlLDApfSxwPW4uc2NhbGUzZHx8MTtEPWQqbS5iZXRhKih1Py0xOjEpO209ZCptLmFscGhhKih1Py0xOjEpO3ZhciB0PU1hdGguY29zKG0pLHk9TWF0aC5jb3MoLUQpLGE9TWF0aC5zaW4obSksaz1NYXRoLnNpbigtRCk7cXx8KGcueCs9bi5wbG90TGVmdCxnLnkrPW4ucGxvdFRvcCk7cmV0dXJuIHcubWFwKGZ1bmN0aW9uKHgpe3ZhciBjPSh1P3gueTp4LngpLWcueDt2YXIgaD0odT94Lng6eC55KS1nLnk7eD0oeC56fHwwKS1nLno7Yz17eDp5KmMtayoKeCx5Oi1hKmsqYyt0KmgteSphKngsejp0KmsqYythKmgrdCp5Knh9O2g9Yi5wZXJzcGVjdGl2ZTNEKGMsZyxnLnZkKTtoLng9aC54KnArZy54O2gueT1oLnkqcCtnLnk7aC56PWMueipwK2cuejtyZXR1cm57eDp1P2gueTpoLngseTp1P2gueDpoLnksejpoLnp9fSl9O2IucG9pbnRDYW1lcmFEaXN0YW5jZT1mdW5jdGlvbihkLG4pe3ZhciBxPW4ub3B0aW9ucy5jaGFydC5vcHRpb25zM2QsYj1uLnBsb3RXaWR0aC8yO249bi5wbG90SGVpZ2h0LzI7cT1sKHEuZGVwdGgsMSkqbChxLnZpZXdEaXN0YW5jZSwwKStxLmRlcHRoO3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3coYi1sKGQucGxvdFgsZC54KSwyKStNYXRoLnBvdyhuLWwoZC5wbG90WSxkLnkpLDIpK01hdGgucG93KHEtbChkLnBsb3RaLGQueiksMikpfTtiLnNoYXBlQXJlYT1mdW5jdGlvbihkKXt2YXIgbj0wLHE7Zm9yKHE9MDtxPGQubGVuZ3RoO3ErKyl7dmFyIGI9KHErMSklZC5sZW5ndGg7bis9ZFtxXS54KmRbYl0ueS1kW2JdLngqCmRbcV0ueX1yZXR1cm4gbi8yfTtiLnNoYXBlQXJlYTNkPWZ1bmN0aW9uKGQsbixxKXtyZXR1cm4gYi5zaGFwZUFyZWEoYi5wZXJzcGVjdGl2ZShkLG4scSkpfX0pO0YoYiwicGFydHMtM2QvU1ZHUmVuZGVyZXIuanMiLFtiWyJwYXJ0cy9Db2xvci5qcyJdLGJbInBhcnRzL0dsb2JhbHMuanMiXSxiWyJwYXJ0cy9TVkdFbGVtZW50LmpzIl0sYlsicGFydHMvU1ZHUmVuZGVyZXIuanMiXSxiWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24oYix0LGwsZCx3KXtmdW5jdGlvbiBuKGEsayxlLEssYyxJLGgscil7dmFyIGY9W10sdj1JLWM7cmV0dXJuIEk+YyYmSS1jPk1hdGguUEkvMisuMDAwMT8oZj1mLmNvbmNhdChuKGEsayxlLEssYyxjK01hdGguUEkvMixoLHIpKSxmPWYuY29uY2F0KG4oYSxrLGUsSyxjK01hdGguUEkvMixJLGgscikpKTpJPGMmJmMtST5NYXRoLlBJLzIrLjAwMDE/KGY9Zi5jb25jYXQobihhLGssZSxLLGMsYy1NYXRoLlBJLzIsaCxyKSksZj1mLmNvbmNhdChuKGEsCmssZSxLLGMtTWF0aC5QSS8yLEksaCxyKSkpOltbIkMiLGErZSpNYXRoLmNvcyhjKS1lKkoqdipNYXRoLnNpbihjKStoLGsrSypNYXRoLnNpbihjKStLKkoqdipNYXRoLmNvcyhjKStyLGErZSpNYXRoLmNvcyhJKStlKkoqdipNYXRoLnNpbihJKStoLGsrSypNYXRoLnNpbihJKS1LKkoqdipNYXRoLmNvcyhJKStyLGErZSpNYXRoLmNvcyhJKStoLGsrSypNYXRoLnNpbihJKStyXV19dmFyIHE9Yi5wYXJzZSxEPXcuYW5pbU9iamVjdCxtPXcuZGVmaW5lZCx1PXcuZXh0ZW5kLGc9dy5tZXJnZSxwPXcub2JqZWN0RWFjaCxFPXcucGljayx5PU1hdGguY29zLGE9TWF0aC5QSSxrPU1hdGguc2luLHg9dC5jaGFydHMsYz10LmRlZzJyYWQsaD10LnBlcnNwZWN0aXZlO3ZhciBKPTQqKE1hdGguc3FydCgyKS0xKS8zLyhhLzIpO2QucHJvdG90eXBlLnRvTGluZVBhdGg9ZnVuY3Rpb24oYSxjKXt2YXIgZT1bXTthLmZvckVhY2goZnVuY3Rpb24oYSl7ZS5wdXNoKFsiTCIsYS54LGEueV0pfSk7YS5sZW5ndGgmJgooZVswXVswXT0iTSIsYyYmZS5wdXNoKFsiWiJdKSk7cmV0dXJuIGV9O2QucHJvdG90eXBlLnRvTGluZVNlZ21lbnRzPWZ1bmN0aW9uKGEpe3ZhciBmPVtdLGU9ITA7YS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2YucHVzaChlP1siTSIsYS54LGEueV06WyJMIixhLngsYS55XSk7ZT0hZX0pO3JldHVybiBmfTtkLnByb3RvdHlwZS5mYWNlM2Q9ZnVuY3Rpb24oYSl7dmFyIGY9dGhpcyxlPXRoaXMuY3JlYXRlRWxlbWVudCgicGF0aCIpO2UudmVydGV4ZXM9W107ZS5pbnNpZGVQbG90QXJlYT0hMTtlLmVuYWJsZWQ9ITA7ZS5hdHRyPWZ1bmN0aW9uKGEpe2lmKCJvYmplY3QiPT09dHlwZW9mIGEmJihtKGEuZW5hYmxlZCl8fG0oYS52ZXJ0ZXhlcyl8fG0oYS5pbnNpZGVQbG90Q
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIChjKSAyMDA5LTIwMTggVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oZil7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oZlsiZGVmYXVsdCJdPWYsbW9kdWxlLmV4cG9ydHM9Zik6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL2hpZ2hjaGFydHMtbW9yZSIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24oQyl7ZihDKTtmLkhpZ2hjaGFydHM9QztyZXR1cm4gZn0pOmYoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihmKXtmdW5jdGlvbiBDKGYsYSxiLGUpe2YuaGFzT3duUHJvcGVydHkoYSl8fChmW2FdPWUuYXBwbHkobnVsbCxiKSl9Zj1mP2YuX21vZHVsZXM6e307QyhmLCJwYXJ0cy1tb3JlL1BhbmUuanMiLFtmWyJwYXJ0cy9DaGFydC5qcyJdLGZbInBhcnRzL0dsb2JhbHMuanMiXSxmWyJwYXJ0cy9Qb2ludGVyLmpzIl0sZlsicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGYsYSxiLGUpe2Z1bmN0aW9uIGgobCwKYyxwKXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KGwtcFswXSwyKStNYXRoLnBvdyhjLXBbMV0sMikpPHBbMl0vMn12YXIgcT1lLmFkZEV2ZW50LHQ9ZS5leHRlbmQseD1lLm1lcmdlLEI9ZS5waWNrLHo9ZS5zcGxhdCxjPWEuQ2VudGVyZWRTZXJpZXNNaXhpbjtmLnByb3RvdHlwZS5jb2xsZWN0aW9uc1dpdGhVcGRhdGUucHVzaCgicGFuZSIpO2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBsKGwsYyl7dGhpcy5vcHRpb25zPXRoaXMuY2hhcnQ9dGhpcy5jZW50ZXI9dGhpcy5iYWNrZ3JvdW5kPXZvaWQgMDt0aGlzLmNvbGw9InBhbmUiO3RoaXMuZGVmYXVsdE9wdGlvbnM9e2NlbnRlcjpbIjUwJSIsIjUwJSJdLHNpemU6Ijg1JSIsaW5uZXJTaXplOiIwJSIsc3RhcnRBbmdsZTowfTt0aGlzLmRlZmF1bHRCYWNrZ3JvdW5kT3B0aW9ucz17c2hhcGU6ImNpcmNsZSIsYm9yZGVyV2lkdGg6MSxib3JkZXJDb2xvcjoiI2NjY2NjYyIsYmFja2dyb3VuZENvbG9yOntsaW5lYXJHcmFkaWVudDp7eDE6MCwKeTE6MCx4MjowLHkyOjF9LHN0b3BzOltbMCwiI2ZmZmZmZiJdLFsxLCIjZTZlNmU2Il1dfSxmcm9tOi1OdW1iZXIuTUFYX1ZBTFVFLGlubmVyUmFkaXVzOjAsdG86TnVtYmVyLk1BWF9WQUxVRSxvdXRlclJhZGl1czoiMTA1JSJ9O3RoaXMuaW5pdChsLGMpfWwucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24obCxjKXt0aGlzLmNoYXJ0PWM7dGhpcy5iYWNrZ3JvdW5kPVtdO2MucGFuZS5wdXNoKHRoaXMpO3RoaXMuc2V0T3B0aW9ucyhsKX07bC5wcm90b3R5cGUuc2V0T3B0aW9ucz1mdW5jdGlvbihsKXt0aGlzLm9wdGlvbnM9eCh0aGlzLmRlZmF1bHRPcHRpb25zLHRoaXMuY2hhcnQuYW5ndWxhcj97YmFja2dyb3VuZDp7fX06dm9pZCAwLGwpfTtsLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgbD10aGlzLm9wdGlvbnMsYz10aGlzLm9wdGlvbnMuYmFja2dyb3VuZCxhPXRoaXMuY2hhcnQucmVuZGVyZXI7dGhpcy5ncm91cHx8KHRoaXMuZ3JvdXA9YS5nKCJwYW5lLWdyb3VwIikuYXR0cih7ekluZGV4OmwuekluZGV4fHwKMH0pLmFkZCgpKTt0aGlzLnVwZGF0ZUNlbnRlcigpO2lmKGMpZm9yKGM9eihjKSxsPU1hdGgubWF4KGMubGVuZ3RoLHRoaXMuYmFja2dyb3VuZC5sZW5ndGh8fDApLGE9MDthPGw7YSsrKWNbYV0mJnRoaXMuYXhpcz90aGlzLnJlbmRlckJhY2tncm91bmQoeCh0aGlzLmRlZmF1bHRCYWNrZ3JvdW5kT3B0aW9ucyxjW2FdKSxhKTp0aGlzLmJhY2tncm91bmRbYV0mJih0aGlzLmJhY2tncm91bmRbYV09dGhpcy5iYWNrZ3JvdW5kW2FdLmRlc3Ryb3koKSx0aGlzLmJhY2tncm91bmQuc3BsaWNlKGEsMSkpfTtsLnByb3RvdHlwZS5yZW5kZXJCYWNrZ3JvdW5kPWZ1bmN0aW9uKGwsYyl7dmFyIGE9ImFuaW1hdGUiLHA9eyJjbGFzcyI6ImhpZ2hjaGFydHMtcGFuZSAiKyhsLmNsYXNzTmFtZXx8IiIpfTt0aGlzLmNoYXJ0LnN0eWxlZE1vZGV8fHQocCx7ZmlsbDpsLmJhY2tncm91bmRDb2xvcixzdHJva2U6bC5ib3JkZXJDb2xvciwic3Ryb2tlLXdpZHRoIjpsLmJvcmRlcldpZHRofSk7dGhpcy5iYWNrZ3JvdW5kW2NdfHwKKHRoaXMuYmFja2dyb3VuZFtjXT10aGlzLmNoYXJ0LnJlbmRlcmVyLnBhdGgoKS5hZGQodGhpcy5ncm91cCksYT0iYXR0ciIpO3RoaXMuYmFja2dyb3VuZFtjXVthXSh7ZDp0aGlzLmF4aXMuZ2V0UGxvdEJhbmRQYXRoKGwuZnJvbSxsLnRvLGwpfSkuYXR0cihwKX07bC5wcm90b3R5cGUudXBkYXRlQ2VudGVyPWZ1bmN0aW9uKGwpe3RoaXMuY2VudGVyPShsfHx0aGlzLmF4aXN8fHt9KS5jZW50ZXI9Yy5nZXRDZW50ZXIuY2FsbCh0aGlzKX07bC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGwsYyl7eCghMCx0aGlzLm9wdGlvbnMsbCk7eCghMCx0aGlzLmNoYXJ0Lm9wdGlvbnMucGFuZSxsKTt0aGlzLnNldE9wdGlvbnModGhpcy5vcHRpb25zKTt0aGlzLnJlbmRlcigpO3RoaXMuY2hhcnQuYXhlcy5mb3JFYWNoKGZ1bmN0aW9uKGwpe2wucGFuZT09PXRoaXMmJihsLnBhbmU9bnVsbCxsLnVwZGF0ZSh7fSxjKSl9LHRoaXMpfTtyZXR1cm4gbH0oKTthLkNoYXJ0LnByb3RvdHlwZS5nZXRIb3ZlclBhbmU9CmZ1bmN0aW9uKGwpe3ZhciBjPXRoaXMsYTtsJiZjLnBhbmUuZm9yRWFjaChmdW5jdGlvbihwKXt2YXIgZT1sLmNoYXJ0WC1jLnBsb3RMZWZ0LG09bC5jaGFydFktYy5wbG90VG9wO2goYy5pbnZlcnRlZD9tOmUsYy5pbnZlcnRlZD9lOm0scC5jZW50ZXIpJiYoYT1wKX0pO3JldHVybiBhfTtxKGYsImFmdGVySXNJbnNpZGVQbG90IixmdW5jdGlvbihsKXt0aGlzLnBvbGFyJiYobC5pc0luc2lkZVBsb3Q9dGhpcy5wYW5lLnNvbWUoZnVuY3Rpb24oYyl7cmV0dXJuIGgobC54LGwueSxjLmNlbnRlcil9KSl9KTtxKGIsImJlZm9yZUdldEhvdmVyRGF0YSIsZnVuY3Rpb24obCl7dmFyIGM9d
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hzdG9jayBKUyB2OC4xLjIgKDIwMjAtMDYtMTYpCgogSGlnaHN0b2NrIGFzIGEgcGx1Z2luIGZvciBIaWdoY2hhcnRzCgogKGMpIDIwMTAtMjAxOSBUb3JzdGVpbiBIb25zaQoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihsKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhsWyJkZWZhdWx0Il09bCxtb2R1bGUuZXhwb3J0cz1sKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy9zdG9jayIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24oSyl7bChLKTtsLkhpZ2hjaGFydHM9SztyZXR1cm4gbH0pOmwoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihsKXtmdW5jdGlvbiBLKGwsdSxCLHQpe2wuaGFzT3duUHJvcGVydHkodSl8fChsW3VdPXQuYXBwbHkobnVsbCxCKSl9bD1sP2wuX21vZHVsZXM6e307SyhsLCJwYXJ0cy9OYXZpZ2F0b3JBeGlzLmpzIixbbFsicGFydHMvR2xvYmFscy5qcyJdLGxbInBhcnRzL1V0aWxpdGllcy5qcyJdXSxmdW5jdGlvbihsLHUpe3ZhciBCPWwuaXNUb3VjaERldmljZSx0PXUuYWRkRXZlbnQsRT11LmNvcnJlY3RGbG9hdCwKZT11LmRlZmluZWQseD11LmlzTnVtYmVyLHE9dS5waWNrLGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBjKGMpe3RoaXMuYXhpcz1jfWMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmF4aXM9dm9pZCAwfTtjLnByb3RvdHlwZS50b0ZpeGVkUmFuZ2U9ZnVuY3Rpb24oYyx2LEMseil7dmFyIEE9dGhpcy5heGlzLG49QS5jaGFydDtuPW4mJm4uZml4ZWRSYW5nZTt2YXIgYT0oQS5wb2ludFJhbmdlfHwwKS8yO2M9cShDLEEudHJhbnNsYXRlKGMsITAsIUEuaG9yaXopKTt2PXEoeixBLnRyYW5zbGF0ZSh2LCEwLCFBLmhvcml6KSk7QT1uJiYodi1jKS9uO2UoQyl8fChjPUUoYythKSk7ZSh6KXx8KHY9RSh2LWEpKTsuNzxBJiYxLjM+QSYmKHo/Yz12LW46dj1jK24pO3goYykmJngodil8fChjPXY9dm9pZCAwKTtyZXR1cm57bWluOmMsbWF4OnZ9fTtyZXR1cm4gY30oKTtyZXR1cm4gZnVuY3Rpb24oKXtmdW5jdGlvbiBxKCl7fXEuY29tcG9zZT1mdW5jdGlvbihxKXtxLmtlZXBQcm9wcy5wdXNoKCJuYXZpZ2F0b3JBeGlzIik7CnQocSwiaW5pdCIsZnVuY3Rpb24oKXt0aGlzLm5hdmlnYXRvckF4aXN8fCh0aGlzLm5hdmlnYXRvckF4aXM9bmV3IGModGhpcykpfSk7dChxLCJ6b29tIixmdW5jdGlvbihjKXt2YXIgcT10aGlzLmNoYXJ0Lm9wdGlvbnMsej1xLm5hdmlnYXRvcixBPXRoaXMubmF2aWdhdG9yQXhpcyxuPXEuY2hhcnQucGluY2hUeXBlLGE9cS5yYW5nZVNlbGVjdG9yO3E9cS5jaGFydC56b29tVHlwZTt0aGlzLmlzWEF4aXMmJih6JiZ6LmVuYWJsZWR8fGEmJmEuZW5hYmxlZCkmJigieSI9PT1xP2Muem9vbWVkPSExOighQiYmInh5Ij09PXF8fEImJiJ4eSI9PT1uKSYmdGhpcy5vcHRpb25zLnJhbmdlJiYoej1BLnByZXZpb3VzWm9vbSxlKGMubmV3TWluKT9BLnByZXZpb3VzWm9vbT1bdGhpcy5taW4sdGhpcy5tYXhdOnomJihjLm5ld01pbj16WzBdLGMubmV3TWF4PXpbMV0sQS5wcmV2aW91c1pvb209dm9pZCAwKSkpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGMuem9vbWVkJiZjLnByZXZlbnREZWZhdWx0KCl9KX07CnEuQWRkaXRpb25zQ2xhc3M9YztyZXR1cm4gcX0oKX0pO0sobCwicGFydHMvU2Nyb2xsYmFyQXhpcy5qcyIsW2xbInBhcnRzL0dsb2JhbHMuanMiXSxsWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24obCx1KXt2YXIgQj11LmFkZEV2ZW50LHQ9dS5kZWZpbmVkLEU9dS5waWNrO3JldHVybiBmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9ZS5jb21wb3NlPWZ1bmN0aW9uKGUscSl7QihlLCJhZnRlckluaXQiLGZ1bmN0aW9uKCl7dmFyIGM9dGhpcztjLm9wdGlvbnMmJmMub3B0aW9ucy5zY3JvbGxiYXImJmMub3B0aW9ucy5zY3JvbGxiYXIuZW5hYmxlZCYmKGMub3B0aW9ucy5zY3JvbGxiYXIudmVydGljYWw9IWMuaG9yaXosYy5vcHRpb25zLnN0YXJ0T25UaWNrPWMub3B0aW9ucy5lbmRPblRpY2s9ITEsYy5zY3JvbGxiYXI9bmV3IHEoYy5jaGFydC5yZW5kZXJlcixjLm9wdGlvbnMuc2Nyb2xsYmFyLGMuY2hhcnQpLEIoYy5zY3JvbGxiYXIsImNoYW5nZWQiLGZ1bmN0aW9uKHEpe3ZhciBlPQpFKGMub3B0aW9ucyYmYy5vcHRpb25zLm1pbixjLm1pbiksdj1FKGMub3B0aW9ucyYmYy5vcHRpb25zLm1heCxjLm1heCksQz10KGMuZGF0YU1pbik/TWF0aC5taW4oZSxjLm1pbixjLmRhdGFNaW4pOmUsej0odChjLmRhdGFNYXgpP01hdGgubWF4KHYsYy5tYXgsYy5kYXRhTWF4KTp2KS1DO3QoZSkmJnQodikmJihjLmhvcml6JiYhYy5yZXZlcnNlZHx8IWMuaG9yaXomJmMucmV2ZXJzZWQ/KGU9Qyt6KnRoaXMudG8sQys9eip0aGlzLmZyb20pOihlPUMreiooMS10aGlzLmZyb20pLEMrPXoqKDEtdGhpcy50bykpLEUodGhpcy5vcHRpb25zLmxpdmVSZWRyYXcsbC5zdmcmJiFsLmlzVG91Y2hEZXZpY2UmJiF0aGlzLmNoYXJ0LmlzQm9vc3RpbmcpfHwibW91c2V1cCI9PT1xLkRPTVR5cGV8fCF0KHEuRE9NVHlwZSk/Yy5zZXRFeHRyZW1lcyhDLGUsITAsIm1vdXNlbW92ZSIhPT1xLkRPTVR5cGUscSk6dGhpcy5zZXRSYW5nZSh0aGlzLmZyb20sdGhpcy50bykpfSkpfSk7QihlLCJhZnRlclJlbmRlciIsCmZ1bmN0aW9uKCl7dmFyIGM9TWF0aC5taW4oRSh0aGlzLm9wdGlvbnMubWluLHRoaXMubWluKSx0aGlzLm1pbixFKHRoaXMuZGF0YU1pbix0aGlzLm1pbikpLHE9TWF0aC5tYXgoRSh0aGlzLm9wdGlvbnMubWF4LHRoaXMubWF4KSx0aGlzLm1heCxFKHRoaXMuZGF0YU1heCx0aGlzLm1heCkpLGU9dGhpcy5zY3JvbGxiYXIsbD10aGlzLmF4aXNUaXRsZU1hcmdpbisodGhpcy50aXRsZU9mZnNldHx8MCksQz10aGlzLmNoYXJ0LnNjcm9sbGJhcnNPZmZzZXRzLHo9dGhpcy5vcHRpb25zLm1hcmdpbnx8MDtlJiYodGhpcy5ob3Jpej8odGhpc
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoNCiBIaWdobWFwcyBKUyB2OC4xLjIgKDIwMjAtMDYtMTYpDQoNCiBIaWdobWFwcyBhcyBhIHBsdWdpbiBmb3IgSGlnaGNoYXJ0cyBvciBIaWdoc3RvY2suDQoNCiAoYykgMjAxMS0yMDE5IFRvcnN0ZWluIEhvbnNpDQoNCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQ0KKi8NCihmdW5jdGlvbihhKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhhWyJkZWZhdWx0Il09YSxtb2R1bGUuZXhwb3J0cz1hKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy9tYXAiLFsiaGlnaGNoYXJ0cyJdLGZ1bmN0aW9uKHope2Eoeik7YS5IaWdoY2hhcnRzPXo7cmV0dXJuIGF9KTphKCJ1bmRlZmluZWQiIT09dHlwZW9mIEhpZ2hjaGFydHM/SGlnaGNoYXJ0czp2b2lkIDApfSkoZnVuY3Rpb24oYSl7ZnVuY3Rpb24geihhLHIsayxuKXthLmhhc093blByb3BlcnR5KHIpfHwoYVtyXT1uLmFwcGx5KG51bGwsaykpfWE9YT9hLl9tb2R1bGVzOnt9O3ooYSwicGFydHMtbWFwL01hcEF4aXMuanMiLFthWyJwYXJ0cy9BeGlzLmpzIl0sYVsicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGEscil7dmFyIGs9ci5hZGRFdmVudCxuPXIucGljayxjPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGMpe3RoaXMuYXhpcz0NCmN9fSgpO3I9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7fWEuY29tcG9zZT1mdW5jdGlvbihhKXthLmtlZXBQcm9wcy5wdXNoKCJtYXBBeGlzIik7ayhhLCJpbml0IixmdW5jdGlvbigpe3RoaXMubWFwQXhpc3x8KHRoaXMubWFwQXhpcz1uZXcgYyh0aGlzKSl9KTtrKGEsImdldFNlcmllc0V4dHJlbWVzIixmdW5jdGlvbigpe2lmKHRoaXMubWFwQXhpcyl7dmFyIGM9W107dGhpcy5pc1hBeGlzJiYodGhpcy5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihhLHUpe2EudXNlTWFwR2VvbWV0cnkmJihjW3VdPWEueERhdGEsYS54RGF0YT1bXSl9KSx0aGlzLm1hcEF4aXMuc2VyaWVzWERhdGE9Yyl9fSk7ayhhLCJhZnRlckdldFNlcmllc0V4dHJlbWVzIixmdW5jdGlvbigpe2lmKHRoaXMubWFwQXhpcyl7dmFyIGM9dGhpcy5tYXBBeGlzLnNlcmllc1hEYXRhfHxbXSxhO2lmKHRoaXMuaXNYQXhpcyl7dmFyIHU9bih0aGlzLmRhdGFNaW4sTnVtYmVyLk1BWF9WQUxVRSk7dmFyIGg9bih0aGlzLmRhdGFNYXgsDQotTnVtYmVyLk1BWF9WQUxVRSk7dGhpcy5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihmLHgpe2YudXNlTWFwR2VvbWV0cnkmJih1PU1hdGgubWluKHUsbihmLm1pblgsdSkpLGg9TWF0aC5tYXgoaCxuKGYubWF4WCxoKSksZi54RGF0YT1jW3hdLGE9ITApfSk7YSYmKHRoaXMuZGF0YU1pbj11LHRoaXMuZGF0YU1heD1oKTt0aGlzLm1hcEF4aXMuc2VyaWVzWERhdGE9dm9pZCAwfX19KTtrKGEsImFmdGVyU2V0QXhpc1RyYW5zbGF0aW9uIixmdW5jdGlvbigpe2lmKHRoaXMubWFwQXhpcyl7dmFyIGM9dGhpcy5jaGFydCxhPWMucGxvdFdpZHRoL2MucGxvdEhlaWdodDtjPWMueEF4aXNbMF07dmFyIHU7InlBeGlzIj09PXRoaXMuY29sbCYmInVuZGVmaW5lZCIhPT10eXBlb2YgYy50cmFuc0EmJnRoaXMuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oYyl7Yy5wcmVzZXJ2ZUFzcGVjdFJhdGlvJiYodT0hMCl9KTtpZih1JiYodGhpcy50cmFuc0E9Yy50cmFuc0E9TWF0aC5taW4odGhpcy50cmFuc0EsDQpjLnRyYW5zQSksYS89KGMubWF4LWMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLGE9MT5hP3RoaXM6YyxjPShhLm1heC1hLm1pbikqYS50cmFuc0EsYS5tYXBBeGlzLnBpeGVsUGFkZGluZz1hLmxlbi1jLGEubWluUGl4ZWxQYWRkaW5nPWEubWFwQXhpcy5waXhlbFBhZGRpbmcvMixjPWEubWFwQXhpcy5maXhUbykpe2M9Y1sxXS1hLnRvVmFsdWUoY1swXSwhMCk7Yyo9YS50cmFuc0E7aWYoTWF0aC5hYnMoYyk+YS5taW5QaXhlbFBhZGRpbmd8fGEubWluPT09YS5kYXRhTWluJiZhLm1heD09PWEuZGF0YU1heCljPTA7YS5taW5QaXhlbFBhZGRpbmctPWN9fX0pO2soYSwicmVuZGVyIixmdW5jdGlvbigpe3RoaXMubWFwQXhpcyYmKHRoaXMubWFwQXhpcy5maXhUbz12b2lkIDApfSl9O3JldHVybiBhfSgpO3IuY29tcG9zZShhKTtyZXR1cm4gcn0pO3ooYSwicGFydHMtbWFwL0NvbG9yU2VyaWVzTWl4aW4uanMiLFthWyJwYXJ0cy9HbG9iYWxzLmpzIl1dLGZ1bmN0aW9uKGEpe2EuY29sb3JQb2ludE1peGluPQ0Ke3NldFZpc2libGU6ZnVuY3Rpb24oYSl7dmFyIGs9dGhpcyxuPWE/InNob3ciOiJoaWRlIjtrLnZpc2libGU9ay5vcHRpb25zLnZpc2libGU9ISFhO1siZ3JhcGhpYyIsImRhdGFMYWJlbCJdLmZvckVhY2goZnVuY3Rpb24oYyl7aWYoa1tjXSlrW2NdW25dKCl9KTt0aGlzLnNlcmllcy5idWlsZEtEVHJlZSgpfX07YS5jb2xvclNlcmllc01peGluPXtvcHRpb25hbEF4aXM6ImNvbG9yQXhpcyIsY29sb3JBeGlzOjAsdHJhbnNsYXRlQ29sb3JzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxrPXRoaXMub3B0aW9ucy5udWxsQ29sb3Isbj10aGlzLmNvbG9yQXhpcyxjPXRoaXMuY29sb3JLZXk7KHRoaXMuZGF0YS5sZW5ndGg/dGhpcy5kYXRhOnRoaXMucG9pbnRzKS5mb3JFYWNoKGZ1bmN0aW9uKEMpe3ZhciB3PUMuZ2V0TmVzdGVkUHJvcGVydHkoYyk7KHc9Qy5vcHRpb25zLmNvbG9yfHwoQy5pc051bGx8fG51bGw9PT1DLnZhbHVlP2s6biYmInVuZGVmaW5lZCIhPT10eXBlb2Ygdz9uLnRvQ29sb3IodywNCkMpOkMuY29sb3J8fGEuY29sb3IpKSYmQy5jb2xvciE9PXcmJihDLmNvbG9yPXcsInBvaW50Ij09PWEub3B0aW9ucy5sZWdlbmRUeXBlJiZDLmxlZ2VuZEl0ZW0mJmEuY2hhcnQubGVnZW5kLmNvbG9yaXplSXRlbShDLEMudmlzaWJsZSkpfSl9fX0pO3ooYSwicGFydHMtbWFwL0NvbG9yQXhpcy5qcyIsW2FbInBhcnRzL0F4aXMuanMiXSxhWyJwYXJ0cy9DaGFydC5qcyJdLGFbInBhcnRzL0NvbG9yLmpzIl0sYVsicGFydHMvR2xvYmFscy5qcyJdLGFbInBhcnRzL0xlZ2VuZC5qcyJdLGFbIm1peGlucy9sZWdlb
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIEFubm90YXRpb25zIG1vZHVsZQoKIChjKSAyMDA5LTIwMTkgVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oYSl7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oYVsiZGVmYXVsdCJdPWEsbW9kdWxlLmV4cG9ydHM9YSk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvYW5ub3RhdGlvbnMiLFsiaGlnaGNoYXJ0cyJdLGZ1bmN0aW9uKHApe2EocCk7YS5IaWdoY2hhcnRzPXA7cmV0dXJuIGF9KTphKCJ1bmRlZmluZWQiIT09dHlwZW9mIEhpZ2hjaGFydHM/SGlnaGNoYXJ0czp2b2lkIDApfSkoZnVuY3Rpb24oYSl7ZnVuY3Rpb24gcChhLGQsbSxlKXthLmhhc093blByb3BlcnR5KGQpfHwoYVtkXT1lLmFwcGx5KG51bGwsbSkpfWE9YT9hLl9tb2R1bGVzOnt9O3AoYSwiYW5ub3RhdGlvbnMvZXZlbnRFbWl0dGVyTWl4aW4uanMiLFthWyJwYXJ0cy9HbG9iYWxzLmpzIl0sYVsicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGEsZCl7dmFyIHE9ZC5hZGRFdmVudCxlPWQuZmlyZUV2ZW50LAp2PWQuaW5BcnJheSxiPWQub2JqZWN0RWFjaCxBPWQucGljayx6PWQucmVtb3ZlRXZlbnQ7cmV0dXJue2FkZEV2ZW50czpmdW5jdGlvbigpe3ZhciBjPXRoaXMsaD1mdW5jdGlvbihoKXtxKGgsYS5pc1RvdWNoRGV2aWNlPyJ0b3VjaHN0YXJ0IjoibW91c2Vkb3duIixmdW5jdGlvbihoKXtjLm9uTW91c2VEb3duKGgpfSl9O2godGhpcy5ncmFwaGljLmVsZW1lbnQpOyhjLmxhYmVsc3x8W10pLmZvckVhY2goZnVuY3Rpb24oYyl7Yy5vcHRpb25zLnVzZUhUTUwmJmMuZ3JhcGhpYy50ZXh0JiZoKGMuZ3JhcGhpYy50ZXh0LmVsZW1lbnQpfSk7YihjLm9wdGlvbnMuZXZlbnRzLGZ1bmN0aW9uKGgsYil7dmFyIGs9ZnVuY3Rpb24oZyl7ImNsaWNrIj09PWImJmMuY2FuY2VsQ2xpY2t8fGguY2FsbChjLGMuY2hhcnQucG9pbnRlci5ub3JtYWxpemUoZyksYy50YXJnZXQpfTtpZigtMT09PXYoYixjLm5vbkRPTUV2ZW50c3x8W10pKWMuZ3JhcGhpYy5vbihiLGspO2Vsc2UgcShjLGIsayl9KTtpZihjLm9wdGlvbnMuZHJhZ2dhYmxlJiYKKHEoYyxhLmlzVG91Y2hEZXZpY2U/InRvdWNobW92ZSI6ImRyYWciLGMub25EcmFnKSwhYy5ncmFwaGljLnJlbmRlcmVyLnN0eWxlZE1vZGUpKXt2YXIgcj17Y3Vyc29yOnt4OiJldy1yZXNpemUiLHk6Im5zLXJlc2l6ZSIseHk6Im1vdmUifVtjLm9wdGlvbnMuZHJhZ2dhYmxlXX07Yy5ncmFwaGljLmNzcyhyKTsoYy5sYWJlbHN8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2Mub3B0aW9ucy51c2VIVE1MJiZjLmdyYXBoaWMudGV4dCYmYy5ncmFwaGljLnRleHQuY3NzKHIpfSl9Yy5pc1VwZGF0aW5nfHxlKGMsImFkZCIpfSxyZW1vdmVEb2NFdmVudHM6ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZURyYWcmJih0aGlzLnJlbW92ZURyYWc9dGhpcy5yZW1vdmVEcmFnKCkpO3RoaXMucmVtb3ZlTW91c2VVcCYmKHRoaXMucmVtb3ZlTW91c2VVcD10aGlzLnJlbW92ZU1vdXNlVXAoKSl9LG9uTW91c2VEb3duOmZ1bmN0aW9uKGMpe3ZhciBoPXRoaXMsYj1oLmNoYXJ0LnBvaW50ZXI7Yy5wcmV2ZW50RGVmYXVsdCYmCmMucHJldmVudERlZmF1bHQoKTtpZigyIT09Yy5idXR0b24pe2M9Yi5ub3JtYWxpemUoYyk7dmFyIHg9Yy5jaGFydFg7dmFyIGs9Yy5jaGFydFk7aC5jYW5jZWxDbGljaz0hMTtoLmNoYXJ0Lmhhc0RyYWdnZWRBbm5vdGF0aW9uPSEwO2gucmVtb3ZlRHJhZz1xKGEuZG9jLGEuaXNUb3VjaERldmljZT8idG91Y2htb3ZlIjoibW91c2Vtb3ZlIixmdW5jdGlvbihjKXtoLmhhc0RyYWdnZWQ9ITA7Yz1iLm5vcm1hbGl6ZShjKTtjLnByZXZDaGFydFg9eDtjLnByZXZDaGFydFk9aztlKGgsImRyYWciLGMpO3g9Yy5jaGFydFg7az1jLmNoYXJ0WX0pO2gucmVtb3ZlTW91c2VVcD1xKGEuZG9jLGEuaXNUb3VjaERldmljZT8idG91Y2hlbmQiOiJtb3VzZXVwIixmdW5jdGlvbihjKXtoLmNhbmNlbENsaWNrPWguaGFzRHJhZ2dlZDtoLmhhc0RyYWdnZWQ9ITE7aC5jaGFydC5oYXNEcmFnZ2VkQW5ub3RhdGlvbj0hMTtlKEEoaC50YXJnZXQsaCksImFmdGVyVXBkYXRlIik7aC5vbk1vdXNlVXAoYyl9KX19LApvbk1vdXNlVXA6ZnVuY3Rpb24oYyl7dmFyIGg9dGhpcy5jaGFydDtjPXRoaXMudGFyZ2V0fHx0aGlzO3ZhciBiPWgub3B0aW9ucy5hbm5vdGF0aW9ucztoPWguYW5ub3RhdGlvbnMuaW5kZXhPZihjKTt0aGlzLnJlbW92ZURvY0V2ZW50cygpO2JbaF09Yy5vcHRpb25zfSxvbkRyYWc6ZnVuY3Rpb24oYyl7aWYodGhpcy5jaGFydC5pc0luc2lkZVBsb3QoYy5jaGFydFgtdGhpcy5jaGFydC5wbG90TGVmdCxjLmNoYXJ0WS10aGlzLmNoYXJ0LnBsb3RUb3ApKXt2YXIgYj10aGlzLm1vdXNlTW92ZVRvVHJhbnNsYXRpb24oYyk7IngiPT09dGhpcy5vcHRpb25zLmRyYWdnYWJsZSYmKGIueT0wKTsieSI9PT10aGlzLm9wdGlvbnMuZHJhZ2dhYmxlJiYoYi54PTApO3RoaXMucG9pbnRzLmxlbmd0aD90aGlzLnRyYW5zbGF0ZShiLngsYi55KToodGhpcy5zaGFwZXMuZm9yRWFjaChmdW5jdGlvbihjKXtjLnRyYW5zbGF0ZShiLngsYi55KX0pLHRoaXMubGFiZWxzLmZvckVhY2goZnVuY3Rpb24oYyl7Yy50cmFuc2xhdGUoYi54LApiLnkpfSkpO3RoaXMucmVkcmF3KCExKX19LG1vdXNlTW92ZVRvUmFkaWFuczpmdW5jdGlvbihjLGIsYSl7dmFyIGg9Yy5wcmV2Q2hhcnRZLWEsaz1jLnByZXZDaGFydFgtYjthPWMuY2hhcnRZLWE7Yz1jLmNoYXJ0WC1iO3RoaXMuY2hhcnQuaW52ZXJ0ZWQmJihiPWssaz1oLGg9YixiPWMsYz1hLGE9Yik7cmV0dXJuIE1hdGguYXRhbjIoYSxjKS1NYXRoLmF0YW4yKGgsayl9LG1vdXNlTW92ZVRvVHJhbnNsYXRpb246ZnVuY3Rpb24oYyl7dmFyIGI9Yy5jaGFydFgtYy5wcmV2Q2hhcnRYO2M9Yy5jaGFydFktYy5wcmV2Q2hhcnRZO2lmKHRoaXMuY2hhcnQuaW52Z
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIERhdGEgbW9kdWxlCgogKGMpIDIwMTItMjAxOSBUb3JzdGVpbiBIb25zaQoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihiKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhiWyJkZWZhdWx0Il09Yixtb2R1bGUuZXhwb3J0cz1iKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy9kYXRhIixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbih2KXtiKHYpO2IuSGlnaGNoYXJ0cz12O3JldHVybiBifSk6YigidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGIpe2Z1bmN0aW9uIHYoYixsLHYsdCl7Yi5oYXNPd25Qcm9wZXJ0eShsKXx8KGJbbF09dC5hcHBseShudWxsLHYpKX1iPWI/Yi5fbW9kdWxlczp7fTt2KGIsIm1peGlucy9hamF4LmpzIixbYlsicGFydHMvR2xvYmFscy5qcyJdLGJbInBhcnRzL1V0aWxpdGllcy5qcyJdXSxmdW5jdGlvbihiLGwpe3ZhciB2PWwubWVyZ2UsdD1sLm9iamVjdEVhY2g7Yi5hamF4PWZ1bmN0aW9uKGIpe3ZhciBwPQp2KCEwLHt1cmw6ITEsdHlwZToiZ2V0IixkYXRhVHlwZToianNvbiIsc3VjY2VzczohMSxlcnJvcjohMSxkYXRhOiExLGhlYWRlcnM6e319LGIpO2I9e2pzb246ImFwcGxpY2F0aW9uL2pzb24iLHhtbDoiYXBwbGljYXRpb24veG1sIix0ZXh0OiJ0ZXh0L3BsYWluIixvY3RldDoiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIn07dmFyIGw9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKCFwLnVybClyZXR1cm4hMTtsLm9wZW4ocC50eXBlLnRvVXBwZXJDYXNlKCkscC51cmwsITApO3AuaGVhZGVyc1siQ29udGVudC1UeXBlIl18fGwuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixiW3AuZGF0YVR5cGVdfHxiLnRleHQpO3QocC5oZWFkZXJzLGZ1bmN0aW9uKGIscCl7bC5zZXRSZXF1ZXN0SGVhZGVyKHAsYil9KTtsLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKDQ9PT1sLnJlYWR5U3RhdGUpe2lmKDIwMD09PWwuc3RhdHVzKXt2YXIgYj1sLnJlc3BvbnNlVGV4dDtpZigianNvbiI9PT0KcC5kYXRhVHlwZSl0cnl7Yj1KU09OLnBhcnNlKGIpfWNhdGNoKEEpe3AuZXJyb3ImJnAuZXJyb3IobCxBKTtyZXR1cm59cmV0dXJuIHAuc3VjY2VzcyYmcC5zdWNjZXNzKGIpfXAuZXJyb3ImJnAuZXJyb3IobCxsLnJlc3BvbnNlVGV4dCl9fTt0cnl7cC5kYXRhPUpTT04uc3RyaW5naWZ5KHAuZGF0YSl9Y2F0Y2goRCl7fWwuc2VuZChwLmRhdGF8fCEwKX07Yi5nZXRKU09OPWZ1bmN0aW9uKGwscCl7Yi5hamF4KHt1cmw6bCxzdWNjZXNzOnAsZGF0YVR5cGU6Impzb24iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJ0ZXh0L3BsYWluIn19KX19KTt2KGIsIm1vZHVsZXMvZGF0YS5zcmMuanMiLFtiWyJwYXJ0cy9DaGFydC5qcyJdLGJbInBhcnRzL0dsb2JhbHMuanMiXSxiWyJwYXJ0cy9Qb2ludC5qcyJdLGJbInBhcnRzL1V0aWxpdGllcy5qcyJdXSxmdW5jdGlvbihiLGwsdix0KXt2YXIgRz10LmFkZEV2ZW50LHA9dC5kZWZpbmVkLEg9dC5leHRlbmQsRD10LmZpcmVFdmVudCxBPXQuaXNOdW1iZXIsCkI9dC5tZXJnZSxJPXQub2JqZWN0RWFjaCxKPXQucGljayxLPXQuc3BsYXQsRT1sLmFqYXgsTD1sLndpbi5kb2N1bWVudDt0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYihhLGMsZil7dGhpcy5vcHRpb25zPXRoaXMucmF3Q29sdW1ucz10aGlzLmZpcnN0Um93QXNOYW1lcz10aGlzLmNoYXJ0T3B0aW9ucz10aGlzLmNoYXJ0PXZvaWQgMDt0aGlzLmRhdGVGb3JtYXRzPXsiWVlZWS9tbS9kZCI6e3JlZ2V4Oi9eKFswLTldezR9KVtcLVwvXC5dKFswLTldezEsMn0pW1wtXC9cLl0oWzAtOV17MSwyfSkkLyxwYXJzZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/RGF0ZS5VVEMoK2FbMV0sYVsyXS0xLCthWzNdKTpOYU59fSwiZGQvbW0vWVlZWSI6e3JlZ2V4Oi9eKFswLTldezEsMn0pW1wtXC9cLl0oWzAtOV17MSwyfSlbXC1cL1wuXShbMC05XXs0fSkkLyxwYXJzZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/RGF0ZS5VVEMoK2FbM10sYVsyXS0xLCthWzFdKTpOYU59LGFsdGVybmF0aXZlOiJtbS9kZC9ZWVlZIn0sCiJtbS9kZC9ZWVlZIjp7cmVnZXg6L14oWzAtOV17MSwyfSlbXC1cL1wuXShbMC05XXsxLDJ9KVtcLVwvXC5dKFswLTldezR9KSQvLHBhcnNlcjpmdW5jdGlvbihhKXtyZXR1cm4gYT9EYXRlLlVUQygrYVszXSxhWzFdLTEsK2FbMl0pOk5hTn19LCJkZC9tbS9ZWSI6e3JlZ2V4Oi9eKFswLTldezEsMn0pW1wtXC9cLl0oWzAtOV17MSwyfSlbXC1cL1wuXShbMC05XXsyfSkkLyxwYXJzZXI6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIE5hTjt2YXIgYz0rYVszXTtjPWM+KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLTJFMz9jKzE5MDA6YysyRTM7cmV0dXJuIERhdGUuVVRDKGMsYVsyXS0xLCthWzFdKX0sYWx0ZXJuYXRpdmU6Im1tL2RkL1lZIn0sIm1tL2RkL1lZIjp7cmVnZXg6L14oWzAtOV17MSwyfSlbXC1cL1wuXShbMC05XXsxLDJ9KVtcLVwvXC5dKFswLTldezJ9KSQvLHBhcnNlcjpmdW5jdGlvbihhKXtyZXR1cm4gYT9EYXRlLlVUQygrYVszXSsyRTMsYVsxXS0xLCthWzJdKTpOYU59fX07CnRoaXMuaW5pdChhLGMsZil9Yi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbihhLGMsZil7dmFyIGQ9YS5kZWNpbWFsUG9pbnQ7YyYmKHRoaXMuY2hhcnRPcHRpb25zPWMpO2YmJih0aGlzLmNoYXJ0PWYpOyIuIiE9PWQmJiIsIiE9PWQmJihkPXZvaWQgMCk7dGhpcy5vcHRpb25zPWE7dGhpcy5jb2x1bW5zPWEuY29sdW1uc3x8dGhpcy5yb3dzVG9Db2x1bW5zKGEucm93cyl8fFtdO3RoaXMuZmlyc3RSb3dBc05hbWVzPUooYS5maXJzdFJvd0FzTmFtZXMsdGhpcy5maXJzdFJvd0FzTmFtZXMsITApO3RoaXMuZGVjaW1hbFJlZ2V4PWQmJm5ldyBSZWdFeHAoIl4oLT9bMC05XSspIitkKyIoWzAtOV0rKSQiKTt0aGlzLnJhd0NvbHVtbnM9W
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIEhpZ2hjaGFydHMgRHJpbGxkb3duIG1vZHVsZQoKIEF1dGhvcjogVG9yc3RlaW4gSG9uc2kKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCgoqLwooZnVuY3Rpb24oYyl7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oY1siZGVmYXVsdCJdPWMsbW9kdWxlLmV4cG9ydHM9Yyk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvZHJpbGxkb3duIixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbihtKXtjKG0pO2MuSGlnaGNoYXJ0cz1tO3JldHVybiBjfSk6YygidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGMpe2Z1bmN0aW9uIG0oYyxtLHAsdCl7Yy5oYXNPd25Qcm9wZXJ0eShtKXx8KGNbbV09dC5hcHBseShudWxsLHApKX1jPWM/Yy5fbW9kdWxlczp7fTttKGMsIm1vZHVsZXMvZHJpbGxkb3duLnNyYy5qcyIsW2NbInBhcnRzL0NoYXJ0LmpzIl0sY1sicGFydHMvQ29sb3IuanMiXSxjWyJwYXJ0cy9HbG9iYWxzLmpzIl0sY1sicGFydHMvT3B0aW9ucy5qcyJdLGNbInBhcnRzL1BvaW50LmpzIl0sCmNbInBhcnRzL1NWR1JlbmRlcmVyLmpzIl0sY1sicGFydHMvVGljay5qcyJdLGNbInBhcnRzL1V0aWxpdGllcy5qcyJdXSxmdW5jdGlvbihjLG0scCx0LHksRSxBLGspe3Q9dC5kZWZhdWx0T3B0aW9uczt2YXIgbj1rLmFkZEV2ZW50LEY9ay5yZW1vdmVFdmVudCxCPWsuYW5pbU9iamVjdCx1PWsuZXh0ZW5kLHg9ay5maXJlRXZlbnQsRz1rLmZvcm1hdCx2PWsubWVyZ2UsQz1rLm9iamVjdEVhY2gsdz1rLnBpY2ssSD1rLnN5bmNUaW1lb3V0LEk9cC5ub29wLHE9cC5zZXJpZXNUeXBlcztrPXEucGllO3E9cS5jb2x1bW47dmFyIEQ9MTt1KHQubGFuZyx7ZHJpbGxVcFRleHQ6Ilx1MjVjMSBCYWNrIHRvIHtzZXJpZXMubmFtZX0ifSk7dC5kcmlsbGRvd249e2FjdGl2ZUF4aXNMYWJlbFN0eWxlOntjdXJzb3I6InBvaW50ZXIiLGNvbG9yOiIjMDAzMzk5Iixmb250V2VpZ2h0OiJib2xkIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sYWN0aXZlRGF0YUxhYmVsU3R5bGU6e2N1cnNvcjoicG9pbnRlciIsCmNvbG9yOiIjMDAzMzk5Iixmb250V2VpZ2h0OiJib2xkIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sYW5pbWF0aW9uOntkdXJhdGlvbjo1MDB9LGRyaWxsVXBCdXR0b246e3Bvc2l0aW9uOnthbGlnbjoicmlnaHQiLHg6LTEwLHk6MTB9fX07RS5wcm90b3R5cGUuRWxlbWVudC5wcm90b3R5cGUuZmFkZUluPWZ1bmN0aW9uKGEpe3RoaXMuYXR0cih7b3BhY2l0eTouMSx2aXNpYmlsaXR5OiJpbmhlcml0In0pLmFuaW1hdGUoe29wYWNpdHk6dyh0aGlzLm5ld09wYWNpdHksMSl9LGF8fHtkdXJhdGlvbjoyNTB9KX07Yy5wcm90b3R5cGUuYWRkU2VyaWVzQXNEcmlsbGRvd249ZnVuY3Rpb24oYSxiKXt0aGlzLmFkZFNpbmdsZVNlcmllc0FzRHJpbGxkb3duKGEsYik7dGhpcy5hcHBseURyaWxsZG93bigpfTtjLnByb3RvdHlwZS5hZGRTaW5nbGVTZXJpZXNBc0RyaWxsZG93bj1mdW5jdGlvbihhLGIpe3ZhciBkPWEuc2VyaWVzLGY9ZC54QXhpcyxlPWQueUF4aXMsZz1bXSxyPVtdLGg7dmFyIGw9CnRoaXMuc3R5bGVkTW9kZT97Y29sb3JJbmRleDp3KGEuY29sb3JJbmRleCxkLmNvbG9ySW5kZXgpfTp7Y29sb3I6YS5jb2xvcnx8ZC5jb2xvcn07dGhpcy5kcmlsbGRvd25MZXZlbHN8fCh0aGlzLmRyaWxsZG93bkxldmVscz1bXSk7dmFyIGM9ZC5vcHRpb25zLl9sZXZlbE51bWJlcnx8MDsoaD10aGlzLmRyaWxsZG93bkxldmVsc1t0aGlzLmRyaWxsZG93bkxldmVscy5sZW5ndGgtMV0pJiZoLmxldmVsTnVtYmVyIT09YyYmKGg9dm9pZCAwKTtiPXUodSh7X2RkU2VyaWVzSWQ6RCsrfSxsKSxiKTt2YXIgaz1kLnBvaW50cy5pbmRleE9mKGEpO2QuY2hhcnQuc2VyaWVzLmZvckVhY2goZnVuY3Rpb24oYSl7YS54QXhpcyE9PWZ8fGEuaXNEcmlsbGluZ3x8KGEub3B0aW9ucy5fZGRTZXJpZXNJZD1hLm9wdGlvbnMuX2RkU2VyaWVzSWR8fEQrKyxhLm9wdGlvbnMuX2NvbG9ySW5kZXg9YS51c2VyT3B0aW9ucy5fY29sb3JJbmRleCxhLm9wdGlvbnMuX2xldmVsTnVtYmVyPWEub3B0aW9ucy5fbGV2ZWxOdW1iZXJ8fApjLGg/KGc9aC5sZXZlbFNlcmllcyxyPWgubGV2ZWxTZXJpZXNPcHRpb25zKTooZy5wdXNoKGEpLGEucHVyZ2VkT3B0aW9ucz12KHtfZGRTZXJpZXNJZDphLm9wdGlvbnMuX2RkU2VyaWVzSWQsX2xldmVsTnVtYmVyOmEub3B0aW9ucy5fbGV2ZWxOdW1iZXIsc2VsZWN0ZWQ6YS5vcHRpb25zLnNlbGVjdGVkfSxhLnVzZXJPcHRpb25zKSxyLnB1c2goYS5wdXJnZWRPcHRpb25zKSkpfSk7YT11KHtsZXZlbE51bWJlcjpjLHNlcmllc09wdGlvbnM6ZC5vcHRpb25zLHNlcmllc1B1cmdlZE9wdGlvbnM6ZC5wdXJnZWRPcHRpb25zLGxldmVsU2VyaWVzT3B0aW9uczpyLGxldmVsU2VyaWVzOmcsc2hhcGVBcmdzOmEuc2hhcGVBcmdzLGJCb3g6YS5ncmFwaGljP2EuZ3JhcGhpYy5nZXRCQm94KCk6e30sY29sb3I6YS5pc051bGw/KG5ldyBtKGwuY29sb3IpKS5zZXRPcGFjaXR5KDApLmdldCgpOmwuY29sb3IsbG93ZXJTZXJpZXNPcHRpb25zOmIscG9pbnRPcHRpb25zOmQub3B0aW9ucy5kYXRhW2tdLApwb2ludEluZGV4Omssb2xkRXh0cmVtZXM6e3hNaW46ZiYmZi51c2VyTWluLHhNYXg6ZiYmZi51c2VyTWF4LHlNaW46ZSYmZS51c2VyTWluLHlNYXg6ZSYmZS51c2VyTWF4fSxyZXNldFpvb21CdXR0b246dGhpcy5yZXNldFpvb21CdXR0b259LGwpO3RoaXMuZHJpbGxkb3duTGV2ZWxzLnB1c2goYSk7ZiYmZi5uYW1lcyYmKGYubmFtZXMubGVuZ3RoPTApO2I9YS5sb3dlclNlcmllcz10aGlzLmFkZFNlcmllcyhiLCExKTtiLm9wdGlvbnMuX2xldmVsTnVtYmVyPWMrMTtmJiYoZi5vbGRQb3M9Zi5wb3MsZi51c2VyTWluPWYudXNlck1heD1udWxsLGUudXNlck1pbj1lLnVzZXJNYXg9bnVsbCk7Z
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIEl0ZW0gc2VyaWVzIHR5cGUgZm9yIEhpZ2hjaGFydHMKCiAoYykgMjAxOSBUb3JzdGVpbiBIb25zaQoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihiKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhiWyJkZWZhdWx0Il09Yixtb2R1bGUuZXhwb3J0cz1iKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy9pdGVtLXNlcmllcyIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24oZCl7YihkKTtiLkhpZ2hjaGFydHM9ZDtyZXR1cm4gYn0pOmIoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihiKXtmdW5jdGlvbiBkKGIsZCxjLEMpe2IuaGFzT3duUHJvcGVydHkoZCl8fChiW2RdPUMuYXBwbHkobnVsbCxjKSl9Yj1iP2IuX21vZHVsZXM6e307ZChiLCJtb2R1bGVzL2l0ZW0tc2VyaWVzLnNyYy5qcyIsW2JbInBhcnRzL0dsb2JhbHMuanMiXSxiWyJwYXJ0cy9PcHRpb25zLmpzIl0sYlsicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGIsZCxjKXt2YXIgQz1jLmRlZmluZWQsCkY9Yy5leHRlbmQsRz1jLmZpcmVFdmVudCxEPWMuaXNOdW1iZXIsSD1jLm1lcmdlLEk9Yy5vYmplY3RFYWNoLEo9Yy5waWNrO2M9Yy5zZXJpZXNUeXBlO3ZhciBtPWIuc2VyaWVzVHlwZXMucGllLnByb3RvdHlwZS5wb2ludENsYXNzLnByb3RvdHlwZTtjKCJpdGVtIiwicGllIix7ZW5kQW5nbGU6dm9pZCAwLGlubmVyU2l6ZToiNDAlIixpdGVtUGFkZGluZzouMSxsYXlvdXQ6InZlcnRpY2FsIixtYXJrZXI6SChkLmRlZmF1bHRPcHRpb25zLnBsb3RPcHRpb25zLmxpbmUubWFya2VyLHtyYWRpdXM6bnVsbH0pLHJvd3M6dm9pZCAwLGNyaXNwOiExLHNob3dJbkxlZ2VuZDohMCxzdGFydEFuZ2xlOnZvaWQgMH0se21hcmtlckF0dHJpYnM6dm9pZCAwLHRyYW5zbGF0ZTpmdW5jdGlvbihhKXswPT09dGhpcy50b3RhbCYmKHRoaXMuY2VudGVyPXRoaXMuZ2V0Q2VudGVyKCkpO3RoaXMuc2xvdHN8fCh0aGlzLnNsb3RzPVtdKTtEKHRoaXMub3B0aW9ucy5zdGFydEFuZ2xlKSYmRCh0aGlzLm9wdGlvbnMuZW5kQW5nbGUpPwooYi5zZXJpZXNUeXBlcy5waWUucHJvdG90eXBlLnRyYW5zbGF0ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5zbG90cz10aGlzLmdldFNsb3RzKCkpOih0aGlzLmdlbmVyYXRlUG9pbnRzKCksRyh0aGlzLCJhZnRlclRyYW5zbGF0ZSIpKX0sZ2V0U2xvdHM6ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEpezA8QiYmKGEucm93LmNvbENvdW50LS0sQi0tKX1mb3IodmFyIGI9dGhpcy5jZW50ZXIsYz1iWzJdLGQ9YlszXSx4LG49dGhpcy5zbG90cyxyLHksdCx1LHYsZixsLHcsaD0wLHAsej10aGlzLmVuZEFuZ2xlUmFkLXRoaXMuc3RhcnRBbmdsZVJhZCxxPU51bWJlci5NQVhfVkFMVUUsQSxlLGssZz10aGlzLm9wdGlvbnMucm93cyxtPShjLWQpL2MsRT0wPT09eiUoMipNYXRoLlBJKTtxPnRoaXMudG90YWwrKGUmJkU/ZS5sZW5ndGg6MCk7KWZvcihBPXEscT1uLmxlbmd0aD0wLGU9ayxrPVtdLGgrKyxwPWMvaC8yLGc/KGQ9KHAtZykvcCpjLDA8PWQ/cD1nOihkPTAsbT0xKSk6cD1NYXRoLmZsb29yKHAqCm0pLHg9cDswPHg7eC0tKXQ9KGQreC9wKihjLWQtaCkpLzIsdT16KnQsdj1NYXRoLmNlaWwodS9oKSxrLnB1c2goe3Jvd1JhZGl1czp0LHJvd0xlbmd0aDp1LGNvbENvdW50OnZ9KSxxKz12KzE7aWYoZSl7Zm9yKHZhciBCPUEtdGhpcy50b3RhbC0oRT9lLmxlbmd0aDowKTswPEI7KWUubWFwKGZ1bmN0aW9uKGEpe3JldHVybnthbmdsZTphLmNvbENvdW50L2Eucm93TGVuZ3RoLHJvdzphfX0pLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5hbmdsZS1hLmFuZ2xlfSkuc2xpY2UoMCxNYXRoLm1pbihCLE1hdGguY2VpbChlLmxlbmd0aC8yKSkpLmZvckVhY2goYSk7ZS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBjPWEucm93UmFkaXVzO2Y9KGE9YS5jb2xDb3VudCk/ei9hOjA7Zm9yKHc9MDt3PD1hO3crPTEpbD10aGlzLnN0YXJ0QW5nbGVSYWQrdypmLHI9YlswXStNYXRoLmNvcyhsKSpjLHk9YlsxXStNYXRoLnNpbihsKSpjLG4ucHVzaCh7eDpyLHk6eSxhbmdsZTpsfSl9LHRoaXMpOwpuLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5hbmdsZS1iLmFuZ2xlfSk7dGhpcy5pdGVtU2l6ZT1oO3JldHVybiBufX0sZ2V0Um93czpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucy5yb3dzO2lmKCFhKXt2YXIgYj10aGlzLmNoYXJ0LnBsb3RXaWR0aC90aGlzLmNoYXJ0LnBsb3RIZWlnaHQ7YT1NYXRoLnNxcnQodGhpcy50b3RhbCk7aWYoMTxiKWZvcihhPU1hdGguY2VpbChhKTswPGE7KXt2YXIgYz10aGlzLnRvdGFsL2E7aWYoYy9hPmIpYnJlYWs7YS0tfWVsc2UgZm9yKGE9TWF0aC5mbG9vcihhKTthPHRoaXMudG90YWw7KXtjPXRoaXMudG90YWwvYTtpZihjL2E8YilicmVhazthKyt9fXJldHVybiBhfSxkcmF3UG9pbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPXRoaXMub3B0aW9ucyxjPWEuY2hhcnQucmVuZGVyZXIsZD1iLm1hcmtlcixtPXRoaXMuYm9yZGVyV2lkdGglMj8uNToxLG49MCxyPXRoaXMuZ2V0Um93cygpLHk9TWF0aC5jZWlsKHRoaXMudG90YWwvciksCnQ9dGhpcy5jaGFydC5wbG90V2lkdGgveSx1PXRoaXMuY2hhcnQucGxvdEhlaWdodC9yLHY9dGhpcy5pdGVtU2l6ZXx8TWF0aC5taW4odCx1KTt0aGlzLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGYpe3ZhciBsLHcsaD1mLm1hcmtlcnx8e30scD1oLnN5bWJvbHx8ZC5zeW1ib2w7aD1KKGgucmFkaXVzLGQucmFkaXVzKTt2YXIgej1DKGgpPzIqaDp2LHE9eipiLml0ZW1QYWRkaW5nLEE7Zi5ncmFwaGljcz1sPWYuZ3JhcGhpY3N8fHt9O2EuY2hhcnQuc3R5bGVkTW9kZXx8KHc9YS5wb2ludEF0dHJpYnMoZixmLnNlbGVjdGVkJiYic2VsZWN0IikpO2lmKCFmLmlzTnVsbCYmZi52aXNpY
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIENsaWVudCBzaWRlIGV4cG9ydGluZyBtb2R1bGUKCiAoYykgMjAxNS0yMDE5IFRvcnN0ZWluIEhvbnNpIC8gT3lzdGVpbiBNb3NlbmcKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oYSl7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oYVsiZGVmYXVsdCJdPWEsbW9kdWxlLmV4cG9ydHM9YSk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvb2ZmbGluZS1leHBvcnRpbmciLFsiaGlnaGNoYXJ0cyIsImhpZ2hjaGFydHMvbW9kdWxlcy9leHBvcnRpbmciXSxmdW5jdGlvbihoKXthKGgpO2EuSGlnaGNoYXJ0cz1oO3JldHVybiBhfSk6YSgidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGgoYSxiLHEsayl7YS5oYXNPd25Qcm9wZXJ0eShiKXx8KGFbYl09ay5hcHBseShudWxsLHEpKX1hPWE/YS5fbW9kdWxlczp7fTtoKGEsIm1peGlucy9kb3dubG9hZC11cmwuanMiLFthWyJwYXJ0cy9HbG9iYWxzLmpzIl1dLGZ1bmN0aW9uKGEpe3ZhciBiPWEud2luLHE9Yi5uYXZpZ2F0b3IsCms9Yi5kb2N1bWVudCxuPWIuVVJMfHxiLndlYmtpdFVSTHx8YixlPS9FZGdlXC9cZCsvLnRlc3QocS51c2VyQWdlbnQpO2EuZGF0YVVSTHRvQmxvYj1mdW5jdGlvbihhKXtpZigoYT1hLm1hdGNoKC9kYXRhOihbXjtdKikoO2Jhc2U2NCk/LChbMC05QS1aYS16Ky9dKykvKSkmJjM8YS5sZW5ndGgmJmIuYXRvYiYmYi5BcnJheUJ1ZmZlciYmYi5VaW50OEFycmF5JiZiLkJsb2ImJm4uY3JlYXRlT2JqZWN0VVJMKXt2YXIgZz1iLmF0b2IoYVszXSksZD1uZXcgYi5BcnJheUJ1ZmZlcihnLmxlbmd0aCk7ZD1uZXcgYi5VaW50OEFycmF5KGQpO2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7KytlKWRbZV09Zy5jaGFyQ29kZUF0KGUpO2E9bmV3IGIuQmxvYihbZF0se3R5cGU6YVsxXX0pO3JldHVybiBuLmNyZWF0ZU9iamVjdFVSTChhKX19O2EuZG93bmxvYWRVUkw9ZnVuY3Rpb24oZyxuKXt2YXIgZD1rLmNyZWF0ZUVsZW1lbnQoImEiKTtpZigic3RyaW5nIj09PXR5cGVvZiBnfHxnIGluc3RhbmNlb2YKU3RyaW5nfHwhcS5tc1NhdmVPck9wZW5CbG9iKXtpZihlfHwyRTY8Zy5sZW5ndGgpaWYoZz1hLmRhdGFVUkx0b0Jsb2IoZyksIWcpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb252ZXJ0IHRvIGJsb2IiKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBkLmRvd25sb2FkKWQuaHJlZj1nLGQuZG93bmxvYWQ9bixrLmJvZHkuYXBwZW5kQ2hpbGQoZCksZC5jbGljaygpLGsuYm9keS5yZW1vdmVDaGlsZChkKTtlbHNlIHRyeXt2YXIgaD1iLm9wZW4oZywiY2hhcnQiKTtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBofHxudWxsPT09aCl0aHJvdyBFcnJvcigiRmFpbGVkIHRvIG9wZW4gd2luZG93Iik7fWNhdGNoKEEpe2IubG9jYXRpb24uaHJlZj1nfX1lbHNlIHEubXNTYXZlT3JPcGVuQmxvYihnLG4pfX0pO2goYSwibW9kdWxlcy9vZmZsaW5lLWV4cG9ydGluZy5zcmMuanMiLFthWyJwYXJ0cy9DaGFydC5qcyJdLGFbInBhcnRzL0dsb2JhbHMuanMiXSxhWyJwYXJ0cy9TVkdSZW5kZXJlci5qcyJdLAphWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24oYSxiLGgsayl7ZnVuY3Rpb24gbihhLGIpe3ZhciBmPWcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXSxjPWcuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Yy50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2Muc3JjPWE7Yy5vbmxvYWQ9YjtjLm9uZXJyb3I9ZnVuY3Rpb24oKXtkKCJFcnJvciBsb2FkaW5nIHNjcmlwdCAiK2EpfTtmLmFwcGVuZENoaWxkKGMpfXZhciBlPWIud2luLGc9Yi5kb2MscT1rLmFkZEV2ZW50LGQ9ay5lcnJvcixGPWsuZXh0ZW5kLEE9ay5nZXRPcHRpb25zLEM9ay5tZXJnZSxEPWUuVVJMfHxlLndlYmtpdFVSTHx8ZSx4PWUubmF2aWdhdG9yLEI9L0VkZ2VcL3xUcmlkZW50XC98TVNJRSAvLnRlc3QoeC51c2VyQWdlbnQpLEc9Qj8xNTA6MDtiLkNhblZHUmVuZGVyZXI9e307Yi5zdmdUb0RhdGFVcmw9ZnVuY3Rpb24oYSl7dmFyIGI9LTE8eC51c2VyQWdlbnQuaW5kZXhPZigiV2ViS2l0IikmJjA+eC51c2VyQWdlbnQuaW5kZXhPZigiQ2hyb21lIik7CnRyeXtpZighYiYmMD54LnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImZpcmVmb3giKSlyZXR1cm4gRC5jcmVhdGVPYmplY3RVUkwobmV3IGUuQmxvYihbYV0se3R5cGU6ImltYWdlL3N2Zyt4bWw7Y2hhcnNldC11dGYtMTYifSkpfWNhdGNoKGYpe31yZXR1cm4iZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsIitlbmNvZGVVUklDb21wb25lbnQoYSl9O2IuaW1hZ2VUb0RhdGFVcmw9ZnVuY3Rpb24oYSxiLGYsYyxkLG0saCx0LHope3ZhciBsPW5ldyBlLkltYWdlLHI9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGU9Zy5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxtPWUuZ2V0Q29udGV4dCYmZS5nZXRDb250ZXh0KCIyZCIpO3RyeXtpZihtKXtlLmhlaWdodD1sLmhlaWdodCpjO2Uud2lkdGg9bC53aWR0aCpjO20uZHJhd0ltYWdlKGwsMCwwLGUud2lkdGgsZS5oZWlnaHQpO3RyeXt2YXIgeT1lLnRvRGF0YVVSTChiKTtkKHksYixmLGMpfWNhdGNoKEUpe2soYSwKYixmLGMpfX1lbHNlIGgoYSxiLGYsYyl9ZmluYWxseXt6JiZ6KGEsYixmLGMpfX0sRyl9LHU9ZnVuY3Rpb24oKXt0KGEsYixmLGMpO3omJnooYSxiLGYsYyl9O3ZhciBrPWZ1bmN0aW9uKCl7bD1uZXcgZS5JbWFnZTtrPW07bC5jcm9zc09yaWdpbj0iQW5vbnltb3VzIjtsLm9ubG9hZD1yO2wub25lcnJvcj11O2wuc3JjPWF9O2wub25sb2FkPXI7bC5vbmVycm9yPXU7bC5zcmM9YX07Yi5kb3dubG9hZFNWR0xvY2FsPWZ1bmN0aW9uKGEsZCxmLGMpe2Z1bmN0aW9uIHUoYSxiKXt2YXIgYz1hLndpZHRoLmJhc2VWYWwudmFsdWUrMipiO2I9Y
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIChjKSAyMDA5LTIwMTkgVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oYSl7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oYVsiZGVmYXVsdCJdPWEsbW9kdWxlLmV4cG9ydHM9YSk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvb3ZlcmxhcHBpbmctZGF0YWxhYmVscyIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24oYil7YShiKTthLkhpZ2hjaGFydHM9YjtyZXR1cm4gYX0pOmEoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihhKXsoZnVuY3Rpb24oYSxjLGQsZSl7YS5oYXNPd25Qcm9wZXJ0eShjKXx8KGFbY109ZS5hcHBseShudWxsLGQpKX0pKGE/YS5fbW9kdWxlczp7fSwibWFzdGVycy9tb2R1bGVzL292ZXJsYXBwaW5nLWRhdGFsYWJlbHMuc3JjLmpzIixbXSxmdW5jdGlvbigpe30pfSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPW92ZXJsYXBwaW5nLWRhdGFsYWJlbHMuanMubWFw\"></script>\n",
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIEV4cG9ydGluZyBtb2R1bGUKCiAoYykgMjAxMC0yMDE5IFRvcnN0ZWluIEhvbnNpCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGMpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGNbImRlZmF1bHQiXT1jLG1vZHVsZS5leHBvcnRzPWMpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9tb2R1bGVzL2V4cG9ydGluZyIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24ocCl7YyhwKTtjLkhpZ2hjaGFydHM9cDtyZXR1cm4gY30pOmMoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihjKXtmdW5jdGlvbiBwKGMsbCxoLGspe2MuaGFzT3duUHJvcGVydHkobCl8fChjW2xdPWsuYXBwbHkobnVsbCxoKSl9Yz1jP2MuX21vZHVsZXM6e307cChjLCJtb2R1bGVzL2Z1bGwtc2NyZWVuLnNyYy5qcyIsW2NbInBhcnRzL0NoYXJ0LmpzIl0sY1sicGFydHMvR2xvYmFscy5qcyJdLGNbInBhcnRzL1V0aWxpdGllcy5qcyJdXSxmdW5jdGlvbihjLGwsaCl7dmFyIGs9aC5hZGRFdmVudDsKaD1mdW5jdGlvbigpe2Z1bmN0aW9uIGMoZSl7dGhpcy5jaGFydD1lO3RoaXMuaXNPcGVuPSExO2U9ZS5yZW5kZXJUbzt0aGlzLmJyb3dzZXJQcm9wc3x8KCJmdW5jdGlvbiI9PT10eXBlb2YgZS5yZXF1ZXN0RnVsbHNjcmVlbj90aGlzLmJyb3dzZXJQcm9wcz17ZnVsbHNjcmVlbkNoYW5nZToiZnVsbHNjcmVlbmNoYW5nZSIscmVxdWVzdEZ1bGxzY3JlZW46InJlcXVlc3RGdWxsc2NyZWVuIixleGl0RnVsbHNjcmVlbjoiZXhpdEZ1bGxzY3JlZW4ifTplLm1velJlcXVlc3RGdWxsU2NyZWVuP3RoaXMuYnJvd3NlclByb3BzPXtmdWxsc2NyZWVuQ2hhbmdlOiJtb3pmdWxsc2NyZWVuY2hhbmdlIixyZXF1ZXN0RnVsbHNjcmVlbjoibW96UmVxdWVzdEZ1bGxTY3JlZW4iLGV4aXRGdWxsc2NyZWVuOiJtb3pDYW5jZWxGdWxsU2NyZWVuIn06ZS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbj90aGlzLmJyb3dzZXJQcm9wcz17ZnVsbHNjcmVlbkNoYW5nZToid2Via2l0ZnVsbHNjcmVlbmNoYW5nZSIsCnJlcXVlc3RGdWxsc2NyZWVuOiJ3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiIsZXhpdEZ1bGxzY3JlZW46IndlYmtpdEV4aXRGdWxsc2NyZWVuIn06ZS5tc1JlcXVlc3RGdWxsc2NyZWVuJiYodGhpcy5icm93c2VyUHJvcHM9e2Z1bGxzY3JlZW5DaGFuZ2U6Ik1TRnVsbHNjcmVlbkNoYW5nZSIscmVxdWVzdEZ1bGxzY3JlZW46Im1zUmVxdWVzdEZ1bGxzY3JlZW4iLGV4aXRGdWxsc2NyZWVuOiJtc0V4aXRGdWxsc2NyZWVuIn0pKX1jLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuY2hhcnQ7aWYodGhpcy5pc09wZW4mJnRoaXMuYnJvd3NlclByb3BzJiZlLmNvbnRhaW5lci5vd25lckRvY3VtZW50IGluc3RhbmNlb2YgRG9jdW1lbnQpZS5jb250YWluZXIub3duZXJEb2N1bWVudFt0aGlzLmJyb3dzZXJQcm9wcy5leGl0RnVsbHNjcmVlbl0oKTt0aGlzLnVuYmluZEZ1bGxzY3JlZW5FdmVudCYmdGhpcy51bmJpbmRGdWxsc2NyZWVuRXZlbnQoKTt0aGlzLmlzT3Blbj0hMTsKdGhpcy5zZXRCdXR0b25UZXh0KCl9O2MucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oKXt2YXIgZT10aGlzLGM9ZS5jaGFydDtpZihlLmJyb3dzZXJQcm9wcyl7ZS51bmJpbmRGdWxsc2NyZWVuRXZlbnQ9ayhjLmNvbnRhaW5lci5vd25lckRvY3VtZW50LGUuYnJvd3NlclByb3BzLmZ1bGxzY3JlZW5DaGFuZ2UsZnVuY3Rpb24oKXtlLmlzT3Blbj8oZS5pc09wZW49ITEsZS5jbG9zZSgpKTooZS5pc09wZW49ITAsZS5zZXRCdXR0b25UZXh0KCkpfSk7dmFyIGg9Yy5yZW5kZXJUb1tlLmJyb3dzZXJQcm9wcy5yZXF1ZXN0RnVsbHNjcmVlbl0oKTtpZihoKWhbImNhdGNoIl0oZnVuY3Rpb24oKXthbGVydCgiRnVsbCBzY3JlZW4gaXMgbm90IHN1cHBvcnRlZCBpbnNpZGUgYSBmcmFtZS4iKX0pO2soYywiZGVzdHJveSIsZS51bmJpbmRGdWxsc2NyZWVuRXZlbnQpfX07Yy5wcm90b3R5cGUuc2V0QnV0dG9uVGV4dD1mdW5jdGlvbigpe3ZhciBlLGM9dGhpcy5jaGFydCxoPWMuZXhwb3J0RGl2RWxlbWVudHMsCms9Yy5vcHRpb25zLmV4cG9ydGluZyxsPW51bGw9PT0oZT1udWxsPT09a3x8dm9pZCAwPT09az92b2lkIDA6ay5idXR0b25zKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jb250ZXh0QnV0dG9uLm1lbnVJdGVtcztlPWMub3B0aW9ucy5sYW5nOyhudWxsPT09a3x8dm9pZCAwPT09az8wOmsubWVudUl0ZW1EZWZpbml0aW9ucykmJihudWxsPT09ZXx8dm9pZCAwPT09ZT8wOmUuZXhpdEZ1bGxzY3JlZW4pJiZlLnZpZXdGdWxsc2NyZWVuJiZsJiZoJiZoLmxlbmd0aCYmKGhbbC5pbmRleE9mKCJ2aWV3RnVsbHNjcmVlbiIpXS5pbm5lckhUTUw9dGhpcy5pc09wZW4/ZS5leGl0RnVsbHNjcmVlbjprLm1lbnVJdGVtRGVmaW5pdGlvbnMudmlld0Z1bGxzY3JlZW4udGV4dHx8ZS52aWV3RnVsbHNjcmVlbil9O2MucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbigpe3RoaXMuaXNPcGVuP3RoaXMuY2xvc2UoKTp0aGlzLm9wZW4oKX07cmV0dXJuIGN9KCk7bC5GdWxsc2NyZWVuPWg7ayhjLCJiZWZvcmVSZW5kZXIiLApmdW5jdGlvbigpe3RoaXMuZnVsbHNjcmVlbj1uZXcgbC5GdWxsc2NyZWVuKHRoaXMpfSk7cmV0dXJuIGwuRnVsbHNjcmVlbn0pO3AoYywibWl4aW5zL25hdmlnYXRpb24uanMiLFtdLGZ1bmN0aW9uKCl7cmV0dXJue2luaXRVcGRhdGU6ZnVuY3Rpb24oYyl7Yy5uYXZpZ2F0aW9ufHwoYy5uYXZpZ2F0aW9uPXt1cGRhdGVzOltdLHVwZGF0ZTpmdW5jdGlvbihjLGgpe3RoaXMudXBkYXRlcy5mb3JFYWNoKGZ1bmN0aW9uKGspe2sudXBkYXRlLmNhbGwoay5jb250ZXh0LGMsaCl9KX19KX0sYWRkVXBkYXRlOmZ1bmN0aW9uKGMsbCl7bC5uYXZpZ2F0aW9ufHx0aGlzLmluaXRVcGRhdGUobCk7bC5uYXZpZ2F0aW9uLnVwZGF0ZXMucHVza
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIEV4cG9ydGluZyBtb2R1bGUKCiAoYykgMjAxMC0yMDE5IFRvcnN0ZWluIEhvbnNpCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGEpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGFbImRlZmF1bHQiXT1hLG1vZHVsZS5leHBvcnRzPWEpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9tb2R1bGVzL2V4cG9ydC1kYXRhIixbImhpZ2hjaGFydHMiLCJoaWdoY2hhcnRzL21vZHVsZXMvZXhwb3J0aW5nIl0sZnVuY3Rpb24oZSl7YShlKTthLkhpZ2hjaGFydHM9ZTtyZXR1cm4gYX0pOmEoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihhKXtmdW5jdGlvbiBlKGEsYixmLGQpe2EuaGFzT3duUHJvcGVydHkoYil8fChhW2JdPWQuYXBwbHkobnVsbCxmKSl9YT1hP2EuX21vZHVsZXM6e307ZShhLCJtaXhpbnMvYWpheC5qcyIsW2FbInBhcnRzL0dsb2JhbHMuanMiXSxhWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24oYSxiKXt2YXIgZj1iLm1lcmdlLApkPWIub2JqZWN0RWFjaDthLmFqYXg9ZnVuY3Rpb24oYil7dmFyIGE9ZighMCx7dXJsOiExLHR5cGU6ImdldCIsZGF0YVR5cGU6Impzb24iLHN1Y2Nlc3M6ITEsZXJyb3I6ITEsZGF0YTohMSxoZWFkZXJzOnt9fSxiKTtiPXtqc29uOiJhcHBsaWNhdGlvbi9qc29uIix4bWw6ImFwcGxpY2F0aW9uL3htbCIsdGV4dDoidGV4dC9wbGFpbiIsb2N0ZXQ6ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9O3ZhciBjPW5ldyBYTUxIdHRwUmVxdWVzdDtpZighYS51cmwpcmV0dXJuITE7Yy5vcGVuKGEudHlwZS50b1VwcGVyQ2FzZSgpLGEudXJsLCEwKTthLmhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdfHxjLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsYlthLmRhdGFUeXBlXXx8Yi50ZXh0KTtkKGEuaGVhZGVycyxmdW5jdGlvbihhLGIpe2Muc2V0UmVxdWVzdEhlYWRlcihiLGEpfSk7Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZig0PT09Yy5yZWFkeVN0YXRlKXtpZigyMDA9PT0KYy5zdGF0dXMpe3ZhciBiPWMucmVzcG9uc2VUZXh0O2lmKCJqc29uIj09PWEuZGF0YVR5cGUpdHJ5e2I9SlNPTi5wYXJzZShiKX1jYXRjaCh2KXthLmVycm9yJiZhLmVycm9yKGMsdik7cmV0dXJufXJldHVybiBhLnN1Y2Nlc3MmJmEuc3VjY2VzcyhiKX1hLmVycm9yJiZhLmVycm9yKGMsYy5yZXNwb25zZVRleHQpfX07dHJ5e2EuZGF0YT1KU09OLnN0cmluZ2lmeShhLmRhdGEpfWNhdGNoKHApe31jLnNlbmQoYS5kYXRhfHwhMCl9O2EuZ2V0SlNPTj1mdW5jdGlvbihiLGQpe2EuYWpheCh7dXJsOmIsc3VjY2VzczpkLGRhdGFUeXBlOiJqc29uIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoidGV4dC9wbGFpbiJ9fSl9fSk7ZShhLCJtaXhpbnMvZG93bmxvYWQtdXJsLmpzIixbYVsicGFydHMvR2xvYmFscy5qcyJdXSxmdW5jdGlvbihhKXt2YXIgYj1hLndpbixmPWIubmF2aWdhdG9yLGQ9Yi5kb2N1bWVudCxlPWIuVVJMfHxiLndlYmtpdFVSTHx8Yix1PS9FZGdlXC9cZCsvLnRlc3QoZi51c2VyQWdlbnQpOwphLmRhdGFVUkx0b0Jsb2I9ZnVuY3Rpb24oYSl7aWYoKGE9YS5tYXRjaCgvZGF0YTooW147XSopKDtiYXNlNjQpPywoWzAtOUEtWmEteisvXSspLykpJiYzPGEubGVuZ3RoJiZiLmF0b2ImJmIuQXJyYXlCdWZmZXImJmIuVWludDhBcnJheSYmYi5CbG9iJiZlLmNyZWF0ZU9iamVjdFVSTCl7dmFyIGM9Yi5hdG9iKGFbM10pLGQ9bmV3IGIuQXJyYXlCdWZmZXIoYy5sZW5ndGgpO2Q9bmV3IGIuVWludDhBcnJheShkKTtmb3IodmFyIGY9MDtmPGQubGVuZ3RoOysrZilkW2ZdPWMuY2hhckNvZGVBdChmKTthPW5ldyBiLkJsb2IoW2RdLHt0eXBlOmFbMV19KTtyZXR1cm4gZS5jcmVhdGVPYmplY3RVUkwoYSl9fTthLmRvd25sb2FkVVJMPWZ1bmN0aW9uKGMscCl7dmFyIGU9ZC5jcmVhdGVFbGVtZW50KCJhIik7aWYoInN0cmluZyI9PT10eXBlb2YgY3x8YyBpbnN0YW5jZW9mIFN0cmluZ3x8IWYubXNTYXZlT3JPcGVuQmxvYil7aWYodXx8MkU2PGMubGVuZ3RoKWlmKGM9YS5kYXRhVVJMdG9CbG9iKGMpLAohYyl0aHJvdyBFcnJvcigiRmFpbGVkIHRvIGNvbnZlcnQgdG8gYmxvYiIpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGUuZG93bmxvYWQpZS5ocmVmPWMsZS5kb3dubG9hZD1wLGQuYm9keS5hcHBlbmRDaGlsZChlKSxlLmNsaWNrKCksZC5ib2R5LnJlbW92ZUNoaWxkKGUpO2Vsc2UgdHJ5e3ZhciBCPWIub3BlbihjLCJjaGFydCIpO2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIEJ8fG51bGw9PT1CKXRocm93IEVycm9yKCJGYWlsZWQgdG8gb3BlbiB3aW5kb3ciKTt9Y2F0Y2goRSl7Yi5sb2NhdGlvbi5ocmVmPWN9fWVsc2UgZi5tc1NhdmVPck9wZW5CbG9iKGMscCl9fSk7ZShhLCJtb2R1bGVzL2V4cG9ydC1kYXRhLnNyYy5qcyIsW2FbInBhcnRzL0F4aXMuanMiXSxhWyJwYXJ0cy9DaGFydC5qcyJdLGFbInBhcnRzL0dsb2JhbHMuanMiXSxhWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24oYSxiLGUsZCl7ZnVuY3Rpb24gZihhLGIpe3ZhciBjPXAubmF2aWdhdG9yLGQ9LTE8Yy51c2VyQWdlbnQuaW5kZXhPZigiV2ViS2l0IikmJgowPmMudXNlckFnZW50LmluZGV4T2YoIkNocm9tZSIpLGc9cC5VUkx8fHAud2Via2l0VVJMfHxwO3RyeXtpZihjLm1zU2F2ZU9yT3BlbkJsb2ImJnAuTVNCbG9iQnVpbGRlcil7dmFyIGU9bmV3IHAuTVNCbG9iQnVpbGRlcjtlLmFwcGVuZChhKTtyZXR1cm4gZS5nZXRCbG9iKCJpbWFnZS9zdmcreG1sIil9aWYoIWQpcmV0dXJuIGcuY3JlYXRlT2JqZWN0VVJMKG5ldyBwLkJsb2IoWyJcdWZlZmYiK2FdLHt0eXBlOmJ9KSl9Y2F0Y2goTSl7fX12YXIgdT1lLmRvYyxjPWUuc2VyaWVzVHlwZXMscD1lLndpbix2PWQuYWRkRXZlbnQsQj1kLmRlZmluZWQsRT1kLmV4dGVuZCxKPWQuZ
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIEhpZ2hjaGFydHMgZnVubmVsIG1vZHVsZQoKIChjKSAyMDEwLTIwMTkgVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oYil7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oYlsiZGVmYXVsdCJdPWIsbW9kdWxlLmV4cG9ydHM9Yik6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvZnVubmVsIixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbihlKXtiKGUpO2IuSGlnaGNoYXJ0cz1lO3JldHVybiBifSk6YigidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGUoYixsLG4sZSl7Yi5oYXNPd25Qcm9wZXJ0eShsKXx8KGJbbF09ZS5hcHBseShudWxsLG4pKX12YXIgeD1iP2IuX21vZHVsZXM6e307ZSh4LCJtb2R1bGVzL2Z1bm5lbC5zcmMuanMiLFt4WyJwYXJ0cy9DaGFydC5qcyJdLHhbInBhcnRzL0dsb2JhbHMuanMiXSx4WyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24oZSxsLG4pe3ZhciB4PWwubm9vcCxDPWwuc2VyaWVzVHlwZSwKST1sLnNlcmllc1R5cGVzO2w9bi5hZGRFdmVudDt2YXIgSj1uLmZpcmVFdmVudCxLPW4uaXNBcnJheSxIPW4ucGljaztDKCJmdW5uZWwiLCJwaWUiLHthbmltYXRpb246ITEsY2VudGVyOlsiNTAlIiwiNTAlIl0sd2lkdGg6IjkwJSIsbmVja1dpZHRoOiIzMCUiLGhlaWdodDoiMTAwJSIsbmVja0hlaWdodDoiMjUlIixyZXZlcnNlZDohMSxzaXplOiEwLGRhdGFMYWJlbHM6e2Nvbm5lY3RvcldpZHRoOjEsdmVydGljYWxBbGlnbjoibWlkZGxlIn0sc3RhdGVzOntzZWxlY3Q6e2NvbG9yOiIjY2NjY2NjIixib3JkZXJDb2xvcjoiIzAwMDAwMCJ9fX0se2FuaW1hdGU6eCx0cmFuc2xhdGU6ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEsYyl7cmV0dXJuLyUkLy50ZXN0KGEpP2MqcGFyc2VJbnQoYSwxMCkvMTAwOnBhcnNlSW50KGEsMTApfXZhciByPTAsYz10aGlzLGc9Yy5jaGFydCxmPWMub3B0aW9ucyxrPWYucmV2ZXJzZWQsZD1mLmlnbm9yZUhpZGRlblBvaW50LGI9Zy5wbG90V2lkdGg7Zz1nLnBsb3RIZWlnaHQ7CnZhciBlPTAsbD1mLmNlbnRlcixoPWEobFswXSxiKSxtPWEobFsxXSxnKSxuPWEoZi53aWR0aCxiKSx1LHY9YShmLmhlaWdodCxnKSx6PWEoZi5uZWNrV2lkdGgsYiksRz1hKGYubmVja0hlaWdodCxnKSxBPW0tdi8yK3YtRztiPWMuZGF0YTt2YXIgRCxFLEM9ImxlZnQiPT09Zi5kYXRhTGFiZWxzLnBvc2l0aW9uPzE6MCxCLHAsRix3LHEseSx0O2MuZ2V0V2lkdGhBdD1mdW5jdGlvbihhKXt2YXIgYz1tLXYvMjtyZXR1cm4gYT5BfHx2PT09Rz96OnorKG4teikqKDEtKGEtYykvKHYtRykpfTtjLmdldFg9ZnVuY3Rpb24oYSxkLGIpe3JldHVybiBoKyhkPy0xOjEpKihjLmdldFdpZHRoQXQoaz8yKm0tYTphKS8yK2IubGFiZWxEaXN0YW5jZSl9O2MuY2VudGVyPVtoLG0sdl07Yy5jZW50ZXJYPWg7Yi5mb3JFYWNoKGZ1bmN0aW9uKGEpe2QmJiExPT09YS52aXNpYmxlfHwocis9YS55KX0pO2IuZm9yRWFjaChmdW5jdGlvbihhKXt0PW51bGw7RT1yP2EueS9yOjA7cD1tLXYvMitlKnY7cT1wKwpFKnY7dT1jLmdldFdpZHRoQXQocCk7Qj1oLXUvMjtGPUIrdTt1PWMuZ2V0V2lkdGhBdChxKTt3PWgtdS8yO3k9dyt1O3A+QT8oQj13PWgtei8yLEY9eT1oK3ovMik6cT5BJiYodD1xLHU9Yy5nZXRXaWR0aEF0KEEpLHc9aC11LzIseT13K3UscT1BKTtrJiYocD0yKm0tcCxxPTIqbS1xLG51bGwhPT10JiYodD0yKm0tdCkpO0Q9W1siTSIsQixwXSxbIkwiLEYscF0sWyJMIix5LHFdXTtudWxsIT09dCYmRC5wdXNoKFsiTCIseSx0XSxbIkwiLHcsdF0pO0QucHVzaChbIkwiLHcscV0sWyJaIl0pO2Euc2hhcGVUeXBlPSJwYXRoIjthLnNoYXBlQXJncz17ZDpEfTthLnBlcmNlbnRhZ2U9MTAwKkU7YS5wbG90WD1oO2EucGxvdFk9KHArKHR8fHEpKS8yO2EudG9vbHRpcFBvcz1baCxhLnBsb3RZXTthLmRsQm94PXt4OncseTpwLHRvcFdpZHRoOkYtQixib3R0b21XaWR0aDp5LXcsaGVpZ2h0Ok1hdGguYWJzKEgodCxxKS1wKSx3aWR0aDpOYU59O2Euc2xpY2U9eDthLmhhbGY9QztkJiYhMT09PWEudmlzaWJsZXx8CihlKz1FKX0pO0ooYywiYWZ0ZXJUcmFuc2xhdGUiKX0sc29ydEJ5QW5nbGU6ZnVuY3Rpb24oYSl7YS5zb3J0KGZ1bmN0aW9uKGEsYyl7cmV0dXJuIGEucGxvdFktYy5wbG90WX0pfSxkcmF3RGF0YUxhYmVsczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZGF0YSxiPXRoaXMub3B0aW9ucy5kYXRhTGFiZWxzLmRpc3RhbmNlLGMsZz1hLmxlbmd0aDtmb3IodGhpcy5jZW50ZXJbMl0tPTIqYjtnLS07KXt2YXIgZj1hW2ddO3ZhciBrPShjPWYuaGFsZik/MTotMTt2YXIgZD1mLnBsb3RZO2YubGFiZWxEaXN0YW5jZT1IKGYub3B0aW9ucy5kYXRhTGFiZWxzJiZmLm9wdGlvbnMuZGF0YUxhYmVscy5kaXN0YW5jZSxiKTt0aGlzLm1heExhYmVsRGlzdGFuY2U9TWF0aC5tYXgoZi5sYWJlbERpc3RhbmNlLHRoaXMubWF4TGFiZWxEaXN0YW5jZXx8MCk7dmFyIGU9dGhpcy5nZXRYKGQsYyxmKTtmLmxhYmVsUG9zaXRpb249e25hdHVyYWw6e3g6MCx5OmR9LCJmaW5hbCI6e30sYWxpZ25tZW50OmM/InJpZ2h0IjoKImxlZnQiLGNvbm5lY3RvclBvc2l0aW9uOnticmVha0F0Ont4OmUrKGYubGFiZWxEaXN0YW5jZS01KSprLHk6ZH0sdG91Y2hpbmdTbGljZUF0Ont4OmUrZi5sYWJlbERpc3RhbmNlKmsseTpkfX19fUlbdGhpcy5vcHRpb25zLmRhdGFMYWJlbHMuaW5zaWRlPyJjb2x1bW4iOiJwaWUiXS5wcm90b3R5cGUuZHJhd0RhdGFMYWJlbHMuY2FsbCh0aGlzKX0sYWxpZ25EYXRhTGFiZWw6ZnVuY3Rpb24oYSxlLGMsZyxmKXt2YXIgaz1hLnNlcmllcztnPWsub3B0aW9ucy5yZXZlcnNlZDt2YXIgZD1hLmRsQm94fHxhLnNoYXBlQXJncyxsPWMuYWxpZ24scj1jLnZlcnRpY2FsQWxpZ24sbj0oK
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2htYXBzIEpTIHY4LjEuMiAoMjAyMC0wNi0xNikKCiAoYykgMjAwOS0yMDE5IFRvcnN0ZWluIEhvbnNpCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGEpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGFbImRlZmF1bHQiXT1hLG1vZHVsZS5leHBvcnRzPWEpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9tb2R1bGVzL2hlYXRtYXAiLFsiaGlnaGNoYXJ0cyJdLGZ1bmN0aW9uKHApe2EocCk7YS5IaWdoY2hhcnRzPXA7cmV0dXJuIGF9KTphKCJ1bmRlZmluZWQiIT09dHlwZW9mIEhpZ2hjaGFydHM/SGlnaGNoYXJ0czp2b2lkIDApfSkoZnVuY3Rpb24oYSl7ZnVuY3Rpb24gcChhLHQsbSxrKXthLmhhc093blByb3BlcnR5KHQpfHwoYVt0XT1rLmFwcGx5KG51bGwsbSkpfWE9YT9hLl9tb2R1bGVzOnt9O3AoYSwicGFydHMtbWFwL0NvbG9yU2VyaWVzTWl4aW4uanMiLFthWyJwYXJ0cy9HbG9iYWxzLmpzIl1dLGZ1bmN0aW9uKGEpe2EuY29sb3JQb2ludE1peGluPXtzZXRWaXNpYmxlOmZ1bmN0aW9uKGEpe3ZhciBtPXRoaXMsaz1hPyJzaG93IjoKImhpZGUiO20udmlzaWJsZT1tLm9wdGlvbnMudmlzaWJsZT0hIWE7WyJncmFwaGljIiwiZGF0YUxhYmVsIl0uZm9yRWFjaChmdW5jdGlvbihhKXtpZihtW2FdKW1bYV1ba10oKX0pO3RoaXMuc2VyaWVzLmJ1aWxkS0RUcmVlKCl9fTthLmNvbG9yU2VyaWVzTWl4aW49e29wdGlvbmFsQXhpczoiY29sb3JBeGlzIixjb2xvckF4aXM6MCx0cmFuc2xhdGVDb2xvcnM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLG09dGhpcy5vcHRpb25zLm51bGxDb2xvcixrPXRoaXMuY29sb3JBeGlzLHg9dGhpcy5jb2xvcktleTsodGhpcy5kYXRhLmxlbmd0aD90aGlzLmRhdGE6dGhpcy5wb2ludHMpLmZvckVhY2goZnVuY3Rpb24ocSl7dmFyIHY9cS5nZXROZXN0ZWRQcm9wZXJ0eSh4KTsodj1xLm9wdGlvbnMuY29sb3J8fChxLmlzTnVsbHx8bnVsbD09PXEudmFsdWU/bTprJiYidW5kZWZpbmVkIiE9PXR5cGVvZiB2P2sudG9Db2xvcih2LHEpOnEuY29sb3J8fGEuY29sb3IpKSYmcS5jb2xvciE9PXYmJihxLmNvbG9yPQp2LCJwb2ludCI9PT1hLm9wdGlvbnMubGVnZW5kVHlwZSYmcS5sZWdlbmRJdGVtJiZhLmNoYXJ0LmxlZ2VuZC5jb2xvcml6ZUl0ZW0ocSxxLnZpc2libGUpKX0pfX19KTtwKGEsInBhcnRzLW1hcC9Db2xvckF4aXMuanMiLFthWyJwYXJ0cy9BeGlzLmpzIl0sYVsicGFydHMvQ2hhcnQuanMiXSxhWyJwYXJ0cy9Db2xvci5qcyJdLGFbInBhcnRzL0dsb2JhbHMuanMiXSxhWyJwYXJ0cy9MZWdlbmQuanMiXSxhWyJtaXhpbnMvbGVnZW5kLXN5bWJvbC5qcyJdLGFbInBhcnRzL1BvaW50LmpzIl0sYVsicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGEsdCxtLGsseSxxLHYscil7dmFyIHg9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGM9ZnVuY3Rpb24oYixkKXtjPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihkLGIpe2QuX19wcm90b19fPWJ9fHxmdW5jdGlvbihkLGIpe2Zvcih2YXIgZiBpbiBiKWIuaGFzT3duUHJvcGVydHkoZikmJgooZFtmXT1iW2ZdKX07cmV0dXJuIGMoYixkKX07cmV0dXJuIGZ1bmN0aW9uKGIsZCl7ZnVuY3Rpb24gZSgpe3RoaXMuY29uc3RydWN0b3I9Yn1jKGIsZCk7Yi5wcm90b3R5cGU9bnVsbD09PWQ/T2JqZWN0LmNyZWF0ZShkKTooZS5wcm90b3R5cGU9ZC5wcm90b3R5cGUsbmV3IGUpfX0oKSxwPW0ucGFyc2UsQj1rLm5vb3A7bT1yLmFkZEV2ZW50O3ZhciB1PXIuZXJhc2Usdz1yLmV4dGVuZCxjPXIuRngsZz1yLmlzTnVtYmVyLEM9ci5tZXJnZSxBPXIucGljayxuPXIuc3BsYXQ7IiI7dmFyIGw9ay5TZXJpZXM7cj1rLmNvbG9yUG9pbnRNaXhpbjt3KGwucHJvdG90eXBlLGsuY29sb3JTZXJpZXNNaXhpbik7dyh2LnByb3RvdHlwZSxyKTt0LnByb3RvdHlwZS5jb2xsZWN0aW9uc1dpdGhVcGRhdGUucHVzaCgiY29sb3JBeGlzIik7dC5wcm90b3R5cGUuY29sbGVjdGlvbnNXaXRoSW5pdC5jb2xvckF4aXM9W3QucHJvdG90eXBlLmFkZENvbG9yQXhpc107dmFyIGg9ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gYihkLApiKXt2YXIgZT1jLmNhbGwodGhpcyxkLGIpfHx0aGlzO2UuYmVmb3JlUGFkZGluZz0hMTtlLmNoYXJ0PXZvaWQgMDtlLmNvbGw9ImNvbG9yQXhpcyI7ZS5kYXRhQ2xhc3Nlcz12b2lkIDA7ZS5sZWdlbmRJdGVtPXZvaWQgMDtlLmxlZ2VuZEl0ZW1zPXZvaWQgMDtlLm5hbWU9IiI7ZS5vcHRpb25zPXZvaWQgMDtlLnN0b3BzPXZvaWQgMDtlLnZpc2libGU9ITA7ZS5pbml0KGQsYik7cmV0dXJuIGV9eChiLGMpO2IuYnVpbGRPcHRpb25zPWZ1bmN0aW9uKGQsZSxiKXtkPWQub3B0aW9ucy5sZWdlbmR8fHt9O3ZhciBmPWIubGF5b3V0PyJ2ZXJ0aWNhbCIhPT1iLmxheW91dDoidmVydGljYWwiIT09ZC5sYXlvdXQ7cmV0dXJuIEMoZSx7c2lkZTpmPzI6MSxyZXZlcnNlZDohZn0sYix7b3Bwb3NpdGU6IWYsc2hvd0VtcHR5OiExLHRpdGxlOm51bGwsdmlzaWJsZTpkLmVuYWJsZWQmJihiPyExIT09Yi52aXNpYmxlOiEwKX0pfTtiLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGQsZSl7dmFyIEQ9Yi5idWlsZE9wdGlvbnMoZCwKYi5kZWZhdWx0T3B0aW9ucyxlKTt0aGlzLmNvbGw9ImNvbG9yQXhpcyI7Yy5wcm90b3R5cGUuaW5pdC5jYWxsKHRoaXMsZCxEKTtlLmRhdGFDbGFzc2VzJiZ0aGlzLmluaXREYXRhQ2xhc3NlcyhlKTt0aGlzLmluaXRTdG9wcygpO3RoaXMuaG9yaXo9IUQub3Bwb3NpdGU7dGhpcy56b29tRW5hYmxlZD0hMX07Yi5wcm90b3R5cGUuaW5pdERhdGFDbGFzc2VzPWZ1bmN0aW9uKGQpe3ZhciBiPXRoaXMuY2hhcnQsYyxmPTAsYT1iLm9wdGlvbnMuY2hhcnQuY29sb3JDb3VudCxnPXRoaXMub3B0aW9ucyxsPWQuZGF0YUNsYXNzZXMubGVuZ3RoO3RoaXMuZGF0YUNsYXNzZXM9Yz1bXTt0aGlzLmxlZ2VuZEl0Z
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIChjKSAyMDE0LTIwMTkgSGlnaHNvZnQgQVMKIEF1dGhvcnM6IEpvbiBBcmlsZCBOeWdhcmQgLyBPeXN0ZWluIE1vc2VuZwoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihjKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhjWyJkZWZhdWx0Il09Yyxtb2R1bGUuZXhwb3J0cz1jKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy90cmVlbWFwIixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbih3KXtjKHcpO2MuSGlnaGNoYXJ0cz13O3JldHVybiBjfSk6YygidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGMpe2Z1bmN0aW9uIHcoYyxkLHgsayl7Yy5oYXNPd25Qcm9wZXJ0eShkKXx8KGNbZF09ay5hcHBseShudWxsLHgpKX1jPWM/Yy5fbW9kdWxlczp7fTt3KGMsIm1peGlucy90cmVlLXNlcmllcy5qcyIsW2NbInBhcnRzL0NvbG9yLmpzIl0sY1sicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGMsZCl7dmFyIHg9ZC5leHRlbmQsaz1kLmlzQXJyYXksbj1kLmlzTnVtYmVyLHA9ZC5pc09iamVjdCwKZz1kLm1lcmdlLHY9ZC5waWNrO3JldHVybntnZXRDb2xvcjpmdW5jdGlvbihmLGgpe3ZhciB0PWguaW5kZXgsZD1oLm1hcE9wdGlvbnNUb0xldmVsLGc9aC5wYXJlbnRDb2xvcixwPWgucGFyZW50Q29sb3JJbmRleCxCPWguc2VyaWVzLEE9aC5jb2xvcnMseD1oLnNpYmxpbmdzLG09Qi5wb2ludHMsaz1CLmNoYXJ0Lm9wdGlvbnMuY2hhcnQseTtpZihmKXttPW1bZi5pXTtmPWRbZi5sZXZlbF18fHt9O2lmKGQ9bSYmZi5jb2xvckJ5UG9pbnQpe3ZhciB1PW0uaW5kZXglKEE/QS5sZW5ndGg6ay5jb2xvckNvdW50KTt2YXIgbj1BJiZBW3VdfWlmKCFCLmNoYXJ0LnN0eWxlZE1vZGUpe0E9bSYmbS5vcHRpb25zLmNvbG9yO2s9ZiYmZi5jb2xvcjtpZih5PWcpeT0oeT1mJiZmLmNvbG9yVmFyaWF0aW9uKSYmImJyaWdodG5lc3MiPT09eS5rZXk/Yy5wYXJzZShnKS5icmlnaHRlbih0L3gqeS50bykuZ2V0KCk6Zzt5PXYoQSxrLG4seSxCLmNvbG9yKX12YXIgdz12KG0mJm0ub3B0aW9ucy5jb2xvckluZGV4LApmJiZmLmNvbG9ySW5kZXgsdSxwLGguY29sb3JJbmRleCl9cmV0dXJue2NvbG9yOnksY29sb3JJbmRleDp3fX0sZ2V0TGV2ZWxPcHRpb25zOmZ1bmN0aW9uKGYpe3ZhciBoPW51bGw7aWYocChmKSl7aD17fTt2YXIgZD1uKGYuZnJvbSk/Zi5mcm9tOjE7dmFyIGM9Zi5sZXZlbHM7dmFyIHo9e307dmFyIHY9cChmLmRlZmF1bHRzKT9mLmRlZmF1bHRzOnt9O2soYykmJih6PWMucmVkdWNlKGZ1bmN0aW9uKGgsYyl7aWYocChjKSYmbihjLmxldmVsKSl7dmFyIGY9Zyh7fSxjKTt2YXIgdD0iYm9vbGVhbiI9PT10eXBlb2YgZi5sZXZlbElzQ29uc3RhbnQ/Zi5sZXZlbElzQ29uc3RhbnQ6di5sZXZlbElzQ29uc3RhbnQ7ZGVsZXRlIGYubGV2ZWxJc0NvbnN0YW50O2RlbGV0ZSBmLmxldmVsO2M9Yy5sZXZlbCsodD8wOmQtMSk7cChoW2NdKT94KGhbY10sZik6aFtjXT1mfXJldHVybiBofSx7fSkpO2M9bihmLnRvKT9mLnRvOjE7Zm9yKGY9MDtmPD1jO2YrKyloW2ZdPWcoe30sdixwKHpbZl0pP3pbZl06Cnt9KX1yZXR1cm4gaH0sc2V0VHJlZVZhbHVlczpmdW5jdGlvbiBKKGgsYyl7dmFyIGQ9Yy5iZWZvcmUsZz1jLmlkUm9vdCx0PWMubWFwSWRUb05vZGVbZ10saz1jLnBvaW50c1toLmldLHA9ayYmay5vcHRpb25zfHx7fSxtPTAsbj1bXTt4KGgse2xldmVsRHluYW1pYzpoLmxldmVsLSgoImJvb2xlYW4iPT09dHlwZW9mIGMubGV2ZWxJc0NvbnN0YW50P2MubGV2ZWxJc0NvbnN0YW50OjEpPzA6dC5sZXZlbCksbmFtZTp2KGsmJmsubmFtZSwiIiksdmlzaWJsZTpnPT09aC5pZHx8KCJib29sZWFuIj09PXR5cGVvZiBjLnZpc2libGU/Yy52aXNpYmxlOiExKX0pOyJmdW5jdGlvbiI9PT10eXBlb2YgZCYmKGg9ZChoLGMpKTtoLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oZCxnKXt2YXIgaz14KHt9LGMpO3goayx7aW5kZXg6ZyxzaWJsaW5nczpoLmNoaWxkcmVuLmxlbmd0aCx2aXNpYmxlOmgudmlzaWJsZX0pO2Q9SihkLGspO24ucHVzaChkKTtkLnZpc2libGUmJihtKz1kLnZhbCl9KTtoLnZpc2libGU9CjA8bXx8aC52aXNpYmxlO2Q9dihwLnZhbHVlLG0pO3goaCx7Y2hpbGRyZW46bixjaGlsZHJlblRvdGFsOm0saXNMZWFmOmgudmlzaWJsZSYmIW0sdmFsOmR9KTtyZXR1cm4gaH0sdXBkYXRlUm9vdElkOmZ1bmN0aW9uKGMpe2lmKHAoYykpe3ZhciBkPXAoYy5vcHRpb25zKT9jLm9wdGlvbnM6e307ZD12KGMucm9vdE5vZGUsZC5yb290SWQsIiIpO3AoYy51c2VyT3B0aW9ucykmJihjLnVzZXJPcHRpb25zLnJvb3RJZD1kKTtjLnJvb3ROb2RlPWR9cmV0dXJuIGR9fX0pO3coYywibWl4aW5zL2RyYXctcG9pbnQuanMiLFtdLGZ1bmN0aW9uKCl7dmFyIGM9ZnVuY3Rpb24oYyl7dmFyIGQsaz10aGlzLG49ay5ncmFwaGljLHA9Yy5hbmltYXRhYmxlQXR0cmlicyxnPWMub25Db21wbGV0ZSx2PWMuY3NzLGY9Yy5yZW5kZXJlcixoPW51bGw9PT0oZD1rLnNlcmllcyl8fHZvaWQgMD09PWQ/dm9pZCAwOmQub3B0aW9ucy5hbmltYXRpb247aWYoay5zaG91bGREcmF3KCkpbnx8KGsuZ3JhcGhpYz1uPQpmW2Muc2hhcGVUeXBlXShjLnNoYXBlQXJncykuYWRkKGMuZ3JvdXApKSxuLmNzcyh2KS5hdHRyKGMuYXR0cmlicykuYW5pbWF0ZShwLGMuaXNOZXc/ITE6aCxnKTtlbHNlIGlmKG4pe3ZhciB0PWZ1bmN0aW9uKCl7ay5ncmFwaGljPW49bi5kZXN0cm95KCk7ImZ1bmN0aW9uIj09PXR5cGVvZiBnJiZnKCl9O09iamVjdC5rZXlzKHApLmxlbmd0aD9uLmFuaW1hdGUocCx2b2lkIDAsZnVuY3Rpb24oKXt0KCl9KTp0KCl9fTtyZXR1cm4gZnVuY3Rpb24oZCl7KGQuYXR0cmlicz1kLmF0dHJpYnN8fHt9KVsiY2xhc3MiXT10aGlzLmdldENsYXNzTmFtZSgpO2MuY2FsbCh0aGlzL
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIFNhbmtleSBkaWFncmFtIG1vZHVsZQoKIChjKSAyMDEwLTIwMTkgVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oYil7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oYlsiZGVmYXVsdCJdPWIsbW9kdWxlLmV4cG9ydHM9Yik6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvc2Fua2V5IixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbihuKXtiKG4pO2IuSGlnaGNoYXJ0cz1uO3JldHVybiBifSk6YigidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGIpe2Z1bmN0aW9uIG4oYixoLGssbCl7Yi5oYXNPd25Qcm9wZXJ0eShoKXx8KGJbaF09bC5hcHBseShudWxsLGspKX1iPWI/Yi5fbW9kdWxlczp7fTtuKGIsIm1peGlucy9ub2Rlcy5qcyIsW2JbInBhcnRzL0dsb2JhbHMuanMiXSxiWyJwYXJ0cy9Qb2ludC5qcyJdLGJbInBhcnRzL1V0aWxpdGllcy5qcyJdXSxmdW5jdGlvbihiLGgsayl7dmFyIGw9ay5kZWZpbmVkLHU9ay5leHRlbmQsCnE9ay5maW5kLG49ay5waWNrO2IuTm9kZXNNaXhpbj17Y3JlYXRlTm9kZTpmdW5jdGlvbihiKXtmdW5jdGlvbiBkKGEsZCl7cmV0dXJuIHEoYSxmdW5jdGlvbihjKXtyZXR1cm4gYy5pZD09PWR9KX12YXIgYT1kKHRoaXMubm9kZXMsYikseD10aGlzLnBvaW50Q2xhc3M7aWYoIWEpe3ZhciBoPXRoaXMub3B0aW9ucy5ub2RlcyYmZCh0aGlzLm9wdGlvbnMubm9kZXMsYik7YT0obmV3IHgpLmluaXQodGhpcyx1KHtjbGFzc05hbWU6ImhpZ2hjaGFydHMtbm9kZSIsaXNOb2RlOiEwLGlkOmIseToxfSxoKSk7YS5saW5rc1RvPVtdO2EubGlua3NGcm9tPVtdO2EuZm9ybWF0UHJlZml4PSJub2RlIjthLm5hbWU9YS5uYW1lfHxhLm9wdGlvbnMuaWR8fCIiO2EubWFzcz1uKGEub3B0aW9ucy5tYXNzLGEub3B0aW9ucy5tYXJrZXImJmEub3B0aW9ucy5tYXJrZXIucmFkaXVzLHRoaXMub3B0aW9ucy5tYXJrZXImJnRoaXMub3B0aW9ucy5tYXJrZXIucmFkaXVzLDQpO2EuZ2V0U3VtPWZ1bmN0aW9uKCl7dmFyIGQ9CjAsYj0wO2EubGlua3NUby5mb3JFYWNoKGZ1bmN0aW9uKGMpe2QrPWMud2VpZ2h0fSk7YS5saW5rc0Zyb20uZm9yRWFjaChmdW5jdGlvbihjKXtiKz1jLndlaWdodH0pO3JldHVybiBNYXRoLm1heChkLGIpfTthLm9mZnNldD1mdW5jdGlvbihkLGIpe2Zvcih2YXIgYz0wLGU9MDtlPGFbYl0ubGVuZ3RoO2UrKyl7aWYoYVtiXVtlXT09PWQpcmV0dXJuIGM7Yys9YVtiXVtlXS53ZWlnaHR9fTthLmhhc1NoYXBlPWZ1bmN0aW9uKCl7dmFyIGQ9MDthLmxpbmtzVG8uZm9yRWFjaChmdW5jdGlvbihhKXthLm91dGdvaW5nJiZkKyt9KTtyZXR1cm4hYS5saW5rc1RvLmxlbmd0aHx8ZCE9PWEubGlua3NUby5sZW5ndGh9O3RoaXMubm9kZXMucHVzaChhKX1yZXR1cm4gYX0sZ2VuZXJhdGVQb2ludHM6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmNoYXJ0LGQ9e307Yi5TZXJpZXMucHJvdG90eXBlLmdlbmVyYXRlUG9pbnRzLmNhbGwodGhpcyk7dGhpcy5ub2Rlc3x8KHRoaXMubm9kZXM9W10pO3RoaXMuY29sb3JDb3VudGVyPQowO3RoaXMubm9kZXMuZm9yRWFjaChmdW5jdGlvbihhKXthLmxpbmtzRnJvbS5sZW5ndGg9MDthLmxpbmtzVG8ubGVuZ3RoPTA7YS5sZXZlbD1hLm9wdGlvbnMubGV2ZWx9KTt0aGlzLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2woYS5mcm9tKSYmKGRbYS5mcm9tXXx8KGRbYS5mcm9tXT10aGlzLmNyZWF0ZU5vZGUoYS5mcm9tKSksZFthLmZyb21dLmxpbmtzRnJvbS5wdXNoKGEpLGEuZnJvbU5vZGU9ZFthLmZyb21dLGguc3R5bGVkTW9kZT9hLmNvbG9ySW5kZXg9bihhLm9wdGlvbnMuY29sb3JJbmRleCxkW2EuZnJvbV0uY29sb3JJbmRleCk6YS5jb2xvcj1hLm9wdGlvbnMuY29sb3J8fGRbYS5mcm9tXS5jb2xvcik7bChhLnRvKSYmKGRbYS50b118fChkW2EudG9dPXRoaXMuY3JlYXRlTm9kZShhLnRvKSksZFthLnRvXS5saW5rc1RvLnB1c2goYSksYS50b05vZGU9ZFthLnRvXSk7YS5uYW1lPWEubmFtZXx8YS5pZH0sdGhpcyk7dGhpcy5ub2RlTG9va3VwPWR9LHNldERhdGE6ZnVuY3Rpb24oKXt0aGlzLm5vZGVzJiYKKHRoaXMubm9kZXMuZm9yRWFjaChmdW5jdGlvbihiKXtiLmRlc3Ryb3koKX0pLHRoaXMubm9kZXMubGVuZ3RoPTApO2IuU2VyaWVzLnByb3RvdHlwZS5zZXREYXRhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZGF0YT1bXS5jb25jYXQodGhpcy5wb2ludHN8fFtdLHRoaXMubm9kZXMpO3JldHVybiBiLlNlcmllcy5wcm90b3R5cGUuZGVzdHJveS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHNldE5vZGVTdGF0ZTpmdW5jdGlvbihiKXt2YXIgZD1hcmd1bWVudHMsYT10aGlzLmlzTm9kZT90aGlzLmxpbmtzVG8uY29uY2F0KHRoaXMubGlua3NGcm9tKTpbdGhpcy5mcm9tTm9kZSx0aGlzLnRvTm9kZV07InNlbGVjdCIhPT1iJiZhLmZvckVhY2goZnVuY3Rpb24oYSl7YSYmYS5zZXJpZXMmJihoLnByb3RvdHlwZS5zZXRTdGF0ZS5hcHBseShhLGQpLGEuaXNOb2RlfHwoYS5mcm9tTm9kZS5ncmFwaGljJiZoLnByb3RvdHlwZS5zZXRTdGF0ZS5hcHBseShhLmZyb21Ob2RlLApkKSxhLnRvTm9kZSYmYS50b05vZGUuZ3JhcGhpYyYmaC5wcm90b3R5cGUuc2V0U3RhdGUuYXBwbHkoYS50b05vZGUsZCkpKX0pO2gucHJvdG90eXBlLnNldFN0YXRlLmFwcGx5KHRoaXMsZCl9fX0pO24oYiwibWl4aW5zL3RyZWUtc2VyaWVzLmpzIixbYlsicGFydHMvQ29sb3IuanMiXSxiWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24oYixoKXt2YXIgaz1oLmV4dGVuZCxsPWguaXNBcnJheSxuPWguaXNOdW1iZXIscT1oLmlzT2JqZWN0LHU9aC5tZXJnZSxyPWgucGljaztyZXR1cm57Z2V0Q29sb3I6ZnVuY3Rpb24oZCxhKXt2YXIgeD1hLmluZGV4L
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIERlcGVuZGVuY3kgd2hlZWwgbW9kdWxlCgogKGMpIDIwMTAtMjAxOCBUb3JzdGVpbiBIb25zaQoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihhKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhhWyJkZWZhdWx0Il09YSxtb2R1bGUuZXhwb3J0cz1hKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy9kZXBlbmRlbmN5LXdoZWVsIixbImhpZ2hjaGFydHMiLCJoaWdoY2hhcnRzL21vZHVsZXMvc2Fua2V5Il0sZnVuY3Rpb24oZCl7YShkKTthLkhpZ2hjaGFydHM9ZDtyZXR1cm4gYX0pOmEoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihhKXtmdW5jdGlvbiBkKGEsZixkLGwpe2EuaGFzT3duUHJvcGVydHkoZil8fChhW2ZdPWwuYXBwbHkobnVsbCxkKSl9YT1hP2EuX21vZHVsZXM6e307ZChhLCJtb2R1bGVzL2RlcGVuZGVuY3ktd2hlZWwuc3JjLmpzIixbYVsicGFydHMvR2xvYmFscy5qcyJdLGFbInBhcnRzL1V0aWxpdGllcy5qcyJdXSxmdW5jdGlvbihhLApkKXt2YXIgZj1kLmFuaW1PYmplY3Q7ZD1kLnNlcmllc1R5cGU7dmFyIGw9YS5zZXJpZXNUeXBlcy5zYW5rZXkucHJvdG90eXBlO2QoImRlcGVuZGVuY3l3aGVlbCIsInNhbmtleSIse2NlbnRlcjpbbnVsbCxudWxsXSxjdXJ2ZUZhY3RvcjouNixzdGFydEFuZ2xlOjB9LHtvcmRlck5vZGVzOiExLGdldENlbnRlcjphLnNlcmllc1R5cGVzLnBpZS5wcm90b3R5cGUuZ2V0Q2VudGVyLGNyZWF0ZU5vZGVDb2x1bW5zOmZ1bmN0aW9uKCl7dmFyIGE9W3RoaXMuY3JlYXRlTm9kZUNvbHVtbigpXTt0aGlzLm5vZGVzLmZvckVhY2goZnVuY3Rpb24oYyl7Yy5jb2x1bW49MDthWzBdLnB1c2goYyl9KTtyZXR1cm4gYX0sZ2V0Tm9kZVBhZGRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLm5vZGVQYWRkaW5nL01hdGguUEl9LGNyZWF0ZU5vZGU6ZnVuY3Rpb24oYSl7dmFyIGM9bC5jcmVhdGVOb2RlLmNhbGwodGhpcyxhKTtjLmluZGV4PXRoaXMubm9kZXMubGVuZ3RoLTE7Yy5nZXRTdW09CmZ1bmN0aW9uKCl7cmV0dXJuIGMubGlua3NGcm9tLmNvbmNhdChjLmxpbmtzVG8pLnJlZHVjZShmdW5jdGlvbihhLGMpe3JldHVybiBhK2Mud2VpZ2h0fSwwKX07Yy5vZmZzZXQ9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gaChhKXtyZXR1cm4gYS5mcm9tTm9kZT09PWM/YS50b05vZGU6YS5mcm9tTm9kZX12YXIgcD0wLGIsZz1jLmxpbmtzRnJvbS5jb25jYXQoYy5saW5rc1RvKTtnLnNvcnQoZnVuY3Rpb24oYSxjKXtyZXR1cm4gaChhKS5pbmRleC1oKGMpLmluZGV4fSk7Zm9yKGI9MDtiPGcubGVuZ3RoO2IrKylpZihoKGdbYl0pLmluZGV4PmMuaW5kZXgpe2c9Zy5zbGljZSgwLGIpLnJldmVyc2UoKS5jb25jYXQoZy5zbGljZShiKS5yZXZlcnNlKCkpO3ZhciBuPSEwO2JyZWFrfW58fGcucmV2ZXJzZSgpO2ZvcihiPTA7YjxnLmxlbmd0aDtiKyspe2lmKGdbYl09PT1hKXJldHVybiBwO3ArPWdbYl0ud2VpZ2h0fX07cmV0dXJuIGN9LHRyYW5zbGF0ZTpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3B0aW9ucywKYz0yKk1hdGguUEkvKHRoaXMuY2hhcnQucGxvdEhlaWdodCt0aGlzLmdldE5vZGVQYWRkaW5nKCkpLG49dGhpcy5nZXRDZW50ZXIoKSxoPShkLnN0YXJ0QW5nbGUtOTApKmEuZGVnMnJhZDtsLnRyYW5zbGF0ZS5jYWxsKHRoaXMpO3RoaXMubm9kZUNvbHVtbnNbMF0uZm9yRWFjaChmdW5jdGlvbihhKXtpZihhLnN1bSl7dmFyIGI9YS5zaGFwZUFyZ3MsZz1uWzBdLHA9blsxXSxmPW5bMl0vMixrPWYtZC5ub2RlV2lkdGgsbT1oK2MqYi55O2I9aCtjKihiLnkrYi5oZWlnaHQpO2EuYW5nbGU9bSsoYi1tKS8yO2Euc2hhcGVUeXBlPSJhcmMiO2Euc2hhcGVBcmdzPXt4OmcseTpwLHI6Zixpbm5lclI6ayxzdGFydDptLGVuZDpifTthLmRsQm94PXt4OmcrTWF0aC5jb3MoKG0rYikvMikqKGYraykvMix5OnArTWF0aC5zaW4oKG0rYikvMikqKGYraykvMix3aWR0aDoxLGhlaWdodDoxfTthLmxpbmtzRnJvbS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2lmKGEubGlua0Jhc2Upe3ZhciBiLGU9YS5saW5rQmFzZS5tYXAoZnVuY3Rpb24oZSwKbil7ZSo9Yzt2YXIgZj1NYXRoLmNvcyhoK2UpKihrKzEpLG09TWF0aC5zaW4oaCtlKSooaysxKSxsPWQuY3VydmVGYWN0b3I7Yj1NYXRoLmFicyhhLmxpbmtCYXNlWzMtbl0qYy1lKTtiPk1hdGguUEkmJihiPTIqTWF0aC5QSS1iKTtiKj1rO2I8ayYmKGwqPWIvayk7cmV0dXJue3g6ZytmLHk6cCttLGNwWDpnKygxLWwpKmYsY3BZOnArKDEtbCkqbX19KTthLnNoYXBlQXJncz17ZDpbWyJNIixlWzBdLngsZVswXS55XSxbIkEiLGssaywwLDAsMSxlWzFdLngsZVsxXS55XSxbIkMiLGVbMV0uY3BYLGVbMV0uY3BZLGVbMl0uY3BYLGVbMl0uY3BZLGVbMl0ueCxlWzJdLnldLFsiQSIsayxrLDAsMCwxLGVbM10ueCxlWzNdLnldLFsiQyIsZVszXS5jcFgsZVszXS5jcFksZVswXS5jcFgsZVswXS5jcFksZVswXS54LGVbMF0ueV1dfX19KX19KX0sYW5pbWF0ZTpmdW5jdGlvbihhKXtpZighYSl7dmFyIGM9Zih0aGlzLm9wdGlvbnMuYW5pbWF0aW9uKS5kdXJhdGlvbi8yL3RoaXMubm9kZXMubGVuZ3RoOwp0aGlzLm5vZGVzLmZvckVhY2goZnVuY3Rpb24oYSxoKXt2YXIgZD1hLmdyYXBoaWM7ZCYmKGQuYXR0cih7b3BhY2l0eTowfSksc2V0VGltZW91dChmdW5jdGlvbigpe2QuYW5pbWF0ZSh7b3BhY2l0eToxfSx7ZHVyYXRpb246Y30pfSxjKmgpKX0sdGhpcyk7dGhpcy5wb2ludHMuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYz1hLmdyYXBoaWM7IWEuaXNOb2RlJiZjJiZjLmF0dHIoe29wYWNpdHk6MH0pLmFuaW1hdGUoe29wYWNpdHk6MX0sdGhpcy5vcHRpb25zLmFuaW1hdGlvbil9LHRoaXMpfX19LHtzZXRTdGF0ZTphLk5vZGVzTWl4aW4uc2V0Tm9kZVN0YXRlLGdldERhdGFMYWJlbFBhd
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQogT3JnYW5pemF0aW9uIGNoYXJ0IHNlcmllcyB0eXBlCgogKGMpIDIwMTktMjAxOSBUb3JzdGVpbiBIb25zaQoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihiKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhiWyJkZWZhdWx0Il09Yixtb2R1bGUuZXhwb3J0cz1iKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy9vcmdhbml6YXRpb24iLFsiaGlnaGNoYXJ0cyIsImhpZ2hjaGFydHMvbW9kdWxlcy9zYW5rZXkiXSxmdW5jdGlvbihmKXtiKGYpO2IuSGlnaGNoYXJ0cz1mO3JldHVybiBifSk6YigidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGYoYixtLGYscil7Yi5oYXNPd25Qcm9wZXJ0eShtKXx8KGJbbV09ci5hcHBseShudWxsLGYpKX1iPWI/Yi5fbW9kdWxlczp7fTtmKGIsIm1vZHVsZXMvb3JnYW5pemF0aW9uLnNyYy5qcyIsW2JbInBhcnRzL0dsb2JhbHMuanMiXSxiWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24oYixmKXt2YXIgbT0KZi5jc3Mscj1mLnBpY2ssdT1mLnNlcmllc1R5cGUsdj1mLndyYXAscT1iLnNlcmllc1R5cGVzLnNhbmtleS5wcm90b3R5cGU7dSgib3JnYW5pemF0aW9uIiwic2Fua2V5Iix7Ym9yZGVyQ29sb3I6IiM2NjY2NjYiLGJvcmRlclJhZGl1czozLGxpbmtSYWRpdXM6MTAsYm9yZGVyV2lkdGg6MSxkYXRhTGFiZWxzOntub2RlRm9ybWF0dGVyOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShhKXtyZXR1cm4gT2JqZWN0LmtleXMoYSkucmVkdWNlKGZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMrZCsiOiIrYVtkXSsiOyJ9LCdzdHlsZT0iJykrJyInfXZhciBjPXt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixkaXNwbGF5OiJmbGV4IiwiZmxleC1kaXJlY3Rpb24iOiJyb3ciLCJhbGlnbi1pdGVtcyI6ImNlbnRlciIsImp1c3RpZnktY29udGVudCI6ImNlbnRlciJ9LGc9eyJtYXgtaGVpZ2h0IjoiMTAwJSIsImJvcmRlci1yYWRpdXMiOiI1MCUifSxkPXt3aWR0aDoiMTAwJSIscGFkZGluZzowLCJ0ZXh0LWFsaWduIjoiY2VudGVyIiwKIndoaXRlLXNwYWNlIjoibm9ybWFsIn0sZT17bWFyZ2luOjB9LHQ9e21hcmdpbjowfSxiPXtvcGFjaXR5Oi43NSxtYXJnaW46IjVweCJ9O3RoaXMucG9pbnQuaW1hZ2UmJihnWyJtYXgtd2lkdGgiXT0iMzAlIixkLndpZHRoPSI3MCUiKTt0aGlzLnNlcmllcy5jaGFydC5yZW5kZXJlci5mb3JFeHBvcnQmJihjLmRpc3BsYXk9ImJsb2NrIixkLnBvc2l0aW9uPSJhYnNvbHV0ZSIsZC5sZWZ0PXRoaXMucG9pbnQuaW1hZ2U/IjMwJSI6MCxkLnRvcD0wKTtjPSI8ZGl2ICIrYShjKSsiPiI7dGhpcy5wb2ludC5pbWFnZSYmKGMrPSc8aW1nIHNyYz0iJyt0aGlzLnBvaW50LmltYWdlKyciICcrYShnKSsiPiIpO2MrPSI8ZGl2ICIrYShkKSsiPiI7dGhpcy5wb2ludC5uYW1lJiYoYys9IjxoNCAiK2EoZSkrIj4iK3RoaXMucG9pbnQubmFtZSsiPC9oND4iKTt0aGlzLnBvaW50LnRpdGxlJiYoYys9IjxwICIrYSh0KSsiPiIrKHRoaXMucG9pbnQudGl0bGV8fCIiKSsiPC9wPiIpO3RoaXMucG9pbnQuZGVzY3JpcHRpb24mJgooYys9IjxwICIrYShiKSsiPiIrdGhpcy5wb2ludC5kZXNjcmlwdGlvbisiPC9wPiIpO3JldHVybiBjKyI8L2Rpdj48L2Rpdj4ifSxzdHlsZTp7Zm9udFdlaWdodDoibm9ybWFsIixmb250U2l6ZToiMTNweCJ9LHVzZUhUTUw6ITB9LGhhbmdpbmdJbmRlbnQ6MjAsbGlua0NvbG9yOiIjNjY2NjY2IixsaW5rTGluZVdpZHRoOjEsbm9kZVdpZHRoOjUwLHRvb2x0aXA6e25vZGVGb3JtYXQ6Intwb2ludC5uYW1lfTxicj57cG9pbnQudGl0bGV9PGJyPntwb2ludC5kZXNjcmlwdGlvbn0ifX0se3BvaW50QXR0cmliczpmdW5jdGlvbihhLGMpe3ZhciBnPXRoaXMsZD1xLnBvaW50QXR0cmlicy5jYWxsKGcsYSxjKSxlPWcubWFwT3B0aW9uc1RvTGV2ZWxbKGEuaXNOb2RlP2EubGV2ZWw6YS5mcm9tTm9kZS5sZXZlbCl8fDBdfHx7fSx0PWEub3B0aW9ucyxiPWUuc3RhdGVzJiZlLnN0YXRlc1tjXXx8e307Yz1bImJvcmRlclJhZGl1cyIsImxpbmtDb2xvciIsImxpbmtMaW5lV2lkdGgiXS5yZWR1Y2UoZnVuY3Rpb24oYSwKYyl7YVtjXT1yKGJbY10sdFtjXSxlW2NdLGcub3B0aW9uc1tjXSk7cmV0dXJuIGF9LHt9KTthLmlzTm9kZT9jLmJvcmRlclJhZGl1cyYmKGQucj1jLmJvcmRlclJhZGl1cyk6KGQuc3Ryb2tlPWMubGlua0NvbG9yLGRbInN0cm9rZS13aWR0aCJdPWMubGlua0xpbmVXaWR0aCxkZWxldGUgZC5maWxsKTtyZXR1cm4gZH0sY3JlYXRlTm9kZTpmdW5jdGlvbihhKXthPXEuY3JlYXRlTm9kZS5jYWxsKHRoaXMsYSk7YS5nZXRTdW09ZnVuY3Rpb24oKXtyZXR1cm4gMX07cmV0dXJuIGF9LGNyZWF0ZU5vZGVDb2x1bW46ZnVuY3Rpb24oKXt2YXIgYT1xLmNyZWF0ZU5vZGVDb2x1bW4uY2FsbCh0aGlzKTt2KGEsIm9mZnNldCIsZnVuY3Rpb24oYSxnLGQpe2E9YS5jYWxsKHRoaXMsZyxkKTtyZXR1cm4gZy5oYW5nc0Zyb20/e2Fic29sdXRlVG9wOmcuaGFuZ3NGcm9tLm5vZGVZfTphfSk7cmV0dXJuIGF9LHRyYW5zbGF0ZU5vZGU6ZnVuY3Rpb24oYSxjKXtxLnRyYW5zbGF0ZU5vZGUuY2FsbCh0aGlzLAphLGMpO2EuaGFuZ3NGcm9tJiYoYS5zaGFwZUFyZ3MuaGVpZ2h0LT10aGlzLm9wdGlvbnMuaGFuZ2luZ0luZGVudCx0aGlzLmNoYXJ0LmludmVydGVkfHwoYS5zaGFwZUFyZ3MueSs9dGhpcy5vcHRpb25zLmhhbmdpbmdJbmRlbnQpKTthLm5vZGVIZWlnaHQ9dGhpcy5jaGFydC5pbnZlcnRlZD9hLnNoYXBlQXJncy53aWR0aDphLnNoYXBlQXJncy5oZWlnaHR9LGN1cnZlZFBhdGg6ZnVuY3Rpb24oYSxjKXtmb3IodmFyIGc9W10sZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgZT1hW2RdWzFdLGI9YVtkXVsyXTtpZigibnVtYmVyIj09PXR5cGVvZiBlJiYibnVtYmVyI
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIFNvbGlkIGFuZ3VsYXIgZ2F1Z2UgbW9kdWxlCgogKGMpIDIwMTAtMjAxOSBUb3JzdGVpbiBIb25zaQoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihhKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhhWyJkZWZhdWx0Il09YSxtb2R1bGUuZXhwb3J0cz1hKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy9zb2xpZC1nYXVnZSIsWyJoaWdoY2hhcnRzIiwiaGlnaGNoYXJ0cy9oaWdoY2hhcnRzLW1vcmUiXSxmdW5jdGlvbihnKXthKGcpO2EuSGlnaGNoYXJ0cz1nO3JldHVybiBhfSk6YSgidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGcoYSxyLGcsYyl7YS5oYXNPd25Qcm9wZXJ0eShyKXx8KGFbcl09Yy5hcHBseShudWxsLGcpKX1hPWE/YS5fbW9kdWxlczp7fTtnKGEsIm1vZHVsZXMvc29saWQtZ2F1Z2Uuc3JjLmpzIixbYVsicGFydHMvQ29sb3IuanMiXSxhWyJwYXJ0cy9HbG9iYWxzLmpzIl0sYVsibWl4aW5zL2xlZ2VuZC1zeW1ib2wuanMiXSwKYVsicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGEsZyx4LGMpe3ZhciBrPWEucGFyc2Uscj1jLmNsYW1wLHU9Yy5leHRlbmQsdj1jLmlzTnVtYmVyLHk9Yy5tZXJnZSx0PWMucGljayx3PWMucEludDthPWMuc2VyaWVzVHlwZTtjPWMud3JhcDtjKGcuUmVuZGVyZXIucHJvdG90eXBlLnN5bWJvbHMsImFyYyIsZnVuY3Rpb24oZSxhLGwsYix6LGQpe2U9ZShhLGwsYix6LGQpO2Qucm91bmRlZCYmKGI9KChkLnJ8fGIpLShkLmlubmVyUnx8MCkpLzIsYT1lWzBdLGQ9ZVsyXSwiTSI9PT1hWzBdJiYiTCI9PT1kWzBdJiYoYT1bIkEiLGIsYiwwLDEsMSxhWzFdLGFbMl1dLGVbMl09WyJBIixiLGIsMCwxLDEsZFsxXSxkWzJdXSxlWzRdPWEpKTtyZXR1cm4gZX0pO3ZhciBtOyhmdW5jdGlvbihhKXt2YXIgZT17aW5pdERhdGFDbGFzc2VzOmZ1bmN0aW9uKGEpe3ZhciBlPXRoaXMuY2hhcnQsbCxkPTAsaD10aGlzLm9wdGlvbnM7dGhpcy5kYXRhQ2xhc3Nlcz1sPVtdO2EuZGF0YUNsYXNzZXMuZm9yRWFjaChmdW5jdGlvbihiLApmKXtiPXkoYik7bC5wdXNoKGIpO2IuY29sb3J8fCgiY2F0ZWdvcnkiPT09aC5kYXRhQ2xhc3NDb2xvcj8oZj1lLm9wdGlvbnMuY29sb3JzLGIuY29sb3I9ZltkKytdLGQ9PT1mLmxlbmd0aCYmKGQ9MCkpOmIuY29sb3I9ayhoLm1pbkNvbG9yKS50d2VlblRvKGsoaC5tYXhDb2xvciksZi8oYS5kYXRhQ2xhc3Nlcy5sZW5ndGgtMSkpKX0pfSxpbml0U3RvcHM6ZnVuY3Rpb24oYSl7dGhpcy5zdG9wcz1hLnN0b3BzfHxbWzAsdGhpcy5vcHRpb25zLm1pbkNvbG9yXSxbMSx0aGlzLm9wdGlvbnMubWF4Q29sb3JdXTt0aGlzLnN0b3BzLmZvckVhY2goZnVuY3Rpb24oYSl7YS5jb2xvcj1rKGFbMV0pfSl9LHRvQ29sb3I6ZnVuY3Rpb24oYSxlKXt2YXIgYj10aGlzLnN0b3BzLGQ9dGhpcy5kYXRhQ2xhc3NlcyxoO2lmKGQpZm9yKGg9ZC5sZW5ndGg7aC0tOyl7dmFyIGM9ZFtoXTt2YXIgZj1jLmZyb207Yj1jLnRvO2lmKCgidW5kZWZpbmVkIj09PXR5cGVvZiBmfHxhPj1mKSYmKCJ1bmRlZmluZWQiPT09CnR5cGVvZiBifHxhPD1iKSl7dmFyIGc9Yy5jb2xvcjtlJiYoZS5kYXRhQ2xhc3M9aCk7YnJlYWt9fWVsc2V7dGhpcy5sb2dhcml0aG1pYyYmKGE9dGhpcy52YWwybGluKGEpKTthPTEtKHRoaXMubWF4LWEpLyh0aGlzLm1heC10aGlzLm1pbik7Zm9yKGg9Yi5sZW5ndGg7aC0tJiYhKGE+YltoXVswXSk7KTtmPWJbaF18fGJbaCsxXTtiPWJbaCsxXXx8ZjthPTEtKGJbMF0tYSkvKGJbMF0tZlswXXx8MSk7Zz1mLmNvbG9yLnR3ZWVuVG8oYi5jb2xvcixhKX1yZXR1cm4gZ319O2EuaW5pdD1mdW5jdGlvbihhKXt1KGEsZSl9fSkobXx8KG09e30pKTthKCJzb2xpZGdhdWdlIiwiZ2F1Z2UiLHtjb2xvckJ5UG9pbnQ6ITAsZGF0YUxhYmVsczp7eTowfX0se2RyYXdMZWdlbmRTeW1ib2w6eC5kcmF3UmVjdGFuZ2xlLHRyYW5zbGF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMueUF4aXM7bS5pbml0KGEpOyFhLmRhdGFDbGFzc2VzJiZhLm9wdGlvbnMuZGF0YUNsYXNzZXMmJmEuaW5pdERhdGFDbGFzc2VzKGEub3B0aW9ucyk7CmEuaW5pdFN0b3BzKGEub3B0aW9ucyk7Zy5zZXJpZXNUeXBlcy5nYXVnZS5wcm90b3R5cGUudHJhbnNsYXRlLmNhbGwodGhpcyl9LGRyYXdQb2ludHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGM9YS55QXhpcyxnPWMuY2VudGVyLGI9YS5vcHRpb25zLG09YS5jaGFydC5yZW5kZXJlcixkPWIub3ZlcnNob290LGg9dihkKT9kLzE4MCpNYXRoLlBJOjAsazt2KGIudGhyZXNob2xkKSYmKGs9Yy5zdGFydEFuZ2xlUmFkK2MudHJhbnNsYXRlKGIudGhyZXNob2xkLG51bGwsbnVsbCxudWxsLCEwKSk7dGhpcy50aHJlc2hvbGRBbmdsZVJhZD10KGssYy5zdGFydEFuZ2xlUmFkKTthLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGYpe2lmKCFmLmlzTnVsbCl7dmFyIGQ9Zi5ncmFwaGljLGU9Yy5zdGFydEFuZ2xlUmFkK2MudHJhbnNsYXRlKGYueSxudWxsLG51bGwsbnVsbCwhMCksaz13KHQoZi5vcHRpb25zLnJhZGl1cyxiLnJhZGl1cywxMDApKSpnWzJdLzIwMCxuPXcodChmLm9wdGlvbnMuaW5uZXJSYWRpdXMsCmIuaW5uZXJSYWRpdXMsNjApKSpnWzJdLzIwMCxwPWMudG9Db2xvcihmLnksZikscT1NYXRoLm1pbihjLnN0YXJ0QW5nbGVSYWQsYy5lbmRBbmdsZVJhZCksbD1NYXRoLm1heChjLnN0YXJ0QW5nbGVSYWQsYy5lbmRBbmdsZVJhZCk7Im5vbmUiPT09cCYmKHA9Zi5jb2xvcnx8YS5jb2xvcnx8Im5vbmUiKTsibm9uZSIhPT1wJiYoZi5jb2xvcj1wKTtlPXIoZSxxLWgsbCtoKTshMT09PWIud3JhcCYmKGU9cihlLHEsbCkpO3E9TWF0aC5taW4oZSxhLnRocmVzaG9sZEFuZ2xlUmFkKTtlPU1hdGgubWF4KGUsYS50aHJlc2hvbGRBbmdsZVJhZCk7ZS1xP
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIFN0cmVhbWdyYXBoIG1vZHVsZQoKIChjKSAyMDEwLTIwMTkgVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oYSl7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oYVsiZGVmYXVsdCJdPWEsbW9kdWxlLmV4cG9ydHM9YSk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvc3RyZWFtZ3JhcGgiLFsiaGlnaGNoYXJ0cyJdLGZ1bmN0aW9uKGIpe2EoYik7YS5IaWdoY2hhcnRzPWI7cmV0dXJuIGF9KTphKCJ1bmRlZmluZWQiIT09dHlwZW9mIEhpZ2hjaGFydHM/SGlnaGNoYXJ0czp2b2lkIDApfSkoZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhLGQsYixjKXthLmhhc093blByb3BlcnR5KGQpfHwoYVtkXT1jLmFwcGx5KG51bGwsYikpfWE9YT9hLl9tb2R1bGVzOnt9O2IoYSwibW9kdWxlcy9zdHJlYW1ncmFwaC5zcmMuanMiLFthWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24oYSl7YT1hLnNlcmllc1R5cGU7YSgic3RyZWFtZ3JhcGgiLCJhcmVhc3BsaW5lIix7ZmlsbE9wYWNpdHk6MSwKbGluZVdpZHRoOjAsbWFya2VyOntlbmFibGVkOiExfSxzdGFja2luZzoic3RyZWFtIn0se25lZ1N0YWNrczohMSxzdHJlYW1TdGFja2VyOmZ1bmN0aW9uKGEsYixjKXthWzBdLT1iLnRvdGFsLzI7YVsxXS09Yi50b3RhbC8yO3RoaXMuc3RhY2tlZFlEYXRhW2NdPWF9fSk7IiJ9KTtiKGEsIm1hc3RlcnMvbW9kdWxlcy9zdHJlYW1ncmFwaC5zcmMuanMiLFtdLGZ1bmN0aW9uKCl7fSl9KTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RyZWFtZ3JhcGguanMubWFw\"></script>\n",
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIChjKSAyMDE2LTIwMTkgSGlnaHNvZnQgQVMKIEF1dGhvcnM6IEpvbiBBcmlsZCBOeWdhcmQKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oZCl7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oZFsiZGVmYXVsdCJdPWQsbW9kdWxlLmV4cG9ydHM9ZCk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvc3VuYnVyc3QiLFsiaGlnaGNoYXJ0cyJdLGZ1bmN0aW9uKEMpe2QoQyk7ZC5IaWdoY2hhcnRzPUM7cmV0dXJuIGR9KTpkKCJ1bmRlZmluZWQiIT09dHlwZW9mIEhpZ2hjaGFydHM/SGlnaGNoYXJ0czp2b2lkIDApfSkoZnVuY3Rpb24oZCl7ZnVuY3Rpb24gQyhkLGIseCxxKXtkLmhhc093blByb3BlcnR5KGIpfHwoZFtiXT1xLmFwcGx5KG51bGwseCkpfWQ9ZD9kLl9tb2R1bGVzOnt9O0MoZCwibWl4aW5zL2RyYXctcG9pbnQuanMiLFtdLGZ1bmN0aW9uKCl7dmFyIGQ9ZnVuY3Rpb24oYil7dmFyIGQscT10aGlzLHc9cS5ncmFwaGljLG09Yi5hbmltYXRhYmxlQXR0cmlicyxsPWIub25Db21wbGV0ZSx1PWIuY3NzLEI9CmIucmVuZGVyZXIsZz1udWxsPT09KGQ9cS5zZXJpZXMpfHx2b2lkIDA9PT1kP3ZvaWQgMDpkLm9wdGlvbnMuYW5pbWF0aW9uO2lmKHEuc2hvdWxkRHJhdygpKXd8fChxLmdyYXBoaWM9dz1CW2Iuc2hhcGVUeXBlXShiLnNoYXBlQXJncykuYWRkKGIuZ3JvdXApKSx3LmNzcyh1KS5hdHRyKGIuYXR0cmlicykuYW5pbWF0ZShtLGIuaXNOZXc/ITE6ZyxsKTtlbHNlIGlmKHcpe3ZhciB0PWZ1bmN0aW9uKCl7cS5ncmFwaGljPXc9dy5kZXN0cm95KCk7ImZ1bmN0aW9uIj09PXR5cGVvZiBsJiZsKCl9O09iamVjdC5rZXlzKG0pLmxlbmd0aD93LmFuaW1hdGUobSx2b2lkIDAsZnVuY3Rpb24oKXt0KCl9KTp0KCl9fTtyZXR1cm4gZnVuY3Rpb24oYil7KGIuYXR0cmlicz1iLmF0dHJpYnN8fHt9KVsiY2xhc3MiXT10aGlzLmdldENsYXNzTmFtZSgpO2QuY2FsbCh0aGlzLGIpfX0pO0MoZCwibWl4aW5zL3RyZWUtc2VyaWVzLmpzIixbZFsicGFydHMvQ29sb3IuanMiXSxkWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sCmZ1bmN0aW9uKGQsYil7dmFyIHg9Yi5leHRlbmQscT1iLmlzQXJyYXksdz1iLmlzTnVtYmVyLG09Yi5pc09iamVjdCxsPWIubWVyZ2UsdT1iLnBpY2s7cmV0dXJue2dldENvbG9yOmZ1bmN0aW9uKGIsZyl7dmFyIHQ9Zy5pbmRleCxsPWcubWFwT3B0aW9uc1RvTGV2ZWwsQj1nLnBhcmVudENvbG9yLHE9Zy5wYXJlbnRDb2xvckluZGV4LG09Zy5zZXJpZXMsRj1nLmNvbG9ycyx3PWcuc2libGluZ3Msdj1tLnBvaW50cyxHPW0uY2hhcnQub3B0aW9ucy5jaGFydCxFO2lmKGIpe3Y9dltiLmldO2I9bFtiLmxldmVsXXx8e307aWYobD12JiZiLmNvbG9yQnlQb2ludCl7dmFyIEQ9di5pbmRleCUoRj9GLmxlbmd0aDpHLmNvbG9yQ291bnQpO3ZhciB4PUYmJkZbRF19aWYoIW0uY2hhcnQuc3R5bGVkTW9kZSl7Rj12JiZ2Lm9wdGlvbnMuY29sb3I7Rz1iJiZiLmNvbG9yO2lmKEU9QilFPShFPWImJmIuY29sb3JWYXJpYXRpb24pJiYiYnJpZ2h0bmVzcyI9PT1FLmtleT9kLnBhcnNlKEIpLmJyaWdodGVuKHQvCncqRS50bykuZ2V0KCk6QjtFPXUoRixHLHgsRSxtLmNvbG9yKX12YXIgST11KHYmJnYub3B0aW9ucy5jb2xvckluZGV4LGImJmIuY29sb3JJbmRleCxELHEsZy5jb2xvckluZGV4KX1yZXR1cm57Y29sb3I6RSxjb2xvckluZGV4Okl9fSxnZXRMZXZlbE9wdGlvbnM6ZnVuY3Rpb24oYil7dmFyIGc9bnVsbDtpZihtKGIpKXtnPXt9O3ZhciBkPXcoYi5mcm9tKT9iLmZyb206MTt2YXIgdT1iLmxldmVsczt2YXIgQj17fTt2YXIgST1tKGIuZGVmYXVsdHMpP2IuZGVmYXVsdHM6e307cSh1KSYmKEI9dS5yZWR1Y2UoZnVuY3Rpb24oYixnKXtpZihtKGcpJiZ3KGcubGV2ZWwpKXt2YXIgdD1sKHt9LGcpO3ZhciB1PSJib29sZWFuIj09PXR5cGVvZiB0LmxldmVsSXNDb25zdGFudD90LmxldmVsSXNDb25zdGFudDpJLmxldmVsSXNDb25zdGFudDtkZWxldGUgdC5sZXZlbElzQ29uc3RhbnQ7ZGVsZXRlIHQubGV2ZWw7Zz1nLmxldmVsKyh1PzA6ZC0xKTttKGJbZ10pP3goYltnXSx0KTpiW2ddPXR9cmV0dXJuIGJ9LAp7fSkpO3U9dyhiLnRvKT9iLnRvOjE7Zm9yKGI9MDtiPD11O2IrKylnW2JdPWwoe30sSSxtKEJbYl0pP0JbYl06e30pfXJldHVybiBnfSxzZXRUcmVlVmFsdWVzOmZ1bmN0aW9uIFUoYixkKXt2YXIgZz1kLmJlZm9yZSxsPWQuaWRSb290LHQ9ZC5tYXBJZFRvTm9kZVtsXSxtPWQucG9pbnRzW2IuaV0scT1tJiZtLm9wdGlvbnN8fHt9LHY9MCx3PVtdO3goYix7bGV2ZWxEeW5hbWljOmIubGV2ZWwtKCgiYm9vbGVhbiI9PT10eXBlb2YgZC5sZXZlbElzQ29uc3RhbnQ/ZC5sZXZlbElzQ29uc3RhbnQ6MSk/MDp0LmxldmVsKSxuYW1lOnUobSYmbS5uYW1lLCIiKSx2aXNpYmxlOmw9PT1iLmlkfHwoImJvb2xlYW4iPT09dHlwZW9mIGQudmlzaWJsZT9kLnZpc2libGU6ITEpfSk7ImZ1bmN0aW9uIj09PXR5cGVvZiBnJiYoYj1nKGIsZCkpO2IuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihnLGwpe3ZhciB0PXgoe30sZCk7eCh0LHtpbmRleDpsLHNpYmxpbmdzOmIuY2hpbGRyZW4ubGVuZ3RoLHZpc2libGU6Yi52aXNpYmxlfSk7Cmc9VShnLHQpO3cucHVzaChnKTtnLnZpc2libGUmJih2Kz1nLnZhbCl9KTtiLnZpc2libGU9MDx2fHxiLnZpc2libGU7Zz11KHEudmFsdWUsdik7eChiLHtjaGlsZHJlbjp3LGNoaWxkcmVuVG90YWw6dixpc0xlYWY6Yi52aXNpYmxlJiYhdix2YWw6Z30pO3JldHVybiBifSx1cGRhdGVSb290SWQ6ZnVuY3Rpb24oYil7aWYobShiKSl7dmFyIGQ9bShiLm9wdGlvbnMpP2Iub3B0aW9uczp7fTtkPXUoYi5yb290Tm9kZSxkLnJvb3RJZCwiIik7bShiLnVzZXJPcHRpb25zKSYmKGIudXNlck9wdGlvbnMucm9vdElkPWQpO2Iucm9vdE5vZGU9ZH1yZXR1cm4gZH19fSk7QyhkLCJtb2R1b
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIFZlY3RvciBwbG90IHNlcmllcyBtb2R1bGUKCiAoYykgMjAxMC0yMDE5IFRvcnN0ZWluIEhvbnNpCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGEpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGFbImRlZmF1bHQiXT1hLG1vZHVsZS5leHBvcnRzPWEpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9tb2R1bGVzL3ZlY3RvciIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24oYyl7YShjKTthLkhpZ2hjaGFydHM9YztyZXR1cm4gYX0pOmEoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihhKXtmdW5jdGlvbiBjKGEsZCxjLGUpe2EuaGFzT3duUHJvcGVydHkoZCl8fChhW2RdPWUuYXBwbHkobnVsbCxjKSl9YT1hP2EuX21vZHVsZXM6e307YyhhLCJtb2R1bGVzL3ZlY3Rvci5zcmMuanMiLFthWyJwYXJ0cy9HbG9iYWxzLmpzIl0sYVsicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGEsZCl7dmFyIGM9ZC5hbmltT2JqZWN0LGU9ZC5hcnJheU1heCxnPWQucGljaztkPQpkLnNlcmllc1R5cGU7ZCgidmVjdG9yIiwic2NhdHRlciIse2xpbmVXaWR0aDoyLG1hcmtlcjpudWxsLHJvdGF0aW9uT3JpZ2luOiJjZW50ZXIiLHN0YXRlczp7aG92ZXI6e2xpbmVXaWR0aFBsdXM6MX19LHRvb2x0aXA6e3BvaW50Rm9ybWF0OiI8Yj5be3BvaW50Lnh9LCB7cG9pbnQueX1dPC9iPjxici8+TGVuZ3RoOiA8Yj57cG9pbnQubGVuZ3RofTwvYj48YnIvPkRpcmVjdGlvbjogPGI+e3BvaW50LmRpcmVjdGlvbn1cdTAwYjA8L2I+PGJyLz4ifSx2ZWN0b3JMZW5ndGg6MjB9LHtwb2ludEFycmF5TWFwOlsieSIsImxlbmd0aCIsImRpcmVjdGlvbiJdLHBhcmFsbGVsQXJyYXlzOlsieCIsInkiLCJsZW5ndGgiLCJkaXJlY3Rpb24iXSxwb2ludEF0dHJpYnM6ZnVuY3Rpb24oYSxiKXt2YXIgZj10aGlzLm9wdGlvbnM7YT1hLmNvbG9yfHx0aGlzLmNvbG9yO3ZhciBjPXRoaXMub3B0aW9ucy5saW5lV2lkdGg7YiYmKGE9Zi5zdGF0ZXNbYl0uY29sb3J8fGEsYz0oZi5zdGF0ZXNbYl0ubGluZVdpZHRofHwKYykrKGYuc3RhdGVzW2JdLmxpbmVXaWR0aFBsdXN8fDApKTtyZXR1cm57c3Ryb2tlOmEsInN0cm9rZS13aWR0aCI6Y319LG1hcmtlckF0dHJpYnM6YS5ub29wLGdldFN5bWJvbDphLm5vb3AsYXJyb3c6ZnVuY3Rpb24oYSl7YT1hLmxlbmd0aC90aGlzLmxlbmd0aE1heCp0aGlzLm9wdGlvbnMudmVjdG9yTGVuZ3RoLzIwO3ZhciBiPXtzdGFydDoxMCphLGNlbnRlcjowLGVuZDotMTAqYX1bdGhpcy5vcHRpb25zLnJvdGF0aW9uT3JpZ2luXXx8MDtyZXR1cm5bWyJNIiwwLDcqYStiXSxbIkwiLC0xLjUqYSw3KmErYl0sWyJMIiwwLDEwKmErYl0sWyJMIiwxLjUqYSw3KmErYl0sWyJMIiwwLDcqYStiXSxbIkwiLDAsLTEwKmErYl1dfSx0cmFuc2xhdGU6ZnVuY3Rpb24oKXthLlNlcmllcy5wcm90b3R5cGUudHJhbnNsYXRlLmNhbGwodGhpcyk7dGhpcy5sZW5ndGhNYXg9ZSh0aGlzLmxlbmd0aERhdGEpfSxkcmF3UG9pbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jaGFydDt0aGlzLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBjPQpiLnBsb3RYLGQ9Yi5wbG90WTshMT09PXRoaXMub3B0aW9ucy5jbGlwfHxhLmlzSW5zaWRlUGxvdChjLGQsYS5pbnZlcnRlZCk/KGIuZ3JhcGhpY3x8KGIuZ3JhcGhpYz10aGlzLmNoYXJ0LnJlbmRlcmVyLnBhdGgoKS5hZGQodGhpcy5tYXJrZXJHcm91cCkuYWRkQ2xhc3MoImhpZ2hjaGFydHMtcG9pbnQgaGlnaGNoYXJ0cy1jb2xvci0iK2coYi5jb2xvckluZGV4LGIuc2VyaWVzLmNvbG9ySW5kZXgpKSksYi5ncmFwaGljLmF0dHIoe2Q6dGhpcy5hcnJvdyhiKSx0cmFuc2xhdGVYOmMsdHJhbnNsYXRlWTpkLHJvdGF0aW9uOmIuZGlyZWN0aW9ufSksdGhpcy5jaGFydC5zdHlsZWRNb2RlfHxiLmdyYXBoaWMuYXR0cih0aGlzLnBvaW50QXR0cmlicyhiKSkpOmIuZ3JhcGhpYyYmKGIuZ3JhcGhpYz1iLmdyYXBoaWMuZGVzdHJveSgpKX0sdGhpcyl9LGRyYXdHcmFwaDphLm5vb3AsYW5pbWF0ZTpmdW5jdGlvbihhKXthP3RoaXMubWFya2VyR3JvdXAuYXR0cih7b3BhY2l0eTouMDF9KTp0aGlzLm1hcmtlckdyb3VwLmFuaW1hdGUoe29wYWNpdHk6MX0sCmModGhpcy5vcHRpb25zLmFuaW1hdGlvbikpfX0pOyIifSk7YyhhLCJtYXN0ZXJzL21vZHVsZXMvdmVjdG9yLnNyYy5qcyIsW10sZnVuY3Rpb24oKXt9KX0pOwovLyMgc291cmNlTWFwcGluZ1VSTD12ZWN0b3IuanMubWFw\"></script>\n",
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIChjKSAyMDE2LTIwMTkgSGlnaHNvZnQgQVMKIEF1dGhvcnM6IEpvbiBBcmlsZCBOeWdhcmQKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oYil7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oYlsiZGVmYXVsdCJdPWIsbW9kdWxlLmV4cG9ydHM9Yik6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvd29yZGNsb3VkIixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbihsKXtiKGwpO2IuSGlnaGNoYXJ0cz1sO3JldHVybiBifSk6YigidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGwoYixlLHosaCl7Yi5oYXNPd25Qcm9wZXJ0eShlKXx8KGJbZV09aC5hcHBseShudWxsLHopKX1iPWI/Yi5fbW9kdWxlczp7fTtsKGIsIm1peGlucy9kcmF3LXBvaW50LmpzIixbXSxmdW5jdGlvbigpe3ZhciBiPWZ1bmN0aW9uKGUpe3ZhciBiLGg9dGhpcyxwPWguZ3JhcGhpYyx0PWUuYW5pbWF0YWJsZUF0dHJpYnMsdT1lLm9uQ29tcGxldGUsbD1lLmNzcywKcT1lLnJlbmRlcmVyLHk9bnVsbD09PShiPWguc2VyaWVzKXx8dm9pZCAwPT09Yj92b2lkIDA6Yi5vcHRpb25zLmFuaW1hdGlvbjtpZihoLnNob3VsZERyYXcoKSlwfHwoaC5ncmFwaGljPXA9cVtlLnNoYXBlVHlwZV0oZS5zaGFwZUFyZ3MpLmFkZChlLmdyb3VwKSkscC5jc3MobCkuYXR0cihlLmF0dHJpYnMpLmFuaW1hdGUodCxlLmlzTmV3PyExOnksdSk7ZWxzZSBpZihwKXt2YXIgdj1mdW5jdGlvbigpe2guZ3JhcGhpYz1wPXAuZGVzdHJveSgpOyJmdW5jdGlvbiI9PT10eXBlb2YgdSYmdSgpfTtPYmplY3Qua2V5cyh0KS5sZW5ndGg/cC5hbmltYXRlKHQsdm9pZCAwLGZ1bmN0aW9uKCl7digpfSk6digpfX07cmV0dXJuIGZ1bmN0aW9uKGUpeyhlLmF0dHJpYnM9ZS5hdHRyaWJzfHx7fSlbImNsYXNzIl09dGhpcy5nZXRDbGFzc05hbWUoKTtiLmNhbGwodGhpcyxlKX19KTtsKGIsIm1peGlucy9wb2x5Z29uLmpzIixbYlsicGFydHMvR2xvYmFscy5qcyJdLGJbInBhcnRzL1V0aWxpdGllcy5qcyJdXSwKZnVuY3Rpb24oYixlKXt2YXIgbD1lLmZpbmQsaD1lLmlzQXJyYXkscD1lLmlzTnVtYmVyLHQ9Yi5kZWcycmFkLHU9ZnVuY3Rpb24oYSxjKXtjPXAoYyk/YzoxNDtjPU1hdGgucG93KDEwLGMpO3JldHVybiBNYXRoLnJvdW5kKGEqYykvY30sSD1mdW5jdGlvbihhLGMpe3ZhciBiPWNbMF0tYVswXTthPWNbMV0tYVsxXTtyZXR1cm5bWy1hLGJdLFthLC1iXV19LHE9ZnVuY3Rpb24oYSxjKXthPWEubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhWzBdKmNbMF0rYVsxXSpjWzFdfSk7cmV0dXJue21pbjpNYXRoLm1pbi5hcHBseSh0aGlzLGEpLG1heDpNYXRoLm1heC5hcHBseSh0aGlzLGEpfX0seT1mdW5jdGlvbihhLGMpe3ZhciBiPWFbMF07YT1hWzFdO3ZhciBrPXQqLWM7Yz1NYXRoLmNvcyhrKTtrPU1hdGguc2luKGspO3JldHVyblt1KGIqYy1hKmspLHUoYiprK2EqYyldfSx2PWZ1bmN0aW9uKGEsYyxiKXthPXkoW2FbMF0tY1swXSxhWzFdLWNbMV1dLGIpO3JldHVyblthWzBdK2NbMF0sYVsxXSsKY1sxXV19LEM9ZnVuY3Rpb24oYSl7dmFyIGM9YS5heGVzO2lmKCFoKGMpKXtjPVtdO3ZhciBiPWI9YS5jb25jYXQoW2FbMF1dKTtiLnJlZHVjZShmdW5jdGlvbihhLGIpe3ZhciBrPUgoYSxiKVswXTtsKGMsZnVuY3Rpb24oYSl7cmV0dXJuIGFbMF09PT1rWzBdJiZhWzFdPT09a1sxXX0pfHxjLnB1c2goayk7cmV0dXJuIGJ9KTthLmF4ZXM9Y31yZXR1cm4gY30sRj1mdW5jdGlvbihhLGMpe2E9QyhhKTtjPUMoYyk7cmV0dXJuIGEuY29uY2F0KGMpfTtyZXR1cm57Z2V0Qm91bmRpbmdCb3hGcm9tUG9seWdvbjpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZWR1Y2UoZnVuY3Rpb24oYSxiKXt2YXIgYz1iWzBdO2I9YlsxXTthLmxlZnQ9TWF0aC5taW4oYyxhLmxlZnQpO2EucmlnaHQ9TWF0aC5tYXgoYyxhLnJpZ2h0KTthLmJvdHRvbT1NYXRoLm1heChiLGEuYm90dG9tKTthLnRvcD1NYXRoLm1pbihiLGEudG9wKTtyZXR1cm4gYX0se2xlZnQ6TnVtYmVyLk1BWF9WQUxVRSxyaWdodDotTnVtYmVyLk1BWF9WQUxVRSwKYm90dG9tOi1OdW1iZXIuTUFYX1ZBTFVFLHRvcDpOdW1iZXIuTUFYX1ZBTFVFfSl9LGdldFBvbHlnb246ZnVuY3Rpb24oYSxiLGUsayxoKXt2YXIgYz1bYSxiXSxsPWEtZS8yO2ErPWUvMjtlPWItay8yO2IrPWsvMjtyZXR1cm5bW2wsZV0sW2EsZV0sW2EsYl0sW2wsYl1dLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gdihhLGMsLWgpfSl9LGlzUG9seWdvbnNDb2xsaWRpbmc6ZnVuY3Rpb24oYSxiKXt2YXIgYz1GKGEsYik7cmV0dXJuIWwoYyxmdW5jdGlvbihjKXt2YXIgZT1xKGEsYyk7Yz1xKGIsYyk7cmV0dXJuISEoYy5taW4+ZS5tYXh8fGMubWF4PGUubWluKX0pfSxtb3ZlUG9seWdvbjpmdW5jdGlvbihhLGIsZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGMpe3JldHVybltjWzBdK2EsY1sxXStiXX0pfSxyb3RhdGUyRFRvT3JpZ2luOnkscm90YXRlMkRUb1BvaW50OnZ9fSk7bChiLCJtb2R1bGVzL3dvcmRjbG91ZC5zcmMuanMiLFtiWyJwYXJ0cy9HbG9iYWxzLmpzIl0sYlsicGFydHMvVXRpbGl0aWVzLmpzIl0sCmJbIm1peGlucy9kcmF3LXBvaW50LmpzIl0sYlsibWl4aW5zL3BvbHlnb24uanMiXV0sZnVuY3Rpb24oYixlLGwsaCl7ZnVuY3Rpb24gcChnLGQpe3ZhciBmPSExLGE9Zy5yZWN0LGI9Zy5wb2x5Z29uLGU9Zy5sYXN0Q29sbGlkZWRXaXRoLGs9ZnVuY3Rpb24oZCl7dmFyIGY9ZC5yZWN0OyhmPSEoZi5sZWZ0PmEucmlnaHR8fGYucmlnaHQ8YS5sZWZ0fHxmLnRvcD5hLmJvdHRvbXx8Zi5ib3R0b208YS50b3ApKSYmKGcucm90YXRpb24lOTB8fGQucm90YXRpb24lOTApJiYoZj1EKGIsZC5wb2x5Z29uKSk7cmV0dXJuIGZ9O2UmJigoZj1rKGUpKXx8ZGVsZXRlIGcubGFzdENvbGxpZGVkV2l0a
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIFgtcmFuZ2Ugc2VyaWVzCgogKGMpIDIwMTAtMjAxOSBUb3JzdGVpbiBIb25zaSwgTGFycyBBLiBWLiBDYWJyZXJhCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGIpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGJbImRlZmF1bHQiXT1iLG1vZHVsZS5leHBvcnRzPWIpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9tb2R1bGVzL3hyYW5nZSIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24oaCl7YihoKTtiLkhpZ2hjaGFydHM9aDtyZXR1cm4gYn0pOmIoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihiKXtmdW5jdGlvbiBoKGIsbCxoLHApe2IuaGFzT3duUHJvcGVydHkobCl8fChiW2xdPXAuYXBwbHkobnVsbCxoKSl9Yj1iP2IuX21vZHVsZXM6e307aChiLCJtb2R1bGVzL3hyYW5nZS5zcmMuanMiLFtiWyJwYXJ0cy9BeGlzLmpzIl0sYlsicGFydHMvR2xvYmFscy5qcyJdLGJbInBhcnRzL0NvbG9yLmpzIl0sYlsicGFydHMvUG9pbnQuanMiXSxiWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sCmZ1bmN0aW9uKGIsbCxoLHAsZyl7dmFyIHg9aC5wYXJzZTtoPWcuYWRkRXZlbnQ7dmFyIHI9Zy5jbGFtcCxCPWcuY29ycmVjdEZsb2F0LEM9Zy5kZWZpbmVkLHk9Zy5maW5kLHQ9Zy5pc051bWJlcix2PWcuaXNPYmplY3QsdT1nLm1lcmdlLHc9Zy5waWNrO2c9Zy5zZXJpZXNUeXBlO3ZhciB6PWwuc2VyaWVzVHlwZXMuY29sdW1uLEE9bC5zZXJpZXNUeXBlcyxEPWwuU2VyaWVzO2coInhyYW5nZSIsImNvbHVtbiIse2NvbG9yQnlQb2ludDohMCxkYXRhTGFiZWxzOntmb3JtYXR0ZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnBvaW50LnBhcnRpYWxGaWxsO3YoYSkmJihhPWEuYW1vdW50KTtpZih0KGEpJiYwPGEpcmV0dXJuIEIoMTAwKmEpKyIlIn0saW5zaWRlOiEwLHZlcnRpY2FsQWxpZ246Im1pZGRsZSJ9LHRvb2x0aXA6e2hlYWRlckZvcm1hdDonPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBweCI+e3BvaW50Lnh9IC0ge3BvaW50LngyfTwvc3Bhbj48YnIvPicscG9pbnRGb3JtYXQ6JzxzcGFuIHN0eWxlPSJjb2xvcjp7cG9pbnQuY29sb3J9Ij5cdTI1Y2Y8L3NwYW4+IHtzZXJpZXMubmFtZX06IDxiPntwb2ludC55Q2F0ZWdvcnl9PC9iPjxici8+J30sCmJvcmRlclJhZGl1czozLHBvaW50UmFuZ2U6MH0se3R5cGU6InhyYW5nZSIscGFyYWxsZWxBcnJheXM6WyJ4IiwieDIiLCJ5Il0scmVxdWlyZVNvcnRpbmc6ITEsYW5pbWF0ZTpBLmxpbmUucHJvdG90eXBlLmFuaW1hdGUsY3JvcFNob3VsZGVyOjEsZ2V0RXh0cmVtZXNGcm9tQWxsOiEwLGF1dG9JbmNyZW1lbnQ6bC5ub29wLGJ1aWxkS0RUcmVlOmwubm9vcCxpbml0OmZ1bmN0aW9uKCl7QS5jb2x1bW4ucHJvdG90eXBlLmluaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMub3B0aW9ucy5zdGFja2luZz12b2lkIDB9LGdldENvbHVtbk1ldHJpY3M6ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7Zi5zZXJpZXMuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYz1hLnhBeGlzO2EueEF4aXM9YS55QXhpczthLnlBeGlzPWN9KX12YXIgZj10aGlzLmNoYXJ0O2EoKTt2YXIgZD16LnByb3RvdHlwZS5nZXRDb2x1bW5NZXRyaWNzLmNhbGwodGhpcyk7YSgpO3JldHVybiBkfSxjcm9wRGF0YTpmdW5jdGlvbihhLApmLGQsbSl7Zj1ELnByb3RvdHlwZS5jcm9wRGF0YS5jYWxsKHRoaXMsdGhpcy54MkRhdGEsZixkLG0pO2YueERhdGE9YS5zbGljZShmLnN0YXJ0LGYuZW5kKTtyZXR1cm4gZn0sZmluZFBvaW50SW5kZXg6ZnVuY3Rpb24oYSl7dmFyIGY9dGhpcy5jcm9wcGVkLGQ9dGhpcy5jcm9wU3RhcnQsbT10aGlzLnBvaW50cyxjPWEuaWQ7aWYoYyl2YXIgZT0oZT15KG0sZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1jfSkpP2UuaW5kZXg6dm9pZCAwOyJ1bmRlZmluZWQiPT09dHlwZW9mIGUmJihlPShlPXkobSxmdW5jdGlvbihjKXtyZXR1cm4gYy54PT09YS54JiZjLngyPT09YS54MiYmIWMudG91Y2hlZH0pKT9lLmluZGV4OnZvaWQgMCk7ZiYmdChlKSYmdChkKSYmZT49ZCYmKGUtPWQpO3JldHVybiBlfSx0cmFuc2xhdGVQb2ludDpmdW5jdGlvbihhKXt2YXIgZj10aGlzLnhBeGlzLGQ9dGhpcy55QXhpcyxtPXRoaXMuY29sdW1uTWV0cmljcyxjPXRoaXMub3B0aW9ucyxlPWMubWluUG9pbnRMZW5ndGh8fAowLGI9YS5wbG90WCxnPXcoYS54MixhLngrKGEubGVufHwwKSksaz1mLnRyYW5zbGF0ZShnLDAsMCwwLDEpO2c9TWF0aC5hYnMoay1iKTt2YXIgaD10aGlzLmNoYXJ0LmludmVydGVkLGw9dyhjLmJvcmRlcldpZHRoLDEpJTIvMixuPW0ub2Zmc2V0LHE9TWF0aC5yb3VuZChtLndpZHRoKTtlJiYoZS09ZywwPmUmJihlPTApLGItPWUvMixrKz1lLzIpO2I9TWF0aC5tYXgoYiwtMTApO2s9cihrLC0xMCxmLmxlbisxMCk7QyhhLm9wdGlvbnMucG9pbnRXaWR0aCkmJihuLT0oTWF0aC5jZWlsKGEub3B0aW9ucy5wb2ludFdpZHRoKS1xKS8yLHE9TWF0aC5jZWlsKGEub3B0aW9ucy5wb2ludFdpZHRoKSk7Yy5wb2ludFBsYWNlbWVudCYmdChhLnBsb3RZKSYmZC5jYXRlZ29yaWVzJiYoYS5wbG90WT1kLnRyYW5zbGF0ZShhLnksMCwxLDAsMSxjLnBvaW50UGxhY2VtZW50KSk7YS5zaGFwZUFyZ3M9e3g6TWF0aC5mbG9vcihNYXRoLm1pbihiLGspKStsLHk6TWF0aC5mbG9vcihhLnBsb3RZK24pK2wsCndpZHRoOk1hdGgucm91bmQoTWF0aC5hYnMoay1iKSksaGVpZ2h0OnEscjp0aGlzLm9wdGlvbnMuYm9yZGVyUmFkaXVzfTtjPWEuc2hhcGVBcmdzLng7ZT1jK2Euc2hhcGVBcmdzLndpZHRoOzA+Y3x8ZT5mLmxlbj8oYz1yKGMsMCxmLmxlbiksZT1yKGUsMCxmLmxlbiksaz1lLWMsYS5kbEJveD11KGEuc2hhcGVBcmdzLHt4OmMsd2lkdGg6ZS1jLGNlbnRlclg6az9rLzI6bnVsbH0pKTphLmRsQm94PW51bGw7Yz1hLnRvb2x0aXBQb3M7Z
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2htYXBzIEpTIHY4LjEuMiAoMjAyMC0wNi0xNikKCiBUaWxlbWFwIG1vZHVsZQoKIChjKSAyMDEwLTIwMTkgSGlnaHNvZnQgQVMKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oZCl7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oZFsiZGVmYXVsdCJdPWQsbW9kdWxlLmV4cG9ydHM9ZCk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvdGlsZW1hcCIsWyJoaWdoY2hhcnRzIiwiaGlnaGNoYXJ0cy9tb2R1bGVzL21hcCJdLGZ1bmN0aW9uKGYpe2QoZik7ZC5IaWdoY2hhcnRzPWY7cmV0dXJuIGR9KTpkKCJ1bmRlZmluZWQiIT09dHlwZW9mIEhpZ2hjaGFydHM/SGlnaGNoYXJ0czp2b2lkIDApfSkoZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZihlLGQsZix2KXtlLmhhc093blByb3BlcnR5KGQpfHwoZVtkXT12LmFwcGx5KG51bGwsZikpfWQ9ZD9kLl9tb2R1bGVzOnt9O2YoZCwibW9kdWxlcy90aWxlbWFwLnNyYy5qcyIsW2RbInBhcnRzL0dsb2JhbHMuanMiXSxkWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24oZSxkKXtmdW5jdGlvbiBmKGEsYiwKYyl7YT1hLm9wdGlvbnM7cmV0dXJue3hQYWQ6KGEuY29sc2l6ZXx8MSkvLWIseVBhZDooYS5yb3dzaXplfHwxKS8tY319IiI7dmFyIHY9ZC5hZGRFdmVudCxoPWQuY2xhbXAseT1kLmV4dGVuZCx4PWQucGljaztkPWQuc2VyaWVzVHlwZTtlLnRpbGVTaGFwZVR5cGVzPXtoZXhhZ29uOnthbGlnbkRhdGFMYWJlbDplLnNlcmllc1R5cGVzLnNjYXR0ZXIucHJvdG90eXBlLmFsaWduRGF0YUxhYmVsLGdldFNlcmllc1BhZGRpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIGYoYSwzLDIpfSxoYWxvUGF0aDpmdW5jdGlvbihhKXtpZighYSlyZXR1cm5bXTt2YXIgYj10aGlzLnRpbGVFZGdlcztyZXR1cm5bWyJNIixiLngyLWEsYi55MSthXSxbIkwiLGIueDMrYSxiLnkxK2FdLFsiTCIsYi54NCsxLjUqYSxiLnkyXSxbIkwiLGIueDMrYSxiLnkzLWFdLFsiTCIsYi54Mi1hLGIueTMtYV0sWyJMIixiLngxLTEuNSphLGIueTJdLFsiWiJdXX0sdHJhbnNsYXRlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zLApiPXRoaXMueEF4aXMsYz10aGlzLnlBeGlzLGQ9YS5wb2ludFBhZGRpbmd8fDAsZT0oYS5jb2xzaXplfHwxKS8zLGY9KGEucm93c2l6ZXx8MSkvMixuO3RoaXMuZ2VuZXJhdGVQb2ludHMoKTt0aGlzLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciB0PWgoTWF0aC5mbG9vcihiLmxlbi1iLnRyYW5zbGF0ZShhLngtMiplLDAsMSwwLDEpKSwtYi5sZW4sMipiLmxlbiksaz1oKE1hdGguZmxvb3IoYi5sZW4tYi50cmFuc2xhdGUoYS54LWUsMCwxLDAsMSkpLC1iLmxlbiwyKmIubGVuKSxxPWgoTWF0aC5mbG9vcihiLmxlbi1iLnRyYW5zbGF0ZShhLngrZSwwLDEsMCwxKSksLWIubGVuLDIqYi5sZW4pLHU9aChNYXRoLmZsb29yKGIubGVuLWIudHJhbnNsYXRlKGEueCsyKmUsMCwxLDAsMSkpLC1iLmxlbiwyKmIubGVuKSxyPWgoTWF0aC5mbG9vcihjLnRyYW5zbGF0ZShhLnktZiwwLDEsMCwxKSksLWMubGVuLDIqYy5sZW4pLGc9aChNYXRoLmZsb29yKGMudHJhbnNsYXRlKGEueSwwLDEsCjAsMSkpLC1jLmxlbiwyKmMubGVuKSxsPWgoTWF0aC5mbG9vcihjLnRyYW5zbGF0ZShhLnkrZiwwLDEsMCwxKSksLWMubGVuLDIqYy5sZW4pLG09eChhLnBvaW50UGFkZGluZyxkKSxwPW0qTWF0aC5hYnMoay10KS9NYXRoLmFicyhsLWcpO3A9Yi5yZXZlcnNlZD8tcDpwO3ZhciB3PWIucmV2ZXJzZWQ/LW06bTttPWMucmV2ZXJzZWQ/LW06bTthLnglMiYmKG49bnx8TWF0aC5yb3VuZChNYXRoLmFicyhsLXIpLzIpKihjLnJldmVyc2VkPy0xOjEpLHIrPW4sZys9bixsKz1uKTthLnBsb3RYPWEuY2xpZW50WD0oaytxKS8yO2EucGxvdFk9Zzt0Kz1wK3c7ays9dztxLT13O3UtPXArdztyLT1tO2wrPW07YS50aWxlRWRnZXM9e3gxOnQseDI6ayx4MzpxLHg0OnUseTE6cix5MjpnLHkzOmx9O2Euc2hhcGVUeXBlPSJwYXRoIjthLnNoYXBlQXJncz17ZDpbWyJNIixrLHJdLFsiTCIscSxyXSxbIkwiLHUsZ10sWyJMIixxLGxdLFsiTCIsayxsXSxbIkwiLHQsZ10sWyJaIl1dfX0pO3RoaXMudHJhbnNsYXRlQ29sb3JzKCl9fSwKZGlhbW9uZDp7YWxpZ25EYXRhTGFiZWw6ZS5zZXJpZXNUeXBlcy5zY2F0dGVyLnByb3RvdHlwZS5hbGlnbkRhdGFMYWJlbCxnZXRTZXJpZXNQYWRkaW5nOmZ1bmN0aW9uKGEpe3JldHVybiBmKGEsMiwyKX0saGFsb1BhdGg6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuW107dmFyIGI9dGhpcy50aWxlRWRnZXM7cmV0dXJuW1siTSIsYi54MixiLnkxK2FdLFsiTCIsYi54MythLGIueTJdLFsiTCIsYi54MixiLnkzLWFdLFsiTCIsYi54MS1hLGIueTJdLFsiWiJdXX0sdHJhbnNsYXRlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zLGI9dGhpcy54QXhpcyxjPXRoaXMueUF4aXMsZD1hLnBvaW50UGFkZGluZ3x8MCxlPWEuY29sc2l6ZXx8MSxmPShhLnJvd3NpemV8fDEpLzIsbjt0aGlzLmdlbmVyYXRlUG9pbnRzKCk7dGhpcy5wb2ludHMuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgcD1oKE1hdGgucm91bmQoYi5sZW4tYi50cmFuc2xhdGUoYS54LWUsMCwxLDAsMCkpLC1iLmxlbiwyKmIubGVuKSwKaz1oKE1hdGgucm91bmQoYi5sZW4tYi50cmFuc2xhdGUoYS54LDAsMSwwLDApKSwtYi5sZW4sMipiLmxlbikscT1oKE1hdGgucm91bmQoYi5sZW4tYi50cmFuc2xhdGUoYS54K2UsMCwxLDAsMCkpLC1iLmxlbiwyKmIubGVuKSx1PWgoTWF0aC5yb3VuZChjLnRyYW5zbGF0ZShhLnktZiwwLDEsMCwwKSksLWMubGVuLDIqYy5sZW4pLHI9aChNYXRoLnJvdW5kKGMudHJhbnNsYXRlKGEueSwwLDEsMCwwKSksLWMubGVuLDIqYy5sZW4pLGc9aChNYXRoLnJvdW5kKGMudHJhbnNsYXRlKGEueStmLDAsMSwwLDApKSwtYy5sZW4sMipjLmxlbiksbD14KGEucG9pbnRQYWRkaW5nLGQpLG09bCpNYXRoLmFicyhrLXApL01hdGguYWJzKGctc
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIChjKSAyMDE3LTIwMTkgSGlnaHNvZnQgQVMKIEF1dGhvcnM6IEpvbiBBcmlsZCBOeWdhcmQKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oYSl7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8oYVsiZGVmYXVsdCJdPWEsbW9kdWxlLmV4cG9ydHM9YSk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvdmVubiIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24obSl7YShtKTthLkhpZ2hjaGFydHM9bTtyZXR1cm4gYX0pOmEoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihhKXtmdW5jdGlvbiBtKGEsZixiLEIpe2EuaGFzT3duUHJvcGVydHkoZil8fChhW2ZdPUIuYXBwbHkobnVsbCxiKSl9YT1hP2EuX21vZHVsZXM6e307bShhLCJtaXhpbnMvZHJhdy1wb2ludC5qcyIsW10sZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbihmKXt2YXIgYixhPXRoaXMsaz1hLmdyYXBoaWMsZT1mLmFuaW1hdGFibGVBdHRyaWJzLHU9Zi5vbkNvbXBsZXRlLHc9Zi5jc3MsbT1mLnJlbmRlcmVyLApyPW51bGw9PT0oYj1hLnNlcmllcyl8fHZvaWQgMD09PWI/dm9pZCAwOmIub3B0aW9ucy5hbmltYXRpb247aWYoYS5zaG91bGREcmF3KCkpa3x8KGEuZ3JhcGhpYz1rPW1bZi5zaGFwZVR5cGVdKGYuc2hhcGVBcmdzKS5hZGQoZi5ncm91cCkpLGsuY3NzKHcpLmF0dHIoZi5hdHRyaWJzKS5hbmltYXRlKGUsZi5pc05ldz8hMTpyLHUpO2Vsc2UgaWYoayl7dmFyIG49ZnVuY3Rpb24oKXthLmdyYXBoaWM9az1rLmRlc3Ryb3koKTsiZnVuY3Rpb24iPT09dHlwZW9mIHUmJnUoKX07T2JqZWN0LmtleXMoZSkubGVuZ3RoP2suYW5pbWF0ZShlLHZvaWQgMCxmdW5jdGlvbigpe24oKX0pOm4oKX19O3JldHVybiBmdW5jdGlvbihmKXsoZi5hdHRyaWJzPWYuYXR0cmlic3x8e30pWyJjbGFzcyJdPXRoaXMuZ2V0Q2xhc3NOYW1lKCk7YS5jYWxsKHRoaXMsZil9fSk7bShhLCJtaXhpbnMvZ2VvbWV0cnkuanMiLFtdLGZ1bmN0aW9uKCl7cmV0dXJue2dldEFuZ2xlQmV0d2VlblBvaW50czpmdW5jdGlvbihhLApmKXtyZXR1cm4gTWF0aC5hdGFuMihmLngtYS54LGYueS1hLnkpfSxnZXRDZW50ZXJPZlBvaW50czpmdW5jdGlvbihhKXt2YXIgZj1hLnJlZHVjZShmdW5jdGlvbihiLGYpe2IueCs9Zi54O2IueSs9Zi55O3JldHVybiBifSx7eDowLHk6MH0pO3JldHVybnt4OmYueC9hLmxlbmd0aCx5OmYueS9hLmxlbmd0aH19LGdldERpc3RhbmNlQmV0d2VlblBvaW50czpmdW5jdGlvbihhLGYpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3coZi54LWEueCwyKStNYXRoLnBvdyhmLnktYS55LDIpKX19fSk7bShhLCJtaXhpbnMvZ2VvbWV0cnktY2lyY2xlcy5qcyIsW2FbIm1peGlucy9nZW9tZXRyeS5qcyJdXSxmdW5jdGlvbihhKXtmdW5jdGlvbiBmKGQsYyl7Yz1NYXRoLnBvdygxMCxjKTtyZXR1cm4gTWF0aC5yb3VuZChkKmMpL2N9ZnVuY3Rpb24gYihkKXtpZigwPj1kKXRocm93IEVycm9yKCJyYWRpdXMgb2YgY2lyY2xlIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIuIik7cmV0dXJuIE1hdGguUEkqCmQqZH1mdW5jdGlvbiBrKGQsYyl7cmV0dXJuIGQqZCpNYXRoLmFjb3MoMS1jL2QpLShkLWMpKk1hdGguc3FydChjKigyKmQtYykpfWZ1bmN0aW9uIG0oZCxjKXt2YXIgYT10KGQsYyksYj1kLnIsZT1jLnIsej1bXTtpZihhPGIrZSYmYT5NYXRoLmFicyhiLWUpKXtiKj1iO3ZhciB4PShiLWUqZSthKmEpLygyKmEpO2U9TWF0aC5zcXJ0KGIteCp4KTtiPWQueDt6PWMueDtkPWQueTt2YXIgaz1jLnk7Yz1iK3gqKHotYikvYTt4PWQreCooay1kKS9hO2Q9ZS9hKi0oay1kKTthPWUvYSotKHotYik7ej1be3g6ZihjK2QsMTQpLHk6Zih4LWEsMTQpfSx7eDpmKGMtZCwxNCkseTpmKHgrYSwxNCl9XX1yZXR1cm4gen1mdW5jdGlvbiBlKGQpe3JldHVybiBkLnJlZHVjZShmdW5jdGlvbihkLGEsYixmKXtmPWYuc2xpY2UoYisxKS5yZWR1Y2UoZnVuY3Rpb24oZCxjLGYpe3ZhciBlPVtiLGYrYisxXTtyZXR1cm4gZC5jb25jYXQobShhLGMpLm1hcChmdW5jdGlvbihkKXtkLmluZGV4ZXM9ZTtyZXR1cm4gZH0pKX0sCltdKTtyZXR1cm4gZC5jb25jYXQoZil9LFtdKX1mdW5jdGlvbiB1KGQsYyl7cmV0dXJuIHQoZCxjKTw9Yy5yKzFlLTEwfWZ1bmN0aW9uIHcoZCxjKXtyZXR1cm4hYy5zb21lKGZ1bmN0aW9uKGMpe3JldHVybiF1KGQsYyl9KX1mdW5jdGlvbiB5KGQpe3JldHVybiBlKGQpLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gdyhjLGQpfSl9dmFyIHI9YS5nZXRBbmdsZUJldHdlZW5Qb2ludHMsbj1hLmdldENlbnRlck9mUG9pbnRzLHQ9YS5nZXREaXN0YW5jZUJldHdlZW5Qb2ludHM7cmV0dXJue2dldEFyZWFPZkNpcmNsZTpiLGdldEFyZWFPZkludGVyc2VjdGlvbkJldHdlZW5DaXJjbGVzOmZ1bmN0aW9uKGQpe3ZhciBjPXkoZCk7aWYoMTxjLmxlbmd0aCl7dmFyIGE9bihjKTtjPWMubWFwKGZ1bmN0aW9uKGQpe2QuYW5nbGU9cihhLGQpO3JldHVybiBkfSkuc29ydChmdW5jdGlvbihkLGMpe3JldHVybiBjLmFuZ2xlLWQuYW5nbGV9KTt2YXIgYj1jW2MubGVuZ3RoLTFdO2M9Yy5yZWR1Y2UoZnVuY3Rpb24oYywKYil7dmFyIGE9Yy5zdGFydFBvaW50LGY9bihbYSxiXSksZT1iLmluZGV4ZXMuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybi0xPGEuaW5kZXhlcy5pbmRleE9mKGQpfSkucmVkdWNlKGZ1bmN0aW9uKGMsZSl7ZT1kW2VdO3ZhciBxPXIoZSxiKSxrPXIoZSxhKTtxPWstKGstcSsoazxxPzIqTWF0aC5QSTowKSkvMjtxPXQoZix7eDplLngrZS5yKk1hdGguc2luKHEpLHk6ZS55K2UucipNYXRoLmNvcyhxKX0pO2U9ZS5yO3E+MiplJiYocT0yKmUpO2lmKCFjfHxjLndpZHRoPnEpYz17cjplLGxhcmdlQXJjOnE+ZT8xOjAsd2lkdGg6cSx4OmIueCx5OmIueX07cmV0dXJuIGN9LG51bGwpO2lmKGUpe3ZhciBxP
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgR2FudHQgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIEdhbnR0IHNlcmllcwoKIChjKSAyMDE2LTIwMTkgTGFycyBBLiBWLiBDYWJyZXJhCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGMpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGNbImRlZmF1bHQiXT1jLG1vZHVsZS5leHBvcnRzPWMpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9tb2R1bGVzL2dhbnR0IixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbihKKXtjKEopO2MuSGlnaGNoYXJ0cz1KO3JldHVybiBjfSk6YygidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGMpe2Z1bmN0aW9uIEooYyxsLHUseil7Yy5oYXNPd25Qcm9wZXJ0eShsKXx8KGNbbF09ei5hcHBseShudWxsLHUpKX1jPWM/Yy5fbW9kdWxlczp7fTtKKGMsInBhcnRzLWdhbnR0L1RyZWUuanMiLFtjWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sZnVuY3Rpb24oYyl7dmFyIGw9Yy5leHRlbmQsdT1jLmlzTnVtYmVyLHo9Yy5waWNrLHg9ZnVuY3Rpb24obCx5KXt2YXIgaz1sLnJlZHVjZShmdW5jdGlvbihiLApnKXt2YXIgbT16KGcucGFyZW50LCIiKTsidW5kZWZpbmVkIj09PXR5cGVvZiBiW21dJiYoYlttXT1bXSk7YlttXS5wdXNoKGcpO3JldHVybiBifSx7fSk7T2JqZWN0LmtleXMoaykuZm9yRWFjaChmdW5jdGlvbihiLGcpe3ZhciBtPWtbYl07IiIhPT1iJiYtMT09PXkuaW5kZXhPZihiKSYmKG0uZm9yRWFjaChmdW5jdGlvbihiKXtnWyIiXS5wdXNoKGIpfSksZGVsZXRlIGdbYl0pfSk7cmV0dXJuIGt9LEE9ZnVuY3Rpb24oYyx5LGssYixnLG0pe3ZhciB0PTAsSD0wLEk9bSYmbS5hZnRlcixFPW0mJm0uYmVmb3JlO3k9e2RhdGE6YixkZXB0aDprLTEsaWQ6YyxsZXZlbDprLHBhcmVudDp5fTt2YXIgcCxhOyJmdW5jdGlvbiI9PT10eXBlb2YgRSYmRSh5LG0pO0U9KGdbY118fFtdKS5tYXAoZnVuY3Rpb24odyl7dmFyIGU9QSh3LmlkLGMsaysxLHcsZyxtKSxDPXcuc3RhcnQ7dz0hMD09PXcubWlsZXN0b25lP0M6dy5lbmQ7cD0hdShwKXx8QzxwP0M6cDthPSF1KGEpfHx3PmE/dzphO3Q9dCsKMStlLmRlc2NlbmRhbnRzO0g9TWF0aC5tYXgoZS5oZWlnaHQrMSxIKTtyZXR1cm4gZX0pO2ImJihiLnN0YXJ0PXooYi5zdGFydCxwKSxiLmVuZD16KGIuZW5kLGEpKTtsKHkse2NoaWxkcmVuOkUsZGVzY2VuZGFudHM6dCxoZWlnaHQ6SH0pOyJmdW5jdGlvbiI9PT10eXBlb2YgSSYmSSh5LG0pO3JldHVybiB5fTtyZXR1cm57Z2V0TGlzdE9mUGFyZW50czp4LGdldE5vZGU6QSxnZXRUcmVlOmZ1bmN0aW9uKGwseSl7dmFyIGs9bC5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGIuaWR9KTtsPXgobCxrKTtyZXR1cm4gQSgiIixudWxsLDEsbnVsbCxsLHkpfX19KTtKKGMsInBhcnRzLWdhbnR0L1RyZWVHcmlkVGljay5qcyIsW2NbInBhcnRzL1V0aWxpdGllcy5qcyJdXSxmdW5jdGlvbihjKXt2YXIgbD1jLmFkZEV2ZW50LHU9Yy5kZWZpbmVkLHo9Yy5pc09iamVjdCx4PWMuaXNOdW1iZXIsQT1jLnBpY2ssRD1jLndyYXAseTsoZnVuY3Rpb24oayl7ZnVuY3Rpb24gYigpe3RoaXMudHJlZUdyaWR8fAoodGhpcy50cmVlR3JpZD1uZXcgYyh0aGlzKSl9ZnVuY3Rpb24gZyhiLHApe2I9Yi50cmVlR3JpZDt2YXIgYT0hYi5sYWJlbEljb24sdz1wLnJlbmRlcmVyLGU9cC54eSxDPXAub3B0aW9ucyxxPUMud2lkdGgsZj1DLmhlaWdodCxkPWUueC1xLzItQy5wYWRkaW5nO2U9ZS55LWYvMjt2YXIgdj1wLmNvbGxhcHNlZD85MDoxODAsRz1wLnNob3cmJngoZSksQj1iLmxhYmVsSWNvbjtCfHwoYi5sYWJlbEljb249Qj13LnBhdGgody5zeW1ib2xzW0MudHlwZV0oQy54LEMueSxxLGYpKS5hZGRDbGFzcygiaGlnaGNoYXJ0cy1sYWJlbC1pY29uIikuYWRkKHAuZ3JvdXApKTtHfHxCLmF0dHIoe3k6LTk5OTl9KTt3LnN0eWxlZE1vZGV8fEIuYXR0cih7InN0cm9rZS13aWR0aCI6MSxmaWxsOkEocC5jb2xvciwiIzY2NjY2NiIpfSkuY3NzKHtjdXJzb3I6InBvaW50ZXIiLHN0cm9rZTpDLmxpbmVDb2xvcixzdHJva2VXaWR0aDpDLmxpbmVXaWR0aH0pO0JbYT8iYXR0ciI6ImFuaW1hdGUiXSh7dHJhbnNsYXRlWDpkLAp0cmFuc2xhdGVZOmUscm90YXRpb246dn0pfWZ1bmN0aW9uIG0oYixwLGEsdyxlLEMscSxmLGQpe3ZhciB2PUEodGhpcy5vcHRpb25zJiZ0aGlzLm9wdGlvbnMubGFiZWxzLEMpO0M9dGhpcy5wb3M7dmFyIEc9dGhpcy5heGlzLEI9InRyZWVncmlkIj09PUcub3B0aW9ucy50eXBlO2I9Yi5hcHBseSh0aGlzLFtwLGEsdyxlLHYscSxmLGRdKTtCJiYocD12JiZ6KHYuc3ltYm9sLCEwKT92LnN5bWJvbDp7fSx2PXYmJngodi5pbmRlbnRhdGlvbik/di5pbmRlbnRhdGlvbjowLEM9KEM9KEc9Ry50cmVlR3JpZC5tYXBPZlBvc1RvR3JpZE5vZGUpJiZHW0NdKSYmQy5kZXB0aHx8MSxiLngrPXAud2lkdGgrMipwLnBhZGRpbmcrKEMtMSkqdik7cmV0dXJuIGJ9ZnVuY3Rpb24gdChiKXt2YXIgcD10aGlzLGE9cC5wb3Msdz1wLmF4aXMsZT1wLmxhYmVsLEM9dy50cmVlR3JpZC5tYXBPZlBvc1RvR3JpZE5vZGUscT13Lm9wdGlvbnMsZj1BKHAub3B0aW9ucyYmcC5vcHRpb25zLmxhYmVscyxxJiZxLmxhYmVscyksCmQ9ZiYmeihmLnN5bWJvbCwhMCk/Zi5zeW1ib2w6e30sdj0oQz1DJiZDW2FdKSYmQy5kZXB0aDtxPSJ0cmVlZ3JpZCI9PT1xLnR5cGU7dmFyIEc9LTE8dy50aWNrUG9zaXRpb25zLmluZGV4T2YoYSk7YT13LmNoYXJ0LnN0eWxlZE1vZGU7cSYmQyYmZSYmZS5lbGVtZW50JiZlLmFkZENsYXNzKCJoaWdoY2hhcnRzLXRyZWVncmlkLW5vZGUtbGV2ZWwtIit2KTtiLmFwcGx5KHAsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTtxJiZlJiZlLmVsZW1lbnQmJkMmJkMuZGVzY2VuZGFudHMmJjA8Qy5kZXNjZW5kYW50cyYmKHc9dy50cmVlR3JpZC5pc0NvbGxhcHNlZChDKSxnKHAse2Nvb
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIFRpbWVsaW5lIHNlcmllcwoKIChjKSAyMDEwLTIwMTkgSGlnaHNvZnQgQVMKIEF1dGhvcjogRGFuaWVsIFN0dWRlbmNraQoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihjKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhjWyJkZWZhdWx0Il09Yyxtb2R1bGUuZXhwb3J0cz1jKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy90aW1lbGluZSIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24obCl7YyhsKTtjLkhpZ2hjaGFydHM9bDtyZXR1cm4gY30pOmMoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihjKXtmdW5jdGlvbiBsKGMsbCxxLHIpe2MuaGFzT3duUHJvcGVydHkobCl8fChjW2xdPXIuYXBwbHkobnVsbCxxKSl9Yz1jP2MuX21vZHVsZXM6e307bChjLCJtb2R1bGVzL3RpbWVsaW5lLnNyYy5qcyIsW2NbInBhcnRzL0dsb2JhbHMuanMiXSxjWyJtaXhpbnMvbGVnZW5kLXN5bWJvbC5qcyJdLGNbInBhcnRzL1BvaW50LmpzIl0sY1sicGFydHMvU1ZHRWxlbWVudC5qcyJdLGNbInBhcnRzL1V0aWxpdGllcy5qcyJdXSwKZnVuY3Rpb24oYyxsLHEscixmKXt2YXIgcD1mLmFkZEV2ZW50LHg9Zi5hcnJheU1heCx5PWYuYXJyYXlNaW4sdT1mLmRlZmluZWQsej1mLmlzTnVtYmVyLHQ9Zi5tZXJnZSxBPWYub2JqZWN0RWFjaCxuPWYucGljaztmPWYuc2VyaWVzVHlwZTt2YXIgbT1jLlNlcmllcyx2PWMuc2VyaWVzVHlwZXM7ZigidGltZWxpbmUiLCJsaW5lIix7Y29sb3JCeVBvaW50OiEwLHN0aWNreVRyYWNraW5nOiExLGlnbm9yZUhpZGRlblBvaW50OiEwLGxlZ2VuZFR5cGU6InBvaW50IixsaW5lV2lkdGg6NCx0b29sdGlwOntoZWFkZXJGb3JtYXQ6JzxzcGFuIHN0eWxlPSJjb2xvcjp7cG9pbnQuY29sb3J9Ij5cdTI1Y2Y8L3NwYW4+IDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHgiPiB7cG9pbnQua2V5fTwvc3Bhbj48YnIvPicscG9pbnRGb3JtYXQ6Intwb2ludC5kZXNjcmlwdGlvbn0ifSxzdGF0ZXM6e2hvdmVyOntsaW5lV2lkdGhQbHVzOjB9fSxkYXRhTGFiZWxzOntlbmFibGVkOiEwLGFsbG93T3ZlcmxhcDohMCwKYWx0ZXJuYXRlOiEwLGJhY2tncm91bmRDb2xvcjoiI2ZmZmZmZiIsYm9yZGVyV2lkdGg6MSxib3JkZXJDb2xvcjoiIzk5OTk5OSIsYm9yZGVyUmFkaXVzOjMsY29sb3I6IiMzMzMzMzMiLGNvbm5lY3RvcldpZHRoOjEsZGlzdGFuY2U6MTAwLGZvcm1hdHRlcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuc2VyaWVzLmNoYXJ0LnN0eWxlZE1vZGU/IjxzcGFuPlx1MjVjZiA8L3NwYW4+IjonPHNwYW4gc3R5bGU9ImNvbG9yOicrdGhpcy5wb2ludC5jb2xvcisnIj5cdTI1Y2YgPC9zcGFuPic7cmV0dXJuIGErPSc8c3BhbiBjbGFzcz0iaGlnaGNoYXJ0cy1zdHJvbmciPicrKHRoaXMua2V5fHwiIikrIjwvc3Bhbj48YnIvPiIrKHRoaXMucG9pbnQubGFiZWx8fCIiKX0sc3R5bGU6e3RleHRPdXRsaW5lOiJub25lIixmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTaXplOiIxMnB4In0sc2hhZG93OiExLHZlcnRpY2FsQWxpZ246Im1pZGRsZSJ9LG1hcmtlcjp7ZW5hYmxlZFRocmVzaG9sZDowLHN5bWJvbDoic3F1YXJlIiwKcmFkaXVzOjYsbGluZVdpZHRoOjIsaGVpZ2h0OjE1fSxzaG93SW5MZWdlbmQ6ITEsY29sb3JLZXk6IngifSx7dHJhY2tlckdyb3VwczpbIm1hcmtlckdyb3VwIiwiZGF0YUxhYmVsc0dyb3VwIl0sZHJhd0xlZ2VuZFN5bWJvbDpsLmRyYXdSZWN0YW5nbGUsZHJhd1RyYWNrZXI6Yy5UcmFja2VyTWl4aW4uZHJhd1RyYWNrZXJQb2ludCxpbml0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpczttLnByb3RvdHlwZS5pbml0LmFwcGx5KGEsYXJndW1lbnRzKTtwKGEsImFmdGVyVHJhbnNsYXRlIixmdW5jdGlvbigpe3ZhciBiLGs9TnVtYmVyLk1BWF9WQUxVRTthLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuaXNJbnNpZGU9YS5pc0luc2lkZSYmYS52aXNpYmxlO2EudmlzaWJsZSYmIWEuaXNOdWxsJiYodShiKSYmKGs9TWF0aC5taW4oayxNYXRoLmFicyhhLnBsb3RYLWIpKSksYj1hLnBsb3RYKX0pO2EuY2xvc2VzdFBvaW50UmFuZ2VQeD1rfSk7cChhLCJkcmF3RGF0YUxhYmVscyIsZnVuY3Rpb24oKXthLmRpc3RyaWJ1dGVETCgpfSk7CnAoYSwiYWZ0ZXJEcmF3RGF0YUxhYmVscyIsZnVuY3Rpb24oKXt2YXIgYjthLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGEpe2lmKGI9YS5kYXRhTGFiZWwpcmV0dXJuIGIuYW5pbWF0ZT1mdW5jdGlvbihhKXt0aGlzLnRhcmdldFBvc2l0aW9uJiYodGhpcy50YXJnZXRQb3NpdGlvbj1hKTtyZXR1cm4gci5wcm90b3R5cGUuYW5pbWF0ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGIudGFyZ2V0UG9zaXRpb258fChiLnRhcmdldFBvc2l0aW9uPXt9KSxhLmRyYXdDb25uZWN0b3IoKX0pfSk7cChhLmNoYXJ0LCJhZnRlckhpZGVPdmVybGFwcGluZ0xhYmVsIixmdW5jdGlvbigpe2EucG9pbnRzLmZvckVhY2goZnVuY3Rpb24oYSl7YS5jb25uZWN0b3ImJmEuZGF0YUxhYmVsJiZhLmRhdGFMYWJlbC5vbGRPcGFjaXR5IT09YS5kYXRhTGFiZWwubmV3T3BhY2l0eSYmYS5hbGlnbkNvbm5lY3RvcigpfSl9KX0sYWxpZ25EYXRhTGFiZWw6ZnVuY3Rpb24oYSxiLGssYyl7dmFyIGQ9dGhpcy5jaGFydC5pbnZlcnRlZCwKZz10aGlzLnZpc2liaWxpdHlNYXAuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhfSksZT10aGlzLnZpc2libGVQb2ludHNDb3VudCxoPWcuaW5kZXhPZihhKTtnPXRoaXMub3B0aW9ucy5kYXRhTGFiZWxzO3ZhciB3PWEudXNlckRMT3B0aW9uc3x8e307aD1nLmFsdGVybmF0ZT9oJiZoIT09ZS0xPzI6MS41OjE7ZT1NYXRoLmZsb29yKHRoaXMueEF4aXMubGVuL2UpO3ZhciBmPWIucGFkZGluZztpZihhLnZpc2libGUpe3ZhciBsPU1hdGguYWJzKHcueHx8YS5vcHRpb25zLmRhdGFMYWJlb
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIFN1cHBvcnQgZm9yIHBhcmFsbGVsIGNvb3JkaW5hdGVzIGluIEhpZ2hjaGFydHMKCiAoYykgMjAxMC0yMDE5IFBhd2VsIEZ1cwoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihiKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhiWyJkZWZhdWx0Il09Yixtb2R1bGUuZXhwb3J0cz1iKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy9wYXJhbGxlbC1jb29yZGluYXRlcyIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24oZyl7YihnKTtiLkhpZ2hjaGFydHM9ZztyZXR1cm4gYn0pOmIoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihiKXtmdW5jdGlvbiBnKGIsayxsLGQpe2IuaGFzT3duUHJvcGVydHkoayl8fChiW2tdPWQuYXBwbHkobnVsbCxsKSl9Yj1iP2IuX21vZHVsZXM6e307ZyhiLCJtb2R1bGVzL3BhcmFsbGVsLWNvb3JkaW5hdGVzLnNyYy5qcyIsW2JbInBhcnRzL0F4aXMuanMiXSxiWyJwYXJ0cy9DaGFydC5qcyJdLGJbInBhcnRzL0dsb2JhbHMuanMiXSxiWyJwYXJ0cy9VdGlsaXRpZXMuanMiXV0sCmZ1bmN0aW9uKGIsayxsLGQpe2Z1bmN0aW9uIGcoYSl7dmFyIGM9dGhpcy5zZXJpZXMmJnRoaXMuc2VyaWVzLmNoYXJ0LG49YS5hcHBseSh0aGlzLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSksYjtpZihjJiZjLmhhc1BhcmFsbGVsQ29vcmRpbmF0ZXMmJiFwKG4uZm9ybWF0dGVkVmFsdWUpKXt2YXIgZT1jLnlBeGlzW3RoaXMueF07dmFyIGY9ZS5vcHRpb25zO2M9KGI9cihmLnRvb2x0aXBWYWx1ZUZvcm1hdCxmLmxhYmVscy5mb3JtYXQpKT94KGIsdCh0aGlzLHt2YWx1ZTp0aGlzLnl9KSxjKTplLmRhdGVUaW1lP2MudGltZS5kYXRlRm9ybWF0KGMudGltZS5yZXNvbHZlRFRMRm9ybWF0KGYuZGF0ZVRpbWVMYWJlbEZvcm1hdHNbZS50aWNrUG9zaXRpb25zLmluZm8udW5pdE5hbWVdKS5tYWluLHRoaXMueSk6Zi5jYXRlZ29yaWVzP2YuY2F0ZWdvcmllc1t0aGlzLnldOnRoaXMueTtuLmZvcm1hdHRlZFZhbHVlPW4ucG9pbnQuZm9ybWF0dGVkVmFsdWU9Y31yZXR1cm4gbn0KdmFyIGg9ZC5hZGRFdmVudCx5PWQuYXJyYXlNYXgsej1kLmFycmF5TWluLHA9ZC5kZWZpbmVkLEE9ZC5lcmFzZSx0PWQuZXh0ZW5kLHg9ZC5mb3JtYXQsbT1kLm1lcmdlLHI9ZC5waWNrLEI9ZC5zZXRPcHRpb25zLHU9ZC5zcGxhdCxDPWQud3JhcDtkPWsucHJvdG90eXBlO3ZhciB2PXtsaW5lV2lkdGg6MCx0aWNrTGVuZ3RoOjAsb3Bwb3NpdGU6ITAsdHlwZToiY2F0ZWdvcnkifTtCKHtjaGFydDp7cGFyYWxsZWxDb29yZGluYXRlczohMSxwYXJhbGxlbEF4ZXM6e2xpbmVXaWR0aDoxLHRpdGxlOnt0ZXh0OiIiLHJlc2VydmVTcGFjZTohMX0sbGFiZWxzOnt4OjAseTo0LGFsaWduOiJjZW50ZXIiLHJlc2VydmVTcGFjZTohMX0sb2Zmc2V0OjB9fX0pO2goaywiaW5pdCIsZnVuY3Rpb24oYSl7YT1hLmFyZ3NbMF07dmFyIGM9dShhLnlBeGlzfHx7fSksYj1bXSxkPWMubGVuZ3RoO2lmKHRoaXMuaGFzUGFyYWxsZWxDb29yZGluYXRlcz1hLmNoYXJ0JiZhLmNoYXJ0LnBhcmFsbGVsQ29vcmRpbmF0ZXMpe2Zvcih0aGlzLnNldFBhcmFsbGVsSW5mbyhhKTtkPD0KdGhpcy5wYXJhbGxlbEluZm8uY291bnRlcjtkKyspYi5wdXNoKHt9KTthLmxlZ2VuZHx8KGEubGVnZW5kPXt9KTsidW5kZWZpbmVkIj09PXR5cGVvZiBhLmxlZ2VuZC5lbmFibGVkJiYoYS5sZWdlbmQuZW5hYmxlZD0hMSk7bSghMCxhLHtib29zdDp7c2VyaWVzVGhyZXNob2xkOk51bWJlci5NQVhfVkFMVUV9LHBsb3RPcHRpb25zOntzZXJpZXM6e2Jvb3N0VGhyZXNob2xkOk51bWJlci5NQVhfVkFMVUV9fX0pO2EueUF4aXM9Yy5jb25jYXQoYik7YS54QXhpcz1tKHYsdShhLnhBeGlzfHx7fSlbMF0pfX0pO2goaywidXBkYXRlIixmdW5jdGlvbihhKXthPWEub3B0aW9uczthLmNoYXJ0JiYocChhLmNoYXJ0LnBhcmFsbGVsQ29vcmRpbmF0ZXMpJiYodGhpcy5oYXNQYXJhbGxlbENvb3JkaW5hdGVzPWEuY2hhcnQucGFyYWxsZWxDb29yZGluYXRlcyksdGhpcy5vcHRpb25zLmNoYXJ0LnBhcmFsbGVsQXhlcz1tKHRoaXMub3B0aW9ucy5jaGFydC5wYXJhbGxlbEF4ZXMsYS5jaGFydC5wYXJhbGxlbEF4ZXMpKTsKdGhpcy5oYXNQYXJhbGxlbENvb3JkaW5hdGVzJiYoYS5zZXJpZXMmJnRoaXMuc2V0UGFyYWxsZWxJbmZvKGEpLHRoaXMueUF4aXMuZm9yRWFjaChmdW5jdGlvbihhKXthLnVwZGF0ZSh7fSwhMSl9KSl9KTt0KGQse3NldFBhcmFsbGVsSW5mbzpmdW5jdGlvbihhKXt2YXIgYz10aGlzO2E9YS5zZXJpZXM7Yy5wYXJhbGxlbEluZm89e2NvdW50ZXI6MH07YS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EuZGF0YSYmKGMucGFyYWxsZWxJbmZvLmNvdW50ZXI9TWF0aC5tYXgoYy5wYXJhbGxlbEluZm8uY291bnRlcixhLmRhdGEubGVuZ3RoLTEpKX0pfX0pO2gobC5TZXJpZXMsImJpbmRBeGVzIixmdW5jdGlvbihhKXtpZih0aGlzLmNoYXJ0Lmhhc1BhcmFsbGVsQ29vcmRpbmF0ZXMpe3ZhciBjPXRoaXM7dGhpcy5jaGFydC5heGVzLmZvckVhY2goZnVuY3Rpb24oYSl7Yy5pbnNlcnQoYS5zZXJpZXMpO2EuaXNEaXJ0eT0hMH0pO2MueEF4aXM9dGhpcy5jaGFydC54QXhpc1swXTtjLnlBeGlzPXRoaXMuY2hhcnQueUF4aXNbMF07CmEucHJldmVudERlZmF1bHQoKX19KTtoKGwuU2VyaWVzLCJhZnRlclRyYW5zbGF0ZSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNoYXJ0LGM9dGhpcy5wb2ludHMsYj1jJiZjLmxlbmd0aCxkPU51bWJlci5NQVhfVkFMVUUsZTtpZih0aGlzLmNoYXJ0Lmhhc1BhcmFsbGVsQ29vcmRpbmF0ZXMpe2ZvcihlPTA7ZTxiO2UrKyl7dmFyIGY9Y1tlXTtpZihwKGYueSkpe2YucGxvdFg9YS5wb2xhcj9hLnlBeGlzW2VdLmFuZ2xlUmFkfHwwOmEuaW52ZXJ0ZWQ/YS5wbG90SGVpZ2h0L
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIEJ1bGxldCBncmFwaCBzZXJpZXMgdHlwZSBmb3IgSGlnaGNoYXJ0cwoKIChjKSAyMDEwLTIwMTkgS2FjcGVyIE1hZGVqCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGEpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGFbImRlZmF1bHQiXT1hLG1vZHVsZS5leHBvcnRzPWEpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9tb2R1bGVzL2J1bGxldCIsWyJoaWdoY2hhcnRzIl0sZnVuY3Rpb24oZCl7YShkKTthLkhpZ2hjaGFydHM9ZDtyZXR1cm4gYX0pOmEoInVuZGVmaW5lZCIhPT10eXBlb2YgSGlnaGNoYXJ0cz9IaWdoY2hhcnRzOnZvaWQgMCl9KShmdW5jdGlvbihhKXtmdW5jdGlvbiBkKGEsYixuLGQpe2EuaGFzT3duUHJvcGVydHkoYil8fChhW2JdPWQuYXBwbHkobnVsbCxuKSl9YT1hP2EuX21vZHVsZXM6e307ZChhLCJtb2R1bGVzL2J1bGxldC5zcmMuanMiLFthWyJwYXJ0cy9HbG9iYWxzLmpzIl0sYVsicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGEsYil7dmFyIGQ9Yi5pc051bWJlcixyPWIubWVyZ2Usaz1iLnBpY2ssdD1iLnJlbGF0aXZlTGVuZ3RoOwpiPWIuc2VyaWVzVHlwZTt2YXIgZj1hLnNlcmllc1R5cGVzLmNvbHVtbi5wcm90b3R5cGU7YigiYnVsbGV0IiwiY29sdW1uIix7dGFyZ2V0T3B0aW9uczp7d2lkdGg6IjE0MCUiLGhlaWdodDozLGJvcmRlcldpZHRoOjB9LHRvb2x0aXA6e3BvaW50Rm9ybWF0Oic8c3BhbiBzdHlsZT0iY29sb3I6e3Nlcmllcy5jb2xvcn0iPlx1MjVjZjwvc3Bhbj4ge3Nlcmllcy5uYW1lfTogPGI+e3BvaW50Lnl9PC9iPi4gVGFyZ2V0OiA8Yj57cG9pbnQudGFyZ2V0fTwvYj48YnIvPid9fSx7cG9pbnRBcnJheU1hcDpbInkiLCJ0YXJnZXQiXSxwYXJhbGxlbEFycmF5czpbIngiLCJ5IiwidGFyZ2V0Il0sZHJhd1BvaW50czpmdW5jdGlvbigpe3ZhciBhPXRoaXMsbD1hLmNoYXJ0LGI9YS5vcHRpb25zLG49Yi5hbmltYXRpb25MaW1pdHx8MjUwO2YuZHJhd1BvaW50cy5hcHBseSh0aGlzKTthLnBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uKGMpe3ZhciBwPWMub3B0aW9ucyxlPWMudGFyZ2V0R3JhcGhpYyxmPWMudGFyZ2V0LAptPWMueTtpZihkKGYpJiZudWxsIT09Zil7dmFyIGc9cihiLnRhcmdldE9wdGlvbnMscC50YXJnZXRPcHRpb25zKTt2YXIgdT1nLmhlaWdodDt2YXIgaD1jLnNoYXBlQXJnczt2YXIgcT10KGcud2lkdGgsaC53aWR0aCk7dmFyIHY9YS55QXhpcy50cmFuc2xhdGUoZiwhMSwhMCwhMSwhMCktZy5oZWlnaHQvMi0uNTtoPWEuY3Jpc3BDb2wuYXBwbHkoe2NoYXJ0OmwsYm9yZGVyV2lkdGg6Zy5ib3JkZXJXaWR0aCxvcHRpb25zOntjcmlzcDpiLmNyaXNwfX0sW2gueCtoLndpZHRoLzItcS8yLHYscSx1XSk7ZT8oZVtsLnBvaW50Q291bnQ8bj8iYW5pbWF0ZSI6ImF0dHIiXShoKSxkKG0pJiZudWxsIT09bT9lLmVsZW1lbnQucG9pbnQ9YzplLmVsZW1lbnQucG9pbnQ9dm9pZCAwKTpjLnRhcmdldEdyYXBoaWM9ZT1sLnJlbmRlcmVyLnJlY3QoKS5hdHRyKGgpLmFkZChhLmdyb3VwKTtsLnN0eWxlZE1vZGV8fGUuYXR0cih7ZmlsbDprKGcuY29sb3IscC5jb2xvcixhLnpvbmVzLmxlbmd0aCYmKGMuZ2V0Wm9uZS5jYWxsKHtzZXJpZXM6YSwKeDpjLngseTpmLG9wdGlvbnM6e319KS5jb2xvcnx8YS5jb2xvcil8fHZvaWQgMCxjLmNvbG9yLGEuY29sb3IpLHN0cm9rZTprKGcuYm9yZGVyQ29sb3IsYy5ib3JkZXJDb2xvcixhLm9wdGlvbnMuYm9yZGVyQ29sb3IpLCJzdHJva2Utd2lkdGgiOmcuYm9yZGVyV2lkdGh9KTtkKG0pJiZudWxsIT09bSYmKGUuZWxlbWVudC5wb2ludD1jKTtlLmFkZENsYXNzKGMuZ2V0Q2xhc3NOYW1lKCkrIiBoaWdoY2hhcnRzLWJ1bGxldC10YXJnZXQiLCEwKX1lbHNlIGUmJihjLnRhcmdldEdyYXBoaWM9ZS5kZXN0cm95KCkpfSl9LGdldEV4dHJlbWVzOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMudGFyZ2V0RGF0YTthPWYuZ2V0RXh0cmVtZXMuY2FsbCh0aGlzLGEpO2ImJmIubGVuZ3RoJiYoYj1mLmdldEV4dHJlbWVzLmNhbGwodGhpcyxiKSxkKGIuZGF0YU1pbikmJihhLmRhdGFNaW49TWF0aC5taW4oayhhLmRhdGFNaW4sSW5maW5pdHkpLGIuZGF0YU1pbikpLGQoYi5kYXRhTWF4KSYmKGEuZGF0YU1heD0KTWF0aC5tYXgoayhhLmRhdGFNYXgsLUluZmluaXR5KSxiLmRhdGFNYXgpKSk7cmV0dXJuIGF9fSx7ZGVzdHJveTpmdW5jdGlvbigpe3RoaXMudGFyZ2V0R3JhcGhpYyYmKHRoaXMudGFyZ2V0R3JhcGhpYz10aGlzLnRhcmdldEdyYXBoaWMuZGVzdHJveSgpKTtmLnBvaW50Q2xhc3MucHJvdG90eXBlLmRlc3Ryb3kuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pOyIifSk7ZChhLCJtYXN0ZXJzL21vZHVsZXMvYnVsbGV0LnNyYy5qcyIsW10sZnVuY3Rpb24oKXt9KX0pOwovLyMgc291cmNlTWFwcGluZ1VSTD1idWxsZXQuanMubWFw\"></script>\n",
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIENvbG9yQXhpcyBtb2R1bGUKCiAoYykgMjAxMi0yMDE5IFBhd2VsIFBvdGFjemVrCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGIpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGJbImRlZmF1bHQiXT1iLG1vZHVsZS5leHBvcnRzPWIpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9tb2R1bGVzL2NvbG9yLWF4aXMiLFsiaGlnaGNoYXJ0cyJdLGZ1bmN0aW9uKG0pe2IobSk7Yi5IaWdoY2hhcnRzPW07cmV0dXJuIGJ9KTpiKCJ1bmRlZmluZWQiIT09dHlwZW9mIEhpZ2hjaGFydHM/SGlnaGNoYXJ0czp2b2lkIDApfSkoZnVuY3Rpb24oYil7ZnVuY3Rpb24gbShiLGssZyxuKXtiLmhhc093blByb3BlcnR5KGspfHwoYltrXT1uLmFwcGx5KG51bGwsZykpfWI9Yj9iLl9tb2R1bGVzOnt9O20oYiwicGFydHMtbWFwL0NvbG9yU2VyaWVzTWl4aW4uanMiLFtiWyJwYXJ0cy9HbG9iYWxzLmpzIl1dLGZ1bmN0aW9uKGIpe2IuY29sb3JQb2ludE1peGluPXtzZXRWaXNpYmxlOmZ1bmN0aW9uKGIpe3ZhciBnPXRoaXMsbj1iPwoic2hvdyI6ImhpZGUiO2cudmlzaWJsZT1nLm9wdGlvbnMudmlzaWJsZT0hIWI7WyJncmFwaGljIiwiZGF0YUxhYmVsIl0uZm9yRWFjaChmdW5jdGlvbihiKXtpZihnW2JdKWdbYl1bbl0oKX0pO3RoaXMuc2VyaWVzLmJ1aWxkS0RUcmVlKCl9fTtiLmNvbG9yU2VyaWVzTWl4aW49e29wdGlvbmFsQXhpczoiY29sb3JBeGlzIixjb2xvckF4aXM6MCx0cmFuc2xhdGVDb2xvcnM6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLGc9dGhpcy5vcHRpb25zLm51bGxDb2xvcixuPXRoaXMuY29sb3JBeGlzLG09dGhpcy5jb2xvcktleTsodGhpcy5kYXRhLmxlbmd0aD90aGlzLmRhdGE6dGhpcy5wb2ludHMpLmZvckVhY2goZnVuY3Rpb24ocCl7dmFyIGs9cC5nZXROZXN0ZWRQcm9wZXJ0eShtKTsoaz1wLm9wdGlvbnMuY29sb3J8fChwLmlzTnVsbHx8bnVsbD09PXAudmFsdWU/ZzpuJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBrP24udG9Db2xvcihrLHApOnAuY29sb3J8fGIuY29sb3IpKSYmcC5jb2xvciE9PWsmJgoocC5jb2xvcj1rLCJwb2ludCI9PT1iLm9wdGlvbnMubGVnZW5kVHlwZSYmcC5sZWdlbmRJdGVtJiZiLmNoYXJ0LmxlZ2VuZC5jb2xvcml6ZUl0ZW0ocCxwLnZpc2libGUpKX0pfX19KTttKGIsInBhcnRzLW1hcC9Db2xvckF4aXMuanMiLFtiWyJwYXJ0cy9BeGlzLmpzIl0sYlsicGFydHMvQ2hhcnQuanMiXSxiWyJwYXJ0cy9Db2xvci5qcyJdLGJbInBhcnRzL0dsb2JhbHMuanMiXSxiWyJwYXJ0cy9MZWdlbmQuanMiXSxiWyJtaXhpbnMvbGVnZW5kLXN5bWJvbC5qcyJdLGJbInBhcnRzL1BvaW50LmpzIl0sYlsicGFydHMvVXRpbGl0aWVzLmpzIl1dLGZ1bmN0aW9uKGIsayxnLG4sbSxwLEEscSl7dmFyIEI9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fGZ1bmN0aW9uKCl7dmFyIGI9ZnVuY3Rpb24oZCxhKXtiPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihhLGUpe2EuX19wcm90b19fPWV9fHxmdW5jdGlvbihhLGUpe2Zvcih2YXIgYyBpbiBlKWUuaGFzT3duUHJvcGVydHkoYykmJgooYVtjXT1lW2NdKX07cmV0dXJuIGIoZCxhKX07cmV0dXJuIGZ1bmN0aW9uKGQsYSl7ZnVuY3Rpb24gZigpe3RoaXMuY29uc3RydWN0b3I9ZH1iKGQsYSk7ZC5wcm90b3R5cGU9bnVsbD09PWE/T2JqZWN0LmNyZWF0ZShhKTooZi5wcm90b3R5cGU9YS5wcm90b3R5cGUsbmV3IGYpfX0oKSx1PWcucGFyc2UsQz1uLm5vb3A7Zz1xLmFkZEV2ZW50O3ZhciB6PXEuZXJhc2UseD1xLmV4dGVuZCxEPXEuRngsRT1xLmlzTnVtYmVyLHk9cS5tZXJnZSx0PXEucGljayxGPXEuc3BsYXQ7IiI7dmFyIHY9bi5TZXJpZXM7cT1uLmNvbG9yUG9pbnRNaXhpbjt4KHYucHJvdG90eXBlLG4uY29sb3JTZXJpZXNNaXhpbik7eChBLnByb3RvdHlwZSxxKTtrLnByb3RvdHlwZS5jb2xsZWN0aW9uc1dpdGhVcGRhdGUucHVzaCgiY29sb3JBeGlzIik7ay5wcm90b3R5cGUuY29sbGVjdGlvbnNXaXRoSW5pdC5jb2xvckF4aXM9W2sucHJvdG90eXBlLmFkZENvbG9yQXhpc107dmFyIHc9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZChhLApmKXt2YXIgZT1iLmNhbGwodGhpcyxhLGYpfHx0aGlzO2UuYmVmb3JlUGFkZGluZz0hMTtlLmNoYXJ0PXZvaWQgMDtlLmNvbGw9ImNvbG9yQXhpcyI7ZS5kYXRhQ2xhc3Nlcz12b2lkIDA7ZS5sZWdlbmRJdGVtPXZvaWQgMDtlLmxlZ2VuZEl0ZW1zPXZvaWQgMDtlLm5hbWU9IiI7ZS5vcHRpb25zPXZvaWQgMDtlLnN0b3BzPXZvaWQgMDtlLnZpc2libGU9ITA7ZS5pbml0KGEsZik7cmV0dXJuIGV9QihkLGIpO2QuYnVpbGRPcHRpb25zPWZ1bmN0aW9uKGEsZixlKXthPWEub3B0aW9ucy5sZWdlbmR8fHt9O3ZhciBjPWUubGF5b3V0PyJ2ZXJ0aWNhbCIhPT1lLmxheW91dDoidmVydGljYWwiIT09YS5sYXlvdXQ7cmV0dXJuIHkoZix7c2lkZTpjPzI6MSxyZXZlcnNlZDohY30sZSx7b3Bwb3NpdGU6IWMsc2hvd0VtcHR5OiExLHRpdGxlOm51bGwsdmlzaWJsZTphLmVuYWJsZWQmJihlPyExIT09ZS52aXNpYmxlOiEwKX0pfTtkLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGEsZil7dmFyIGU9ZC5idWlsZE9wdGlvbnMoYSwKZC5kZWZhdWx0T3B0aW9ucyxmKTt0aGlzLmNvbGw9ImNvbG9yQXhpcyI7Yi5wcm90b3R5cGUuaW5pdC5jYWxsKHRoaXMsYSxlKTtmLmRhdGFDbGFzc2VzJiZ0aGlzLmluaXREYXRhQ2xhc3NlcyhmKTt0aGlzLmluaXRTdG9wcygpO3RoaXMuaG9yaXo9IWUub3Bwb3NpdGU7dGhpcy56b29tRW5hYmxlZD0hMX07ZC5wcm90b3R5cGUuaW5pdERhdGFDbGFzc2VzPWZ1bmN0aW9uKGEpe3ZhciBmPXRoaXMuY2hhcnQsZSxjPTAsYj1mLm9wdGlvbnMuY2hhcnQuY29sb3JDb3VudCxkPXRoaXMub3B0aW9ucyxoPWEuZGF0YUNsYXNzZXMubGVuZ3RoO3RoaXMuZGF0YUNsY
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIChjKSAyMDA5LTIwMTkgU2ViYXN0aWFuIEJvY2hhbiwgUmFmYWwgU2ViZXN0amFuc2tpCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGIpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGJbImRlZmF1bHQiXT1iLG1vZHVsZS5leHBvcnRzPWIpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9tb2R1bGVzL2R1bWJiZWxsIixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbihmKXtiKGYpO2IuSGlnaGNoYXJ0cz1mO3JldHVybiBifSk6YigidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGYoYixjLGYscil7Yi5oYXNPd25Qcm9wZXJ0eShjKXx8KGJbY109ci5hcHBseShudWxsLGYpKX1iPWI/Yi5fbW9kdWxlczp7fTtmKGIsIm1vZHVsZXMvZHVtYmJlbGwuc3JjLmpzIixbYlsicGFydHMvR2xvYmFscy5qcyJdLGJbInBhcnRzL1V0aWxpdGllcy5qcyJdXSxmdW5jdGlvbihiLGMpe3ZhciBmPWIuU1ZHUmVuZGVyZXIscj1jLmV4dGVuZCxoPWMucGljazsKYz1jLnNlcmllc1R5cGU7dmFyIHA9Yi5zZXJpZXNUeXBlcyx1PWIuU2VyaWVzLnByb3RvdHlwZSxsPXAuYXJlYXJhbmdlLnByb3RvdHlwZSx0PXAuY29sdW1uLnByb3RvdHlwZSxtPWwucG9pbnRDbGFzcy5wcm90b3R5cGU7YygiZHVtYmJlbGwiLCJhcmVhcmFuZ2UiLHt0cmFja0J5QXJlYTohMSxmaWxsQ29sb3I6Im5vbmUiLGxpbmVXaWR0aDowLHBvaW50UmFuZ2U6MSxjb25uZWN0b3JXaWR0aDoxLHN0aWNreVRyYWNraW5nOiExLGdyb3VwUGFkZGluZzouMixjcmlzcDohMSxwb2ludFBhZGRpbmc6LjEsbG93Q29sb3I6IiMzMzMzMzMiLHN0YXRlczp7aG92ZXI6e2xpbmVXaWR0aFBsdXM6MCxjb25uZWN0b3JXaWR0aFBsdXM6MSxoYWxvOiExfX19LHt0cmFja2VyR3JvdXBzOlsiZ3JvdXAiLCJtYXJrZXJHcm91cCIsImRhdGFMYWJlbHNHcm91cCJdLGRyYXdUcmFja2VyOmIuVHJhY2tlck1peGluLmRyYXdUcmFja2VyUG9pbnQsZHJhd0dyYXBoOmIubm9vcCxjcmlzcENvbDp0LmNyaXNwQ29sLApnZXRDb25uZWN0b3JBdHRyaWJzOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY2hhcnQsZT1hLm9wdGlvbnMsZz10aGlzLm9wdGlvbnMsZD10aGlzLnhBeGlzLG49dGhpcy55QXhpcyxjPWgoZS5jb25uZWN0b3JXaWR0aCxnLmNvbm5lY3RvcldpZHRoKSxsPWgoZS5jb25uZWN0b3JDb2xvcixnLmNvbm5lY3RvckNvbG9yLGUuY29sb3IsYS56b25lP2Euem9uZS5jb2xvcjp2b2lkIDAsYS5jb2xvcikscD1oKGcuc3RhdGVzJiZnLnN0YXRlcy5ob3ZlciYmZy5zdGF0ZXMuaG92ZXIuY29ubmVjdG9yV2lkdGhQbHVzLDEpLG09aChlLmRhc2hTdHlsZSxnLmRhc2hTdHlsZSkscT1oKGEucGxvdExvdyxhLnBsb3RZKSxrPW4udG9QaXhlbHMoZy50aHJlc2hvbGR8fDAsITApO2s9aChhLnBsb3RIaWdoLGIuaW52ZXJ0ZWQ/bi5sZW4tazprKTthLnN0YXRlJiYoYys9cCk7MD5xP3E9MDpxPj1uLmxlbiYmKHE9bi5sZW4pOzA+az9rPTA6az49bi5sZW4mJihrPW4ubGVuKTtpZigwPmEucGxvdFh8fGEucGxvdFg+CmQubGVuKWM9MDthLnVwcGVyR3JhcGhpYyYmKGQ9e3k6YS55LHpvbmU6YS56b25lfSxhLnk9YS5oaWdoLGEuem9uZT1hLnpvbmU/YS5nZXRab25lKCk6dm9pZCAwLGw9aChlLmNvbm5lY3RvckNvbG9yLGcuY29ubmVjdG9yQ29sb3IsZS5jb2xvcixhLnpvbmU/YS56b25lLmNvbG9yOnZvaWQgMCxhLmNvbG9yKSxyKGEsZCkpO2E9e2Q6Zi5wcm90b3R5cGUuY3Jpc3BMaW5lKFtbIk0iLGEucGxvdFgscV0sWyJMIixhLnBsb3RYLGtdXSxjLCJjZWlsIil9O2Iuc3R5bGVkTW9kZXx8KGEuc3Ryb2tlPWwsYVsic3Ryb2tlLXdpZHRoIl09YyxtJiYoYS5kYXNoc3R5bGU9bSkpO3JldHVybiBhfSxkcmF3Q29ubmVjdG9yOmZ1bmN0aW9uKGEpe3ZhciBiPWgodGhpcy5vcHRpb25zLmFuaW1hdGlvbkxpbWl0LDI1MCk7Yj1hLmNvbm5lY3RvciYmdGhpcy5jaGFydC5wb2ludENvdW50PGI/ImFuaW1hdGUiOiJhdHRyIjthLmNvbm5lY3Rvcnx8KGEuY29ubmVjdG9yPXRoaXMuY2hhcnQucmVuZGVyZXIucGF0aCgpLmFkZENsYXNzKCJoaWdoY2hhcnRzLWxvbGxpcG9wLXN0ZW0iKS5hdHRyKHt6SW5kZXg6LTF9KS5hZGQodGhpcy5tYXJrZXJHcm91cCkpOwphLmNvbm5lY3RvcltiXSh0aGlzLmdldENvbm5lY3RvckF0dHJpYnMoYSkpfSxnZXRDb2x1bW5NZXRyaWNzOmZ1bmN0aW9uKCl7dmFyIGE9dC5nZXRDb2x1bW5NZXRyaWNzLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthLm9mZnNldCs9YS53aWR0aC8yO3JldHVybiBhfSx0cmFuc2xhdGVQb2ludDpsLnRyYW5zbGF0ZSxzZXRTaGFwZUFyZ3M6cC5jb2x1bW5yYW5nZS5wcm90b3R5cGUudHJhbnNsYXRlLHRyYW5zbGF0ZTpmdW5jdGlvbigpe3RoaXMuc2V0U2hhcGVBcmdzLmFwcGx5KHRoaXMpO3RoaXMudHJhbnNsYXRlUG9pbnQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMucG9pbnRzLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YS5zaGFwZUFyZ3MsZT1hLnBvaW50V2lkdGg7YS5wbG90WD1iLng7Yi54PWEucGxvdFgtZS8yO2EudG9vbHRpcFBvcz1udWxsfSk7dGhpcy5jb2x1bW5NZXRyaWNzLm9mZnNldC09dGhpcy5jb2x1bW5NZXRyaWNzLndpZHRoLzJ9LHNlcmllc0RyYXdQb2ludHM6bC5kcmF3UG9pbnRzLApkcmF3UG9pbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jaGFydCxiPXRoaXMucG9pbnRzLmxlbmd0aCxlPXRoaXMubG93Q29sb3I9dGhpcy5vcHRpb25zLmxvd0NvbG9yLGc9MDtmb3IodGhpcy5zZXJpZXNEcmF3UG9pbnRzLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtnPGI7KXt2YXIgZD10aGlzLnBvaW50c1tnXTt0aGlzLmRyYXdDb25uZWN0b3IoZCk7ZC51cHBlckdyYXBoaWMmJihkLnVwcGVyR3JhcGhpYy5lbGVtZW50LnBvaW50PWQsZC51cHBlckdyYXBoaWMuY
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIChjKSAyMDA5LTIwMTkgU2ViYXN0aWFuIEJvY2hhbiwgUmFmYWwgU2ViZXN0amFuc2tpCgogTGljZW5zZTogd3d3LmhpZ2hjaGFydHMuY29tL2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGEpeyJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM/KGFbImRlZmF1bHQiXT1hLG1vZHVsZS5leHBvcnRzPWEpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiaGlnaGNoYXJ0cy9tb2R1bGVzL2xvbGxpcG9wIixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbihiKXthKGIpO2EuSGlnaGNoYXJ0cz1iO3JldHVybiBhfSk6YSgidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSxmLGIsYyl7YS5oYXNPd25Qcm9wZXJ0eShmKXx8KGFbZl09Yy5hcHBseShudWxsLGIpKX1hPWE/YS5fbW9kdWxlczp7fTtiKGEsIm1vZHVsZXMvbG9sbGlwb3Auc3JjLmpzIixbYVsicGFydHMvR2xvYmFscy5qcyJdLGFbInBhcnRzL1V0aWxpdGllcy5qcyJdXSxmdW5jdGlvbihhLGIpe2I9Yi5zZXJpZXNUeXBlO3ZhciBlPWEuc2VyaWVzVHlwZXMuYXJlYS5wcm90b3R5cGUsCmM9YS5zZXJpZXNUeXBlcy5jb2x1bW4ucHJvdG90eXBlO2IoImxvbGxpcG9wIiwiZHVtYmJlbGwiLHtsb3dDb2xvcjp2b2lkIDAsdGhyZXNob2xkOjAsY29ubmVjdG9yV2lkdGg6MSxncm91cFBhZGRpbmc6LjIscG9pbnRQYWRkaW5nOi4xLHN0YXRlczp7aG92ZXI6e2xpbmVXaWR0aFBsdXM6MCxjb25uZWN0b3JXaWR0aFBsdXM6MSxoYWxvOiExfX0sdG9vbHRpcDp7cG9pbnRGb3JtYXQ6JzxzcGFuIHN0eWxlPSJjb2xvcjp7c2VyaWVzLmNvbG9yfSI+XHUyNWNmPC9zcGFuPiB7c2VyaWVzLm5hbWV9OiA8Yj57cG9pbnQueX08L2I+PGJyLz4nfX0se3BvaW50QXJyYXlNYXA6WyJ5Il0scG9pbnRWYWxLZXk6InkiLHRvWURhdGE6ZnVuY3Rpb24oYil7cmV0dXJuW2EucGljayhiLnksYi5sb3cpXX0sdHJhbnNsYXRlUG9pbnQ6ZS50cmFuc2xhdGUsZHJhd1BvaW50OmUuZHJhd1BvaW50cyxkcmF3RGF0YUxhYmVsczpjLmRyYXdEYXRhTGFiZWxzLHNldFNoYXBlQXJnczpjLnRyYW5zbGF0ZX0se3BvaW50U2V0U3RhdGU6ZS5wb2ludENsYXNzLnByb3RvdHlwZS5zZXRTdGF0ZSwKc2V0U3RhdGU6YS5zZXJpZXNUeXBlcy5kdW1iYmVsbC5wcm90b3R5cGUucG9pbnRDbGFzcy5wcm90b3R5cGUuc2V0U3RhdGUsaW5pdDpmdW5jdGlvbihiLGQsYyl7YS5pc09iamVjdChkKSYmImxvdyJpbiBkJiYoZC55PWQubG93LGRlbGV0ZSBkLmxvdyk7cmV0dXJuIGEuUG9pbnQucHJvdG90eXBlLmluaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pOyIifSk7YihhLCJtYXN0ZXJzL21vZHVsZXMvbG9sbGlwb3Auc3JjLmpzIixbXSxmdW5jdGlvbigpe30pfSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvbGxpcG9wLmpzLm1hcA==\"></script>\n",
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIChjKSAyMDA5LTIwMTkgVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24obSl7Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz8obVsiZGVmYXVsdCJdPW0sbW9kdWxlLmV4cG9ydHM9bSk6ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJoaWdoY2hhcnRzL21vZHVsZXMvc2VyaWVzLWxhYmVsIixbImhpZ2hjaGFydHMiXSxmdW5jdGlvbih3KXttKHcpO20uSGlnaGNoYXJ0cz13O3JldHVybiBtfSk6bSgidW5kZWZpbmVkIiE9PXR5cGVvZiBIaWdoY2hhcnRzP0hpZ2hjaGFydHM6dm9pZCAwKX0pKGZ1bmN0aW9uKG0pe2Z1bmN0aW9uIHcobSx4LHcsdSl7bS5oYXNPd25Qcm9wZXJ0eSh4KXx8KG1beF09dS5hcHBseShudWxsLHcpKX1tPW0/bS5fbW9kdWxlczp7fTt3KG0sIm1vZHVsZXMvc2VyaWVzLWxhYmVsLnNyYy5qcyIsW21bInBhcnRzL0NoYXJ0LmpzIl0sbVsicGFydHMvR2xvYmFscy5qcyJdLG1bInBhcnRzL1NWR1JlbmRlcmVyLmpzIl0sbVsicGFydHMvVXRpbGl0aWVzLmpzIl1dLApmdW5jdGlvbihtLHgsdyx1KXtmdW5jdGlvbiBBKGUsZCxhLGwsZixnKXtlPShnLWQpKihhLWUpLShsLWQpKihmLWUpO3JldHVybiAwPGU/ITA6ISgwPmUpfWZ1bmN0aW9uIEIoZSxkLGEsbCxmLGcsYixrKXtyZXR1cm4gQShlLGQsZixnLGIsaykhPT1BKGEsbCxmLGcsYixrKSYmQShlLGQsYSxsLGYsZykhPT1BKGUsZCxhLGwsYixrKX1mdW5jdGlvbiBFKGUsZCxhLGwsZixnLGIsayl7cmV0dXJuIEIoZSxkLGUrYSxkLGYsZyxiLGspfHxCKGUrYSxkLGUrYSxkK2wsZixnLGIsayl8fEIoZSxkK2wsZSthLGQrbCxmLGcsYixrKXx8QihlLGQsZSxkK2wsZixnLGIsayl9ZnVuY3Rpb24gRihlKXtpZih0aGlzLnJlbmRlcmVyKXt2YXIgZD10aGlzLGE9QyhkLnJlbmRlcmVyLmdsb2JhbEFuaW1hdGlvbikuZHVyYXRpb247ZC5sYWJlbFNlcmllcz1bXTtkLmxhYmVsU2VyaWVzTWF4U3VtPTA7dS5jbGVhclRpbWVvdXQoZC5zZXJpZXNMYWJlbFRpbWVyKTtkLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uKGwpe3ZhciBmPQpsLm9wdGlvbnMubGFiZWwsZz1sLmxhYmVsQnlTZXJpZXMsYj1nJiZnLmNsb3Nlc3Q7Zi5lbmFibGVkJiZsLnZpc2libGUmJihsLmdyYXBofHxsLmFyZWEpJiYhbC5pc1Nlcmllc0Jvb3N0aW5nJiYoZC5sYWJlbFNlcmllcy5wdXNoKGwpLGYubWluRm9udFNpemUmJmYubWF4Rm9udFNpemUmJihsLnN1bT1sLnlEYXRhLnJlZHVjZShmdW5jdGlvbihhLGIpe3JldHVybihhfHwwKSsoYnx8MCl9LDApLGQubGFiZWxTZXJpZXNNYXhTdW09TWF0aC5tYXgoZC5sYWJlbFNlcmllc01heFN1bSxsLnN1bSkpLCJsb2FkIj09PWUudHlwZSYmKGE9TWF0aC5tYXgoYSxDKGwub3B0aW9ucy5hbmltYXRpb24pLmR1cmF0aW9uKSksYiYmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGJbMF0ucGxvdFg/Zy5hbmltYXRlKHt4OmJbMF0ucGxvdFgrYlsxXSx5OmJbMF0ucGxvdFkrYlsyXX0pOmcuYXR0cih7b3BhY2l0eTowfSkpKX0pO2Quc2VyaWVzTGFiZWxUaW1lcj1JKGZ1bmN0aW9uKCl7ZC5zZXJpZXMmJmQubGFiZWxTZXJpZXMmJgpkLmRyYXdTZXJpZXNMYWJlbHMoKX0sZC5yZW5kZXJlci5mb3JFeHBvcnR8fCFhPzA6YSl9fXZhciBHPXUuYWRkRXZlbnQsQz11LmFuaW1PYmplY3QsSD11LmV4dGVuZCxKPXUuZmlyZUV2ZW50LEs9dS5mb3JtYXQsRD11LmlzTnVtYmVyLHo9dS5waWNrLEw9dS5zZXRPcHRpb25zLEk9dS5zeW5jVGltZW91dDsiIjt4PXguU2VyaWVzO0woe3Bsb3RPcHRpb25zOntzZXJpZXM6e2xhYmVsOntlbmFibGVkOiEwLGNvbm5lY3RvckFsbG93ZWQ6ITEsY29ubmVjdG9yTmVpZ2hib3VyRGlzdGFuY2U6MjQsZm9ybWF0OnZvaWQgMCxmb3JtYXR0ZXI6dm9pZCAwLG1pbkZvbnRTaXplOm51bGwsbWF4Rm9udFNpemU6bnVsbCxvbkFyZWE6bnVsbCxzdHlsZTp7Zm9udFdlaWdodDoiYm9sZCJ9LGJveGVzVG9Bdm9pZDpbXX19fX0pO3cucHJvdG90eXBlLnN5bWJvbHMuY29ubmVjdG9yPWZ1bmN0aW9uKGUsZCxhLGwsZil7dmFyIGc9ZiYmZi5hbmNob3JYO2Y9ZiYmZi5hbmNob3JZO3ZhciBiPWEvMjtpZihEKGcpJiYKRChmKSl7dmFyIGs9W1siTSIsZyxmXV07dmFyIGg9ZC1mOzA+aCYmKGg9LWwtaCk7aDxhJiYoYj1nPGUrYS8yP2g6YS1oKTtmPmQrbD9rLnB1c2goWyJMIixlK2IsZCtsXSk6ZjxkP2sucHVzaChbIkwiLGUrYixkXSk6ZzxlP2sucHVzaChbIkwiLGUsZCtsLzJdKTpnPmUrYSYmay5wdXNoKFsiTCIsZSthLGQrbC8yXSl9cmV0dXJuIGt8fFtdfTt4LnByb3RvdHlwZS5nZXRQb2ludHNPbkdyYXBoPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShiKXt2YXIgYz1NYXRoLnJvdW5kKGIucGxvdFgvOCkrIiwiK01hdGgucm91bmQoYi5wbG90WS84KTtuW2NdfHwobltjXT0xLGEucHVzaChiKSl9aWYodGhpcy54QXhpc3x8dGhpcy55QXhpcyl7dmFyIGQ9dGhpcy5wb2ludHMsYT1bXSxsO3ZhciBmPXRoaXMuZ3JhcGh8fHRoaXMuYXJlYTt2YXIgZz1mLmVsZW1lbnQ7dmFyIGI9dGhpcy5jaGFydC5pbnZlcnRlZCxrPXRoaXMueEF4aXM7dmFyIGg9dGhpcy55QXhpczt2YXIgbT1iP2gucG9zOmsucG9zO2I9CmI/ay5wb3M6aC5wb3M7az16KHRoaXMub3B0aW9ucy5sYWJlbC5vbkFyZWEsISF0aGlzLmFyZWEpO3ZhciB5PWguZ2V0VGhyZXNob2xkKHRoaXMub3B0aW9ucy50aHJlc2hvbGQpLG49e307aWYodGhpcy5nZXRQb2ludFNwbGluZSYmZy5nZXRQb2ludEF0TGVuZ3RoJiYhayYmZC5sZW5ndGg8dGhpcy5jaGFydC5wbG90U2l6ZVgvMTYpe2lmKGYudG9EKXt2YXIgYz1mLmF0dHIoImQiKTtmLmF0dHIoe2Q6Zi50b0R9KX12YXIgdj1nLmdldFRvdGFsTGVuZ3RoKCk7Zm9yKGw9MDtsPHY7bCs9MTYpaD1nLmdldFBvaW50QXRMZW5ndGgobCksZSh7Y2hhcnRYOm0raC54LGNoYXJ0WTpiK2gueSxwbG90WDpoLngscGxvdFk6aC55fSk7YyYmZi5hdHRyK
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoqDQogKiBAbGljZW5zZSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCAoQ0MgQlktU0EgNC4wKQ0KICogQGF1dGhvciAgTGFycyBDYWJyZXJhDQogKiBAdmVyc2lvbiAxLjAuOQ0KICovDQoNCi8vIEpTTGludCBvcHRpb25zOg0KLypnbG9iYWwgSGlnaGNoYXJ0cywgd2luZG93Ki8NCg0KKGZ1bmN0aW9uIChIKSB7DQogICAgLy8gQ2hlY2sgaWYgb2JqZWN0IGlzIGFycmF5DQogICAgZnVuY3Rpb24gaXNBcnJheShvYmopIHsNCiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBBcnJheV0nOw0KICAgIH0NCg0KDQogICAgLy8gU2V0cyB1cCBtb3Rpb24gcmVhZHkgdG8gdXNlDQogICAgZnVuY3Rpb24gTW90aW9uKGNoYXJ0KSB7DQogICAgICAgIHZhciBtb3Rpb24gPSB0aGlzOw0KDQogICAgICAgIHRoaXMuY2hhcnQgPSBjaGFydDsNCiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlOw0KICAgICAgICB0aGlzLm9wdGlvbnMgPSBILm1lcmdlKHRoaXMuZGVmYXVsdE9wdGlvbnMsIHRoaXMuY2hhcnQub3B0aW9ucy5tb3Rpb24pOw0KICAgICAgICB0aGlzLmRhdGFTZXJpZXMgPSBbXTsNCiAgICAgICAgdGhpcy5kYXRhTGVuZ3RoID0gMDsNCiAgICAgICAgbW90aW9uLm9wdGlvbnMuc2VyaWVzID0gSC5zcGxhdChtb3Rpb24ub3B0aW9ucy5zZXJpZXMpOw0KICAgICAgICBIaWdoY2hhcnRzLmVhY2godGhpcy5jaGFydC5zZXJpZXMsIGZ1bmN0aW9uIChzZXJpZXMsIGluZGV4KSB7DQogICAgICAgICAgICBpZiAobW90aW9uLm9wdGlvbnMuc2VyaWVzLmluZGV4T2YoaW5kZXgpID49IDApIHsNCiAgICAgICAgICAgICAgICBtb3Rpb24uZGF0YVNlcmllc1tpbmRleF0gPSBzZXJpZXM7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXJpZXMuZGF0YS5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICBpZiAoc2VyaWVzLmRhdGFbaV0uc2VxdWVuY2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG1vdGlvbi5kYXRhTGVuZ3RoID0gTWF0aC5tYXgobW90aW9uLmRhdGFMZW5ndGgsIHNlcmllcy5kYXRhW2ldLnNlcXVlbmNlLmxlbmd0aCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KDQogICAgICAgIC8vIFBsYXktY29udHJvbHMgSFRNTC1kaXYNCiAgICAgICAgdGhpcy5wbGF5Q29udHJvbHMgPSBILmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHsNCiAgICAgICAgICAgIGlkOiAncGxheS1jb250cm9scycNCiAgICAgICAgfSwgbnVsbCwgdGhpcy5jaGFydC5yZW5kZXJUbywgbnVsbCk7DQoNCiAgICAgICAgLy8gUGxheS9wYXVzZSBIVE1MLWJ1dHRvbg0KICAgICAgICB0aGlzLnBsYXlQYXVzZUJ0biA9IEguY3JlYXRlRWxlbWVudCgnYnV0dG9uJywgew0KICAgICAgICAgICAgaWQ6ICdwbGF5LXBhdXNlLWJ1dHRvbicsDQogICAgICAgICAgICB0aXRsZTogJ3BsYXknDQogICAgICAgIH0sIG51bGwsIHRoaXMucGxheUNvbnRyb2xzLCBudWxsKTsNCiAgICAgICAgdGhpcy5wbGF5UGF1c2VCdG4uY2xhc3NOYW1lID0gdGhpcy5vcHRpb25zLnBsYXlJY29uOw0KDQogICAgICAgIC8vIFBsYXktcmFuZ2UgSFRNTC1pbnB1dA0KICAgICAgICB0aGlzLnBsYXlSYW5nZSA9IEguY3JlYXRlRWxlbWVudCgnaW5wdXQnLCB7DQogICAgICAgICAgICBpZDogJ3BsYXktcmFuZ2UnLA0KICAgICAgICAgICAgdHlwZTogJ3JhbmdlJywNCiAgICAgICAgICAgIG1pbjogMCwNCiAgICAgICAgICAgIG1heDogdGhpcy5kYXRhTGVuZ3RoIC0gMSwNCiAgICAgICAgICAgIHN0ZXA6IHRoaXMub3B0aW9ucy5tYWduZXQuc3RlcA0KICAgICAgICB9LCBudWxsLCB0aGlzLnBsYXlDb250cm9scywgbnVsbCk7DQogICAgICAgIC8vIEltcG9ydGFudDogbWF4IG11c3QgYmUgc2V0IGJlZm9yZSB2YWx1ZSBpbiBvcmRlciB0byBhbGxvdyBmb3INCiAgICAgICAgLy8gaGlnaGVyIG51bWJlcnMgdGhhbiAxMDAuDQogICAgICAgIHRoaXMucGxheVJhbmdlLnZhbHVlID0gSC5waWNrKHRoaXMub3B0aW9ucy5zdGFydEluZGV4LCB0aGlzLmRhdGFMZW5ndGggLSAxKTsNCg0KICAgICAgICAvLyBQbGF5LXJhbmdlIEhUTUwtb3V0cHV0DQogICAgICAgIHRoaXMucGxheU91dHB1dCA9IEguY3JlYXRlRWxlbWVudCgnbGFiZWwnLCB7DQogICAgICAgICAgICBpZDogJ3BsYXktb3V0cHV0JywNCiAgICAgICAgICAgIG5hbWU6IHRoaXMub3B0aW9ucy5heGlzTGFiZWwNCiAgICAgICAgfSwgbnVsbCwgdGhpcy5wbGF5Q29udHJvbHMsIG51bGwpOw0KICAgICAgICBpZiAoaXNBcnJheSh0aGlzLm9wdGlvbnMubGFiZWxzKSkgew0KICAgICAgICAgICAgdGhpcy5wbGF5T3V0cHV0LmlubmVySFRNTCA9IHRoaXMub3B0aW9ucy5sYWJlbHNbdGhpcy5kYXRhTGVuZ3RoIC0gMV0gfHwgJyc7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB0aGlzLnBsYXlPdXRwdXQuaW5uZXJIVE1MID0gdGhpcy5kYXRhTGVuZ3RoIC0gMTsNCiAgICAgICAgfQ0KDQogICAgICAgIC8vIENvbW1vbiBrZXkgZXZlbnQgaGFuZGxlciBmdW5jdGlvbg0KICAgICAgICBmdW5jdGlvbiBoYW5kbGVLZXlFdmVudHMoZSkgew0KICAgICAgICAgICAgZSA9IGUgfHwgd2luZG93LmV2ZW50Ow0KICAgICAgICAgICAgc3dpdGNoIChlLndoaWNoKSB7DQogICAgICAgICAgICBjYXNlIDMyOiAvLyBTcGFjZQ0KICAgICAgICAgICAgICAgIG1vdGlvbi50b2dnbGVQbGF5UGF1c2UoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgMzc6IC8vIExlZnQNCiAgICAgICAgICAgICAgICBtb3Rpb24ucGxheVJhbmdlLnZhbHVlID0gbW90aW9uLnJvdW5kKHBhcnNlRmxvYXQobW90aW9uLnBsYXlSYW5nZS52YWx1ZSkgLSAxKTsNCiAgICAgICAgICAgICAgICBtb3Rpb24udXBkY
"<script title=\"highcharts\" src=\"data:application/javascript;base64,dmFyIEhDRGVmYXVsdHMgPSAkLmV4dGVuZCh0cnVlLCB7fSwgSGlnaGNoYXJ0cy5nZXRPcHRpb25zKCksIHt9KTsNCg0KZnVuY3Rpb24gUmVzZXRIaWdoY2hhcnRzT3B0aW9ucygpIHsNCiAgICAvLyBGb3J0dW5hdGVseSwgSGlnaGNoYXJ0cyByZXR1cm5zIHRoZSByZWZlcmVuY2UgdG8gZGVmYXVsdE9wdGlvbnMgaXRzZWxmDQogICAgLy8gV2UgY2FuIG1hbmlwdWxhdGUgdGhpcyBhbmQgZGVsZXRlIGFsbCB0aGUgcHJvcGVydGllcw0KICAgIHZhciBkZWZhdWx0T3B0aW9ucyA9IEhpZ2hjaGFydHMuZ2V0T3B0aW9ucygpOw0KICAgIGZvciAodmFyIHByb3AgaW4gZGVmYXVsdE9wdGlvbnMpIHsNCiAgICAgICAgaWYgKHR5cGVvZiBkZWZhdWx0T3B0aW9uc1twcm9wXSAhPT0gJ2Z1bmN0aW9uJykgZGVsZXRlIGRlZmF1bHRPcHRpb25zW3Byb3BdOw0KICAgIH0NCiAgICAvLyBGYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHRzIHRoYXQgd2UgY2FwdHVyZWQgaW5pdGlhbGx5LCB0aGlzIHJlc2V0cyB0aGUgdGhlbWUNCiAgICBIaWdoY2hhcnRzLnNldE9wdGlvbnMoSENEZWZhdWx0cyk7DQp9DQo=\"></script>\n",
"<script title=\"highcharts\" src=\"data:application/javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjguMS4yICgyMDIwLTA2LTE2KQoKIEJvb3N0IG1vZHVsZQoKIChjKSAyMDEwLTIwMTkgSGlnaHNvZnQgQVMKIEF1dGhvcjogVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoKIFRoaXMgaXMgYSBIaWdoY2hhcnRzIG1vZHVsZSB0aGF0IGRyYXdzIGxvbmcgZGF0YSBzZXJpZXMgb24gYSBjYW52YXMgaW4gb3JkZXIKIHRvIGluY3JlYXNlIHBlcmZvcm1hbmNlIG9mIHRoZSBpbml0aWFsIGxvYWQgdGltZSBhbmQgdG9vbHRpcCByZXNwb25zaXZlbmVzcy4KCiBDb21wYXRpYmxlIHdpdGggV2ViR0wgY29tcGF0aWJsZSBicm93c2VycyAobm90IElFIDwgMTEpLgoKIElmIHRoaXMgbW9kdWxlIGlzIHRha2VuIGluIGFzIHBhcnQgb2YgdGhlIGNvcmUKIC0gQWxsIHRoZSBsb2FkaW5nIGxvZ2ljIHNob3VsZCBiZSBtZXJnZWQgd2l0aCBjb3JlLiBVcGRhdGUgc3R5bGVzIGluIHRoZQogICBjb3JlLgogLSBNb3N0IG9mIHRoZSBtZXRob2Qgd3JhcHMgc2hvdWxkIHByb2JhYmx5IGJlIGFkZGVkIGRpcmVjdGx5IGluIHBhcmVudAogICBtZXRob2RzLgoKIE5vdGVzIGZvciBib29zdCBtb2RlCiAtIEFyZWEgbGluZXMgYXJlIG5vdCBkcmF3bgogLSBMaW5lcyBhcmUgbm90IGRyYXduIG9uIHNjYXR0ZXIgY2hhcnRzCiAtIFpvbmVzIGFuZCBuZWdhdGl2ZUNvbG9yIGRvbid0IHdvcmsKIC0gRGFzaCBzdHlsZXMgYXJlIG5vdCByZW5kZXJlZCBvbiBsaW5lcy4KIC0gQ29sdW1ucyBhcmUgYWx3YXlzIG9uZSBwaXhlbCB3aWRlLiBEb24ndCBzZXQgdGhlIHRocmVzaG9sZCB0b28gbG93LgogLSBEaXNhYmxlIGFuaW1hdGlvbnMKIC0gTWFya2VyIHNoYXBlcyBhcmUgbm90IHN1cHBvcnRlZDogbWFya2VycyB3aWxsIGFsd2F5cyBiZSBjaXJjbGVzLCBleGNlcHQKICAgaGVhdG1hcCBzZXJpZXMsIHdoZXJlIG1hcmtlcnMgYXJlIGFsd2F5cyByZWN0YW5nbGVzLgoKIE9wdGltaXppbmcgdGlwcyBmb3IgdXNlcnMKIC0gU2V0IGV4dHJlbWVzIChtaW4sIG1heCkgZXhwbGljaXRseSBvbiB0aGUgYXhlcyBpbiBvcmRlciBmb3IgSGlnaGNoYXJ0cyB0bwogICBhdm9pZCBjb21wdXRpbmcgZXh0cmVtZXMuCiAtIFNldCBlbmFibGVNb3VzZVRyYWNraW5nIHRvIGZhbHNlIG9uIHRoZSBzZXJpZXMgdG8gaW1wcm92ZSB0b3RhbCByZW5kZXJpbmcKICAgICAgdGltZS4KIC0gVGhlIGRlZmF1bHQgdGhyZXNob2xkIGlzIHNldCBiYXNlZCBvbiBvbmUgc2VyaWVzLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSwKICAgZGVuc2Ugc2VyaWVzLCB0aGUgY29tYmluZWQgbnVtYmVyIG9mIHBvaW50cyBkcmF3biBnZXRzIGhpZ2hlciwgYW5kIHlvdSBtYXkKICAgd2FudCB0byBzZXQgdGhlIHRocmVzaG9sZCBsb3dlciBpbiBvcmRlciB0byB1c2Ugb3B0aW1pemF0aW9ucy4KIC0gSWYgZHJhd2luZyBsYXJnZSBzY2F0dGVyIGNoYXJ0cywgaXQncyBiZW5lZmljaWFsIHRvIHNldCB0aGUgbWFya2VyIHJhZGl1cwogICB0byBhIHZhbHVlIGxlc3MgdGhhbiAxLiBUaGlzIGlzIHRvIGFkZCBhZGRpdGlvbmFsIHNwYWNpbmcgdG8gbWFrZSB0aGUgY2hhcnQKICAgbW9yZSByZWFkYWJsZS4KIC0gSWYgdGhlIHZhbHVlIGluY3JlbWVudHMgb24gYm90aCB0aGUgWCBhbmQgWSBheGlzIGFyZW4ndCBzbWFsbCwgY29uc2lkZXIKICAgc2V0dGluZyB1c2VHUFVUcmFuc2xhdGlvbnMgdG8gdHJ1ZSBvbiB0aGUgYm9vc3Qgc2V0dGluZ3Mgb2JqZWN0LiBJZiB5b3UgZG8KICAgdGhpcyBhbmQgdGhlIGluY3JlbWVudHMgYXJlIHNtYWxsIChlLmcuIGRhdGV0aW1lIGF4aXMgd2l0aCBzbWFsbCB0aW1lCiAgIGluY3JlbWVudHMpIGl0IG1heSBjYXVzZSByZW5kZXJpbmcgaXNzdWVzIGR1ZSB0byBmbG9hdGluZyBwb2ludCByb3VuZGluZwogICBlcnJvcnMsIHNvIHlvdXIgbWlsbGFnZSBtYXkgdmFyeS4KCiBTZXR0aW5ncwogICAgVGhlcmUgYXJlIHR3byB3YXlzIG9mIHNldHRpbmcgdGhlIGJvb3N0IHRocmVzaG9sZDoKICAgIC0gUGVyIHNlcmllczogYm9vc3QgYmFzZWQgb24gbnVtYmVyIG9mIHBvaW50cyBpbiBpbmRpdmlkdWFsIHNlcmllcwogICAgLSBQZXIgY2hhcnQ6IGJvb3N0IGJhc2VkIG9uIHRoZSBudW1iZXIgb2Ygc2VyaWVzCgogIFRvIHNldCB0aGUgc2VyaWVzIGJvb3N0IHRocmVzaG9sZCwgc2V0IHNlcmllc0Jvb3N0VGhyZXNob2xkIG9uIHRoZSBjaGFydAogIG9iamVjdC4KICBUbyBzZXQgdGhlIHNlcmllcy1zcGVjaWZpYyB0aHJlc2hvbGQsIHNldCBib29zdFRocmVzaG9sZCBvbiB0aGUgc2VyaWVzCiAgb2JqZWN0LgoKICBJbiBhZGRpdGlvbiwgdGhlIGZvbGxvd2luZyBjYW4gYmUgc2V0IGluIHRoZSBib29zdCBvYmplY3Q6CiAgewogICAgICAvL1dldGhlciBvciBub3QgdG8gdXNlIGFscGhhIGJsZW5kaW5nCiAgICAgIHVzZUFscGhhOiBib29sZWFuIC0gZGVmYXVsdDogdHJ1ZQogICAgICAvL1NldCB0byB0cnVlIHRvIHBlcmZvcm0gdHJhbnNsYXRpb25zIG9uIHRoZSBHUFUuCiAgICAgIC8vTXVjaCBmYXN0ZXIsIGJ1dCBtYXkgY2F1c2UgcmVuZGVyaW5nIGlzc3VlcwogICAgICAvL3doZW4gdXNpbmcgdmFsdWVzIGZhciBmcm9tIDAgZHVlIHRvIGZsb2F0aW5nIHBvaW50CiAgICAgIC8vcm91bmRpbmcgaXNzdWVzCiAgICAgIHVzZUdQVVRyYW5zbGF0aW9uczogYm9vbGVhbiAtIGRlZmF1bHQ6IGZhbHNlCiAgICAgIC8vVXNlIHByZS1hbGxvY2F0ZWQgYnVmZmVycywgbXVjaCBmYXN0ZXIsCiAgICAgIC8vYnV0IG1heSBjYXVzZSByZW5kZXJpbmcgaXNzdWVzIHdpdGggc29tZSBkYXRhIHNldHMKICAgICAgdXNlUHJlYWxsb2NhdGVkOiBib29sZWFuIC0gZGVmYXVsdDogZmFsc2UKICB9CiovCihmdW5jdGlvbihiKXsib2JqZWN0Ij09PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzPyhiWyJkZWZhdWx0Il09Yixtb2R1bGUuZXhwb3J0cz1iKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoImhpZ2hjaGFydHMvbW9kdWxlcy9ib29zdCIsWyJoaWdoY2hhcnRzI
"<link href=\"data:text/css;charset-utf-8;base64,LyogJCgiZGl2OmhhcygjcGxheS1jb250cm9scykiKS5jc3MoeyJwb3NpdGlvbiIgOiAicmVsYXRpdmUifSkNCmRpdjpoYXMoI3BsYXktY29udHJvbHMpIHsNCiAgcG9zaXRpb24gOiByZWxhdGl2ZTsNCn0NCiAqLw0KIA0KLmxvYWRpbmcgew0KICAgIG1hcmdpbi10b3A6IDEwZW07DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIGNvbG9yOiBncmF5Ow0KfQ0KDQojcGxheS1jb250cm9scyB7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGJvdHRvbTogMDsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgbWluLXdpZHRoOiAzMTBweDsNCiAgICBtYXgtd2lkdGg6IDgwMHB4Ow0KICAgIG1hcmdpbjogMCBhdXRvOw0KICAgIHBhZGRpbmc6IDVweCAwIDFlbSAwOw0KfQ0KDQojcGxheS1jb250cm9scyAqIHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KI3BsYXktcGF1c2UtYnV0dG9uIHsNCiAgICBjb2xvcjogIzY2NjY2NjsNCiAgICB3aWR0aDogMzBweDsNCiAgICBoZWlnaHQ6IDMwcHg7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIGZvbnQtc2l6ZTogMTVweDsNCiAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgYm9yZGVyOiAxcHggc29saWQgc2lsdmVyOw0KICAgIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4Ow0KfQ0KDQojcGxheS1yYW5nZSB7DQogICAgbWFyZ2luOiAyLjUlOw0KICAgIHdpZHRoOiA3MCU7DQp9DQoNCiNwbGF5LW91dHB1dCB7DQogICAgY29sb3I6ICM2NjY2NjY7DQogICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQp9DQo=\" rel=\"stylesheet\" />\n",
"<script title=\"highchart-binding\" src=\"data:application/javascript;base64,SFRNTFdpZGdldHMud2lkZ2V0KHsNCg0KICBuYW1lOiAnaGlnaGNoYXJ0JywNCg0KICB0eXBlOiAnb3V0cHV0JywNCg0KICBpbml0aWFsaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCkgew0KDQogICAgcmV0dXJuIHsNCiAgICAgIC8vIFRPRE86IGFkZCBpbnN0YW5jZSBmaWVsZHMgYXMgcmVxdWlyZWQNCiAgICB9Ow0KDQogIH0sDQoNCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgew0KICAgIA0KICAgIGlmKHguZGVidWcpIHsNCiAgICAgIHdpbmRvdy54Y2xvbmUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHgpKTsNCiAgICAgIHdpbmRvdy5lbGNsb25lID0gJChlbCk7DQogICAgICBjb25zb2xlLmxvZyhlbCk7DQogICAgICBjb25zb2xlLmxvZygiaGNfb3B0cyIsIHguaGNfb3B0cyk7DQogICAgICBjb25zb2xlLmxvZygidGhlbWUiLCB4LnRoZW1lKTsNCiAgICAgIGNvbnNvbGUubG9nKCJjb25mX29wdHMiLCB4LmNvbmZfb3B0cyk7DQogICAgfQ0KDQogICAgaWYoeC5mb250cyAhPT0gdW5kZWZpbmVkKSB7DQogICAgICANCiAgICAgIHguZm9udHMgPSAoKHR5cGVvZih4LmZvbnRzKSA9PSAic3RyaW5nIikgPyBbeC5mb250c10gOiB4LmZvbnRzKTsNCiAgICANCiAgICAgIHguZm9udHMuZm9yRWFjaChmdW5jdGlvbihzKXsNCiAgICAgICAgLyogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80NzI0NjA2ICovDQogICAgICAgIHZhciB1cmxmb250ID0gJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT0nICsgczsNCiAgICAgICAgaWYgKCEkKCJsaW5rW2hyZWY9JyIgKyB1cmxmb250ICsgIiddIikubGVuZ3RoKSB7DQogICAgICAgICAgJCgnPGxpbmsgaHJlZj0iJyArIHVybGZvbnQgKyAnIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4nKS5hcHBlbmRUbygiaGVhZCIpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgfSk7DQogICAgICANCiAgICB9DQogICAgDQogICAgUmVzZXRIaWdoY2hhcnRzT3B0aW9ucygpOw0KICAgIA0KICAgIGlmKHgudGhlbWUgIT09IG51bGwpIHsNCiAgICAgIA0KICAgICAgaWYoeC5kZWJ1ZykgY29uc29sZS5sb2coImFkZGluZyBUSEVNRSIpOw0KICAgICAgDQogICAgICBIaWdoY2hhcnRzLnNldE9wdGlvbnMoeC50aGVtZSk7DQogICAgICANCiAgICB9DQogICAgDQogICAgaWYoKHgudGhlbWUgJiYgeC50aGVtZS5jaGFydC5kaXZCYWNrZ3JvdW5kSW1hZ2UgIT09IHVuZGVmaW5lZCkgfA0KICAgICAgICAgKHguaGNfb3B0cy5jaGFydCAgJiYgeC5oY19vcHRzLmNoYXJ0LmRpdkJhY2tncm91bmRJbWFnZSAhPT0gdW5kZWZpbmVkKSkgew0KICAgICAgICAgICANCiAgICAgIGlmKHguZGVidWcpIGNvbnNvbGUubG9nKCJhZGRpbmcgQmFja2dyb3VuZEltYWdlIik7ICAgICANCiAgICAgICAgICAgDQogICAgICB2YXIgYmtncm5kID0geC50aGVtZS5jaGFydC5kaXZCYWNrZ3JvdW5kSW1hZ2UgfHwgeC5oY19vcHRzLmNoYXJ0LmRpdkJhY2tncm91bmRJbWFnZTsNCiAgICAgIA0KICAgICAgSGlnaGNoYXJ0cy53cmFwKEhpZ2hjaGFydHMuQ2hhcnQucHJvdG90eXBlLCAiZ2V0Q29udGFpbmVyIiwgZnVuY3Rpb24gKHByb2NlZWQpIHsNCiAgICAgICAgDQogICAgICAgIHByb2NlZWQuY2FsbCh0aGlzKTsNCiAgICAgICAgDQogICAgICAgICQoIiMiICsgZWwuaWQpLmNzcygiYmFja2dyb3VuZC1pbWFnZSIsICJ1cmwoIiArIGJrZ3JuZCArICIpIik7DQogICAgICAgICQoIiMiICsgZWwuaWQpLmNzcygiLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemUiLCAiY292ZXIiKTsNCiAgICAgICAgJCgiIyIgKyBlbC5pZCkuY3NzKCItbW96LWJhY2tncm91bmQtc2l6ZSIsICJjb3ZlciIpOw0KICAgICAgICAkKCIjIiArIGVsLmlkKS5jc3MoIi1vLWJhY2tncm91bmQtc2l6ZSIsICJjb3ZlciIpOw0KICAgICAgICAkKCIjIiArIGVsLmlkKS5jc3MoImJhY2tncm91bmQtc2l6ZSIsICJjb3ZlciIpOw0KICAgICAgICANCiAgICAgIH0pOw0KICAgICAgDQogICAgfQ0KICAgIA0KICAgIEhpZ2hjaGFydHMuc2V0T3B0aW9ucyh4LmNvbmZfb3B0cyk7DQogICAgDQogICAgaWYoeC50eXBlID09ICJjaGFydCIpIHsNCiAgICAgIGlmKHguZGVidWcpIGNvbnNvbGUubG9nKCJjaGFydGluZyBDSEFSVCIpOw0KICAgICAgJCgiIyIgKyBlbC5pZCkuaGlnaGNoYXJ0cyh4LmhjX29wdHMpOw0KICAgIH0gZWxzZSBpZiAoeC50eXBlID09ICJzdG9jayIpIHsNCiAgICAgIGlmKHguZGVidWcpIGNvbnNvbGUubG9nKCJjaGFydGluZyBTVE9DSyIpOw0KICAgICAgJCgiIyIgKyBlbC5pZCkuaGlnaGNoYXJ0cygnU3RvY2tDaGFydCcsIHguaGNfb3B0cyk7ICANCiAgICB9IGVsc2UgaWYgKHgudHlwZSA9PSAibWFwIil7DQogICAgICBpZih4LmRlYnVnKSBjb25zb2xlLmxvZygiY2hhcnRpbmcgTUFQIik7DQoNCiAgICAgIHguaGNfb3B0cy5zZXJpZXMgPSB4LmhjX29wdHMuc2VyaWVzLm1hcChmdW5jdGlvbihlKXsNCiAgICAgICAgaWYoZS5nZW9qc29uID09PSB0cnVlKSB7DQogICAgICAgICAgaWYoeC5kZWJ1ZykgY29uc29sZS5sb2coImdlb2pzb25cblx0IiwgZS50eXBlLCAiXG5cdCIsIHR5cGVvZihlLnNlcmllcykpOw0KICAgICAgICAgIGUuZGF0YSA9IEhpZ2hjaGFydHMuZ2VvanNvbihlLmRhdGEsIGUudHlwZSk7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIGU7DQogICAgICB9KTsNCiAgICAgIA0KICAgICAgJCgiIyIgKyBlbC5pZCkuaGlnaGNoYXJ0cygnTWFwJywgeC5oY19vcHRzKTsgDQogICAgICANCiAgICAgIGlmKHguaGNfb3B0cy5tYXBOYXZpZ2F0aW9uICE9PSB1bmRlZmluZWQgJiYgeC5oY19vcHRzLm1hcE5hdmlnYXRpb24uZW5hYmxlZCA9PT0gdHJ1ZSl7DQogICAgICAgIC8qIGlmIGhhdmUgbmF2aWdhdGlvbiBvcHRpb24gYW5kIGVuYWJsZWQgdHJ1ZTogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy83NjAwNDU0ICovDQogICAgICAgICQoIiMiICsgZWwuaWQpLmJpbmQoICdtb3VzZX
"\t</head>\n",
"\t<body>\n",
"\t\t<div id=\"htmlwidget-a3bae2fb31ae371cc131\" style=\"width:100%;height:500px;\" class=\"highchart html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-a3bae2fb31ae371cc131\">{\"x\":{\"hc_opts\":{\"chart\":{\"reflow\":true,\"type\":\"column\"},\"title\":{\"text\":\"Male height by discipline (Olympic 2012)\"},\"yAxis\":{\"title\":{\"text\":\"Height in metre\"}},\"credits\":{\"enabled\":false},\"exporting\":{\"enabled\":false},\"boost\":{\"enabled\":false},\"plotOptions\":{\"series\":{\"label\":{\"enabled\":false},\"turboThreshold\":0,\"marker\":{\"symbol\":\"circle\"},\"showInLegend\":false},\"treemap\":{\"layoutAlgorithm\":\"squarified\"},\"scatter\":{\"color\":\"red\",\"marker\":{\"radius\":2,\"symbol\":\"circle\",\"lineWidth\":1},\"jitter\":{\"x\":0.1,\"y\":0}}},\"xAxis\":{\"type\":\"category\",\"categories\":\"\"},\"series\":[{\"g2\":null,\"data\":[{\"name\":\"Canoe\",\"low\":1.66,\"q1\":1.78,\"median\":1.83,\"q3\":1.86,\"high\":1.97},{\"name\":\"Gymnastics\",\"low\":1.52,\"q1\":1.63,\"median\":1.675,\"q3\":1.72,\"high\":1.84},{\"name\":\"Hockey\",\"low\":1.65,\"q1\":1.76,\"median\":1.8,\"q3\":1.84,\"high\":1.96},{\"name\":\"Modern Pentathlon\",\"low\":1.74,\"q1\":1.8,\"median\":1.815,\"q3\":1.85,\"high\":1.92}],\"type\":\"boxplot\",\"id\":null,\"name\":\"Length\"},{\"name\":\"Canoe\",\"data\":[{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":2.02,\"weight\":115,\"y\":2.02,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.88,\"weight\":102,\"y\":1.88,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.88,\"weight\":100,\"y\":1.88,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.92,\"weight\":98,\"y\":1.92,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.88,\"weight\":98,\"y\":1.88,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.84,\"weight\":97,\"y\":1.84,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.92,\"weight\":96,\"y\":1.92,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.99,\"weight\":95,\"y\":1.99,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.97,\"weight\":95,\"y\":1.97,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.93,\"weight\":95,\"y\":1.93,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.92,\"weight\":95,\"y\":1.92,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.87,\"weight\":95,\"y\":1.87,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.86,\"weight\":95,\"y\":1.86,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.85,\"weight\":95,\"y\":1.85,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.97,\"weight\":94,\"y\":1.97,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.91,\"weight\":94,\"y\":1.91,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.91,\"weight\":94,\"y\":1.91,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.86,\"weight\":94,\"y\":1.86,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.93,\"weight\":93,\"y\":1.93,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.92,\"weight\":93,\"y\":1.92,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.86,\"weight\":93,\"y\":1.86,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.86,\"weight\":93,\"y\":1.86,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.85,\"weight\":93,\"y\":1.85,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.95,\"weight\":92,\"y\":1.95,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.94,\"weight\":92,\"y\":1.94,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.92,\"weight\":92,\"y\":1.92,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.9,\"weight\":92,\"y\":1.9,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.89,\"weight\":92,\"y\":1.89,\"name\":\"Canoe\"},{\"sport\":\"Canoe\",\"sex\":\"male\",\"height\":1.88,\"weight\":92,\"y\":1.88,\"name\":\"C
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"hcboxplot(x = df$height,\n",
" var = df$sport,\n",
" name = 'Length',\n",
" outliers = FALSE) %>%\n",
" hc_title(text = 'Male height by discipline (Olympic 2012)') %>%\n",
" hc_yAxis(title = list(text = 'Height in metre')) %>%\n",
" hc_chart(type = 'column') %>% \n",
" hc_add_series(data = df,\n",
" type = 'scatter',\n",
" hcaes(x = 'sport', y = 'height', group = 'sport')) %>%\n",
" hc_plotOptions(scatter = list(\n",
" color = 'red',\n",
" marker = list(radius = 2,\n",
" symbol = 'circle',\n",
" lineWidth = 1))) %>%\n",
" hc_plotOptions(scatter = list(jitter = list(x = .1, y = 0)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Biblioteka morrisjs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Jest to inna biblioteka do tworzenia wykresów interaktywnych. Umożliwia tworzenie następujących wykresów:\n",
"1. Wykres liniowy (w czasie)\n",
"3. Wykres powierzchniowy (w czasie)\n",
"2. Wykres słupkowy (w czasie)\n",
"4. Wykres kołowy"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Loading required package: zoo\n",
"\n",
"\n",
"Attaching package: zoo\n",
"\n",
"\n",
"The following objects are masked from package:base:\n",
"\n",
" as.Date, as.Date.numeric\n",
"\n",
"\n"
]
}
],
"source": [
"# devtools::install_github(\"tutuchan/morrisjs\") # Instalacja\n",
"library(morrisjs)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMyIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSkrMT49MH0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtmb3IoYiBpbiBhKXJldHVybiExO3JldHVybiEwfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiO2lmKCFhfHwib2JqZWN0IiE9PW0udHlwZShhKXx8YS5ub2RlVHlwZXx8bS5pc1dpbmRvdyhhKSlyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIWouY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhai5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9aWYoay5vd25MYXN0KWZvcihiIGluIGEpcmV0dXJuIGouY2FsbChhLGIpO2ZvcihiIGluIGEpO3JldHVybiB2b2lkIDA9PT1ifHxqLmNhbGwoYSxiKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9hKyIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE/aFtpLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihiKXtiJiZtLnRyaW0oYikmJihhLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKGIpe2EuZXZhbC5jYWxsKGEsYil9KShiKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UobywibXMtIikucmVwbGFjZShwLHEpfSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9MCxmPWEubGVuZ3RoLGc9cihhKTtpZihjKXtpZihnKXtmb3IoO2Y+ZTtlKyspaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgZm9yKGUgaW4gYSlpZihkPWIuYXBwbHkoYVtlXSxjKSxkP
"<script title=\"raphael\" src=\"data:application/javascript;base64,Ly8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIFxcCi8vIOKUgiBSYXBoYcOrbCAyLjEuNCAtIEphdmFTY3JpcHQgVmVjdG9yIExpYnJhcnkgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIENvcHlyaWdodCDCqSAyMDA4LTIwMTIgRG1pdHJ5IEJhcmFub3Zza2l5IChodHRwOi8vcmFwaGFlbGpzLmNvbSkgICAg4pSCIFxcCi8vIOKUgiBDb3B5cmlnaHQgwqkgMjAwOC0yMDEyIFNlbmNoYSBMYWJzIChodHRwOi8vc2VuY2hhLmNvbSkgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKGh0dHA6Ly9yYXBoYWVsanMuY29tL2xpY2Vuc2UuaHRtbCkgbGljZW5zZS7ilIIgXFwKLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIFxcCiFmdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJldmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGIoKX0pOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1iKCk6YS5ldmU9YigpfSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGEsYixjPSIwLjQuMiIsZD0iaGFzT3duUHJvcGVydHkiLGU9L1tcLlwvXS8sZj0iKiIsZz1mdW5jdGlvbigpe30saD1mdW5jdGlvbihhLGIpe3JldHVybiBhLWJ9LGk9e246e319LGo9ZnVuY3Rpb24oYyxkKXtjPVN0cmluZyhjKTt2YXIgZSxmPWIsZz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMiksaT1qLmxpc3RlbmVycyhjKSxrPTAsbD1bXSxtPXt9LG49W10sbz1hO2E9YyxiPTA7Zm9yKHZhciBwPTAscT1pLmxlbmd0aDtxPnA7cCsrKSJ6SW5kZXgiaW4gaVtwXSYmKGwucHVzaChpW3BdLnpJbmRleCksaVtwXS56SW5kZXg8MCYmKG1baVtwXS56SW5kZXhdPWlbcF0pKTtmb3IobC5zb3J0KGgpO2xba108MDspaWYoZT1tW2xbaysrXV0sbi5wdXNoKGUuYXBwbHkoZCxnKSksYilyZXR1cm4gYj1mLG47Zm9yKHA9MDtxPnA7cCsrKWlmKGU9aVtwXSwiekluZGV4ImluIGUpaWYoZS56SW5kZXg9PWxba10pe2lmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7ZG8gaWYoaysrLGU9bVtsW2tdXSxlJiZuLnB1c2goZS5hcHBseShkLGcpKSxiKWJyZWFrO3doaWxlKGUpfWVsc2UgbVtlLnpJbmRleF09ZTtlbHNlIGlmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7cmV0dXJuIGI9ZixhPW8sbi5sZW5ndGg/bjpudWxsfTtyZXR1cm4gai5fZXZlbnRzPWksai5saXN0ZW5lcnM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGcsaCxqLGssbCxtPWEuc3BsaXQoZSksbj1pLG89W25dLHA9W107Zm9yKGc9MCxoPW0ubGVuZ3RoO2g+ZztnKyspe2ZvcihsPVtdLGo9MCxrPW8ubGVuZ3RoO2s+ajtqKyspZm9yKG49b1tqXS5uLGM9W25bbVtnXV0sbltmXV0sZD0yO2QtLTspYj1jW2RdLGImJihsLnB1c2goYikscD1wLmNvbmNhdChiLmZ8fFtdKSk7bz1sfXJldHVybiBwfSxqLm9uPWZ1bmN0aW9uKGEsYil7aWYoYT1TdHJpbmcoYSksImZ1bmN0aW9uIiE9dHlwZW9mIGIpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFyIGM9YS5zcGxpdChlKSxkPWksZj0wLGg9Yy5sZW5ndGg7aD5mO2YrKylkPWQubixkPWQuaGFzT3duUHJvcGVydHkoY1tmXSkmJmRbY1tmXV18fChkW2NbZl1dPXtuOnt9fSk7Zm9yKGQuZj1kLmZ8fFtdLGY9MCxoPWQuZi5sZW5ndGg7aD5mO2YrKylpZihkLmZbZl09PWIpcmV0dXJuIGc7cmV0dXJuIGQuZi5wdXNoKGIpLGZ1bmN0aW9uKGEpeythPT0rYSYmKGIuekluZGV4PSthKX19LGouZj1mdW5jdGlvbihhKXt2YXIgYj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXtqLmFwcGx5KG51bGwsW2EsbnVsbF0uY29uY2F0KGIpLmNvbmNhdChbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSkpfX0sai5zdG9wPWZ1bmN0aW9uKCl7Yj0xfSxqLm50PWZ1bmN0aW9uKGIpe3JldHVybiBiP25ldyBSZWdFeHAoIig/OlxcLnxcXC98XikiK2IrIig/OlxcLnxcXC98JCkiKS50ZXN0KGEpOmF9LGoubnRzPWZ1bmN0aW9uKCl7cmV0dXJuIGEuc3BsaXQoZSl9LGoub2ZmPWoudW5iaW5kPWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIHZvaWQoai5fZXZlbnRzPWk9e246e319KTt2YXIgYyxnLGgsayxsLG0sbixvPWEuc3BsaXQoZSkscD1baV07Zm9yKGs9MCxsPW8ubGVuZ3RoO2w+aztrKyspZm9yKG09MDttPHAubGVuZ3RoO20rPWgubGVuZ3RoLTIpe2lmKGg9W20sMV0sYz1wW21d
"<script title=\"morris.js\" src=\"data:application/javascript;base64,LyogQGxpY2Vuc2UKbW9ycmlzLmpzIHYwLjUuMApDb3B5cmlnaHQgMjAxNCBPbGx5IFNtaXRoIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMi1DbGF1c2UgTGljZW5zZS4KKi8KKGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZT1bXS5zbGljZSxmPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX0sZz17fS5oYXNPd25Qcm9wZXJ0eSxoPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe3RoaXMuY29uc3RydWN0b3I9YX1mb3IodmFyIGQgaW4gYilnLmNhbGwoYixkKSYmKGFbZF09YltkXSk7cmV0dXJuIGMucHJvdG90eXBlPWIucHJvdG90eXBlLGEucHJvdG90eXBlPW5ldyBjLGEuX19zdXBlcl9fPWIucHJvdG90eXBlLGF9LGk9W10uaW5kZXhPZnx8ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz10aGlzLmxlbmd0aDtjPmI7YisrKWlmKGIgaW4gdGhpcyYmdGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9O2I9d2luZG93Lk1vcnJpcz17fSxhPWpRdWVyeSxiLkV2ZW50RW1pdHRlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXt9cmV0dXJuIGEucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PXRoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPXt9KSxudWxsPT10aGlzLmhhbmRsZXJzW2FdJiYodGhpcy5oYW5kbGVyc1thXT1bXSksdGhpcy5oYW5kbGVyc1thXS5wdXNoKGIpLHRoaXN9LGEucHJvdG90eXBlLmZpcmU9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxmLGcsaDtpZihjPWFyZ3VtZW50c1swXSxhPTI8PWFyZ3VtZW50cy5sZW5ndGg/ZS5jYWxsKGFyZ3VtZW50cywxKTpbXSxudWxsIT10aGlzLmhhbmRsZXJzJiZudWxsIT10aGlzLmhhbmRsZXJzW2NdKXtmb3IoZz10aGlzLmhhbmRsZXJzW2NdLGg9W10sZD0wLGY9Zy5sZW5ndGg7Zj5kO2QrKyliPWdbZF0saC5wdXNoKGIuYXBwbHkobnVsbCxhKSk7cmV0dXJuIGh9fSxhfSgpLGIuY29tbWFzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO3JldHVybiBudWxsIT1hPyhkPTA+YT8iLSI6IiIsYj1NYXRoLmFicyhhKSxjPU1hdGguZmxvb3IoYikudG9GaXhlZCgwKSxkKz1jLnJlcGxhY2UoLyg/PSg/OlxkezN9KSskKSg/IV4pL2csIiwiKSxlPWIudG9TdHJpbmcoKSxlLmxlbmd0aD5jLmxlbmd0aCYmKGQrPWUuc2xpY2UoYy5sZW5ndGgpKSxkKToiLSJ9LGIucGFkMj1mdW5jdGlvbihhKXtyZXR1cm4oMTA+YT8iMCI6IiIpK2F9LGIuR3JpZD1mdW5jdGlvbihjKXtmdW5jdGlvbiBkKGIpe3RoaXMucmVzaXplSGFuZGxlcj1mKHRoaXMucmVzaXplSGFuZGxlcix0aGlzKTt2YXIgYz10aGlzO2lmKHRoaXMuZWw9InN0cmluZyI9PXR5cGVvZiBiLmVsZW1lbnQ/YShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChiLmVsZW1lbnQpKTphKGIuZWxlbWVudCksbnVsbD09dGhpcy5lbHx8MD09PXRoaXMuZWwubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiR3JhcGggY29udGFpbmVyIGVsZW1lbnQgbm90IGZvdW5kIik7InN0YXRpYyI9PT10aGlzLmVsLmNzcygicG9zaXRpb24iKSYmdGhpcy5lbC5jc3MoInBvc2l0aW9uIiwicmVsYXRpdmUiKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5ncmlkRGVmYXVsdHMsdGhpcy5kZWZhdWx0c3x8e30sYiksInN0cmluZyI9PXR5cGVvZiB0aGlzLm9wdGlvbnMudW5pdHMmJih0aGlzLm9wdGlvbnMucG9zdFVuaXRzPWIudW5pdHMpLHRoaXMucmFwaGFlbD1uZXcgUmFwaGFlbCh0aGlzLmVsWzBdKSx0aGlzLmVsZW1lbnRXaWR0aD1udWxsLHRoaXMuZWxlbWVudEhlaWdodD1udWxsLHRoaXMuZGlydHk9ITEsdGhpcy5zZWxlY3RGcm9tPW51bGwsdGhpcy5pbml0JiZ0aGlzLmluaXQoKSx0aGlzLnNldERhdGEodGhpcy5vcHRpb25zLmRhdGEpLHRoaXMuZWwuYmluZCgibW91c2Vtb3ZlIixmdW5jdGlvbihhKXt2YXIgYixkLGUsZixnO3JldHVybiBkPWMuZWwub2Zmc2V0KCksZz1hLnBhZ2VYLWQubGVmdCxjLnNlbGVjdEZyb20/KGI9Yy5kYXRhW2MuaGl0VGVzdChNYXRoLm1pbihnLGMuc2VsZWN0RnJvbSkpXS5feCxlPWMuZGF0YVtjLmhpdFRlc3QoTWF0aC5tYXgoZyxjLnNlbGVjdEZyb20pKV0uX3gsZj1lLWIsYy5zZWxlY3Rpb25SZWN0LmF0dHIoe3g6Yix3aWR0aDpmfSkpOmMuZmlyZSgiaG92ZXJtb3ZlIixnLGEucGFnZVktZC50b3ApfSksdGhpcy5lbC5iaW5kKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3JldHVybiBjLnNlbGVjdEZyb20mJihjLnNlbGVjdGlvblJlY3QuaGlkZSgpLGMuc2VsZWN0RnJvbT1udWxsKSxjLmZpcmUoImhvdmVyb3V0Iil9KSx0aGlzLmVsLmJpbmQoInRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWNoZW5kIixmdW5jdGlvbihhKXt2YXIgYixkO3JldHVybiBkPWEub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdfHxhLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0sYj1jLmVsLm9mZnNldCgpLGMuZmlyZSgiaG92ZXJtb3ZlIixkLnBhZ2VYLWIubGVmdCxkLnBhZ2VZLWIudG9wKX0pLHRoaXMuZWwuYmluZCgiY2xpY2siLGZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWMuZWwub2Zmc2V0KCksYy5maXJlKCJncmlkY2xpY2siLGEucGFnZVgtYi5sZWZ0LGEucGFnZVktYi50b3ApfSksdGhpcy5vcHRpb25zLnJhbmdlU2VsZWN0JiYodGhpcy5zZWxlY3Rpb25SZWN0PXRoaXMucmFwaGFlbC5yZWN0KDAsMCwwLHRoaXMuZWwuaW5uZXJIZWlnaHQoKSkuYXR0cih7ZmlsbDp0aGlzLm9wdGlvbnMucmFuZ2VTZWxlY3RDb2xvcixzdHJva2U6ITF9KS50b0JhY2soKS5oaWRlKCksdGhpcy5lbC5iaW5kKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWMuZWwub2Zmc2V0KCksYy5zdGFydFJhbmdlKGEucGFnZVgtYi5sZWZ0KX0pLHRoaXMuZWwuYmluZCgibW91c2V1cCIsZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIGI9Yy5lbC5vZmZzZXQoKSxjLmVuZFJhbmdlKGEucGFnZVgtYi5sZWZ0KSxjLmZpcmUoImhvdmVybW92ZSIsYS5wYWdlWC1iLmxlZnQsYS5wYWdlWS1iLnRvcCl9KSksdGhpcy
"<link href=\"data:text/css;charset-utf-8;base64,Lm1vcnJpcy1ob3Zlcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9Lm1vcnJpcy1ob3Zlci5tb3JyaXMtZGVmYXVsdC1zdHlsZXtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzo2cHg7Y29sb3I6IzY2NjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtib3JkZXI6c29saWQgMnB4IHJnYmEoMjMwLDIzMCwyMzAsMC44KTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O3RleHQtYWxpZ246Y2VudGVyfS5tb3JyaXMtaG92ZXIubW9ycmlzLWRlZmF1bHQtc3R5bGUgLm1vcnJpcy1ob3Zlci1yb3ctbGFiZWx7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MC4yNWVtIDB9Ci5tb3JyaXMtaG92ZXIubW9ycmlzLWRlZmF1bHQtc3R5bGUgLm1vcnJpcy1ob3Zlci1wb2ludHt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luOjAuMWVtIDB9Cg==\" rel=\"stylesheet\" />\n",
"<script title=\"morrisjs-binding\" src=\"data:application/javascript;base64,SFRNTFdpZGdldHMud2lkZ2V0KHsKCiAgbmFtZTogJ21vcnJpc2pzJywKCiAgdHlwZTogJ291dHB1dCcsCiAgCiAgZmFjdG9yeTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgIHZhciBtanM7CiAgICByZXR1cm4gewogICAgICByZW5kZXJWYWx1ZTogZnVuY3Rpb24oeCkgewogICAgICAgIHguZWxlbWVudCA9IGVsLmlkOwogICAgICAgIAogICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBjaGFydHMgaWYgYW55CiAgICAgICAgd2hpbGUgKGVsLmNoaWxkRWxlbWVudENvdW50ID4gMCkgewogICAgICAgICAgZWwucmVtb3ZlQ2hpbGQoZWwuY2hpbGRyZW5bMF0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBXb3JrYXJvdW5kIGlmIG9ubHkgb25lIHNlcmllcyBpcyBwbG90dGVkCiAgICAgICAgaWYgKCJ5a2V5cyIgaW4geCl7CiAgICAgICAgICBpZiAoeC55a2V5cy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpIHsKICAgICAgICAgICAgeC55a2V5cyA9IG5ldyBBcnJheSh4LnlrZXlzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh4LmxhYmVscy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpIHsKICAgICAgICAgICAgeC5sYWJlbHMgPSBuZXcgQXJyYXkoeC5sYWJlbHMpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBDcmVhdGUgdGhlIGdyYXBoICAKICAgICAgICBzd2l0Y2goeC50eXBlKXsKICAgICAgICAgIGNhc2UgIkxpbmUiOiAKICAgICAgICAgICAgbWpzID0gbmV3IE1vcnJpcy5MaW5lKHgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkFyZWEiOiAKICAgICAgICAgICAgbWpzID0gbmV3IE1vcnJpcy5BcmVhKHgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkJhciI6IAogICAgICAgICAgICBtanMgPSBuZXcgTW9ycmlzLkJhcih4KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJEb251dCI6CiAgICAgICAgICAgIG1qcyA9IG5ldyBNb3JyaXMuRG9udXQoeCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvLyBEcmF3IGl0CiAgICAgICAgbWpzLmRyYXcoKTsKICAgICAgfSwKICAgICAgCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24oeCwgd2lkdGgsIGhlaWdodCkgewogICAgICAgIAogICAgICB9LAogICAgICAKICAgICAgbWpzOiBtanMKICAgIH07CiAgfQp9KTsK\"></script>\n",
"\t</head>\n",
"\t<body>\n",
"\t\t<div id=\"htmlwidget-342318286d8191ba9239\" style=\"width:960px;height:500px;\" class=\"morrisjs html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-342318286d8191ba9239\">{\"x\":{\"data\":[{\"date\":\"1974-01\",\"data\":\"3035\"},{\"date\":\"1974-02\",\"data\":\"2552\"},{\"date\":\"1974-03\",\"data\":\"2704\"},{\"date\":\"1974-04\",\"data\":\"2554\"},{\"date\":\"1974-05\",\"data\":\"2014\"},{\"date\":\"1974-06\",\"data\":\"1655\"},{\"date\":\"1974-07\",\"data\":\"1721\"},{\"date\":\"1974-08\",\"data\":\"1524\"},{\"date\":\"1974-09\",\"data\":\"1596\"},{\"date\":\"1974-10\",\"data\":\"2074\"},{\"date\":\"1974-11\",\"data\":\"2199\"},{\"date\":\"1974-12\",\"data\":\"2512\"},{\"date\":\"1975-01\",\"data\":\"2933\"},{\"date\":\"1975-02\",\"data\":\"2889\"},{\"date\":\"1975-03\",\"data\":\"2938\"},{\"date\":\"1975-04\",\"data\":\"2497\"},{\"date\":\"1975-05\",\"data\":\"1870\"},{\"date\":\"1975-06\",\"data\":\"1726\"},{\"date\":\"1975-07\",\"data\":\"1607\"},{\"date\":\"1975-08\",\"data\":\"1545\"},{\"date\":\"1975-09\",\"data\":\"1396\"},{\"date\":\"1975-10\",\"data\":\"1787\"},{\"date\":\"1975-11\",\"data\":\"2076\"},{\"date\":\"1975-12\",\"data\":\"2837\"},{\"date\":\"1976-01\",\"data\":\"2787\"},{\"date\":\"1976-02\",\"data\":\"3891\"},{\"date\":\"1976-03\",\"data\":\"3179\"},{\"date\":\"1976-04\",\"data\":\"2011\"},{\"date\":\"1976-05\",\"data\":\"1636\"},{\"date\":\"1976-06\",\"data\":\"1580\"},{\"date\":\"1976-07\",\"data\":\"1489\"},{\"date\":\"1976-08\",\"data\":\"1300\"},{\"date\":\"1976-09\",\"data\":\"1356\"},{\"date\":\"1976-10\",\"data\":\"1653\"},{\"date\":\"1976-11\",\"data\":\"2013\"},{\"date\":\"1976-12\",\"data\":\"2823\"},{\"date\":\"1977-01\",\"data\":\"3102\"},{\"date\":\"1977-02\",\"data\":\"2294\"},{\"date\":\"1977-03\",\"data\":\"2385\"},{\"date\":\"1977-04\",\"data\":\"2444\"},{\"date\":\"1977-05\",\"data\":\"1748\"},{\"date\":\"1977-06\",\"data\":\"1554\"},{\"date\":\"1977-07\",\"data\":\"1498\"},{\"date\":\"1977-08\",\"data\":\"1361\"},{\"date\":\"1977-09\",\"data\":\"1346\"},{\"date\":\"1977-10\",\"data\":\"1564\"},{\"date\":\"1977-11\",\"data\":\"1640\"},{\"date\":\"1977-12\",\"data\":\"2293\"},{\"date\":\"1978-01\",\"data\":\"2815\"},{\"date\":\"1978-02\",\"data\":\"3137\"},{\"date\":\"1978-03\",\"data\":\"2679\"},{\"date\":\"1978-04\",\"data\":\"1969\"},{\"date\":\"1978-05\",\"data\":\"1870\"},{\"date\":\"1978-06\",\"data\":\"1633\"},{\"date\":\"1978-07\",\"data\":\"1529\"},{\"date\":\"1978-08\",\"data\":\"1366\"},{\"date\":\"1978-09\",\"data\":\"1357\"},{\"date\":\"1978-10\",\"data\":\"1570\"},{\"date\":\"1978-11\",\"data\":\"1535\"},{\"date\":\"1978-12\",\"data\":\"2491\"},{\"date\":\"1979-01\",\"data\":\"3084\"},{\"date\":\"1979-02\",\"data\":\"2605\"},{\"date\":\"1979-03\",\"data\":\"2573\"},{\"date\":\"1979-04\",\"data\":\"2143\"},{\"date\":\"1979-05\",\"data\":\"1693\"},{\"date\":\"1979-06\",\"data\":\"1504\"},{\"date\":\"1979-07\",\"data\":\"1461\"},{\"date\":\"1979-08\",\"data\":\"1354\"},{\"date\":\"1979-09\",\"data\":\"1333\"},{\"date\":\"1979-10\",\"data\":\"1492\"},{\"date\":\"1979-11\",\"data\":\"1781\"},{\"date\":\"1979-12\",\"data\":\"1915\"}],\"resize\":true,\"hideHover\":true,\"xkey\":\"date\",\"ykeys\":\"data\",\"labels\":\"data\",\"type\":\"Line\"},\"evals\":[],\"jsHooks\":[]}</script>\n",
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"morrisjs(ldeaths) %>% \n",
" mjsLine()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMyIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSkrMT49MH0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtmb3IoYiBpbiBhKXJldHVybiExO3JldHVybiEwfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiO2lmKCFhfHwib2JqZWN0IiE9PW0udHlwZShhKXx8YS5ub2RlVHlwZXx8bS5pc1dpbmRvdyhhKSlyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIWouY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhai5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9aWYoay5vd25MYXN0KWZvcihiIGluIGEpcmV0dXJuIGouY2FsbChhLGIpO2ZvcihiIGluIGEpO3JldHVybiB2b2lkIDA9PT1ifHxqLmNhbGwoYSxiKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9hKyIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE/aFtpLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihiKXtiJiZtLnRyaW0oYikmJihhLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKGIpe2EuZXZhbC5jYWxsKGEsYil9KShiKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UobywibXMtIikucmVwbGFjZShwLHEpfSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9MCxmPWEubGVuZ3RoLGc9cihhKTtpZihjKXtpZihnKXtmb3IoO2Y+ZTtlKyspaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgZm9yKGUgaW4gYSlpZihkPWIuYXBwbHkoYVtlXSxjKSxkP
"<script title=\"raphael\" src=\"data:application/javascript;base64,Ly8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIFxcCi8vIOKUgiBSYXBoYcOrbCAyLjEuNCAtIEphdmFTY3JpcHQgVmVjdG9yIExpYnJhcnkgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIENvcHlyaWdodCDCqSAyMDA4LTIwMTIgRG1pdHJ5IEJhcmFub3Zza2l5IChodHRwOi8vcmFwaGFlbGpzLmNvbSkgICAg4pSCIFxcCi8vIOKUgiBDb3B5cmlnaHQgwqkgMjAwOC0yMDEyIFNlbmNoYSBMYWJzIChodHRwOi8vc2VuY2hhLmNvbSkgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKGh0dHA6Ly9yYXBoYWVsanMuY29tL2xpY2Vuc2UuaHRtbCkgbGljZW5zZS7ilIIgXFwKLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIFxcCiFmdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJldmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGIoKX0pOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1iKCk6YS5ldmU9YigpfSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGEsYixjPSIwLjQuMiIsZD0iaGFzT3duUHJvcGVydHkiLGU9L1tcLlwvXS8sZj0iKiIsZz1mdW5jdGlvbigpe30saD1mdW5jdGlvbihhLGIpe3JldHVybiBhLWJ9LGk9e246e319LGo9ZnVuY3Rpb24oYyxkKXtjPVN0cmluZyhjKTt2YXIgZSxmPWIsZz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMiksaT1qLmxpc3RlbmVycyhjKSxrPTAsbD1bXSxtPXt9LG49W10sbz1hO2E9YyxiPTA7Zm9yKHZhciBwPTAscT1pLmxlbmd0aDtxPnA7cCsrKSJ6SW5kZXgiaW4gaVtwXSYmKGwucHVzaChpW3BdLnpJbmRleCksaVtwXS56SW5kZXg8MCYmKG1baVtwXS56SW5kZXhdPWlbcF0pKTtmb3IobC5zb3J0KGgpO2xba108MDspaWYoZT1tW2xbaysrXV0sbi5wdXNoKGUuYXBwbHkoZCxnKSksYilyZXR1cm4gYj1mLG47Zm9yKHA9MDtxPnA7cCsrKWlmKGU9aVtwXSwiekluZGV4ImluIGUpaWYoZS56SW5kZXg9PWxba10pe2lmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7ZG8gaWYoaysrLGU9bVtsW2tdXSxlJiZuLnB1c2goZS5hcHBseShkLGcpKSxiKWJyZWFrO3doaWxlKGUpfWVsc2UgbVtlLnpJbmRleF09ZTtlbHNlIGlmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7cmV0dXJuIGI9ZixhPW8sbi5sZW5ndGg/bjpudWxsfTtyZXR1cm4gai5fZXZlbnRzPWksai5saXN0ZW5lcnM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGcsaCxqLGssbCxtPWEuc3BsaXQoZSksbj1pLG89W25dLHA9W107Zm9yKGc9MCxoPW0ubGVuZ3RoO2g+ZztnKyspe2ZvcihsPVtdLGo9MCxrPW8ubGVuZ3RoO2s+ajtqKyspZm9yKG49b1tqXS5uLGM9W25bbVtnXV0sbltmXV0sZD0yO2QtLTspYj1jW2RdLGImJihsLnB1c2goYikscD1wLmNvbmNhdChiLmZ8fFtdKSk7bz1sfXJldHVybiBwfSxqLm9uPWZ1bmN0aW9uKGEsYil7aWYoYT1TdHJpbmcoYSksImZ1bmN0aW9uIiE9dHlwZW9mIGIpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFyIGM9YS5zcGxpdChlKSxkPWksZj0wLGg9Yy5sZW5ndGg7aD5mO2YrKylkPWQubixkPWQuaGFzT3duUHJvcGVydHkoY1tmXSkmJmRbY1tmXV18fChkW2NbZl1dPXtuOnt9fSk7Zm9yKGQuZj1kLmZ8fFtdLGY9MCxoPWQuZi5sZW5ndGg7aD5mO2YrKylpZihkLmZbZl09PWIpcmV0dXJuIGc7cmV0dXJuIGQuZi5wdXNoKGIpLGZ1bmN0aW9uKGEpeythPT0rYSYmKGIuekluZGV4PSthKX19LGouZj1mdW5jdGlvbihhKXt2YXIgYj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXtqLmFwcGx5KG51bGwsW2EsbnVsbF0uY29uY2F0KGIpLmNvbmNhdChbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSkpfX0sai5zdG9wPWZ1bmN0aW9uKCl7Yj0xfSxqLm50PWZ1bmN0aW9uKGIpe3JldHVybiBiP25ldyBSZWdFeHAoIig/OlxcLnxcXC98XikiK2IrIig/OlxcLnxcXC98JCkiKS50ZXN0KGEpOmF9LGoubnRzPWZ1bmN0aW9uKCl7cmV0dXJuIGEuc3BsaXQoZSl9LGoub2ZmPWoudW5iaW5kPWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIHZvaWQoai5fZXZlbnRzPWk9e246e319KTt2YXIgYyxnLGgsayxsLG0sbixvPWEuc3BsaXQoZSkscD1baV07Zm9yKGs9MCxsPW8ubGVuZ3RoO2w+aztrKyspZm9yKG09MDttPHAubGVuZ3RoO20rPWgubGVuZ3RoLTIpe2lmKGg9W20sMV0sYz1wW21d
"<script title=\"morris.js\" src=\"data:application/javascript;base64,LyogQGxpY2Vuc2UKbW9ycmlzLmpzIHYwLjUuMApDb3B5cmlnaHQgMjAxNCBPbGx5IFNtaXRoIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMi1DbGF1c2UgTGljZW5zZS4KKi8KKGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZT1bXS5zbGljZSxmPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX0sZz17fS5oYXNPd25Qcm9wZXJ0eSxoPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe3RoaXMuY29uc3RydWN0b3I9YX1mb3IodmFyIGQgaW4gYilnLmNhbGwoYixkKSYmKGFbZF09YltkXSk7cmV0dXJuIGMucHJvdG90eXBlPWIucHJvdG90eXBlLGEucHJvdG90eXBlPW5ldyBjLGEuX19zdXBlcl9fPWIucHJvdG90eXBlLGF9LGk9W10uaW5kZXhPZnx8ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz10aGlzLmxlbmd0aDtjPmI7YisrKWlmKGIgaW4gdGhpcyYmdGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9O2I9d2luZG93Lk1vcnJpcz17fSxhPWpRdWVyeSxiLkV2ZW50RW1pdHRlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXt9cmV0dXJuIGEucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PXRoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPXt9KSxudWxsPT10aGlzLmhhbmRsZXJzW2FdJiYodGhpcy5oYW5kbGVyc1thXT1bXSksdGhpcy5oYW5kbGVyc1thXS5wdXNoKGIpLHRoaXN9LGEucHJvdG90eXBlLmZpcmU9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxmLGcsaDtpZihjPWFyZ3VtZW50c1swXSxhPTI8PWFyZ3VtZW50cy5sZW5ndGg/ZS5jYWxsKGFyZ3VtZW50cywxKTpbXSxudWxsIT10aGlzLmhhbmRsZXJzJiZudWxsIT10aGlzLmhhbmRsZXJzW2NdKXtmb3IoZz10aGlzLmhhbmRsZXJzW2NdLGg9W10sZD0wLGY9Zy5sZW5ndGg7Zj5kO2QrKyliPWdbZF0saC5wdXNoKGIuYXBwbHkobnVsbCxhKSk7cmV0dXJuIGh9fSxhfSgpLGIuY29tbWFzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO3JldHVybiBudWxsIT1hPyhkPTA+YT8iLSI6IiIsYj1NYXRoLmFicyhhKSxjPU1hdGguZmxvb3IoYikudG9GaXhlZCgwKSxkKz1jLnJlcGxhY2UoLyg/PSg/OlxkezN9KSskKSg/IV4pL2csIiwiKSxlPWIudG9TdHJpbmcoKSxlLmxlbmd0aD5jLmxlbmd0aCYmKGQrPWUuc2xpY2UoYy5sZW5ndGgpKSxkKToiLSJ9LGIucGFkMj1mdW5jdGlvbihhKXtyZXR1cm4oMTA+YT8iMCI6IiIpK2F9LGIuR3JpZD1mdW5jdGlvbihjKXtmdW5jdGlvbiBkKGIpe3RoaXMucmVzaXplSGFuZGxlcj1mKHRoaXMucmVzaXplSGFuZGxlcix0aGlzKTt2YXIgYz10aGlzO2lmKHRoaXMuZWw9InN0cmluZyI9PXR5cGVvZiBiLmVsZW1lbnQ/YShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChiLmVsZW1lbnQpKTphKGIuZWxlbWVudCksbnVsbD09dGhpcy5lbHx8MD09PXRoaXMuZWwubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiR3JhcGggY29udGFpbmVyIGVsZW1lbnQgbm90IGZvdW5kIik7InN0YXRpYyI9PT10aGlzLmVsLmNzcygicG9zaXRpb24iKSYmdGhpcy5lbC5jc3MoInBvc2l0aW9uIiwicmVsYXRpdmUiKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5ncmlkRGVmYXVsdHMsdGhpcy5kZWZhdWx0c3x8e30sYiksInN0cmluZyI9PXR5cGVvZiB0aGlzLm9wdGlvbnMudW5pdHMmJih0aGlzLm9wdGlvbnMucG9zdFVuaXRzPWIudW5pdHMpLHRoaXMucmFwaGFlbD1uZXcgUmFwaGFlbCh0aGlzLmVsWzBdKSx0aGlzLmVsZW1lbnRXaWR0aD1udWxsLHRoaXMuZWxlbWVudEhlaWdodD1udWxsLHRoaXMuZGlydHk9ITEsdGhpcy5zZWxlY3RGcm9tPW51bGwsdGhpcy5pbml0JiZ0aGlzLmluaXQoKSx0aGlzLnNldERhdGEodGhpcy5vcHRpb25zLmRhdGEpLHRoaXMuZWwuYmluZCgibW91c2Vtb3ZlIixmdW5jdGlvbihhKXt2YXIgYixkLGUsZixnO3JldHVybiBkPWMuZWwub2Zmc2V0KCksZz1hLnBhZ2VYLWQubGVmdCxjLnNlbGVjdEZyb20/KGI9Yy5kYXRhW2MuaGl0VGVzdChNYXRoLm1pbihnLGMuc2VsZWN0RnJvbSkpXS5feCxlPWMuZGF0YVtjLmhpdFRlc3QoTWF0aC5tYXgoZyxjLnNlbGVjdEZyb20pKV0uX3gsZj1lLWIsYy5zZWxlY3Rpb25SZWN0LmF0dHIoe3g6Yix3aWR0aDpmfSkpOmMuZmlyZSgiaG92ZXJtb3ZlIixnLGEucGFnZVktZC50b3ApfSksdGhpcy5lbC5iaW5kKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3JldHVybiBjLnNlbGVjdEZyb20mJihjLnNlbGVjdGlvblJlY3QuaGlkZSgpLGMuc2VsZWN0RnJvbT1udWxsKSxjLmZpcmUoImhvdmVyb3V0Iil9KSx0aGlzLmVsLmJpbmQoInRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWNoZW5kIixmdW5jdGlvbihhKXt2YXIgYixkO3JldHVybiBkPWEub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdfHxhLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0sYj1jLmVsLm9mZnNldCgpLGMuZmlyZSgiaG92ZXJtb3ZlIixkLnBhZ2VYLWIubGVmdCxkLnBhZ2VZLWIudG9wKX0pLHRoaXMuZWwuYmluZCgiY2xpY2siLGZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWMuZWwub2Zmc2V0KCksYy5maXJlKCJncmlkY2xpY2siLGEucGFnZVgtYi5sZWZ0LGEucGFnZVktYi50b3ApfSksdGhpcy5vcHRpb25zLnJhbmdlU2VsZWN0JiYodGhpcy5zZWxlY3Rpb25SZWN0PXRoaXMucmFwaGFlbC5yZWN0KDAsMCwwLHRoaXMuZWwuaW5uZXJIZWlnaHQoKSkuYXR0cih7ZmlsbDp0aGlzLm9wdGlvbnMucmFuZ2VTZWxlY3RDb2xvcixzdHJva2U6ITF9KS50b0JhY2soKS5oaWRlKCksdGhpcy5lbC5iaW5kKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWMuZWwub2Zmc2V0KCksYy5zdGFydFJhbmdlKGEucGFnZVgtYi5sZWZ0KX0pLHRoaXMuZWwuYmluZCgibW91c2V1cCIsZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIGI9Yy5lbC5vZmZzZXQoKSxjLmVuZFJhbmdlKGEucGFnZVgtYi5sZWZ0KSxjLmZpcmUoImhvdmVybW92ZSIsYS5wYWdlWC1iLmxlZnQsYS5wYWdlWS1iLnRvcCl9KSksdGhpcy
"<link href=\"data:text/css;charset-utf-8;base64,Lm1vcnJpcy1ob3Zlcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9Lm1vcnJpcy1ob3Zlci5tb3JyaXMtZGVmYXVsdC1zdHlsZXtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzo2cHg7Y29sb3I6IzY2NjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtib3JkZXI6c29saWQgMnB4IHJnYmEoMjMwLDIzMCwyMzAsMC44KTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O3RleHQtYWxpZ246Y2VudGVyfS5tb3JyaXMtaG92ZXIubW9ycmlzLWRlZmF1bHQtc3R5bGUgLm1vcnJpcy1ob3Zlci1yb3ctbGFiZWx7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MC4yNWVtIDB9Ci5tb3JyaXMtaG92ZXIubW9ycmlzLWRlZmF1bHQtc3R5bGUgLm1vcnJpcy1ob3Zlci1wb2ludHt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luOjAuMWVtIDB9Cg==\" rel=\"stylesheet\" />\n",
"<script title=\"morrisjs-binding\" src=\"data:application/javascript;base64,SFRNTFdpZGdldHMud2lkZ2V0KHsKCiAgbmFtZTogJ21vcnJpc2pzJywKCiAgdHlwZTogJ291dHB1dCcsCiAgCiAgZmFjdG9yeTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgIHZhciBtanM7CiAgICByZXR1cm4gewogICAgICByZW5kZXJWYWx1ZTogZnVuY3Rpb24oeCkgewogICAgICAgIHguZWxlbWVudCA9IGVsLmlkOwogICAgICAgIAogICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBjaGFydHMgaWYgYW55CiAgICAgICAgd2hpbGUgKGVsLmNoaWxkRWxlbWVudENvdW50ID4gMCkgewogICAgICAgICAgZWwucmVtb3ZlQ2hpbGQoZWwuY2hpbGRyZW5bMF0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBXb3JrYXJvdW5kIGlmIG9ubHkgb25lIHNlcmllcyBpcyBwbG90dGVkCiAgICAgICAgaWYgKCJ5a2V5cyIgaW4geCl7CiAgICAgICAgICBpZiAoeC55a2V5cy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpIHsKICAgICAgICAgICAgeC55a2V5cyA9IG5ldyBBcnJheSh4LnlrZXlzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh4LmxhYmVscy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpIHsKICAgICAgICAgICAgeC5sYWJlbHMgPSBuZXcgQXJyYXkoeC5sYWJlbHMpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBDcmVhdGUgdGhlIGdyYXBoICAKICAgICAgICBzd2l0Y2goeC50eXBlKXsKICAgICAgICAgIGNhc2UgIkxpbmUiOiAKICAgICAgICAgICAgbWpzID0gbmV3IE1vcnJpcy5MaW5lKHgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkFyZWEiOiAKICAgICAgICAgICAgbWpzID0gbmV3IE1vcnJpcy5BcmVhKHgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkJhciI6IAogICAgICAgICAgICBtanMgPSBuZXcgTW9ycmlzLkJhcih4KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJEb251dCI6CiAgICAgICAgICAgIG1qcyA9IG5ldyBNb3JyaXMuRG9udXQoeCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvLyBEcmF3IGl0CiAgICAgICAgbWpzLmRyYXcoKTsKICAgICAgfSwKICAgICAgCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24oeCwgd2lkdGgsIGhlaWdodCkgewogICAgICAgIAogICAgICB9LAogICAgICAKICAgICAgbWpzOiBtanMKICAgIH07CiAgfQp9KTsK\"></script>\n",
"\t</head>\n",
"\t<body>\n",
"\t\t<div id=\"htmlwidget-86b750fab7f3cf71db59\" style=\"width:960px;height:500px;\" class=\"morrisjs html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-86b750fab7f3cf71db59\">{\"x\":{\"data\":[{\"date\":\"1974-01\",\"fdeaths\":\"901\",\"mdeaths\":\"2134\"},{\"date\":\"1974-02\",\"fdeaths\":\"689\",\"mdeaths\":\"1863\"},{\"date\":\"1974-03\",\"fdeaths\":\"827\",\"mdeaths\":\"1877\"},{\"date\":\"1974-04\",\"fdeaths\":\"677\",\"mdeaths\":\"1877\"},{\"date\":\"1974-05\",\"fdeaths\":\"522\",\"mdeaths\":\"1492\"},{\"date\":\"1974-06\",\"fdeaths\":\"406\",\"mdeaths\":\"1249\"},{\"date\":\"1974-07\",\"fdeaths\":\"441\",\"mdeaths\":\"1280\"},{\"date\":\"1974-08\",\"fdeaths\":\"393\",\"mdeaths\":\"1131\"},{\"date\":\"1974-09\",\"fdeaths\":\"387\",\"mdeaths\":\"1209\"},{\"date\":\"1974-10\",\"fdeaths\":\"582\",\"mdeaths\":\"1492\"},{\"date\":\"1974-11\",\"fdeaths\":\"578\",\"mdeaths\":\"1621\"},{\"date\":\"1974-12\",\"fdeaths\":\"666\",\"mdeaths\":\"1846\"},{\"date\":\"1975-01\",\"fdeaths\":\"830\",\"mdeaths\":\"2103\"},{\"date\":\"1975-02\",\"fdeaths\":\"752\",\"mdeaths\":\"2137\"},{\"date\":\"1975-03\",\"fdeaths\":\"785\",\"mdeaths\":\"2153\"},{\"date\":\"1975-04\",\"fdeaths\":\"664\",\"mdeaths\":\"1833\"},{\"date\":\"1975-05\",\"fdeaths\":\"467\",\"mdeaths\":\"1403\"},{\"date\":\"1975-06\",\"fdeaths\":\"438\",\"mdeaths\":\"1288\"},{\"date\":\"1975-07\",\"fdeaths\":\"421\",\"mdeaths\":\"1186\"},{\"date\":\"1975-08\",\"fdeaths\":\"412\",\"mdeaths\":\"1133\"},{\"date\":\"1975-09\",\"fdeaths\":\"343\",\"mdeaths\":\"1053\"},{\"date\":\"1975-10\",\"fdeaths\":\"440\",\"mdeaths\":\"1347\"},{\"date\":\"1975-11\",\"fdeaths\":\"531\",\"mdeaths\":\"1545\"},{\"date\":\"1975-12\",\"fdeaths\":\"771\",\"mdeaths\":\"2066\"},{\"date\":\"1976-01\",\"fdeaths\":\"767\",\"mdeaths\":\"2020\"},{\"date\":\"1976-02\",\"fdeaths\":\"1141\",\"mdeaths\":\"2750\"},{\"date\":\"1976-03\",\"fdeaths\":\"896\",\"mdeaths\":\"2283\"},{\"date\":\"1976-04\",\"fdeaths\":\"532\",\"mdeaths\":\"1479\"},{\"date\":\"1976-05\",\"fdeaths\":\"447\",\"mdeaths\":\"1189\"},{\"date\":\"1976-06\",\"fdeaths\":\"420\",\"mdeaths\":\"1160\"},{\"date\":\"1976-07\",\"fdeaths\":\"376\",\"mdeaths\":\"1113\"},{\"date\":\"1976-08\",\"fdeaths\":\"330\",\"mdeaths\":\"970\"},{\"date\":\"1976-09\",\"fdeaths\":\"357\",\"mdeaths\":\"999\"},{\"date\":\"1976-10\",\"fdeaths\":\"445\",\"mdeaths\":\"1208\"},{\"date\":\"1976-11\",\"fdeaths\":\"546\",\"mdeaths\":\"1467\"},{\"date\":\"1976-12\",\"fdeaths\":\"764\",\"mdeaths\":\"2059\"},{\"date\":\"1977-01\",\"fdeaths\":\"862\",\"mdeaths\":\"2240\"},{\"date\":\"1977-02\",\"fdeaths\":\"660\",\"mdeaths\":\"1634\"},{\"date\":\"1977-03\",\"fdeaths\":\"663\",\"mdeaths\":\"1722\"},{\"date\":\"1977-04\",\"fdeaths\":\"643\",\"mdeaths\":\"1801\"},{\"date\":\"1977-05\",\"fdeaths\":\"502\",\"mdeaths\":\"1246\"},{\"date\":\"1977-06\",\"fdeaths\":\"392\",\"mdeaths\":\"1162\"},{\"date\":\"1977-07\",\"fdeaths\":\"411\",\"mdeaths\":\"1087\"},{\"date\":\"1977-08\",\"fdeaths\":\"348\",\"mdeaths\":\"1013\"},{\"date\":\"1977-09\",\"fdeaths\":\"387\",\"mdeaths\":\"959\"},{\"date\":\"1977-10\",\"fdeaths\":\"385\",\"mdeaths\":\"1179\"},{\"date\":\"1977-11\",\"fdeaths\":\"411\",\"mdeaths\":\"1229\"},{\"date\":\"1977-12\",\"fdeaths\":\"638\",\"mdeaths\":\"1655\"},{\"date\":\"1978-01\",\"fdeaths\":\"796\",\"mdeaths\":\"2019\"},{\"date\":\"1978-02\",\"fdeaths\":\"853\",\"mdeaths\":\"2284\"},{\"date\":\"1978-03\",\"fdeaths\":\"737\",\"mdeaths\":\"1942\"},{\"date\":\"1978-04\",\"fdeaths\":\"546\",\"mdeaths\":\"1423\"},{\"date\":\"1978-05\",\"fdeaths\":\"530\",\"mdeaths\":\"1340\"},{\"date\":\"1978-06\",\"fdeaths\":\"446\",\"mdeaths\":\"1187\"},{\"date\":\"1978-07\",\"fdeaths\":\"431\",\"mdeaths\":\"1098\"},{\"date\":\"1978-08\",\"fdeaths\":\"362\",\"mdeaths\":\"1004\"},{\"date\":\"1978-09\",\"fdeaths\":\"387\",\"mdeaths\":\"970\"},{\"date\":\"1978-10\",\"fdeaths\":\"430\",\"mdeaths\":\"1140\"},{\"date\":\"1978-11\",\"fdeaths\":\"425\",\"mdeaths\":\"1110\"},{\"date\":\"1978-12\",\"fdeaths\":\"679\",\"mdeaths\":\"1812\"},{\"date\":\"1979-01\",\"fdeaths\":\"821\",\"mdeaths\":\"2263\"},{\"date\":\"1979-02\",\"fdeaths\":\"785\",\"mdeaths\":\"1820\"},{\"date\":\"1979-03\",\"f
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"morrisjs(ts.union(fdeaths, mdeaths)) %>% \n",
" mjsLine()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMyIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSkrMT49MH0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtmb3IoYiBpbiBhKXJldHVybiExO3JldHVybiEwfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiO2lmKCFhfHwib2JqZWN0IiE9PW0udHlwZShhKXx8YS5ub2RlVHlwZXx8bS5pc1dpbmRvdyhhKSlyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIWouY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhai5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9aWYoay5vd25MYXN0KWZvcihiIGluIGEpcmV0dXJuIGouY2FsbChhLGIpO2ZvcihiIGluIGEpO3JldHVybiB2b2lkIDA9PT1ifHxqLmNhbGwoYSxiKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9hKyIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE/aFtpLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihiKXtiJiZtLnRyaW0oYikmJihhLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKGIpe2EuZXZhbC5jYWxsKGEsYil9KShiKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UobywibXMtIikucmVwbGFjZShwLHEpfSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9MCxmPWEubGVuZ3RoLGc9cihhKTtpZihjKXtpZihnKXtmb3IoO2Y+ZTtlKyspaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgZm9yKGUgaW4gYSlpZihkPWIuYXBwbHkoYVtlXSxjKSxkP
"<script title=\"raphael\" src=\"data:application/javascript;base64,Ly8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIFxcCi8vIOKUgiBSYXBoYcOrbCAyLjEuNCAtIEphdmFTY3JpcHQgVmVjdG9yIExpYnJhcnkgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIENvcHlyaWdodCDCqSAyMDA4LTIwMTIgRG1pdHJ5IEJhcmFub3Zza2l5IChodHRwOi8vcmFwaGFlbGpzLmNvbSkgICAg4pSCIFxcCi8vIOKUgiBDb3B5cmlnaHQgwqkgMjAwOC0yMDEyIFNlbmNoYSBMYWJzIChodHRwOi8vc2VuY2hhLmNvbSkgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKGh0dHA6Ly9yYXBoYWVsanMuY29tL2xpY2Vuc2UuaHRtbCkgbGljZW5zZS7ilIIgXFwKLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIFxcCiFmdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJldmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGIoKX0pOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1iKCk6YS5ldmU9YigpfSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGEsYixjPSIwLjQuMiIsZD0iaGFzT3duUHJvcGVydHkiLGU9L1tcLlwvXS8sZj0iKiIsZz1mdW5jdGlvbigpe30saD1mdW5jdGlvbihhLGIpe3JldHVybiBhLWJ9LGk9e246e319LGo9ZnVuY3Rpb24oYyxkKXtjPVN0cmluZyhjKTt2YXIgZSxmPWIsZz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMiksaT1qLmxpc3RlbmVycyhjKSxrPTAsbD1bXSxtPXt9LG49W10sbz1hO2E9YyxiPTA7Zm9yKHZhciBwPTAscT1pLmxlbmd0aDtxPnA7cCsrKSJ6SW5kZXgiaW4gaVtwXSYmKGwucHVzaChpW3BdLnpJbmRleCksaVtwXS56SW5kZXg8MCYmKG1baVtwXS56SW5kZXhdPWlbcF0pKTtmb3IobC5zb3J0KGgpO2xba108MDspaWYoZT1tW2xbaysrXV0sbi5wdXNoKGUuYXBwbHkoZCxnKSksYilyZXR1cm4gYj1mLG47Zm9yKHA9MDtxPnA7cCsrKWlmKGU9aVtwXSwiekluZGV4ImluIGUpaWYoZS56SW5kZXg9PWxba10pe2lmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7ZG8gaWYoaysrLGU9bVtsW2tdXSxlJiZuLnB1c2goZS5hcHBseShkLGcpKSxiKWJyZWFrO3doaWxlKGUpfWVsc2UgbVtlLnpJbmRleF09ZTtlbHNlIGlmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7cmV0dXJuIGI9ZixhPW8sbi5sZW5ndGg/bjpudWxsfTtyZXR1cm4gai5fZXZlbnRzPWksai5saXN0ZW5lcnM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGcsaCxqLGssbCxtPWEuc3BsaXQoZSksbj1pLG89W25dLHA9W107Zm9yKGc9MCxoPW0ubGVuZ3RoO2g+ZztnKyspe2ZvcihsPVtdLGo9MCxrPW8ubGVuZ3RoO2s+ajtqKyspZm9yKG49b1tqXS5uLGM9W25bbVtnXV0sbltmXV0sZD0yO2QtLTspYj1jW2RdLGImJihsLnB1c2goYikscD1wLmNvbmNhdChiLmZ8fFtdKSk7bz1sfXJldHVybiBwfSxqLm9uPWZ1bmN0aW9uKGEsYil7aWYoYT1TdHJpbmcoYSksImZ1bmN0aW9uIiE9dHlwZW9mIGIpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFyIGM9YS5zcGxpdChlKSxkPWksZj0wLGg9Yy5sZW5ndGg7aD5mO2YrKylkPWQubixkPWQuaGFzT3duUHJvcGVydHkoY1tmXSkmJmRbY1tmXV18fChkW2NbZl1dPXtuOnt9fSk7Zm9yKGQuZj1kLmZ8fFtdLGY9MCxoPWQuZi5sZW5ndGg7aD5mO2YrKylpZihkLmZbZl09PWIpcmV0dXJuIGc7cmV0dXJuIGQuZi5wdXNoKGIpLGZ1bmN0aW9uKGEpeythPT0rYSYmKGIuekluZGV4PSthKX19LGouZj1mdW5jdGlvbihhKXt2YXIgYj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXtqLmFwcGx5KG51bGwsW2EsbnVsbF0uY29uY2F0KGIpLmNvbmNhdChbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSkpfX0sai5zdG9wPWZ1bmN0aW9uKCl7Yj0xfSxqLm50PWZ1bmN0aW9uKGIpe3JldHVybiBiP25ldyBSZWdFeHAoIig/OlxcLnxcXC98XikiK2IrIig/OlxcLnxcXC98JCkiKS50ZXN0KGEpOmF9LGoubnRzPWZ1bmN0aW9uKCl7cmV0dXJuIGEuc3BsaXQoZSl9LGoub2ZmPWoudW5iaW5kPWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIHZvaWQoai5fZXZlbnRzPWk9e246e319KTt2YXIgYyxnLGgsayxsLG0sbixvPWEuc3BsaXQoZSkscD1baV07Zm9yKGs9MCxsPW8ubGVuZ3RoO2w+aztrKyspZm9yKG09MDttPHAubGVuZ3RoO20rPWgubGVuZ3RoLTIpe2lmKGg9W20sMV0sYz1wW21d
"<script title=\"morris.js\" src=\"data:application/javascript;base64,LyogQGxpY2Vuc2UKbW9ycmlzLmpzIHYwLjUuMApDb3B5cmlnaHQgMjAxNCBPbGx5IFNtaXRoIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMi1DbGF1c2UgTGljZW5zZS4KKi8KKGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZT1bXS5zbGljZSxmPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX0sZz17fS5oYXNPd25Qcm9wZXJ0eSxoPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe3RoaXMuY29uc3RydWN0b3I9YX1mb3IodmFyIGQgaW4gYilnLmNhbGwoYixkKSYmKGFbZF09YltkXSk7cmV0dXJuIGMucHJvdG90eXBlPWIucHJvdG90eXBlLGEucHJvdG90eXBlPW5ldyBjLGEuX19zdXBlcl9fPWIucHJvdG90eXBlLGF9LGk9W10uaW5kZXhPZnx8ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz10aGlzLmxlbmd0aDtjPmI7YisrKWlmKGIgaW4gdGhpcyYmdGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9O2I9d2luZG93Lk1vcnJpcz17fSxhPWpRdWVyeSxiLkV2ZW50RW1pdHRlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXt9cmV0dXJuIGEucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PXRoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPXt9KSxudWxsPT10aGlzLmhhbmRsZXJzW2FdJiYodGhpcy5oYW5kbGVyc1thXT1bXSksdGhpcy5oYW5kbGVyc1thXS5wdXNoKGIpLHRoaXN9LGEucHJvdG90eXBlLmZpcmU9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxmLGcsaDtpZihjPWFyZ3VtZW50c1swXSxhPTI8PWFyZ3VtZW50cy5sZW5ndGg/ZS5jYWxsKGFyZ3VtZW50cywxKTpbXSxudWxsIT10aGlzLmhhbmRsZXJzJiZudWxsIT10aGlzLmhhbmRsZXJzW2NdKXtmb3IoZz10aGlzLmhhbmRsZXJzW2NdLGg9W10sZD0wLGY9Zy5sZW5ndGg7Zj5kO2QrKyliPWdbZF0saC5wdXNoKGIuYXBwbHkobnVsbCxhKSk7cmV0dXJuIGh9fSxhfSgpLGIuY29tbWFzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO3JldHVybiBudWxsIT1hPyhkPTA+YT8iLSI6IiIsYj1NYXRoLmFicyhhKSxjPU1hdGguZmxvb3IoYikudG9GaXhlZCgwKSxkKz1jLnJlcGxhY2UoLyg/PSg/OlxkezN9KSskKSg/IV4pL2csIiwiKSxlPWIudG9TdHJpbmcoKSxlLmxlbmd0aD5jLmxlbmd0aCYmKGQrPWUuc2xpY2UoYy5sZW5ndGgpKSxkKToiLSJ9LGIucGFkMj1mdW5jdGlvbihhKXtyZXR1cm4oMTA+YT8iMCI6IiIpK2F9LGIuR3JpZD1mdW5jdGlvbihjKXtmdW5jdGlvbiBkKGIpe3RoaXMucmVzaXplSGFuZGxlcj1mKHRoaXMucmVzaXplSGFuZGxlcix0aGlzKTt2YXIgYz10aGlzO2lmKHRoaXMuZWw9InN0cmluZyI9PXR5cGVvZiBiLmVsZW1lbnQ/YShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChiLmVsZW1lbnQpKTphKGIuZWxlbWVudCksbnVsbD09dGhpcy5lbHx8MD09PXRoaXMuZWwubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiR3JhcGggY29udGFpbmVyIGVsZW1lbnQgbm90IGZvdW5kIik7InN0YXRpYyI9PT10aGlzLmVsLmNzcygicG9zaXRpb24iKSYmdGhpcy5lbC5jc3MoInBvc2l0aW9uIiwicmVsYXRpdmUiKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5ncmlkRGVmYXVsdHMsdGhpcy5kZWZhdWx0c3x8e30sYiksInN0cmluZyI9PXR5cGVvZiB0aGlzLm9wdGlvbnMudW5pdHMmJih0aGlzLm9wdGlvbnMucG9zdFVuaXRzPWIudW5pdHMpLHRoaXMucmFwaGFlbD1uZXcgUmFwaGFlbCh0aGlzLmVsWzBdKSx0aGlzLmVsZW1lbnRXaWR0aD1udWxsLHRoaXMuZWxlbWVudEhlaWdodD1udWxsLHRoaXMuZGlydHk9ITEsdGhpcy5zZWxlY3RGcm9tPW51bGwsdGhpcy5pbml0JiZ0aGlzLmluaXQoKSx0aGlzLnNldERhdGEodGhpcy5vcHRpb25zLmRhdGEpLHRoaXMuZWwuYmluZCgibW91c2Vtb3ZlIixmdW5jdGlvbihhKXt2YXIgYixkLGUsZixnO3JldHVybiBkPWMuZWwub2Zmc2V0KCksZz1hLnBhZ2VYLWQubGVmdCxjLnNlbGVjdEZyb20/KGI9Yy5kYXRhW2MuaGl0VGVzdChNYXRoLm1pbihnLGMuc2VsZWN0RnJvbSkpXS5feCxlPWMuZGF0YVtjLmhpdFRlc3QoTWF0aC5tYXgoZyxjLnNlbGVjdEZyb20pKV0uX3gsZj1lLWIsYy5zZWxlY3Rpb25SZWN0LmF0dHIoe3g6Yix3aWR0aDpmfSkpOmMuZmlyZSgiaG92ZXJtb3ZlIixnLGEucGFnZVktZC50b3ApfSksdGhpcy5lbC5iaW5kKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3JldHVybiBjLnNlbGVjdEZyb20mJihjLnNlbGVjdGlvblJlY3QuaGlkZSgpLGMuc2VsZWN0RnJvbT1udWxsKSxjLmZpcmUoImhvdmVyb3V0Iil9KSx0aGlzLmVsLmJpbmQoInRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWNoZW5kIixmdW5jdGlvbihhKXt2YXIgYixkO3JldHVybiBkPWEub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdfHxhLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0sYj1jLmVsLm9mZnNldCgpLGMuZmlyZSgiaG92ZXJtb3ZlIixkLnBhZ2VYLWIubGVmdCxkLnBhZ2VZLWIudG9wKX0pLHRoaXMuZWwuYmluZCgiY2xpY2siLGZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWMuZWwub2Zmc2V0KCksYy5maXJlKCJncmlkY2xpY2siLGEucGFnZVgtYi5sZWZ0LGEucGFnZVktYi50b3ApfSksdGhpcy5vcHRpb25zLnJhbmdlU2VsZWN0JiYodGhpcy5zZWxlY3Rpb25SZWN0PXRoaXMucmFwaGFlbC5yZWN0KDAsMCwwLHRoaXMuZWwuaW5uZXJIZWlnaHQoKSkuYXR0cih7ZmlsbDp0aGlzLm9wdGlvbnMucmFuZ2VTZWxlY3RDb2xvcixzdHJva2U6ITF9KS50b0JhY2soKS5oaWRlKCksdGhpcy5lbC5iaW5kKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWMuZWwub2Zmc2V0KCksYy5zdGFydFJhbmdlKGEucGFnZVgtYi5sZWZ0KX0pLHRoaXMuZWwuYmluZCgibW91c2V1cCIsZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIGI9Yy5lbC5vZmZzZXQoKSxjLmVuZFJhbmdlKGEucGFnZVgtYi5sZWZ0KSxjLmZpcmUoImhvdmVybW92ZSIsYS5wYWdlWC1iLmxlZnQsYS5wYWdlWS1iLnRvcCl9KSksdGhpcy
"<link href=\"data:text/css;charset-utf-8;base64,Lm1vcnJpcy1ob3Zlcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9Lm1vcnJpcy1ob3Zlci5tb3JyaXMtZGVmYXVsdC1zdHlsZXtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzo2cHg7Y29sb3I6IzY2NjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtib3JkZXI6c29saWQgMnB4IHJnYmEoMjMwLDIzMCwyMzAsMC44KTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O3RleHQtYWxpZ246Y2VudGVyfS5tb3JyaXMtaG92ZXIubW9ycmlzLWRlZmF1bHQtc3R5bGUgLm1vcnJpcy1ob3Zlci1yb3ctbGFiZWx7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MC4yNWVtIDB9Ci5tb3JyaXMtaG92ZXIubW9ycmlzLWRlZmF1bHQtc3R5bGUgLm1vcnJpcy1ob3Zlci1wb2ludHt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luOjAuMWVtIDB9Cg==\" rel=\"stylesheet\" />\n",
"<script title=\"morrisjs-binding\" src=\"data:application/javascript;base64,SFRNTFdpZGdldHMud2lkZ2V0KHsKCiAgbmFtZTogJ21vcnJpc2pzJywKCiAgdHlwZTogJ291dHB1dCcsCiAgCiAgZmFjdG9yeTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgIHZhciBtanM7CiAgICByZXR1cm4gewogICAgICByZW5kZXJWYWx1ZTogZnVuY3Rpb24oeCkgewogICAgICAgIHguZWxlbWVudCA9IGVsLmlkOwogICAgICAgIAogICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBjaGFydHMgaWYgYW55CiAgICAgICAgd2hpbGUgKGVsLmNoaWxkRWxlbWVudENvdW50ID4gMCkgewogICAgICAgICAgZWwucmVtb3ZlQ2hpbGQoZWwuY2hpbGRyZW5bMF0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBXb3JrYXJvdW5kIGlmIG9ubHkgb25lIHNlcmllcyBpcyBwbG90dGVkCiAgICAgICAgaWYgKCJ5a2V5cyIgaW4geCl7CiAgICAgICAgICBpZiAoeC55a2V5cy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpIHsKICAgICAgICAgICAgeC55a2V5cyA9IG5ldyBBcnJheSh4LnlrZXlzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh4LmxhYmVscy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpIHsKICAgICAgICAgICAgeC5sYWJlbHMgPSBuZXcgQXJyYXkoeC5sYWJlbHMpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBDcmVhdGUgdGhlIGdyYXBoICAKICAgICAgICBzd2l0Y2goeC50eXBlKXsKICAgICAgICAgIGNhc2UgIkxpbmUiOiAKICAgICAgICAgICAgbWpzID0gbmV3IE1vcnJpcy5MaW5lKHgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkFyZWEiOiAKICAgICAgICAgICAgbWpzID0gbmV3IE1vcnJpcy5BcmVhKHgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkJhciI6IAogICAgICAgICAgICBtanMgPSBuZXcgTW9ycmlzLkJhcih4KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJEb251dCI6CiAgICAgICAgICAgIG1qcyA9IG5ldyBNb3JyaXMuRG9udXQoeCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvLyBEcmF3IGl0CiAgICAgICAgbWpzLmRyYXcoKTsKICAgICAgfSwKICAgICAgCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24oeCwgd2lkdGgsIGhlaWdodCkgewogICAgICAgIAogICAgICB9LAogICAgICAKICAgICAgbWpzOiBtanMKICAgIH07CiAgfQp9KTsK\"></script>\n",
"\t</head>\n",
"\t<body>\n",
"\t\t<div id=\"htmlwidget-fed3eb0d45e7703704c6\" style=\"width:960px;height:500px;\" class=\"morrisjs html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-fed3eb0d45e7703704c6\">{\"x\":{\"data\":[{\"date\":\"1974-01\",\"data\":\"3035\"},{\"date\":\"1974-02\",\"data\":\"2552\"},{\"date\":\"1974-03\",\"data\":\"2704\"},{\"date\":\"1974-04\",\"data\":\"2554\"},{\"date\":\"1974-05\",\"data\":\"2014\"},{\"date\":\"1974-06\",\"data\":\"1655\"},{\"date\":\"1974-07\",\"data\":\"1721\"},{\"date\":\"1974-08\",\"data\":\"1524\"},{\"date\":\"1974-09\",\"data\":\"1596\"},{\"date\":\"1974-10\",\"data\":\"2074\"},{\"date\":\"1974-11\",\"data\":\"2199\"},{\"date\":\"1974-12\",\"data\":\"2512\"},{\"date\":\"1975-01\",\"data\":\"2933\"},{\"date\":\"1975-02\",\"data\":\"2889\"},{\"date\":\"1975-03\",\"data\":\"2938\"},{\"date\":\"1975-04\",\"data\":\"2497\"},{\"date\":\"1975-05\",\"data\":\"1870\"},{\"date\":\"1975-06\",\"data\":\"1726\"},{\"date\":\"1975-07\",\"data\":\"1607\"},{\"date\":\"1975-08\",\"data\":\"1545\"},{\"date\":\"1975-09\",\"data\":\"1396\"},{\"date\":\"1975-10\",\"data\":\"1787\"},{\"date\":\"1975-11\",\"data\":\"2076\"},{\"date\":\"1975-12\",\"data\":\"2837\"},{\"date\":\"1976-01\",\"data\":\"2787\"},{\"date\":\"1976-02\",\"data\":\"3891\"},{\"date\":\"1976-03\",\"data\":\"3179\"},{\"date\":\"1976-04\",\"data\":\"2011\"},{\"date\":\"1976-05\",\"data\":\"1636\"},{\"date\":\"1976-06\",\"data\":\"1580\"},{\"date\":\"1976-07\",\"data\":\"1489\"},{\"date\":\"1976-08\",\"data\":\"1300\"},{\"date\":\"1976-09\",\"data\":\"1356\"},{\"date\":\"1976-10\",\"data\":\"1653\"},{\"date\":\"1976-11\",\"data\":\"2013\"},{\"date\":\"1976-12\",\"data\":\"2823\"},{\"date\":\"1977-01\",\"data\":\"3102\"},{\"date\":\"1977-02\",\"data\":\"2294\"},{\"date\":\"1977-03\",\"data\":\"2385\"},{\"date\":\"1977-04\",\"data\":\"2444\"},{\"date\":\"1977-05\",\"data\":\"1748\"},{\"date\":\"1977-06\",\"data\":\"1554\"},{\"date\":\"1977-07\",\"data\":\"1498\"},{\"date\":\"1977-08\",\"data\":\"1361\"},{\"date\":\"1977-09\",\"data\":\"1346\"},{\"date\":\"1977-10\",\"data\":\"1564\"},{\"date\":\"1977-11\",\"data\":\"1640\"},{\"date\":\"1977-12\",\"data\":\"2293\"},{\"date\":\"1978-01\",\"data\":\"2815\"},{\"date\":\"1978-02\",\"data\":\"3137\"},{\"date\":\"1978-03\",\"data\":\"2679\"},{\"date\":\"1978-04\",\"data\":\"1969\"},{\"date\":\"1978-05\",\"data\":\"1870\"},{\"date\":\"1978-06\",\"data\":\"1633\"},{\"date\":\"1978-07\",\"data\":\"1529\"},{\"date\":\"1978-08\",\"data\":\"1366\"},{\"date\":\"1978-09\",\"data\":\"1357\"},{\"date\":\"1978-10\",\"data\":\"1570\"},{\"date\":\"1978-11\",\"data\":\"1535\"},{\"date\":\"1978-12\",\"data\":\"2491\"},{\"date\":\"1979-01\",\"data\":\"3084\"},{\"date\":\"1979-02\",\"data\":\"2605\"},{\"date\":\"1979-03\",\"data\":\"2573\"},{\"date\":\"1979-04\",\"data\":\"2143\"},{\"date\":\"1979-05\",\"data\":\"1693\"},{\"date\":\"1979-06\",\"data\":\"1504\"},{\"date\":\"1979-07\",\"data\":\"1461\"},{\"date\":\"1979-08\",\"data\":\"1354\"},{\"date\":\"1979-09\",\"data\":\"1333\"},{\"date\":\"1979-10\",\"data\":\"1492\"},{\"date\":\"1979-11\",\"data\":\"1781\"},{\"date\":\"1979-12\",\"data\":\"1915\"}],\"resize\":true,\"hideHover\":true,\"xkey\":\"date\",\"ykeys\":\"data\",\"labels\":\"data\",\"type\":\"Area\"},\"evals\":[],\"jsHooks\":[]}</script>\n",
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"morrisjs(ldeaths) %>% \n",
" mjsArea()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMyIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSkrMT49MH0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtmb3IoYiBpbiBhKXJldHVybiExO3JldHVybiEwfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiO2lmKCFhfHwib2JqZWN0IiE9PW0udHlwZShhKXx8YS5ub2RlVHlwZXx8bS5pc1dpbmRvdyhhKSlyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIWouY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhai5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9aWYoay5vd25MYXN0KWZvcihiIGluIGEpcmV0dXJuIGouY2FsbChhLGIpO2ZvcihiIGluIGEpO3JldHVybiB2b2lkIDA9PT1ifHxqLmNhbGwoYSxiKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9hKyIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE/aFtpLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihiKXtiJiZtLnRyaW0oYikmJihhLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKGIpe2EuZXZhbC5jYWxsKGEsYil9KShiKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UobywibXMtIikucmVwbGFjZShwLHEpfSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9MCxmPWEubGVuZ3RoLGc9cihhKTtpZihjKXtpZihnKXtmb3IoO2Y+ZTtlKyspaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgZm9yKGUgaW4gYSlpZihkPWIuYXBwbHkoYVtlXSxjKSxkP
"<script title=\"raphael\" src=\"data:application/javascript;base64,Ly8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIFxcCi8vIOKUgiBSYXBoYcOrbCAyLjEuNCAtIEphdmFTY3JpcHQgVmVjdG9yIExpYnJhcnkgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIENvcHlyaWdodCDCqSAyMDA4LTIwMTIgRG1pdHJ5IEJhcmFub3Zza2l5IChodHRwOi8vcmFwaGFlbGpzLmNvbSkgICAg4pSCIFxcCi8vIOKUgiBDb3B5cmlnaHQgwqkgMjAwOC0yMDEyIFNlbmNoYSBMYWJzIChodHRwOi8vc2VuY2hhLmNvbSkgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKGh0dHA6Ly9yYXBoYWVsanMuY29tL2xpY2Vuc2UuaHRtbCkgbGljZW5zZS7ilIIgXFwKLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIFxcCiFmdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJldmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGIoKX0pOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1iKCk6YS5ldmU9YigpfSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGEsYixjPSIwLjQuMiIsZD0iaGFzT3duUHJvcGVydHkiLGU9L1tcLlwvXS8sZj0iKiIsZz1mdW5jdGlvbigpe30saD1mdW5jdGlvbihhLGIpe3JldHVybiBhLWJ9LGk9e246e319LGo9ZnVuY3Rpb24oYyxkKXtjPVN0cmluZyhjKTt2YXIgZSxmPWIsZz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMiksaT1qLmxpc3RlbmVycyhjKSxrPTAsbD1bXSxtPXt9LG49W10sbz1hO2E9YyxiPTA7Zm9yKHZhciBwPTAscT1pLmxlbmd0aDtxPnA7cCsrKSJ6SW5kZXgiaW4gaVtwXSYmKGwucHVzaChpW3BdLnpJbmRleCksaVtwXS56SW5kZXg8MCYmKG1baVtwXS56SW5kZXhdPWlbcF0pKTtmb3IobC5zb3J0KGgpO2xba108MDspaWYoZT1tW2xbaysrXV0sbi5wdXNoKGUuYXBwbHkoZCxnKSksYilyZXR1cm4gYj1mLG47Zm9yKHA9MDtxPnA7cCsrKWlmKGU9aVtwXSwiekluZGV4ImluIGUpaWYoZS56SW5kZXg9PWxba10pe2lmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7ZG8gaWYoaysrLGU9bVtsW2tdXSxlJiZuLnB1c2goZS5hcHBseShkLGcpKSxiKWJyZWFrO3doaWxlKGUpfWVsc2UgbVtlLnpJbmRleF09ZTtlbHNlIGlmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7cmV0dXJuIGI9ZixhPW8sbi5sZW5ndGg/bjpudWxsfTtyZXR1cm4gai5fZXZlbnRzPWksai5saXN0ZW5lcnM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGcsaCxqLGssbCxtPWEuc3BsaXQoZSksbj1pLG89W25dLHA9W107Zm9yKGc9MCxoPW0ubGVuZ3RoO2g+ZztnKyspe2ZvcihsPVtdLGo9MCxrPW8ubGVuZ3RoO2s+ajtqKyspZm9yKG49b1tqXS5uLGM9W25bbVtnXV0sbltmXV0sZD0yO2QtLTspYj1jW2RdLGImJihsLnB1c2goYikscD1wLmNvbmNhdChiLmZ8fFtdKSk7bz1sfXJldHVybiBwfSxqLm9uPWZ1bmN0aW9uKGEsYil7aWYoYT1TdHJpbmcoYSksImZ1bmN0aW9uIiE9dHlwZW9mIGIpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFyIGM9YS5zcGxpdChlKSxkPWksZj0wLGg9Yy5sZW5ndGg7aD5mO2YrKylkPWQubixkPWQuaGFzT3duUHJvcGVydHkoY1tmXSkmJmRbY1tmXV18fChkW2NbZl1dPXtuOnt9fSk7Zm9yKGQuZj1kLmZ8fFtdLGY9MCxoPWQuZi5sZW5ndGg7aD5mO2YrKylpZihkLmZbZl09PWIpcmV0dXJuIGc7cmV0dXJuIGQuZi5wdXNoKGIpLGZ1bmN0aW9uKGEpeythPT0rYSYmKGIuekluZGV4PSthKX19LGouZj1mdW5jdGlvbihhKXt2YXIgYj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXtqLmFwcGx5KG51bGwsW2EsbnVsbF0uY29uY2F0KGIpLmNvbmNhdChbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSkpfX0sai5zdG9wPWZ1bmN0aW9uKCl7Yj0xfSxqLm50PWZ1bmN0aW9uKGIpe3JldHVybiBiP25ldyBSZWdFeHAoIig/OlxcLnxcXC98XikiK2IrIig/OlxcLnxcXC98JCkiKS50ZXN0KGEpOmF9LGoubnRzPWZ1bmN0aW9uKCl7cmV0dXJuIGEuc3BsaXQoZSl9LGoub2ZmPWoudW5iaW5kPWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIHZvaWQoai5fZXZlbnRzPWk9e246e319KTt2YXIgYyxnLGgsayxsLG0sbixvPWEuc3BsaXQoZSkscD1baV07Zm9yKGs9MCxsPW8ubGVuZ3RoO2w+aztrKyspZm9yKG09MDttPHAubGVuZ3RoO20rPWgubGVuZ3RoLTIpe2lmKGg9W20sMV0sYz1wW21d
"<script title=\"morris.js\" src=\"data:application/javascript;base64,LyogQGxpY2Vuc2UKbW9ycmlzLmpzIHYwLjUuMApDb3B5cmlnaHQgMjAxNCBPbGx5IFNtaXRoIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMi1DbGF1c2UgTGljZW5zZS4KKi8KKGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZT1bXS5zbGljZSxmPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX0sZz17fS5oYXNPd25Qcm9wZXJ0eSxoPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe3RoaXMuY29uc3RydWN0b3I9YX1mb3IodmFyIGQgaW4gYilnLmNhbGwoYixkKSYmKGFbZF09YltkXSk7cmV0dXJuIGMucHJvdG90eXBlPWIucHJvdG90eXBlLGEucHJvdG90eXBlPW5ldyBjLGEuX19zdXBlcl9fPWIucHJvdG90eXBlLGF9LGk9W10uaW5kZXhPZnx8ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz10aGlzLmxlbmd0aDtjPmI7YisrKWlmKGIgaW4gdGhpcyYmdGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9O2I9d2luZG93Lk1vcnJpcz17fSxhPWpRdWVyeSxiLkV2ZW50RW1pdHRlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXt9cmV0dXJuIGEucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PXRoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPXt9KSxudWxsPT10aGlzLmhhbmRsZXJzW2FdJiYodGhpcy5oYW5kbGVyc1thXT1bXSksdGhpcy5oYW5kbGVyc1thXS5wdXNoKGIpLHRoaXN9LGEucHJvdG90eXBlLmZpcmU9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxmLGcsaDtpZihjPWFyZ3VtZW50c1swXSxhPTI8PWFyZ3VtZW50cy5sZW5ndGg/ZS5jYWxsKGFyZ3VtZW50cywxKTpbXSxudWxsIT10aGlzLmhhbmRsZXJzJiZudWxsIT10aGlzLmhhbmRsZXJzW2NdKXtmb3IoZz10aGlzLmhhbmRsZXJzW2NdLGg9W10sZD0wLGY9Zy5sZW5ndGg7Zj5kO2QrKyliPWdbZF0saC5wdXNoKGIuYXBwbHkobnVsbCxhKSk7cmV0dXJuIGh9fSxhfSgpLGIuY29tbWFzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO3JldHVybiBudWxsIT1hPyhkPTA+YT8iLSI6IiIsYj1NYXRoLmFicyhhKSxjPU1hdGguZmxvb3IoYikudG9GaXhlZCgwKSxkKz1jLnJlcGxhY2UoLyg/PSg/OlxkezN9KSskKSg/IV4pL2csIiwiKSxlPWIudG9TdHJpbmcoKSxlLmxlbmd0aD5jLmxlbmd0aCYmKGQrPWUuc2xpY2UoYy5sZW5ndGgpKSxkKToiLSJ9LGIucGFkMj1mdW5jdGlvbihhKXtyZXR1cm4oMTA+YT8iMCI6IiIpK2F9LGIuR3JpZD1mdW5jdGlvbihjKXtmdW5jdGlvbiBkKGIpe3RoaXMucmVzaXplSGFuZGxlcj1mKHRoaXMucmVzaXplSGFuZGxlcix0aGlzKTt2YXIgYz10aGlzO2lmKHRoaXMuZWw9InN0cmluZyI9PXR5cGVvZiBiLmVsZW1lbnQ/YShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChiLmVsZW1lbnQpKTphKGIuZWxlbWVudCksbnVsbD09dGhpcy5lbHx8MD09PXRoaXMuZWwubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiR3JhcGggY29udGFpbmVyIGVsZW1lbnQgbm90IGZvdW5kIik7InN0YXRpYyI9PT10aGlzLmVsLmNzcygicG9zaXRpb24iKSYmdGhpcy5lbC5jc3MoInBvc2l0aW9uIiwicmVsYXRpdmUiKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5ncmlkRGVmYXVsdHMsdGhpcy5kZWZhdWx0c3x8e30sYiksInN0cmluZyI9PXR5cGVvZiB0aGlzLm9wdGlvbnMudW5pdHMmJih0aGlzLm9wdGlvbnMucG9zdFVuaXRzPWIudW5pdHMpLHRoaXMucmFwaGFlbD1uZXcgUmFwaGFlbCh0aGlzLmVsWzBdKSx0aGlzLmVsZW1lbnRXaWR0aD1udWxsLHRoaXMuZWxlbWVudEhlaWdodD1udWxsLHRoaXMuZGlydHk9ITEsdGhpcy5zZWxlY3RGcm9tPW51bGwsdGhpcy5pbml0JiZ0aGlzLmluaXQoKSx0aGlzLnNldERhdGEodGhpcy5vcHRpb25zLmRhdGEpLHRoaXMuZWwuYmluZCgibW91c2Vtb3ZlIixmdW5jdGlvbihhKXt2YXIgYixkLGUsZixnO3JldHVybiBkPWMuZWwub2Zmc2V0KCksZz1hLnBhZ2VYLWQubGVmdCxjLnNlbGVjdEZyb20/KGI9Yy5kYXRhW2MuaGl0VGVzdChNYXRoLm1pbihnLGMuc2VsZWN0RnJvbSkpXS5feCxlPWMuZGF0YVtjLmhpdFRlc3QoTWF0aC5tYXgoZyxjLnNlbGVjdEZyb20pKV0uX3gsZj1lLWIsYy5zZWxlY3Rpb25SZWN0LmF0dHIoe3g6Yix3aWR0aDpmfSkpOmMuZmlyZSgiaG92ZXJtb3ZlIixnLGEucGFnZVktZC50b3ApfSksdGhpcy5lbC5iaW5kKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3JldHVybiBjLnNlbGVjdEZyb20mJihjLnNlbGVjdGlvblJlY3QuaGlkZSgpLGMuc2VsZWN0RnJvbT1udWxsKSxjLmZpcmUoImhvdmVyb3V0Iil9KSx0aGlzLmVsLmJpbmQoInRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWNoZW5kIixmdW5jdGlvbihhKXt2YXIgYixkO3JldHVybiBkPWEub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdfHxhLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0sYj1jLmVsLm9mZnNldCgpLGMuZmlyZSgiaG92ZXJtb3ZlIixkLnBhZ2VYLWIubGVmdCxkLnBhZ2VZLWIudG9wKX0pLHRoaXMuZWwuYmluZCgiY2xpY2siLGZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWMuZWwub2Zmc2V0KCksYy5maXJlKCJncmlkY2xpY2siLGEucGFnZVgtYi5sZWZ0LGEucGFnZVktYi50b3ApfSksdGhpcy5vcHRpb25zLnJhbmdlU2VsZWN0JiYodGhpcy5zZWxlY3Rpb25SZWN0PXRoaXMucmFwaGFlbC5yZWN0KDAsMCwwLHRoaXMuZWwuaW5uZXJIZWlnaHQoKSkuYXR0cih7ZmlsbDp0aGlzLm9wdGlvbnMucmFuZ2VTZWxlY3RDb2xvcixzdHJva2U6ITF9KS50b0JhY2soKS5oaWRlKCksdGhpcy5lbC5iaW5kKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWMuZWwub2Zmc2V0KCksYy5zdGFydFJhbmdlKGEucGFnZVgtYi5sZWZ0KX0pLHRoaXMuZWwuYmluZCgibW91c2V1cCIsZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIGI9Yy5lbC5vZmZzZXQoKSxjLmVuZFJhbmdlKGEucGFnZVgtYi5sZWZ0KSxjLmZpcmUoImhvdmVybW92ZSIsYS5wYWdlWC1iLmxlZnQsYS5wYWdlWS1iLnRvcCl9KSksdGhpcy
"<link href=\"data:text/css;charset-utf-8;base64,Lm1vcnJpcy1ob3Zlcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9Lm1vcnJpcy1ob3Zlci5tb3JyaXMtZGVmYXVsdC1zdHlsZXtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzo2cHg7Y29sb3I6IzY2NjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtib3JkZXI6c29saWQgMnB4IHJnYmEoMjMwLDIzMCwyMzAsMC44KTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O3RleHQtYWxpZ246Y2VudGVyfS5tb3JyaXMtaG92ZXIubW9ycmlzLWRlZmF1bHQtc3R5bGUgLm1vcnJpcy1ob3Zlci1yb3ctbGFiZWx7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MC4yNWVtIDB9Ci5tb3JyaXMtaG92ZXIubW9ycmlzLWRlZmF1bHQtc3R5bGUgLm1vcnJpcy1ob3Zlci1wb2ludHt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luOjAuMWVtIDB9Cg==\" rel=\"stylesheet\" />\n",
"<script title=\"morrisjs-binding\" src=\"data:application/javascript;base64,SFRNTFdpZGdldHMud2lkZ2V0KHsKCiAgbmFtZTogJ21vcnJpc2pzJywKCiAgdHlwZTogJ291dHB1dCcsCiAgCiAgZmFjdG9yeTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgIHZhciBtanM7CiAgICByZXR1cm4gewogICAgICByZW5kZXJWYWx1ZTogZnVuY3Rpb24oeCkgewogICAgICAgIHguZWxlbWVudCA9IGVsLmlkOwogICAgICAgIAogICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBjaGFydHMgaWYgYW55CiAgICAgICAgd2hpbGUgKGVsLmNoaWxkRWxlbWVudENvdW50ID4gMCkgewogICAgICAgICAgZWwucmVtb3ZlQ2hpbGQoZWwuY2hpbGRyZW5bMF0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBXb3JrYXJvdW5kIGlmIG9ubHkgb25lIHNlcmllcyBpcyBwbG90dGVkCiAgICAgICAgaWYgKCJ5a2V5cyIgaW4geCl7CiAgICAgICAgICBpZiAoeC55a2V5cy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpIHsKICAgICAgICAgICAgeC55a2V5cyA9IG5ldyBBcnJheSh4LnlrZXlzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh4LmxhYmVscy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpIHsKICAgICAgICAgICAgeC5sYWJlbHMgPSBuZXcgQXJyYXkoeC5sYWJlbHMpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBDcmVhdGUgdGhlIGdyYXBoICAKICAgICAgICBzd2l0Y2goeC50eXBlKXsKICAgICAgICAgIGNhc2UgIkxpbmUiOiAKICAgICAgICAgICAgbWpzID0gbmV3IE1vcnJpcy5MaW5lKHgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkFyZWEiOiAKICAgICAgICAgICAgbWpzID0gbmV3IE1vcnJpcy5BcmVhKHgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkJhciI6IAogICAgICAgICAgICBtanMgPSBuZXcgTW9ycmlzLkJhcih4KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJEb251dCI6CiAgICAgICAgICAgIG1qcyA9IG5ldyBNb3JyaXMuRG9udXQoeCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvLyBEcmF3IGl0CiAgICAgICAgbWpzLmRyYXcoKTsKICAgICAgfSwKICAgICAgCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24oeCwgd2lkdGgsIGhlaWdodCkgewogICAgICAgIAogICAgICB9LAogICAgICAKICAgICAgbWpzOiBtanMKICAgIH07CiAgfQp9KTsK\"></script>\n",
"\t</head>\n",
"\t<body>\n",
"\t\t<div id=\"htmlwidget-bf3ee6939b4a4fb7b23a\" style=\"width:960px;height:500px;\" class=\"morrisjs html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-bf3ee6939b4a4fb7b23a\">{\"x\":{\"data\":[{\"date\":\"1974-01\",\"data\":\"3035\"},{\"date\":\"1974-02\",\"data\":\"2552\"},{\"date\":\"1974-03\",\"data\":\"2704\"},{\"date\":\"1974-04\",\"data\":\"2554\"},{\"date\":\"1974-05\",\"data\":\"2014\"},{\"date\":\"1974-06\",\"data\":\"1655\"},{\"date\":\"1974-07\",\"data\":\"1721\"},{\"date\":\"1974-08\",\"data\":\"1524\"},{\"date\":\"1974-09\",\"data\":\"1596\"},{\"date\":\"1974-10\",\"data\":\"2074\"},{\"date\":\"1974-11\",\"data\":\"2199\"},{\"date\":\"1974-12\",\"data\":\"2512\"},{\"date\":\"1975-01\",\"data\":\"2933\"},{\"date\":\"1975-02\",\"data\":\"2889\"},{\"date\":\"1975-03\",\"data\":\"2938\"},{\"date\":\"1975-04\",\"data\":\"2497\"},{\"date\":\"1975-05\",\"data\":\"1870\"},{\"date\":\"1975-06\",\"data\":\"1726\"},{\"date\":\"1975-07\",\"data\":\"1607\"},{\"date\":\"1975-08\",\"data\":\"1545\"},{\"date\":\"1975-09\",\"data\":\"1396\"},{\"date\":\"1975-10\",\"data\":\"1787\"},{\"date\":\"1975-11\",\"data\":\"2076\"},{\"date\":\"1975-12\",\"data\":\"2837\"},{\"date\":\"1976-01\",\"data\":\"2787\"},{\"date\":\"1976-02\",\"data\":\"3891\"},{\"date\":\"1976-03\",\"data\":\"3179\"},{\"date\":\"1976-04\",\"data\":\"2011\"},{\"date\":\"1976-05\",\"data\":\"1636\"},{\"date\":\"1976-06\",\"data\":\"1580\"},{\"date\":\"1976-07\",\"data\":\"1489\"},{\"date\":\"1976-08\",\"data\":\"1300\"},{\"date\":\"1976-09\",\"data\":\"1356\"},{\"date\":\"1976-10\",\"data\":\"1653\"},{\"date\":\"1976-11\",\"data\":\"2013\"},{\"date\":\"1976-12\",\"data\":\"2823\"},{\"date\":\"1977-01\",\"data\":\"3102\"},{\"date\":\"1977-02\",\"data\":\"2294\"},{\"date\":\"1977-03\",\"data\":\"2385\"},{\"date\":\"1977-04\",\"data\":\"2444\"},{\"date\":\"1977-05\",\"data\":\"1748\"},{\"date\":\"1977-06\",\"data\":\"1554\"},{\"date\":\"1977-07\",\"data\":\"1498\"},{\"date\":\"1977-08\",\"data\":\"1361\"},{\"date\":\"1977-09\",\"data\":\"1346\"},{\"date\":\"1977-10\",\"data\":\"1564\"},{\"date\":\"1977-11\",\"data\":\"1640\"},{\"date\":\"1977-12\",\"data\":\"2293\"},{\"date\":\"1978-01\",\"data\":\"2815\"},{\"date\":\"1978-02\",\"data\":\"3137\"},{\"date\":\"1978-03\",\"data\":\"2679\"},{\"date\":\"1978-04\",\"data\":\"1969\"},{\"date\":\"1978-05\",\"data\":\"1870\"},{\"date\":\"1978-06\",\"data\":\"1633\"},{\"date\":\"1978-07\",\"data\":\"1529\"},{\"date\":\"1978-08\",\"data\":\"1366\"},{\"date\":\"1978-09\",\"data\":\"1357\"},{\"date\":\"1978-10\",\"data\":\"1570\"},{\"date\":\"1978-11\",\"data\":\"1535\"},{\"date\":\"1978-12\",\"data\":\"2491\"},{\"date\":\"1979-01\",\"data\":\"3084\"},{\"date\":\"1979-02\",\"data\":\"2605\"},{\"date\":\"1979-03\",\"data\":\"2573\"},{\"date\":\"1979-04\",\"data\":\"2143\"},{\"date\":\"1979-05\",\"data\":\"1693\"},{\"date\":\"1979-06\",\"data\":\"1504\"},{\"date\":\"1979-07\",\"data\":\"1461\"},{\"date\":\"1979-08\",\"data\":\"1354\"},{\"date\":\"1979-09\",\"data\":\"1333\"},{\"date\":\"1979-10\",\"data\":\"1492\"},{\"date\":\"1979-11\",\"data\":\"1781\"},{\"date\":\"1979-12\",\"data\":\"1915\"}],\"resize\":true,\"hideHover\":true,\"xkey\":\"date\",\"ykeys\":\"data\",\"labels\":\"data\",\"type\":\"Bar\"},\"evals\":[],\"jsHooks\":[]}</script>\n",
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"morrisjs(ldeaths) %>% \n",
" mjsBar()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<!doctype html>\n",
"<html>\n",
"\t<head>\n",
"\t\t<meta charset=\"utf-8\">\n",
"\t\t<script title=\"htmlwidgets\" src=\"data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7
"<script title=\"jquery\" src=\"data:application/javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMyIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSkrMT49MH0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtmb3IoYiBpbiBhKXJldHVybiExO3JldHVybiEwfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiO2lmKCFhfHwib2JqZWN0IiE9PW0udHlwZShhKXx8YS5ub2RlVHlwZXx8bS5pc1dpbmRvdyhhKSlyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIWouY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhai5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9aWYoay5vd25MYXN0KWZvcihiIGluIGEpcmV0dXJuIGouY2FsbChhLGIpO2ZvcihiIGluIGEpO3JldHVybiB2b2lkIDA9PT1ifHxqLmNhbGwoYSxiKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9hKyIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE/aFtpLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihiKXtiJiZtLnRyaW0oYikmJihhLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKGIpe2EuZXZhbC5jYWxsKGEsYil9KShiKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UobywibXMtIikucmVwbGFjZShwLHEpfSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9MCxmPWEubGVuZ3RoLGc9cihhKTtpZihjKXtpZihnKXtmb3IoO2Y+ZTtlKyspaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgZm9yKGUgaW4gYSlpZihkPWIuYXBwbHkoYVtlXSxjKSxkP
"<script title=\"raphael\" src=\"data:application/javascript;base64,Ly8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIFxcCi8vIOKUgiBSYXBoYcOrbCAyLjEuNCAtIEphdmFTY3JpcHQgVmVjdG9yIExpYnJhcnkgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIENvcHlyaWdodCDCqSAyMDA4LTIwMTIgRG1pdHJ5IEJhcmFub3Zza2l5IChodHRwOi8vcmFwaGFlbGpzLmNvbSkgICAg4pSCIFxcCi8vIOKUgiBDb3B5cmlnaHQgwqkgMjAwOC0yMDEyIFNlbmNoYSBMYWJzIChodHRwOi8vc2VuY2hhLmNvbSkgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKGh0dHA6Ly9yYXBoYWVsanMuY29tL2xpY2Vuc2UuaHRtbCkgbGljZW5zZS7ilIIgXFwKLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIFxcCiFmdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJldmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGIoKX0pOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1iKCk6YS5ldmU9YigpfSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGEsYixjPSIwLjQuMiIsZD0iaGFzT3duUHJvcGVydHkiLGU9L1tcLlwvXS8sZj0iKiIsZz1mdW5jdGlvbigpe30saD1mdW5jdGlvbihhLGIpe3JldHVybiBhLWJ9LGk9e246e319LGo9ZnVuY3Rpb24oYyxkKXtjPVN0cmluZyhjKTt2YXIgZSxmPWIsZz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMiksaT1qLmxpc3RlbmVycyhjKSxrPTAsbD1bXSxtPXt9LG49W10sbz1hO2E9YyxiPTA7Zm9yKHZhciBwPTAscT1pLmxlbmd0aDtxPnA7cCsrKSJ6SW5kZXgiaW4gaVtwXSYmKGwucHVzaChpW3BdLnpJbmRleCksaVtwXS56SW5kZXg8MCYmKG1baVtwXS56SW5kZXhdPWlbcF0pKTtmb3IobC5zb3J0KGgpO2xba108MDspaWYoZT1tW2xbaysrXV0sbi5wdXNoKGUuYXBwbHkoZCxnKSksYilyZXR1cm4gYj1mLG47Zm9yKHA9MDtxPnA7cCsrKWlmKGU9aVtwXSwiekluZGV4ImluIGUpaWYoZS56SW5kZXg9PWxba10pe2lmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7ZG8gaWYoaysrLGU9bVtsW2tdXSxlJiZuLnB1c2goZS5hcHBseShkLGcpKSxiKWJyZWFrO3doaWxlKGUpfWVsc2UgbVtlLnpJbmRleF09ZTtlbHNlIGlmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7cmV0dXJuIGI9ZixhPW8sbi5sZW5ndGg/bjpudWxsfTtyZXR1cm4gai5fZXZlbnRzPWksai5saXN0ZW5lcnM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGcsaCxqLGssbCxtPWEuc3BsaXQoZSksbj1pLG89W25dLHA9W107Zm9yKGc9MCxoPW0ubGVuZ3RoO2g+ZztnKyspe2ZvcihsPVtdLGo9MCxrPW8ubGVuZ3RoO2s+ajtqKyspZm9yKG49b1tqXS5uLGM9W25bbVtnXV0sbltmXV0sZD0yO2QtLTspYj1jW2RdLGImJihsLnB1c2goYikscD1wLmNvbmNhdChiLmZ8fFtdKSk7bz1sfXJldHVybiBwfSxqLm9uPWZ1bmN0aW9uKGEsYil7aWYoYT1TdHJpbmcoYSksImZ1bmN0aW9uIiE9dHlwZW9mIGIpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFyIGM9YS5zcGxpdChlKSxkPWksZj0wLGg9Yy5sZW5ndGg7aD5mO2YrKylkPWQubixkPWQuaGFzT3duUHJvcGVydHkoY1tmXSkmJmRbY1tmXV18fChkW2NbZl1dPXtuOnt9fSk7Zm9yKGQuZj1kLmZ8fFtdLGY9MCxoPWQuZi5sZW5ndGg7aD5mO2YrKylpZihkLmZbZl09PWIpcmV0dXJuIGc7cmV0dXJuIGQuZi5wdXNoKGIpLGZ1bmN0aW9uKGEpeythPT0rYSYmKGIuekluZGV4PSthKX19LGouZj1mdW5jdGlvbihhKXt2YXIgYj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXtqLmFwcGx5KG51bGwsW2EsbnVsbF0uY29uY2F0KGIpLmNvbmNhdChbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSkpfX0sai5zdG9wPWZ1bmN0aW9uKCl7Yj0xfSxqLm50PWZ1bmN0aW9uKGIpe3JldHVybiBiP25ldyBSZWdFeHAoIig/OlxcLnxcXC98XikiK2IrIig/OlxcLnxcXC98JCkiKS50ZXN0KGEpOmF9LGoubnRzPWZ1bmN0aW9uKCl7cmV0dXJuIGEuc3BsaXQoZSl9LGoub2ZmPWoudW5iaW5kPWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIHZvaWQoai5fZXZlbnRzPWk9e246e319KTt2YXIgYyxnLGgsayxsLG0sbixvPWEuc3BsaXQoZSkscD1baV07Zm9yKGs9MCxsPW8ubGVuZ3RoO2w+aztrKyspZm9yKG09MDttPHAubGVuZ3RoO20rPWgubGVuZ3RoLTIpe2lmKGg9W20sMV0sYz1wW21d
"<script title=\"morris.js\" src=\"data:application/javascript;base64,LyogQGxpY2Vuc2UKbW9ycmlzLmpzIHYwLjUuMApDb3B5cmlnaHQgMjAxNCBPbGx5IFNtaXRoIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMi1DbGF1c2UgTGljZW5zZS4KKi8KKGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZT1bXS5zbGljZSxmPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX0sZz17fS5oYXNPd25Qcm9wZXJ0eSxoPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe3RoaXMuY29uc3RydWN0b3I9YX1mb3IodmFyIGQgaW4gYilnLmNhbGwoYixkKSYmKGFbZF09YltkXSk7cmV0dXJuIGMucHJvdG90eXBlPWIucHJvdG90eXBlLGEucHJvdG90eXBlPW5ldyBjLGEuX19zdXBlcl9fPWIucHJvdG90eXBlLGF9LGk9W10uaW5kZXhPZnx8ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz10aGlzLmxlbmd0aDtjPmI7YisrKWlmKGIgaW4gdGhpcyYmdGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9O2I9d2luZG93Lk1vcnJpcz17fSxhPWpRdWVyeSxiLkV2ZW50RW1pdHRlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXt9cmV0dXJuIGEucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PXRoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPXt9KSxudWxsPT10aGlzLmhhbmRsZXJzW2FdJiYodGhpcy5oYW5kbGVyc1thXT1bXSksdGhpcy5oYW5kbGVyc1thXS5wdXNoKGIpLHRoaXN9LGEucHJvdG90eXBlLmZpcmU9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxmLGcsaDtpZihjPWFyZ3VtZW50c1swXSxhPTI8PWFyZ3VtZW50cy5sZW5ndGg/ZS5jYWxsKGFyZ3VtZW50cywxKTpbXSxudWxsIT10aGlzLmhhbmRsZXJzJiZudWxsIT10aGlzLmhhbmRsZXJzW2NdKXtmb3IoZz10aGlzLmhhbmRsZXJzW2NdLGg9W10sZD0wLGY9Zy5sZW5ndGg7Zj5kO2QrKyliPWdbZF0saC5wdXNoKGIuYXBwbHkobnVsbCxhKSk7cmV0dXJuIGh9fSxhfSgpLGIuY29tbWFzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlO3JldHVybiBudWxsIT1hPyhkPTA+YT8iLSI6IiIsYj1NYXRoLmFicyhhKSxjPU1hdGguZmxvb3IoYikudG9GaXhlZCgwKSxkKz1jLnJlcGxhY2UoLyg/PSg/OlxkezN9KSskKSg/IV4pL2csIiwiKSxlPWIudG9TdHJpbmcoKSxlLmxlbmd0aD5jLmxlbmd0aCYmKGQrPWUuc2xpY2UoYy5sZW5ndGgpKSxkKToiLSJ9LGIucGFkMj1mdW5jdGlvbihhKXtyZXR1cm4oMTA+YT8iMCI6IiIpK2F9LGIuR3JpZD1mdW5jdGlvbihjKXtmdW5jdGlvbiBkKGIpe3RoaXMucmVzaXplSGFuZGxlcj1mKHRoaXMucmVzaXplSGFuZGxlcix0aGlzKTt2YXIgYz10aGlzO2lmKHRoaXMuZWw9InN0cmluZyI9PXR5cGVvZiBiLmVsZW1lbnQ/YShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChiLmVsZW1lbnQpKTphKGIuZWxlbWVudCksbnVsbD09dGhpcy5lbHx8MD09PXRoaXMuZWwubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiR3JhcGggY29udGFpbmVyIGVsZW1lbnQgbm90IGZvdW5kIik7InN0YXRpYyI9PT10aGlzLmVsLmNzcygicG9zaXRpb24iKSYmdGhpcy5lbC5jc3MoInBvc2l0aW9uIiwicmVsYXRpdmUiKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5ncmlkRGVmYXVsdHMsdGhpcy5kZWZhdWx0c3x8e30sYiksInN0cmluZyI9PXR5cGVvZiB0aGlzLm9wdGlvbnMudW5pdHMmJih0aGlzLm9wdGlvbnMucG9zdFVuaXRzPWIudW5pdHMpLHRoaXMucmFwaGFlbD1uZXcgUmFwaGFlbCh0aGlzLmVsWzBdKSx0aGlzLmVsZW1lbnRXaWR0aD1udWxsLHRoaXMuZWxlbWVudEhlaWdodD1udWxsLHRoaXMuZGlydHk9ITEsdGhpcy5zZWxlY3RGcm9tPW51bGwsdGhpcy5pbml0JiZ0aGlzLmluaXQoKSx0aGlzLnNldERhdGEodGhpcy5vcHRpb25zLmRhdGEpLHRoaXMuZWwuYmluZCgibW91c2Vtb3ZlIixmdW5jdGlvbihhKXt2YXIgYixkLGUsZixnO3JldHVybiBkPWMuZWwub2Zmc2V0KCksZz1hLnBhZ2VYLWQubGVmdCxjLnNlbGVjdEZyb20/KGI9Yy5kYXRhW2MuaGl0VGVzdChNYXRoLm1pbihnLGMuc2VsZWN0RnJvbSkpXS5feCxlPWMuZGF0YVtjLmhpdFRlc3QoTWF0aC5tYXgoZyxjLnNlbGVjdEZyb20pKV0uX3gsZj1lLWIsYy5zZWxlY3Rpb25SZWN0LmF0dHIoe3g6Yix3aWR0aDpmfSkpOmMuZmlyZSgiaG92ZXJtb3ZlIixnLGEucGFnZVktZC50b3ApfSksdGhpcy5lbC5iaW5kKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3JldHVybiBjLnNlbGVjdEZyb20mJihjLnNlbGVjdGlvblJlY3QuaGlkZSgpLGMuc2VsZWN0RnJvbT1udWxsKSxjLmZpcmUoImhvdmVyb3V0Iil9KSx0aGlzLmVsLmJpbmQoInRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWNoZW5kIixmdW5jdGlvbihhKXt2YXIgYixkO3JldHVybiBkPWEub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdfHxhLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0sYj1jLmVsLm9mZnNldCgpLGMuZmlyZSgiaG92ZXJtb3ZlIixkLnBhZ2VYLWIubGVmdCxkLnBhZ2VZLWIudG9wKX0pLHRoaXMuZWwuYmluZCgiY2xpY2siLGZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWMuZWwub2Zmc2V0KCksYy5maXJlKCJncmlkY2xpY2siLGEucGFnZVgtYi5sZWZ0LGEucGFnZVktYi50b3ApfSksdGhpcy5vcHRpb25zLnJhbmdlU2VsZWN0JiYodGhpcy5zZWxlY3Rpb25SZWN0PXRoaXMucmFwaGFlbC5yZWN0KDAsMCwwLHRoaXMuZWwuaW5uZXJIZWlnaHQoKSkuYXR0cih7ZmlsbDp0aGlzLm9wdGlvbnMucmFuZ2VTZWxlY3RDb2xvcixzdHJva2U6ITF9KS50b0JhY2soKS5oaWRlKCksdGhpcy5lbC5iaW5kKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWMuZWwub2Zmc2V0KCksYy5zdGFydFJhbmdlKGEucGFnZVgtYi5sZWZ0KX0pLHRoaXMuZWwuYmluZCgibW91c2V1cCIsZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIGI9Yy5lbC5vZmZzZXQoKSxjLmVuZFJhbmdlKGEucGFnZVgtYi5sZWZ0KSxjLmZpcmUoImhvdmVybW92ZSIsYS5wYWdlWC1iLmxlZnQsYS5wYWdlWS1iLnRvcCl9KSksdGhpcy
"<link href=\"data:text/css;charset-utf-8;base64,Lm1vcnJpcy1ob3Zlcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9Lm1vcnJpcy1ob3Zlci5tb3JyaXMtZGVmYXVsdC1zdHlsZXtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzo2cHg7Y29sb3I6IzY2NjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtib3JkZXI6c29saWQgMnB4IHJnYmEoMjMwLDIzMCwyMzAsMC44KTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O3RleHQtYWxpZ246Y2VudGVyfS5tb3JyaXMtaG92ZXIubW9ycmlzLWRlZmF1bHQtc3R5bGUgLm1vcnJpcy1ob3Zlci1yb3ctbGFiZWx7Zm9udC13ZWlnaHQ6Ym9sZDttYXJnaW46MC4yNWVtIDB9Ci5tb3JyaXMtaG92ZXIubW9ycmlzLWRlZmF1bHQtc3R5bGUgLm1vcnJpcy1ob3Zlci1wb2ludHt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luOjAuMWVtIDB9Cg==\" rel=\"stylesheet\" />\n",
"<script title=\"morrisjs-binding\" src=\"data:application/javascript;base64,SFRNTFdpZGdldHMud2lkZ2V0KHsKCiAgbmFtZTogJ21vcnJpc2pzJywKCiAgdHlwZTogJ291dHB1dCcsCiAgCiAgZmFjdG9yeTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgIHZhciBtanM7CiAgICByZXR1cm4gewogICAgICByZW5kZXJWYWx1ZTogZnVuY3Rpb24oeCkgewogICAgICAgIHguZWxlbWVudCA9IGVsLmlkOwogICAgICAgIAogICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyBjaGFydHMgaWYgYW55CiAgICAgICAgd2hpbGUgKGVsLmNoaWxkRWxlbWVudENvdW50ID4gMCkgewogICAgICAgICAgZWwucmVtb3ZlQ2hpbGQoZWwuY2hpbGRyZW5bMF0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBXb3JrYXJvdW5kIGlmIG9ubHkgb25lIHNlcmllcyBpcyBwbG90dGVkCiAgICAgICAgaWYgKCJ5a2V5cyIgaW4geCl7CiAgICAgICAgICBpZiAoeC55a2V5cy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpIHsKICAgICAgICAgICAgeC55a2V5cyA9IG5ldyBBcnJheSh4LnlrZXlzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh4LmxhYmVscy5jb25zdHJ1Y3RvciAhPT0gQXJyYXkpIHsKICAgICAgICAgICAgeC5sYWJlbHMgPSBuZXcgQXJyYXkoeC5sYWJlbHMpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBDcmVhdGUgdGhlIGdyYXBoICAKICAgICAgICBzd2l0Y2goeC50eXBlKXsKICAgICAgICAgIGNhc2UgIkxpbmUiOiAKICAgICAgICAgICAgbWpzID0gbmV3IE1vcnJpcy5MaW5lKHgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkFyZWEiOiAKICAgICAgICAgICAgbWpzID0gbmV3IE1vcnJpcy5BcmVhKHgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgIkJhciI6IAogICAgICAgICAgICBtanMgPSBuZXcgTW9ycmlzLkJhcih4KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICJEb251dCI6CiAgICAgICAgICAgIG1qcyA9IG5ldyBNb3JyaXMuRG9udXQoeCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvLyBEcmF3IGl0CiAgICAgICAgbWpzLmRyYXcoKTsKICAgICAgfSwKICAgICAgCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24oeCwgd2lkdGgsIGhlaWdodCkgewogICAgICAgIAogICAgICB9LAogICAgICAKICAgICAgbWpzOiBtanMKICAgIH07CiAgfQp9KTsK\"></script>\n",
"\t</head>\n",
"\t<body>\n",
"\t\t<div id=\"htmlwidget-a794216791358e6f1f06\" style=\"width:960px;height:500px;\" class=\"morrisjs html-widget\"></div>\n",
"<script type=\"application/json\" data-for=\"htmlwidget-a794216791358e6f1f06\">{\"x\":{\"data\":[{\"label\":\"Africa\",\"value\":11},{\"label\":\"Asia\",\"value\":12},{\"label\":\"Europe\",\"value\":14},{\"label\":\"North America\",\"value\":11},{\"label\":\"South America\",\"value\":8}],\"resize\":true,\"hideHover\":true,\"colors\":[\"#66c2ff\",\"#ff66ff\",\"#80ffd4\",\"#b3b3cc\",\"#ffff80\"],\"type\":\"Donut\"},\"evals\":[],\"jsHooks\":[]}</script>\n",
"\t</body>\n",
"</html>\n"
],
"text/plain": [
"HTML widgets cannot be represented in plain text (need html)"
]
},
"metadata": {
"text/html": {
"isolated": true
}
},
"output_type": "display_data"
}
],
"source": [
"morrisjs(list(labels = c('Africa', \n",
" 'Asia',\n",
" 'Europe',\n",
" 'North America',\n",
" 'South America'), \n",
" values = rbinom(5, 20, 0.5))) %>% \n",
" mjsDonut(options(colors = c('#66c2ff', '#ff66ff', \n",
" '#80ffd4', '#b3b3cc',\n",
" '#ffff80')))"
]
},
2021-04-21 12:47:19 +02:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadania"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Narysuj wykres przebiegu dla zbioru danych *LakeHuron*.\n",
"2. Dla cech *Petal.Length* i *Petal.Width* ze zbioru danych *iris* narysuj wykres rozrzutu.\n",
"3. Narysuj taki sam wykres jak w zadaniu poprzednim. Tym razem jednak, każdy gatunek irysa ma mieć swój kolor. Po najechaniu na punkt powinna wyświetlić się informacja o współrzędnych punktu oraz jego przynależności klasowej.\n",
"4. Dla zbioru danych *esoph* wykonaj wykres słupkowy dla cechy *agegp*. \n",
"5. Dla zbioru danych *volcano* narysuj wykres typu „mapa ciepła”.\n",
"6. Niech dane będą wartości: 0,12, 0,3, 0,26, 0,16, 0,04, 0,12. Narysuj dla niech wykres kołowy z otworem w środku.\n",
"7. Narysuj wykres pokazujący histogramy wszystkich cech numerycznych ze zbioru *iris*. Powinny się na nim zatem znaleźć 4 histogramy rozmieszczone w dwóch wierszach i dwóch kolumnach."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "R",
"language": "R",
"name": "ir"
},
"language_info": {
"codemirror_mode": "r",
"file_extension": ".r",
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "3.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}