Skip to content

Instantly share code, notes, and snippets.

@Financioneroncios
Last active October 14, 2023 18:10
Show Gist options
  • Save Financioneroncios/9a0d5860a5d17345ee34895526ff075b to your computer and use it in GitHub Desktop.
Save Financioneroncios/9a0d5860a5d17345ee34895526ff075b to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Valorización de Opciones con Python y Quantlib\n",
"\n",
"<br>__[Financionerioncios](https://financioneroncios.wordpress.com)__\n",
"<br>__[Dany Cajas](https://www.linkedin.com/in/dany-cajas/)__\n",
"<br>__[Practical Econometrics with Python](https://www.amazon.com/-/es/Marlon-Saito-ebook/dp/B08KJ1322G/ref=sr_1_1?dchild=1&qid=1603904149&refinements=p_27%3AMarlon+Saito&s=digital-text&sr=1-1&text=Marlon+Saito)__ \n",
"<br>__[Econometría Práctica con Python](https://www.amazon.com/-/es/Marlon-Saito-ebook/dp/B08KHZKV9R/ref=sr_1_2?dchild=1&qid=1603903646&refinements=p_27%3AMarlon+Saito&s=digital-text&sr=1-2&text=Marlon+Saito)__ \n",
"\n",
"<br>Hi people, en este post tratare la valorización de diversos tipos de opciones con diferentes metodos asi que espero les guste :D.\n",
"\n",
"Para Python les recomiendo que usen __[winpython](https://winpython.github.io/)__ (solo windows, pero es portable) o __[anaconda](https://www.anaconda.com/download/)__ (es multiplataforma, pero requiere de instalación). Al instalar cualquiera de estas distribuciones encontraran los ejecutables Jupyter Notebook (el formato del post, los archivos tienen extensión es .ipynb) y Spyder (IDE que recomiendo para trabajar porque permite visualizar las variables y su tipo, los archivos tienen extensión es .py)\n",
"\n",
"En la página del blog dejaré los notebooks (se abren con jupyter notebook), los scripts de python (recomiendo que usen spyder para trabajar con estos archivos) y los archivos en excel con la data usada en los ejemplos.\n",
"<br>Los temas que trataremos en este post son:\n",
"1. Valorización de Opciones Europeas.\n",
" 1. Opción Call con Python Puro.\n",
" 2. Opción Put con Python Puro.\n",
" 3. Valorización de Estrategias con Opciones.\n",
" 4. Valorizacion de Opciones con QuantLib.\n",
" 5. Calculo de Griegas con QuantLib.\n",
"1. Valorización de Opciones Americanas.\n",
" 1. Opción Call con QuantLib.\n",
"1. Valorización de Opciones Exoticas.\n",
" 1. Opción Asiatica Call con QuantLib.\n",
"\n",
"## 1. Valorización de Opciones Europeas\n",
"\n",
"### A. Opción Call con Python Puro.\n",
"<br>Bueno iendo directo al tema del blog sin muchos preámbulos, como sabran para valorizar una opción call europea se usa la sgte formula: \n",
"<br> \n",
"<br>$$C(S_t,T)=S_t*\\Phi(d_1)-K*e^{-T*r}*\\Phi(d_2)$$\n",
"<br>$$d_1=\\frac{ln(\\frac{S_t}{K})-(r+\\sigma*0.5)*T}{\\sigma*\\sqrt{T}}$$\n",
"<br>$$d_2=d_1-\\sigma*\\sqrt{T}$$\n",
"<br> \n",
"Donde:\n",
"<br>$C(S_t,T):$ es el precio de la opción.\n",
"<br>$T:$ es la fecha de vencimiento de la opción. \n",
"<br>$r:$ es la tasa libre de riesgo.\n",
"<br>$S_t:$ es valor del activo en el periódo $t$.\n",
"<br>$K:$ es el strike de la opción.\n",
"<br>$\\sigma:$ es la volatilidad del activo $S_t$.\n",
"\n",
"Ahora vamos a crear la opción en Python =D."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Precio Call Option: 6.869814\n"
]
}
],
"source": [
"import numpy as np\n",
"import scipy.stats as st\n",
"\n",
"def BS_Vanilla_Call(S, K, T, r, sigma):\n",
" #S: precio spot\n",
" #K: precio strike\n",
" #T: tiempo de vencimiento\n",
" #r: tasa de interes\n",
" #sigma: volatilidad del activo\n",
" \n",
" d1 = (np.log(S / K) + (r + 0.5 * sigma ** 2) * T) / (sigma * np.sqrt(T))\n",
" d2 = d1 - (sigma * np.sqrt(T))\n",
" C = (S * st.norm.cdf(d1, 0.0, 1.0) - K * np.exp(-r * T) * st.norm.cdf(d2, 0.0, 1.0))\n",
" return C\n",
"\n",
"#Probando la función de Python\n",
"a = BS_Vanilla_Call(90, 100, 1, 0.05, 0.25)\n",
"\n",
"print(\"Precio Call Option: {:0.6f}\".format(a))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### B. Opción Put con Python Puro.\n",
"<br>Bueno ahora vamos con la formula para valorizar una opción put europea: \n",
"<br> \n",
"<br>$$P(S_t,T)=K*e^{-T*r}*\\Phi(-d_2)-S_t*\\Phi(-d_1)$$\n",
"<br>$$d_1=\\frac{ln(\\frac{S_t}{K})-(r+\\sigma*0.5)*T}{\\sigma*\\sqrt{T}}$$\n",
"<br>$$d_2=d_1-\\sigma*\\sqrt{T}$$\n",
"<br> \n",
"Donde:\n",
"<br>$P(S_t,T):$ es el precio de la opción.\n",
"<br>$T:$ es la fecha de vencimiento de la opción. \n",
"<br>$r:$ es la tasa libre de riesgo.\n",
"<br>$S_t:$ es valor del activo en el periódo $t$.\n",
"<br>$K:$ es el strike de la opción.\n",
"<br>$\\sigma:$ es la volatilidad del activo $S_t$.\n",
"\n",
"Y ahora hacemos la función en python yeeeeee."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Precio Put Option: 11.992757\n"
]
}
],
"source": [
"def BS_Vanilla_Put(S, K, T, r, sigma):\n",
" #S: precio spot\n",
" #K: precio strike\n",
" #T: tiempo de vencimiento\n",
" #r: tasa de interes\n",
" #sigma: volatilidad del activo\n",
" \n",
" d1 = (np.log(S / K) + (r + 0.5 * sigma ** 2) * T) / (sigma * np.sqrt(T))\n",
" d2 = d1 - (sigma * np.sqrt(T))\n",
" P = K * np.exp(-r * T) * st.norm.cdf(-d2, 0.0, 1.0) - S * st.norm.cdf(-d1, 0.0, 1.0) \n",
" return P\n",
"\n",
"#Probando la función de Python\n",
"a = BS_Vanilla_Put(90, 100, 1, 0.05, 0.25)\n",
"\n",
"print(\"Precio Put Option: {:0.6f}\".format(a))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ahora para graficar las opciones con la forma conocida (osea con la esquina en el strike), vamos a usar un valor de $T$ cercano a 0:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"def plot_function(x, y):\n",
" plt.figure(figsize=(12, 6))\n",
" plt.plot(x, y, c=\"b\")\n",
" plt.xlabel(\"Assets Price\")\n",
" plt.ylabel(\"Option Value\")\n",
" plt.show()\n",
" \n",
"x = np.arange(1,200)\n",
"y = BS_Vanilla_Call(x, 100, 0.001, 0.05, 0.25)\n",
"\n",
"plot_function(x, y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ahora si queremos ver como evoluciona el precio de la opción conforme se acerca a vencimiento usaremos el siguiente código (la forma dinámica solo funciona cuando corran el notebook en python):"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "ca81b31f61a0426aab266d1d2f06ff13",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(FloatSlider(value=1.0, continuous_update=False, description='T', max=1.001, min=0.001), …"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<function __main__.f(T)>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%matplotlib inline\n",
"from ipywidgets import interact, FloatSlider\n",
"import numpy as np\n",
"\n",
"def f(T):\n",
" x = np.arange(1, 200)\n",
" y = BS_Vanilla_Call(x, 100, T, 0.05, 0.25)\n",
" plot_function(x, y)\n",
"\n",
"interact(f, T = FloatSlider(min=0.001, max=1.001, value=1,step=0.1, continuous_update=False))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### C. Valorización de Estrategias con Opciones.\n",
"<br>Bueno ahora vamos a ver como graficar algunas estrategias con opciones primero empezamos con:\n",
"\n",
"### Bull Call Spread:\n",
"Para armar esta estrategia necesitamos comprar una call con un strike de un valor y vender una call con un strike de un mayor valor:\n",
"<br>\n",
"<br>$$C(S_t,T,K)-C(S_t,T,K + M)$$"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(1,200)\n",
"y = BS_Vanilla_Call(x, 50, 0.0001, 0.05, 0.25) - BS_Vanilla_Call(x, 150, 0.0001, 0.05, 0.25) \n",
"\n",
"plot_function(x, y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Long Call Butterfly:\n",
"Para armar esta estrategia necesitamos comprar una call con un strike de un valor y vender una call con un strike de un mayor valor:\n",
"<br>\n",
"<br>$$C(S_t,T,K)-2*C(S_t,T,K + M1)+C(S_t,T,K + M2)$$\n",
"<br>$$M1 \\leq M2$$"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(1,200)\n",
"y = (BS_Vanilla_Call(x, 50, 0.0001, 0.05, 0.25)\n",
" -2*BS_Vanilla_Call(x, 100, 0.0001, 0.05, 0.25)\n",
" + BS_Vanilla_Call(x, 150, 0.0001, 0.05, 0.25))\n",
"\n",
"plot_function(x, y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ahora si queremos ver como evoluciona el precio de la opción conforme se acerca a vencimiento usaremos el siguiente código (la forma dinámica solo funciona cuando corran el notebook en python):"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6c97c23483f147388ea9c9cd5bb62a6b",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(FloatSlider(value=1.0, continuous_update=False, description='T', max=1.001, min=0.001), …"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<function __main__.f(T)>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def f(T):\n",
" x = np.arange(1, 200)\n",
" y = (BS_Vanilla_Call(x, 50, T, 0.05, 0.25)\n",
" -2*BS_Vanilla_Call(x, 100, T, 0.05, 0.25)\n",
" + BS_Vanilla_Call(x, 150, T, 0.05, 0.25))\n",
" plot_function(x, y)\n",
"\n",
"interact(f, T = FloatSlider(min=0.001, max=1.001, step=0.1, value = 1, continuous_update=False))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si queremos ver la evolucion de la estrategia Butterfly respecto al tiempo de maduracion y el valor del activo en un grafico en 3 dimensiones usamos el siguiente codigo:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvsAAAIuCAYAAAAhcsfSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOy9a4wk6Vnv+Y/Ie2XlLbIyK6+VmVXVXV3V3dM9HmMLr7w2B/AB1jqs5RUWHHZXWvhwYD8sspaFo4HdRYC8CwjOkVYcBCOwJWthQVoDx/ZyFgHWInssT/Vleqa7Z3q6u259q+7KW+X9FrEf2m9MZFZmVl4iIiOjnp/UmumurIiMisqI3/vEc+EkSQJBEARBEARBEOaDn/UbIAiCIAiCIAhCG0j2CYIgCIIgCMKkkOwTBEEQBEEQhEkh2ScIgiAIgiAIk0KyTxAEQRAEQRAmhWSfIAiCIAiCIEyK9ZSvU19OgiAIgiAIQg+4Wb8BM0KRfYIgCIIgCIIwKST7BEEQBEEQBGFSSPYJgiAIgiAIwqSQ7BMEQRAEQRCESSHZJwiCIAiCIAiTQrJPEARBEARBECaFZJ8gCIIgCIIgTArJPkEQBEEQBEGYFJJ9giAIgiAIgjApJPsEQRAEQRAEYVJI9gmCIAiCIAjCpJDsEwRBEARBEIRJIdknCIIgCIIgCJNCsk8QBEEQBEEQJoVknyAIgiAIgiBMCsk+QRAEQRAEQZgUkn2CIAiCIAiCMCkk+wRBEARBEARhUkj2CYIgCIIgCMKkkOwTBEEQBEEQhEkh2ScIgiAIgiAIk0KyTxAEQRAEQRAmhWSfIAiCIAiCIEwKyT5BEARBEARBmBSSfYIgCIIgCIIwKST7BEEQBEEQBGFSSPYJgiAIgiAIwqSQ7BMEQRAEQRCESSHZJwiCIAiCIAiTQrJPEARBEARBECaFZJ8gCIIgCIIgTArJPkEQBEEQBEGYFJJ9giAIYiCSJEEURbRaLYiiOOu3QxAEQYyJddZvgCAIgjAOkiTJgs/+SJKEer0OAHA4HHA4HLBYLDN+pwRBEMQocJIkDfv60C8SBEEQ880guWdwHAeO41Cr1cBxnPw1u91O0k8QhNpws34DZoRknyAI4gwxTO45juv6rxIm+zzPy98PkPQTBKEqJPsaQLJPEARhYpRy3+l0uvLuh8l9L0rZV26bpJ8gCBUh2dcAKtAlCIIwEUzA2+02Go0G6vU6Go0Gvv3tb0OSJFnYeZ6XU3RG3W7vazmOg8ViAc/zaDabKJVKqFQq6HQ6WhwaQRAEMQFUoEsQBDHHsMg9i9r3Ru7ZH1EURxZ7AOh0Osjn88jn88jlcmg0GnC73chkMlhcXOx6LZN+SZLQarXQbDZht9vhdDop0k8QBDFjSPYJgiDmiFHlflza7TYKhQJyuRzy+TxEUYTf74cgCEilUuh0Ojg+Psb9+/dhsVhGkv5qtYp2u41wOEzSTxAEMSNI9gmCIAyMlnLPIvdM7gOBAARBQCaTgc1m63p9rVaD3+9HIBBAsVjEgwcPwHEcMpkMPB5P12uZ9FerVezv78PlcsFqtcLpdMJqpdsOQRCEntBVlyAIwkBoJfeSJOHFixdy5F6SpKFy3+/7GT6fD1euXEGxWMTDhw/BcRzS6TS8Xu+J72P1Ae12G+VyWZZ+i8Uy0XEQBEEQ40GyTxAEMUO0jtwzua9Wq8jlcggEAlhdXT1V7keBSf/x8TF2d3chSRIymcwJ6Vem95D0EwRB6AvJPkEQhI5oJfetVqtL7jmOkyP3a2tr+N73voeNjQ01D0XG6/XilVdeQalUws7ODiRJQjqdPnEsJP0EQRD6Q7JPEAShIb0DrLSSe57n4ff7EQwGsb6+PpPceI/HI0v/7u4uGo0G7Hb7idf1Sn+pVILNZiPpJwiC0AAaqkUQBKEiSrnvdDpdue7jDLHqpdlsynJfKBTA87wcuff7/UPlXpIkvPnmm/jEJz4x/gF9n2q1OraIP336FLu7u3C5XEin0/D7/QPfH/u5Wa1WuFwukn6COJvQh14DKLJPEAQxBafJ/aSR+35yLwgCQqEQzp07NxddbVwuF4LBIGKxGHZ3d7Gzs4N0Oo1AIND1ut55AKVSqat7D0k/QRDE5Bj/bkEQBGEgtJT7XC4ny73FYoEgCAiHwzh//vxc9qlnU3cXFxdx6dIlVCoV7O7uYnd3V4709+b0K6W/UqnAYrHA4XDAZrOR9BMEQUwAyT5BEMQQtJL7RqPRFbm3Wq0IBAJYXl7GxsaGqnLPpFtvevfrdrtx8eJFWfqVkf5+0s9+9iyFiKSfIAhifEj2CYIgFGgp9yxyXywWYbVaIQgCIpGI6nJvJPr9rJj0V6tVOdKfSqUgCAJJP0EQhMqQ7BMEcWZhIt8r9zdu3MCrr746ldzX63U5cl8sFmGz2RAIBBCNRrG5uQme59U+nKHMKrI/jIWFBWxtbXVJfzqdPlX6WXqP0+kk6ScIgjgFkn2CIM4Mg+SewaSy0WiMLeP1el2O3B8fH8Nms0EQBMRisZnIvZLTpFvL/Y4i4krp39vbkyP9wWCwr/TzPA9RFPHw4UP4fD4Eg0GSfoIgiAGQ7BMEYVqULR3ZICu10nIGyX08HsfW1tZM5d4ojFsrsLCwgM3NTdRqtS7pX1paOrEdnudRqVTgcrko0k8QBDEEkn2CIEyDlnJfq9W65N7hcEAQBCQSCXi9XkPLvRoFuno+HXC5XLhw4QJqtRr29/ext7fXV/olSYLFYoHVaj3Rvcdut5P0EwRBgGSfIIg5Rin37I9Wcu90OhEIBJBMJg0v90Zh2kWGy+XCxsYG6vU69vb2sLe3h5WVFYRCITmHn22f53k5vadWq6HRaJD0EwRBgGSfIIg5YhS5n0TCJUnqkvtyuYw7d+5AEASsrKzA4/GQ3E+AWi0/nU6nLP3KSL8oin3TewDI0l+v1+F0Okn6CYI4s5DsEwRhWPSS+1KpBKfTCUEQkEqlUCqV8Nprr6l5KDNlWumeNIVH7f7+TqcT58+fR6PRwN7eHo6OjuB2u7G4uEjSTxAEMQCSfYIgDIOWcl+tVrsi9y6XC4IgIJ1Ow+PxnOj6MqtBVEbGKD8Ph8OB8+fPo16vo1KpYHt7G8lkEsvLy0Olv1qtkvQTBHHmINknCGJmzELuM5nMCbk3O0aZoKs2PM8jnU7DarVif38fBwcHSCaTCIfDJ35vWE4/+90g6ScI4qxAsk8QhG4Mk3tloeUk261UKl1y73a7IQgCVldX+6Z5ENqjteyz7dvtdqyvr6PZbGJ/fx/7+/typL/394njOFit1i7pdzgccDgc9DtCEIQpIdknCEIzlHLf6XQgiqL8Na3kfm1tbWq5pzSe+aD3HCml/+DgANvb20gkEohEIkOlX9m9h6SfIAizQbJPEIRqnCb3k7bBlCQJ5XIZuVwO+Xwe5XIZi4uLEAQB6+vrcLvdJGhDMGsaz6Dt2+12rK2tYWVlBfv7+yNLf71eJ+knCMJ0kOwTBDExTO6Z2Gsh97lcDpVKheR+DpEkSdOWpactJmw2myz9LNIfj8cRjUb7Sr/FYjkh/Xa7ndquEgQx15DsEwQxMr1y/+jRIywtLclFjtPIfalUkiP3lUoFHo8HgUAA586d013uWRqPWThrkf1ebDYbVldXkUwm8ejRI2xvbyMWiyEWiw2V/g8++AB+vx+hUIiknyCIuYVknyCIgZwWuT86OoLf74fT6Rx7u0zuc7kcarWaHLk/f/48FhYWKHJPnMq4iwmbzYZMJoNkMilH+mOxGKLRKCwWS9drOY5Do9EAANTr9a7uPST9BEHMEyT7BEHIjJuWM6r0SJKE4+NjOXJfq9Xg8XggCAIuXLgAl8tFcm9wJn1iY4TIfi9Wq1WW/kePHuHatWuIRqOIxWJd0i+KInie70rvIeknCGLeINkniDPMtDn3g9JdRFHsitzX6/W5kntK43lJp9NBPp+Xpwwnk0n4/X7N96vX9q1WK9LpNBKJBB4/fnxC+pU1B705/cqWnST9BEEYGZJ9gjhDqF1Qy3GcvJ3j42NZDOv1OrxeLwKBADY3N7GwsKDF4RAq0+l0UCgU5EWaKIrw+/0QBAE+nw+PHj3Czs4OMpnMSNJvdNlnWK1WpFIpxONxPH78GNvb24hGoxBF8cT2ldLfaDS6uveQ9BMEYURI9gnCxPQOsFKrWw6T+1KphLt376LT6cDr9UIQBGxtbcHlcql5GMSUDJJiURS75L7dbstyn0qlYLfb5e+v1Wq4dOkSyuUydnZ2sLu7i0wmA5/Pp/fhdKHmYoJJP4v053I5OJ1OeUpv7357u/fY7XY4nU6SfoIgDAXJPkGYCC3lvlgsyjn3jUYDPp8PVqsVyWQSkUhEzcOYOWZL42Eoz2Mul0Or1YLP54MgCEgmk3A4HKduY3FxEZcvX0apVMLu7i5EUUQmk4HX6z3x2nkdTGaxWLCysoJ8Pg+e53H9+nWEw2EkEom+0s/69DcaDTSbTZJ+giAMBck+QcwxSrnvdDpdgqqW3DMpZJH7eDwud9+5e/euHP0ljAd7AvPs2TPk83m8+eabstxfvnx55C5K/RY+Ho9Hlv6dnR1IknRC+udV9pXE43GkUik8efJkZOlvNpuy9DscjhOdfgiCIPSEZJ8g5gg95d7n8yEQCAyVQrNGwOcVZdejbDaLRqMBr9eLxcVF+Hw+vPbaa6rv0+Px4JVXXsHx8TF2d3cBAJlMBh6PR/V96Q1brFgsFiSTScRiMTx9+hTXr19HKBRCMpkcmt5D0k8QhBEg2ScIA6Ol3PfmarOIrzJyfxpmlf15OS42ryCbzXZ1PQoGg7h48aJcO1GpVFAsFjV9L16vV5b+hw8fguM42Gy2uY7ss9abDIvFgkQicUL6E4kEbDZb1/eS9BMEYRRI9gnCQGgl96zLCuuWoyzEHDVXux/zIsVmQZIklMtlWe6V8wo2NzcHtjRV4xyNug2v14srV66gWCzi9u3bqFarcDgcWFxcnPo96M2gNCSe5xGPxxGNRvH06VPcuHEDS0tLSCaTJP0EQRgOkn2CmBFMnrSUexa573Q6qsh9LyT72sLknp3HSqUiy/3GxsZYk4anjbCP+/0+nw/hcBhOpxP379+HxWJBJpOZK+k/reZAKf3Pnj3DjRs3EAwGsbKyMpL022w2OJ1Okn6CIDSFZJ8gdEJPuRdFUU7LUbZQVBue500p+7NaxEiShEqlIp/HcrmMxcVFCIKAc+fOwe12z1VajCRJcLvdSCQSKBQK+OCDD2Cz2ZDJZOB2u2f99k5l1AJjnucRi8UQiUS6pD+ZTJ747Cmlv1gs4v79+1hfXyfpJwhCM0j2CUIjmCwyqVdT7tvttiz3+Xy+a/iRlnLfC0X2p0OSJFSrVVnuS6US3G43BEHA2toaFhcXVZH7WXXFUe7X7/fj1VdfRT6fx71792C325FOpw0v/eP83JTSf3h4iJs3b0IQBKysrPSVfhblb7VacqTf5XKR9BMEoSok+wShEmw6rSiKXXK/u7sLh8OBWCw2ldzn83n5j1Lu0+n0zNpfkuyPj1Luj4+PsbCwAEEQsLq6qprcG4V+i4xAIIBAIIB8Po/3338fDocDmUzGVFOWeZ5HNBrF8vIynj9/jrfffht+v//EQpwVALNIf7vdxvHxsZze09vphyAIYhLoSkIQE6KUe/anX+SedfMYR+KY3LPIvSRJCAQCEAQBmUzmRD7wrDCr7Kt5XLVarUvunU6nvEjzeDymkvt+DDq+QCAAv9+PfD6P9957T55Uazbpj0QiWF5exuHhoSz9KysrcDgcXd1+lOk97XYb5XIZVqtVTu8x++8JQRDaQbJPECMyitz3m5jJ83zXJNt+9Mo9ADlyv7q6ahi578Wssj8N9XpdlvtisQiHwyEXbXo8nplMVZ1lGs8wOI6DIAhypP/u3btwuVzIZDJy21AzwHGcLP3Pnz/HrVu34PP54PV6T5wXkn6CINSGZJ8gBjCp3PfC8zw6nU7Xv7VarS655zhOjtyvra3NzeN7kn2g0WjIQ6xYCoYgCEgkEtja2pqJ3BuFURcZSunP5XK4c+cOFhYWkE6nB0r/PP7ecRyH5eVlhMNhvHjxAg8ePIDNZkO9Xj8x24KknyAItZgPoyAIHVBL7nvheR71eh3Pnz8/IffBYBDr6+tzI/e9cBx36lOLeWTYIqbZbMpyXywWZbmPx+OGlvtZF+iOAsdxCAaDEAQB2WwWd+7cgdvtRiqVOiH9s3paoQYcxyEcDkOSJBwdHeHdd9+Fx+NBKpU6VfpLpVJXy855/RkQBKEf82kYBKECWsk98FIIWeT+xYsX8n6WlpbmWu57MavsK2Fyn8vlUCgUYLVaIQgCotEoNjc3DSv3SuYtCs5xHJaWlhAMBpHNZnH79u0TMjzPss+QJAkejwdbW1uy9C8uLvZd3Cilv9PpoFQqwWq1yt175v1nQRCEdpjDOAhiBIbJPbtRqiH3hUIBPM8jEAggFArB5/OhWq1ifX1dtWMxCmZM42m1Wmg0Grh//z5KpRIsFgsEQcDy8jI2NjbOZFvESc/xtEKulP7eCLhR61jGgRXochyHUCiEpaUleXEzTPrZH1EUZeln3XtI+gmC6IVknzAtSrnvdDpdEWg15F4Z7WVCGA6Hcf78+S4hfPHihWmj32aQ/d76CZ7n0W63IQgCNjc3TfEUxgh99qdBKcPKCPi8/+5JktR1Dep9ojGsdqFX+iuVCiwWCxwOB2w2G0k/QRAy838XI4jvc5rcT9rjHnhZhKmM3FutVgQCgZGivaN045lX5lH2+3U+6q2fuHHjBgKBgClE30wopf/Zs2c4PDzEvXv3kEql4HA4VN2XHr/Xoij2/R1TSj8rWHa5XH1bk7LrGrv2VatVkn6CILqgOxkxtzC5Z2Kvttwr2yeyPO1IJDJ2KgfJ/mzpdDqy3Odyua6ZBfPU+Wha5jmy3wsr5PX5fPD5fLh161bfoVXToMfTEGWf/X4oC5ZzudzQeQQk/QRBDOJs3OUIU6Cl3NfrdVkIWYeVQCCAaDSKCxcuTJWnTbKvL51OB4VCQZZ7Nm04GAyOPJDMiMc1DbM6Fi2FmaXAsFaWbFJtIBDAysrK1NKvh+z3pvEMQin9bAiZw+FAOp2G2+0+8Vql9D958gQWiwXLy8sk/QRxRiHZJwyL1nKvnGrK2ifGYjHVO6yYTRyVGOHYRFFEoVBANptFLpdDp9OR5V7NSC8xPloKsyiK8raV/evZpNpppf+0qLsaKI9hFJTzCAqFAu7duwebzYZMJjNQ+lmEn+X0O51Okn6COGOQ7BOGQS+5LxaLsNvtuvVGp8i+uoiiiGKxKMt9u92Wpw2T3A9mVnKnZWS/3/TZSCQiS//Nmzfl6cXjdu8xQhrPINicDjZ5mEl/Op3G4uLiiX04HA5YrdauQl6SfoI4O5DsEzODyX2j0UCz2eyStGnlvlardUXuHQ7HzAYfmVn2eZ7XXPaZ3LPz2Wq14PP5IAgCksmk6oWZgDGeWKjJLNN4tNz2oOsDz/OIRqNYXl7G4eEhbty4Mbb065XGM+0+mPQXCgXcv38fFosFmUxGln7l0wOe5+XrEUk/QZwdSPYJ3RgUuc9ms8hms9jY2FBd7pPJJLxe70wHH5lZ9rWQYtY7nEXuG42GLPeXL18+MWGUMC5a5+yftm2l9D979gw3btzA0tISksnkqdKvVxqPWvvw+/24evUqisWiLP3pdLrvPpTSX61WwfM8HA4H7HY7ST9BmBCSfUIzegdYDUrLYY+XR73JSJLUJfelUglOpxOCIGBlZQUej8dQU01J9ocjSRKOj4/l81mv1+H1eiEIAi5evHiivzgxPvPeZ3/abfM8j1gshkgkIkt/KBRCMpkc2I3JyGk8w/D5fLL0P3z4EJVKZeACme1bFEXUajXU63U4nU6SfoIwGST7hGqMKve9WCwWdDqdodsdJPepVMpwct+LHqkus2IS2ZckCaVSST6f1WpVlvvNzc0TLQVngdnSeMzIJDKulP6nT5/i+vXrA6V/XtJ4BuHz+XDlyhW88847ePbsGbLZLNLpNLxe74nXkvQThLkh2ScmRin3nU6nS47GybnvlX1JklCtVuWhR8fHx1hYWJDl3uv1ztUNiE24NCOjSLEkSSiXy7LcVyoVeDweCIKAjY0NLCwszNX5nFcm+Rk3m03k83kcHR2h1Wohk8mM9aTFKJH9XnieRzweRzQaxZMnT3D9+nWEw2EkEglZ+sftlDMJeqQKWa1WpNNpSJKE3d1dSJKEdDoNn8934rUk/QRhTkj2iZFRS+574TgOzWYTBwcHcuSeyX06nYbH45nrG81ZS+ORJAmVSkWW+3K5jMXFRQiCgHPnzsHtds/1+ZxHRn1KwaYLZ7NZ5PN58DwPQRAQDofRaDRw584duN1upNPpkWonjCr7DJ7nkUgkEIvFTkj/qD3wp0HPVCG3241XXnkFpVIJOzs7EEURmUzmVOmvVqsk/QQx55DsEwPRSu57ZbBUKqHVaqHT6WB1dRWLi4umuqGY6Vh64TgOnU5HPp/ZbBblchlutxuCIGB9fX0u5f6spPH0G0AmCAKCwSDW19flKHe73Uaz2UQoFMLR0RHeffddeL1epFIpTbohjYKaosykXxnp9/l8unSa0rsI2OPxyNK/u7uLTqeDdDoNv99/4ntZIS972krSTxDzCck+IaOX3CtlcG1tDU6nE9evX0c6nVbxaAitUNZQHB4eIp/Po9PpyOfTbIs1M8DEWNnGNJvNyjMKRh1AxnEcQqEQlpaW8Pz5c9y6dWvo8CqjR/Z7sVgsSCaTiMViuH//Po6OjrC/v494PD7VFO1BzLLjj8fjweXLl1Eul7G7u4udnR2k02kEAoETr2WNFJTS73A44HA46LNOEHMAyf4ZhYm8VnLPcrTz+bycxhEIBPrKIGvHSRiXWq0mt8JkBdLBYBCJRAI8z+PVV1+d9Vsk+sCKoQ8PD5HNZvHixQv4fD753E0alVdOrH327Blu3rw5sKXlPMk+w2KxIBQKydu/du0aotEoYrGYqtLf7xjcldfk/6+4r029j9MWFIuLi7h06ZIs/bu7u3Kkv9/QMib99XodjUaDpJ8g5gCS/TOCXnLPCjBZjvYoaRx0kzAe9Xpdlvvj4+Ou7kfKAulqtTrjd6oN85rGw56isXNXqVTg9Xphs9kQCoWwtbWl6v44jjvRx/60lpZqoXW+uyRJsFgsWFlZQTwex6NHj1SX/l4RV4q+Woz69IBJf6VSORHp7yf9FotFlv5qtQqr1YrFxUVDd0YjiLMKyb5JYaLCpF5tuWetE/P5fJfcUwHmfFKv1+XFWrFYHHko2bxKsZlgnauy2SxKpZL8WTx//rzc6ej58+coFouavQdlS0uW8x6JRGY2QVcNlN14LBYLUqlUl/THYjFEo9GppP+0Y3BXXps6uj9uqpDb7cbFixdRqVSwt7eH3d1dpFIpCIIwUPqLxSKOjo7ktEy73U7STxAGgmTfJLDptKIoair3rC86a52oFApifmg0Gl1yb7PZIAgC4vE4tra2Rr5Rk+zrD1uYZbNZ+alLMBg0RHG7stD18ePHqFarODg4QDweV13+9Ijs975n1sYykUh0SX8sFpv4+NgxaBHV793HOLjdbmxtbaFarXal9/STfvYUhOd51Ov1rkJekn6CmD0k+3OK1nLPJprm83l56FEgEKC+6HNKs9mU5b5QKMBqtUIQBESjUWxubk4lKmaUfSMdV++5s9lsCAaDpz516UXPzyxLf3n27Bk6nQ62t7flvvZqyZ8esj9o+0rpPzg40OT4jMLCwoIs/cpIfzAYlH8+nU4HPM+fSO8h6ScIY0CyPyco5Z796ZX7SS+moih2Re7r9bocub9w4QJcLhfJvQro0VOb0Wq15POZz+dhsVggCAKWl5exsbGhWpGhkaTYLLTb7a5zx3rdRyIRXLhwYaLPuRrnaNIZGul0GvF4XJbiZDKJSCQy9WdBzzSeQVitVmQyGTnSv729jUQigUgkMl7qjIZRfbVYWFjA5uYmarVaV6Q/GAxCFMWua0o/6WeFvCT9BKE/JPsGhcl9p9NBvV6HzWbTRe43NzdnIvesLaBZbwRMirX6ubZaLXkYUqFQAM/zCAQCCIfDOH/+vCZtAwHIPbiJyWG97llRLQAEAgEsLS119bqfZ2w2G1ZXV5FMJrG3t4ft7W2srKwgHA5P/JmYRRrPIGw2myz9bFEzqvRLpYsAP3hAmRp5+2ricrlk6WeRfo/Hg4WFhROvVUp/o9Ho6t5j1ms9QRiR+b+LmIRBkftGo4Hbt2/jtddem0ruWVpOLpdDo9GA1+uV5b7fRVpv2JRZs94A1D6+3kmnHMfJgnju3DndBNGskX0tj4v1umdy3263EQgEEAwGkclkTrSuVAM9nyoNw2azYX19HY1GA3t7ezg4OEAqlcLS0tLY72+WaTyDUC5q9vf35ScZy8vLAz/7i0NE38i4XC5cuHAB9Xodt2/fRjabhcPh6GpZyuiN9DcaDdjtdjidTtNe8wnCSJDsz4hR03Lsdjs6nc5YNx0mE/l8/oTcX7x4ES6XS4tDmgqLxYJOp2OKKGY/mOxPCpN7ltohSZIsiLOM/ppV9tVEWQOTzWbRbDbh8/nkbkezmkA7LmqeZ4fDgfPnz6Ner2Nvbw97e3vIZDJ9iz+HvR+t03gmfSJms9mwtraGlZWVodL/6a1/o9bbnRlOpxNLS0vgeR6FQgF7e3tIpVIDpZ/16W80Gmg2myT9BKED5jQrAzJM7tkFsd/Fjuf5UwdOKadi5nI5tFotWe4vXboEp9P4kaNpZdjojHt8ytSOfD4PURTlSaerq6uaRH8ngWT/JMq5E9lsVi5wDwaDhl1szwqn04mNjQ05D5xJf78prr2Mk2YzCWpsn0k/i/Rfu3ZNln6ULw1N32E87pTgn3D/en02RVHEwsICksmk/NRmb29vYKqWUvqbzSZJP0FoDMm+RijlvtPpdIneMLnvpV/kapjcX758eS7kvhcW2Tcrp8k+k3t2TjudDgKBAARBQDqdht1u1/HdjocZZX+cRYwkSfKE4Ww2K0+MFgTBMN2rjJLGMwiWB16tVrGzs4Pd3V1kMhn4/YM11znTMk4AACAASURBVIhpPIOw2+1YX19Hs9nE/v4+Dg4O8JELEo7FGrz84MXf405pqv3qdd6VKYrsqU2j0cD+/j729/flBc6w9B6l9DscDs3qjAjiLEKyrzLtdruv3E/aBhN4ecFmEshyfFkaQDwen0u578Xsss8KkBmiKHbJfbvdht/vl6fUGlnulRhZILWkd8Kwy+WCIAhYW1ubea97LdBrQbewsICLFy+iXC5jZ2dHjvR7vd6+72nW3XjGhUl/p/ThJOPThB8ACsfn4ffeG3t/etVBsdabShwOB86dOydL/8HBAZLJJMLh8InXkvQThLaQ7KtMq9WaWu5ZlJflaFcqFTx9+nTucnzHwexpPBzHoVgs4vDwUH4aM49522cV1uuedTuy2+0IBoNYWVmBx+MxfOqB0SP7vSwuLuLy5csolUp4+PAhOI6Th4YxjNSNZxyUos/oJ/zTRvUB/WR/WH0Dk372VEMZ6SfpJwh9INlXGXbzGecm1C+Fg0V5k8kkrl27hq2trbm6WY+L2SL7vR2QisUiOp0OIpHI3KZanSUkSUI+n8fh4aE8pyAYDE49hIwYD4/HgytXrqBYLOL+/ftyX3u32z1XaTzjooboA/rK/mn7UaYyndaetJ/022w2OJ1Okn6CmACS/RkwTO77pXBYLJapOkPMA/Me2Vd2XGGzC5QdkHZ2dhCNRkcqPCT0p9PpdLUyrdVqCAQCSCQSms4pIEbD5/Ph6tWryOfzeP/99+F0OmG1WuF2uzXbpxay3y+q34taog8YS/YZdrv9RKeiUaS/1Wrh8ePHCIVC8Hq99JkkiDEg2deBdrsty72ys8qo+dkWiwXtdtvUF7d5i+xLkiQPJstmsycGk/XOLpj3xYzZUNZMZLNZuSCadTt68OABQqEQgsHgrN+qKsxbGs8gAoEA/H4/crkc3nvvPVSrVXg8Hk2elKktyqeJ/rFYwwuxA6eKp0nPnP1x70/K9qQs0h+PxxGNRgdK/9HREbxeL46Pj+XuPWa+LxKEWpDsqwzHcWi1Wl3dciRJkuV+ks4q8ybCkzBKi9FZwtopsqJMJhnBYHCkqcO9BbqEvrAnL6xjDquZYHn3vZ9JailqXDiOQzAYlHO+3333XXi9XqRSKVVrX9RcII0S0X8hDr/+HR0dIRgMjj1zxWiR/V6Ug8hOk/5OpwObzQaLxYJWq9WV3mPWGS0EoQb06VCZcrmMd955R26bqMZETKvVamgRVgOWqmQUJElCpVKR5b5SqWBxcRHBYHCidoo8z5M86kjv4qxWq819e9ppMOvvnt/vRyaTwYsXL3Dr1i0EAoG+i7dJUKsbT+H4vPz/Hm7yW67V/glcv/7nSKfTIw8fmwfZZzDpV0b6Y7EYotGoHL1n6azK9J52u41yuQyr1SpH+s3wFIsg1IRkX2U8Hg8+/vGPq3qBZWk8ZsZisaDRaMxs/0zu2dMYZa/0c+fOwe12T3UDoTQebZEkCdVqVZZ7dv6CwSAuXLhw6pOXs8A0xz/JYkHrBQaLvHMch3A4jFAohMPDQ9y8eVN+YjNNoEWNbjxK0QeAktTuK/ynRfUZW1tb8vCxdDqNQCAw9LzOk+wzWBF2MpnEo0ePcO3aNUSjUcRisRMtPkn6CWI0SPZVRouLy1lJ49FThpkcMrkvlUpwu92a9Uon2VefWq0m59wfHx9jYWEBwWBQlfNHaTwnGffnqXe3HI7jEIlEEA6H8ezZM9y4cQOhUAjJZHKiFA+96hx6Rb8ucXBy/X/3lMPHdnd3sbu7O1T69ZJ9QP17n9VqRTqdRiKRwKNHj7C9vY12u923WQVJP0EMh2R/DrBarWcisq/1gkYp90wOWaqVx+PR9IZAsj89jUZDlvtisQiHw4FgMIhUKgWv10s39CGYpUBXyaBj4nkesVgMkUgET548wfXr17G8vIxEIjFWMee0P7PeqD5DGd0fNaLfy8LCAra2tk5MHO7t9qWX7Gu5MFZK/3e/+11sb28jGo0iHo+fKv2lUqmrZafZPgMEMSok+3PAWYnsq32MLPLL5N7pdModkPSWQ5L98Wm1WvL5y+fzsFqt8tTora0t6nVvcGbdB5/neSQSCUSjUTx+/LgrHWQU6Z8mZ3+Q6DNKUht1afqfDZs4XKlUTkT6AX0j+1pjtVrhcDjwkY98BI8fP8b29jYikUjfRVw/6bdarXC5XCT9xJmEZF9ltLiIUIHuaNTr9a4hVg6HQx5M5vV6Z3rT4zjO9OdwWtrttjw1OpfLgeM4CIKAcDise697s6XxzOJYZi37DIvFgpWVFcRiMTkHfFC3l97tT3LNOE30AaAgvvxddnLqBADcbrcs/cpIv16yr6c8s/MZj8e7pD8ej59I11JKvyiKsvSz7j0k/cRZgWRfZbTK2W82m6pv10hM8vSiN63DbrcbNvJL3XhOwnrds6JaURTlLlZra2vUSk9lpi3QNdrv77iLCWU6CBvmlEwm5Rae024fAJ4UNgB8+D0L/MmfGRP9YQzL2x+G2+3GpUuXUC6XsbOzg0qlglAoNPZ2jEjv759S+lm6VjgcRiKR6Cv97I8oiqhUKrBYLHA4HLDZbCT9hOmhu+kccFbSeE6L7DebTTnqWygU5iqtw8xpPCwKftoNUxRFudd9LpdDq9Uaa7gcoR/K7kbZbBblchkWiwWZTGbkto9Giez3YrVa5b7u+/v7uHbtGlZWVhAOh7u2N25U/KXod1MVuS7hH0X0h1E4Pg+/996pr1tcXMTly5dx//59uQFBJpOBz+ebav/90GsROOhJi8ViQTKZRCwWw9OnT3H9+vWBhdlM+Fmkv1qtkvQTZwKS/TngrBboNptN5PN5ZLNZFAoFWCwWCIKASCSCjY2NuZqceBZlv9+UYa/Xi2AwaPhe92ZM4zlNXFkaHOtu5HK5EAwGce7cOdhsNlQqFezv72N/fx+rq6uniqNRZZ/BJrgmk0ns7e1hf38f6XQaS0tLIy9gGf1Ev5d+ol+XeNVSefphtVqRSqXgcrmws7MDSZKQyWTg9XpV24eeU3qH7cdisSCRSCAWi8mR/lAohEQicaIFK0k/cdYg2VcZar05GTzPo91u4/nz57Lc8zwPQRCwvLw8d3Lfy1mQfeWsgmw2i0ql0jVleGFhYdZvlVDACqDZ581msw2scWk2m3C5XNja2pJTRERRxOrqKjweT9/tG132GXa7HefOnUOj0ejqYT9qge4w0T+W7DjuAE5uNsEa9jPyeDx45ZVXUCqVsLOzAwByF7Jp0bOX/yj3AFaYzSL9N27cwNLSEpLJ5KnSX6lU5EJgkn7CTJDszwFmlf12u93VbaVcLqNQKCAUCuHcuXOmytlmuaJmo1arodls4p133kG5XJZnFagxiIxQDyYzLC0nl8sBwESLaZYicnx8jAcPHshpMXov5tReTDgcDmxsbKBWq2F3dxfVahWFQgGCIAz8ntNEf9b0ijiT/uPjYzx8+BAcx00t/Z1OR5dAzGmR/V54npcLsdnchUHD1npz+u/du4dwOAy/30/ST5gC89iUiTFLGo+y20o+nwcABAIBeRDSW2+9hfPnT+9kMY+YpUC30WjIslgsFuF0OiFJEpLJ5Mi53POAGdJ4JEmSayQePXoEURQRDocRDAaRyWSmmi4LAF6vF1evXkU+n8d7770Hl8uFTCYjp2fNS2S/Fza46vj4GE+fPsXe3h4ymQz8fn/X6z7IXwS7hbp7Ive9ol+XrDOJ7g+Kunu9Xly5ckWWfp7nkclksLi4qNo+1GbSRYVy7oJS+pPJ5Ik6ISb8x8fHWFpakgt5nU4nST8x15Dsqwyl8XxIp9Ppkntlt5XV1dWpZWOemNc0nt66CavVimAw2FUUvb29rflQMuJ0WBoVi97XajW5RiIajWJhYQHxeFz1/QYCAfj9fmSzWbz77rvw+XxIpVJzK/sMnudx8eJFOW2JSb/X6/2+6H9IRbLKwq9WRH/SjjxKThNxJv3FYhH379+Xi7DHkX6jpfEMQin9h4eHuHnzJgRBwMrKygnp73Q6sNlssFqtXd17SPqJeYVkfw6YF9nvdDooFApyao4oinK3FTUiifPMvMg+e/qSzWaRz+dHqpswa4rSPFCv12W5Pz4+htvtRjAYxMbGBhYWFmQp2dnZ0VRQOI7D0tISgsEgnj9/jrfffhter1fTpyN6TQVmaUulUgkPHz7EwsrP9H1dRbKig/GlV8si3VFF3Ofz4erVqygUCvjggw9gs9mQyWTgdrtV28e0jJvGMwie5xGNRrG8vDxQ+pVPEXiel6/f1WoVPM/D4XDAbreT9BNzA8m+Rqh5IzJqCgjrk87kvt1uUyvFARhV9vst0Fhq1fr6+kh1E2ZIeenFqMfUarXkNCpWVBsMBjWfCj3qz4LjOCwvLyMUCmF/fx+Hh4fY29vrO+VUjfekp2x5PJ6Bog8AFdEOJ69tqs5b9QhQ/8/xo+H/b6TXjyvifr8fr776KgqFAu7duwe73Y50Oj1U+vXM2VdzP0z6WaT/7bffht/vx8rKSt+fG/u7KIqo1Wqo1+twOp0k/cRcQLKvMiznz4yIoohisSiLYavVgs/nk/MfHQ7HrN+iYTHKgk15DrPZrLxAY8I4yQLNqGJsBlgqHBN89qQlEongwoULhp0twfM8QqEQyuUyeJ7HtWvXEIvFEIvFVHvPest+b+oOoyJ++Jmpi9aBwj9p3v5b9cjY38OYNOrOpD+fz8vSn8lk+hZh65nGo8V+OI5DJBKRI/23bt1CvV5Hs9nse08j6SfmEZJ9YiC9Q5CazaYs9/F43NB90o3GrFJdWK97dg7r9Tp8Ph8EQcCVK1dUWaCR7KuH8jPHFmPKIvZJO1TpLcZsnzzPI5lMIhqN4uDgQJ5aG4lEpn4/eh7TO7krYLdLpbArRV9tbjaisGC6a8a0gszqMVgRttPpRDqd7pJ+oxfojopS+t98803cunVLrj8h6SfmHZJ9QkYUxS4xbDQashjqMQSJCbFRo5XToFcaj7JIM5fLoVKpwOv1QhAEzXrdm1H29TomSZJQLpdluddiMWYErFYrMpkMEokE9vb2sL29jVQqhVAoNLEY6SH7LyW/GxahHyT6w6L7o3KzEZ3q+xlqXE85joMgCAgEAn2lX680Hr3uDRzHwWq14qMf/ShevHiBW7duwev1IpVK9b0HKqW/Wq2S9BOGhGRfA7QQBS1EmLXmY2k59XpdHoJ08eJFuFwu1fY1CkyISfbHo1qtymk5pVJJLtLUq9e9GWVfS2q1miz3pVIJi4uL8uAxl8ul2fmaRWS/d582mw3r6+vyAKv9/X1kMpmJ27ZqeUydzH8/8GtqR/RZkW6v5HfATxXdV/N6qpT+XC6Hu3fvYmFhAS6XS5eZKKxDjtawaxnHcQiHwwiFQjg6OsK7774Lj8eDlZWVvvdGVsgrSRJJP2E4SPbnBNZrf5qiV2UUMZfLoVqtdkV9tRSNUWBdh8w0TIuhpuzX63VZ7o+Pj+F0OuXe6bNogUmyP5xms9k1qdbhcOh+vmZxfoZF3pUDrFhby9XV1RO97GfFO7krcA9w5Ir48mmLk2uNvd1Beft3GlHwGnTk0SJ4wnEcgsEgBEFALpfD+++/L/9Oaxkg0usJAks/Y3Ach1AohKWlJRwdHeH27dtYXFxEKpXqe7zsyYBS+h0OBxwOB0k/MTPMZ1UGQAv5maT9JpN7FrmvVCrweDwQBOFEaz4jMC8tRidhmt8JJovKDiyCICCZTMLr9c78SYgZZX+aY+rXvjQYDCIWi2Fzc3Pm50svRkmzcblc2NraQqVSwcOHD2Xpn2ai67T0S91hMNEHgLpkGyj846Ty3FEpZWcQWj4pYvVbzWZTluB0Oq1JyuesawOU0p/NZnHnzh0sLCwgnU6fKv21Wg2NRoOk30T8yx9yS9nc9L5y7VbjP0mS9GMqvKWhkOxrABMFNT/QVqv1VBFm+dpMDMvlMhYXFyEIgm4pHdNg1PaUajDOz73dbsvnUNnr3qgdWIzSaWhWsA5HLDVnkvalWjOLAt1xcLvduHz5Mo6Pj/HgwQM5x3+UPu9q8lb2owA+TBVhMq+UfLWYRvL//vno7Te1hs1TWV9f70p3GZTjPilGafGpnCnBpN/lcp0oXFa+nkl/vV6Xpd9utxvuWk6MTjbXwff+08rU27FEP1hS4e2cyuzvQsRIWCwWtNvdkSL2mJClCJTLZbjdbgiCgLW1NSwuLhr6Bt+LmSP7w2C97ll6lSRJEATBULI4DDNG9ocxqMNRMBjsO43TLIx7LZlkgeH1enH16lXk83m8//77cLlcyGQyunT+ein63dQlGzqS+kKmdTRfT1jEvTfd5d1335ULW9UoNJ92gu6ojLqoUEo/q2E4TfotFoss/cqcfpL++UMCIE7ZLUtPjG0RhAyTfSb3uVwOpVIJLpdrbuW+FzNH9pUoI8FsGFkgEJjbScNmlX3lMVWrVTlyXy6X5UL2ra0t3QvZJ8UIBbqjwlo+ZrNZWRrT6bRmC6l+og+8jOgPy80flsrTjw+aywDQt+hWlHhN8va1pje9Rin9rJvNsBaWo6LWBN1R9jPOokJZw8C6FTkcjoHDyJTSXygUkM/nkclkSPrnDgkdaX4+ryT7BqdWq8mR+8PDQzktJ51Oz6QYU0vMGtlnXY8ajQa2t7fllqZmGUZmRtnvdDool8soFAooFotyEfS8LqqNVqA7CsrI6fPnz/H2229DEASsrKyouiAeJvrA+ELP6M3bZ6JvNgbl0iu72TDp9/v9Ew/vM1pkv5feFqWscHmY9LfbbVQqFYr0zyEvI/vzc98j2deAaT6ovZ1WWJcDQRDg9XoRj8dVfKfGwiyyryyMzmazctcjjuNm0tJUa2Y1MExNWJ0EK6ptt9tYXFxEJpPB1tYW3XxnCMdxWF5eRigUwrNnz3Djxg2Ew+GpFzCDJB9QN0d/Wsmftv2m1oyS486kny3aJpF+o0b2e2HSzyL99+7dg81mQzqdxuLiYtdr2+02LBbLifQeVshL1x1jQ2k8xMgwuc/lcigWi7Db7XLEV9lpZX9/f+6F6jTmNY2HdVtQpnmwJzDKrkff+c53TCf6gP7pIWogimJXnYQoihAEAaFQCOfPn8fjx4/BcRwCgcCs36pqTHOeJhFrtYuCeZ5HLBZDJBLB48ePUa1W8ejRI8RisbGl6J+PfhDKQlzgZTHuIMkf2nlnyNdmGc3X62nOqF1y2KItHA7j8PAQb7/9NgKBwMh1LnoW6Kol2YFAQI70f/DBB3LhOZN+5TEp03sajUZX9x6SfuMhQUJnjp5ok+zrTKPR6JJ71kYxHo8PjSBarVY0Gg2d362+zFNkv16vy6J4fHxsqtqJcZmHNB7lALmjoyO0Wi05lWrStIJ5Yh7TeAbB8zySySSePn2KdruN7e1tJJNJLC8vjyRFL0X/JGpG8x+2wgAAGze765leHZjGbYnJcRwikQiWl5dxeHiImzdvysXtw9Kz9DoeLWa9MOkvFAq4f/8+LBYL0ul03331FvI2Gg3Y7XY4nU6SfoNBaTxnHOUFqbdHutVqhSAIiEajY/XcnicRnhQjR/Z7ByOxJzArKyvweDwjn0ejt0CcBCOm8bBOVexpS6VSgdfrRTAYxOXLl3Xp7kJoC8dxSKfTiMfj2N/fx7Vr15BKpRAKhQZ+xgaJfl18KZnD5HzU3H0m+gDQkix9t6lGas5p7Tf17Es/yX6Y9LNI/40bN06Vfr1kX6snCH6/H1evXkWxWMTDhw9Rr9cRCoX6vlbZsrPRaKDZbJL0GwgJQIdkn9jd3cWzZ89gsVggCAKWl5exsbEx8UVklD77847FYjHM04tWq9U1GMlisSAYDI69SFPCFjN6PIrWE6NE9nvrXVwuF4LB4EQzJoxyTGoxi0WmXvu02WxYW1tDIpHA3t4e9vf3kclkIAiCvP+/e/5puPmT1xYm+YxBcj4KSsmfFDU78ugl+9Ne03ieRzQaxfLyslyTsbS0hGQyOZPOZJ1OR/OmCT6fD1euXMF7772Ho6MjlMtlpNNpeL3eE69VSn+z2STpNxAU2ScQCoWQSqVUE7t+ffbNxiyfXnQ6nS65B14+emU53GqcR5J9dWm1Wl1PW1hK3MrKilwQTcwOLWW/3++bw+HA+fPnUavVsLOzI0/jfav5r2DBh2Lv5F9G53tFfxo+aEZgMVjbTD1lX439KGsyZin9ehUCAx8uVG02G3Z3dyFJEjKZzEDpZ+k9zWYTv/iLv4gvfelLiEbNM7NhnpAAytk/63AcB7fbreoFg9J41IUVaDJZ7HQ68tTT1dVVTW4uRk5Tmga9ZL93+BgAVZ6anRXMtPgZtpBwuVzY2tpCpVLBdyo/fuLrp0n+sOh+byrPQSs4xrtWn1u3biGTycDj8Zz4ml6yr2Uh9tOnT3Hjxg2EQiFdC471upawlCGv14tXXnkFpVIJOzs7EEURmUwGPp/vxPcw6d/b26N0xBkzT3dzkv054ayk8Wh1jKxAk+VwKws09Zp6yvO8qVJDGFrJPjtnR0dHyOVyaLVa8Pv9CAaDmg8fM2IdwjSYqUB31G33E30AqEsvP+tOrjnVe9BT9Afl+KdSKTx48EDu8qLs566X7Gt1jnmeRzweRzQaxZMnT1CtVrG7u4tEIqHpVHHWDlMPevfl8Xhk6d/d3UWn00E6nYbf7z/xvWy4HzEbJEiUs0+oz1lI41Ez8s163bMocK1Wg9frhSAIMyvQNJtAMtSSfUmSUKlU5AUZO2dUVDufzEr2//rZj/bPz5fsJ/4+SPiHRfcHSX5H4vum8kxTB3AaPp8PV69elYc4OZ1OpNNpLCws6Cb7WsPzPCKRCA4PD2G1WnH9+nWEw2HNpH8Wkf1ePB4PLl++jHK5jJ2dHezs7CCdTne1AtaiaxAxBhLQmR/XJ9nXEjVvdhTZH46y+0oul5N73QeDQVy4cAEul2vmaQyUxnMS1sKUFdW63W4Eg8Gu+QTE9Ex6LWJ1ES9evEAwGEQwOHo0exay/x8PfwQW7qTI94r+pDxpvZQtNeRdzWFZgUAAfr8f+Xwed+/excLCAoLBoClkH3gp4FarFYlEQo70X79+HcvLy0gkEqrKuV79/Nm+hgn74uKiLP27u7vY3d1Fq9XCxz72MV3eHzGYlxN05weSfQ3gOE71m5xZo8JKLBbLWMdYq9W6uq+wG5xRe92bWfZHPS5lC1M2Z2JpaQmpVMpQRbVm68YzKsphY9lsFpIkIRgMwu/34+nTpzg4OMDq6mrfAsJetPz59ZP9/3j4I11/H0Xwh0X3lTDJNxrK9ptscmsgEEA2m8X9+/fB87w8nEkr9KrXYQsXi8WCZDKJWCyGJ0+e4Nq1a4hEIojH46pIut6yP8q+FhcXcenSJZRKJfzcz/0cDg8PYbfbTdnKeX7g0MH8/OxJ9ueEs/CB5nl+aGSfDSRjouhwOOShSEYSxUGYVfZ5nh+YYqbscpTL5cDz/ERzJojp6ff5UKa7ZbNZ1Ot1uS5COWysXq9jaWkJlUpFzhFfXV3FwsLC2PtUg17J6RV94GX6DDB5FJ6l3+gt+tO23+Q4DktLS5AkCc+ePcOtW7fg9/s1GR6n56CrXilWSv/jx49Vk369ZX+ca6DH48Ff/uVf4saNG/jpn/5p/NAP/RBef/11/MiP/Ijh73/EbCHZJwxDbxoPSyHI5XLI5/PyQLLTpg0blbNQoCuKIorFYleXIyaPa2trlGM6I5S/dyx16ujoCKVSSU5329zcHCjvTOo8Ho+cI3737l243W5kMpm+kWM90nj6ST7woeiz/59E+J+0AjOdgDstkiTB4/Hg0qVLY02qHQcjtPe0WCxYWVlBPB7Ho0ePcO3aNUSjUcRisYmkXc9ah0mzANbX17G+vo4//uM/xm//9m/jN3/zN/Frv/Zr+MxnPtP1uk6ng49+9KOIx+P4+te/jk9+8pMolUoAgOfPn+NjH/sY/vqv//rE9n/lV34F3/jGNwAAv/7rv44vfOELAIB/+Id/wC//8i9DFEUsLi7iy1/+MtbX18d+/2ZAAiDO0e2c7rwacVbTAKaBTQp8//33kcvl5MfS4XBYtV73s8SMqVhspDtblNXrdfh8PgiCgCtXrmg+nEYrzPT5bbfbcieTu3fvwmazyR2NPB7PRLIRCATwkY98BEdHR7h165Y830ApkZIkaSZNkiRhb/mLJ6L3SslXMryd5slUntOi+QMn4+pQpPvdcrdc/eiAWV5MWpWTaln/+lAohGQyOfXiW88pvadd/y0WC1KpFOLxuBzpj8ViiEajhr13THqNYZ14zp8/j6985Su4f/8+vvOd75x43b//9/8em5ubOD4+BgD88z//s/y1z3/+8/jJn/zJE9/zjW98A9evX8fNmzfRaDTwqU99Cj/+4z8Or9eLX/iFX8Df/M3fYHNzE3/4h3+I3/qt38KXv/zliY7BDFAaD6EZZsrRU+YH53I5iKKIVquFQCBgyiiwWdJ4arWanPZRKpVgtVpht9tx4cKFU9M6CO1hT1dYy1JRFCFJEuLxuKrFjBzHIRQKIRgMyhKpRcFkP/6f4n8JoDt6rwa9kq9lJ51xeKu8Ovb39Iq4sn+9WgWuRojs92K1WmXpZ5H+WCyGWCw20jbm4f5aKpW62m6ySL+SR48e4Rvf+AZef/11/P7v//6J7//Hf/xH/Nmf/dmJbd+5cwef+tSnYLVaYbVaceXKFfzd3/0dfuqnfgocx8kLh2KxiFgspsHRzQcSSPYJaBMZZB155lWCRVGUe90r+6YLgiDnk37nO99BODz92HkjMq+yz4pqj46OUCwW4XQ6IQiCHBl+8eKFXCBN6E+/vHufzycXPtvtdty+fRs+n08TCWcSuby8jMePH2N7exuJREKTFob/97N/2fffR8nPP03cZ1GEO6gjzyRy38sgQeZ5vqurzfb2tizD454vvfLbJ9mP1WpFOp1GIpHAwcEBtre35b79w6Rfz+Fdky4sP5oUVgAAIABJREFUSqXSqUXyv/RLv4Tf+Z3fkdN2lHzta1/DD//wD/fdxpUrV/Abv/Eb+OIXv4hqtYp/+qd/wtbWFgDgjTfewE/8xE/A5XLB6/Xiu9/97kTv3yyIEsn+mYfJvppRAtZrf15kX5IklEolOX+7Xq+f6b7p8yL77XZbLqrN5/PgeR7BYHBgrYSZUl4YRj+m3palo+TdT8tp1zKWOx2LxbC3t4dnz54hFAohEomoch3sJ/q9Ef1JIvGHrZdTSm3cbOeYXKukVd3eafcfZYEri4CPIsNKjJTGMwg2cCyZTJ4q/Xo+OZ8mcNcb2e/l61//OsLhMF577TV861vfOvH1P//zP8fP//zP9/3ez3zmM3jrrbfwiU98AqFQCD/4gz8ov88/+IM/wDe/+U18/OMfx+/+7u/ii1/8It54442JjmHeocg+oRlaTphVAzYUicl9pVKBx+PRXELmBaPKPkv7YPIoiiICgQCCwSDW19dPvSGZsRbBaLTbbflzlc/n5bz7UTtR6SkxVqsVa2tr4DgOxWIR165dw+rqKgRBmHib/+eTzwKwwcm35H9TI3WHif4smVbyf/Phf4dfX/3TE//e6XRGqplR5rozGU4kEohEIqeKvBHTeAbBpF8Z6e89znG740zDNAuYcrk8NLL/7W9/G3/7t3+Lb37zm6jX6zg+PsbP/uzP4qtf/Sqy2Sy+973v4Wtf+9rA73/99dfx+uuvAwB+5md+BufOncOLFy/w9ttv4+Mf/zgA4Atf+AJ+7Md+bKL3bwYkcOhgfpqEkOzPEVar1XBTdFn+di6Xk4ciCYKAc+fOwe12z0X+o14YpRsPe+LC5L7RaMgdc1ZWVsZuz2f0KPg80m8BJggCQqHQ3BSrWywWxGIxeDwe7OzsYG9vD2trayP16Ge8lPwPqYu2vgWwSoZF99nXxpH8Qdsbt0hXyc3Kysj7n5RxF3hKGd7f38f29jZWVlawvLw8cDt6yXGn01GtbajNZsPq6mpXpD+ZTGJ5edkQ03NH4bTI/pe+9CV86UtfAgB861vfwu/93u/hq1/9KgDgr/7qr/DZz3524JP1TqeDQqGAYDCIW7du4datW3KXn2KxiHv37uH8+fP4+7//e2xubk70/s0CpfEQmkiuESL7jUZDlntl/nY6nZ64s0cvZipCVjLLCDibLpzNZuVODsFgEBcvXoTL5Zpq22aUfb2PiT0VYy0xWd79pAswI8A+xwsLC7h48SJKpRIePnwInuexuroKt9s99Pt7RR94mePekV7KpX3CtJtBot+SrJqn8ugh+YxJo+E2mw1ra2tIJpPY29vDwcEBUqkUQqHQieuyXnKsxX6U0s8WN8vLy7pF9qdJyS2VSvD7/RN971/8xV/gV3/1V7v+bXt7G3/0R3+EN954A61WC5/85CcBAF6vF1/96lfl9/knf/In+PznPw+e5xEIBPCnf3ryidJZgdJ4CADayD4r0NWTZrMp528XCgVYrdah+dvTokWtg1HgeR6tVuv0F6pAv0WZVtOFzSj7esBalh4dHclPxVjKm8vlUvUcTfuZmuT89u7T4/HgypUryOfzeO+99wb26H/j0eexwDdObK/3kXlTsg4U/n5R9xftl5FQC/T/XX2nmgQA8H2KcbVi2tQXu92Oc+fOodFoYHd3F/v7+0in0wgGg/J51TNnX6v9KBc3Dx48QKFQwLNnz4Y+0VCDadN4VlZGWzh++tOfxqc//Wn57/1y+D/60Y/KufdOpxN37tzpu63Pfe5z+NznPjf2+zUnnBx4mAdI9ucIVqCrJf2KMwVBwPLyMjY2NjSP4rCnF/M2MGsUtMzZ783p1npRpoRkfzTYZ+vo6KjrHM3LBGi16O3RHwgEkEqlYLPZ8JXHPwkb1y3rauTFMtF/uT1ON+Fnkj8L1BJxh8OBjY0N1Go17O7uYm9vD5lMBoFAQNecfa3vPXa7HbFYTO5udXBwIKf3aPHZ1DKNh9AeCYBIOfuEFmiRxsPy89hQpHGLM9WGHaNaEx6NhJqy329Gwaxyus0o+2oc06DC51mco1k8LRu2T9ajf2lpSe7Rfzf+212vaUkWdMAP7a4zLLr/pOWfSY/8O7W47vvsh9oi7nK5sLm5iWq1KtdgeDweXQbn6V0bsL6+jmazKacxraysIBwOq/oZarfbmhXoEvpAaTyEZmk806aBMAFhUeB2uy0XZ7Ke3LPEqB1r1GCaAl1JkuQZBdlstu+MgllhRtmfBGXefTabRa1Wm/u8+2kYZYHBcRz+X/HfAD1+rIzmT9JOUxnJH4dBefujFOkaRfIZWkXdWQ1GpVLB7du3IUkSfD6fpvI5i37+yjSm/f197O/vD6xdmHZf48LqrojZIUmUxkNohMViQb1eH+t7lJ1XcrmcXPgnCAKuXLmiS1RmHIxQhKwV4xToSpLUVVRbqVQMO6PgLMs+q43IZrMoFoty3v3GxgYWFhbOTGpOP0aR/a88/skT/zZu2k5vdH8U0VczlccIkt+v/abWKTZutxuRSASiKGJ3dxcA5EF7ajPLfv4Oh0OW/r29Pezv72NlZWVq6e90OhNfx0cZqkVoj0iRfUILRhFhZXQxl8vJkigIwlz0ujd7ZH/YsbGCTTYoyeVyIRgMGr6NqRllf9AxKWtacrmcnHefTCZx8eJFw9aaGK3o/T8c/NT3I+Ivb0E2rj1U8keJ7veT/EmeCozKe7UoAMDCjf67L4LXrUhXD0EWRRELCwtIp9M4Pj7GgwcP5Baep3VbGgcjTOp1OBw4f/58V8FyKpXC0tLSRJ8tiuzPNy+78Rjzet8Pkn2N0CqNp1+BbrValSWxVCrJ0UWjS2I/zBzZ75X9Vqsln7dCoSAPSlpZWZmrgk2jzA/QAlEUu9KnOp3OTGta5olBC4w3Hn0etp5/rksva3QmFfNJ03YmgUm+0dFD9pW59F6vF1evXkWhUMD7778Ph8OBTCajSoBJrxafo/TzZwXL9Xode3t72NvbO9GlaNR9TXpMx8fHJPszh9J4CI1gItwbAWZtFdkj1HmRxH7wPG9a2QdeLszu3buHXC4HALp2OtISs8g+S5968eIFcrkcDg8P5bx7I6a9jcoszk8/2X/j0ee7/j5OgVu/KP1R60PhsfHqdCoblLd/pxoDP0YUf9boFdnvvW75/X68+uqryOfzuHv3rhz5n2aeh54FuqNeh51Op9yliEl/KpUaWfqn6bNv1iYW8wR14yG6UOPxebPZlMXjxYsXqNfrEAQByWQSXq/XsKkDk2CxWEyTxiNJktyNJZfLodFoQBRFrKysIJPJmOZiPe+R/d68+4WFBTgcDgQCAVy8eHGuF89KZnEcbJ+9kg/0F/1R026Ukj8po+btf1BbHr4diRsrlUcv9JL9fvvgOA6CICAQCCCbzeL27dvweDxIp9MTL5j1+P2dJNrucrlw4cKFrtak6XQagiAMfc96pSYRBECyrxnTXJhYz/RcLnei132z2cQP/MAPqPhOjcU8p/H068aiLKoVRRH37t3D8vJweZg35i1nv9PpdM0ksFgsJ/LuX7x4gXw+bxrRnwXsd+L/OPgClLea02R+mPC3JAuK7fHSQibN2z9N8ucBrX9/T1tQcByHpaUlBINBvHjxArdu3YLf7595B7FBTCPgrDUpk/7d3d2h0k+yP/90pPm5P5Dsa8ioF1rW655FgCVJgiAIJ/KC2+029vb2tHzLM2feCnTr9bos98opqP26sdRqtbk6tlExuuwrn7CwdrOBQABLS0tnJu9+FgW6f7/wPwPHJ/+9Jb0UnHEFPN9+WfDJD4jGt0SrKqk8D2sh8Jz5PqdaMGp6DcdxCIfDCIVCODw8xM2bN+X6JCM94VRDwJXzCJSR/kAg0PUZnLTPvtGK7c8qEjgq0CWGoxy2k8vlZPkQBGFoesc8R71HxejHyFKqWMqH3W4feQrqvC1kRsVosj+obenS0tJYefdGOqZ542U0f3J6o/FM9IGX7e4GCf80PKyFVN9mP7TqyNOv/abWjFs4y3EcIpEIwuGwPEwtFAohmUwaYtGtZm3AwsICtra2ZOnf3d2VJw8DkxcdVyoVw3fVOyuIOhXochxnAbAN4LEkSZ/lOC4D4C8ACACuA/ivJUlqDtvG7D9dZwA2EIlJYqPRkIv+ksnkyPJxFlbzPM9PPThMTTqdTlerRZZSFY1Gsbm5OdaNwcyyP+vjajabXXn307YtPQuftXEYdeEzjuQPS6/Jt9wI24+7JH8aBu2rAw57taUT/y5KPEX3R2DSugCe5xGLxRCJRPD06VNcv34dy8vLSCQSJwRYz0W3Fl1/mPRXKpWu9J5JI/Q0PdcY6Nx6838AcBcAO/H/O4A/kCTpLziO+yMAPwfgPwzbAMm+hlSrVbz//vuoVqty7vbFixen6kpgdmYd2e+dMNzpdOQJw2tra1NFn8ws+3pHwfstwoLBIOLxOLa2tkxVtK4Gejz6/4O9f41+t5RhqTUnIvitD+X+edMLGz/etWCcVB4WyR9nuJYocXPVkUdrpi0C5nke8XgckUgET548wfb2NmKxGGKxmCzdeg3UAiZPrRkFt9stTx7e2dlBrVZDoVCA3+8fazulUonabhoACZwuOfscxyUA/BcAfhvAF7mXF/J/AeBnvv+SrwD4X0GyPzvYEI5563U/S/RuvSlJEsrlshwVZhOGg8EgEomEqq0W571rzSD0kH32dIydp1arJfe7n3YR1g+jpSYZmZeSP5hRBFwp+aMwbSqP2ik7Ru3IozVqpb1YLBYkk0nEYjE8evQI165dk6VfT9nXo5+/2+3GpUuX8Oabb+LRo0dyeo/P5xvp+2l6rnHQqfXmvwPwPwFgK7wggIIkSeyi+gjAqWO8SfY1xGazged51UXfzAU6erTerNVqsjSWSiUsLi4iGAxqPmHYrAKp1XFVq1UcHR115d2zzkaTjpk/q2h1zThN9EfhqOWBRaepsnrl5c8aPa8zaoq4xWJBKpVCPB7HwcEBtre3sby8rJvs63VvlSQJVqsVly5dQrlcxs7ODjqdzkjST9NzjYEkQa2hWkscx20r/v7HkiT9MQBwHPdZAM8lSbrGcdynv//1fr+gp37gSfY1RIuLBpNhs7bs0iKNpzef2+l0ysXQ8z6EzAio9fNjxc9HR0fyeZrXSdBmQRRFuVNYLBaTmwf8zu5/8/1XjNZZp190f5QWmi3RMnYqTz/2akEA6JuCM2q/faPzdiEuy+q8B4SsVisymQwSiQQePHiAYrGIZ8+eYXl5ea6Pi6Hs+rO4uIjLly+jVCphZ2cHkiQhk8kMjN5TGo9R4CCOMRRwCEeSJH10wNf+MwD/iuO4nwDgxMuc/X8HwM9xnPX70f0EgCen7YRkf85gMmxW2Vcjr73dbsv53GxOAeVzG49Bxc9GOE9mfQpzGspZEUdHR6jX6/D7/bBarbhx4waWl5fxf0m/fuL7RmmnyYS/n+R3wKsW3VcuLJjkT4LRi3TfLpx8cn/t2jWk02n4fD5dPj9af0ZsNhvi8Tja7TZKpRIODg6QSqUQCoU0kX69FhL97uEejwevvPKKLP0AkE6nT0g/pfEYAwmqRfYH70OS/i2AfwsA34/s/4+SJP1rjuP+CsB/hZcdef5bAH9z2rZI9ucMi8WCdrttyIEkajBJZF/ZyjSbzUIURTmf+6z0UZ8H9M67Jz5kWKS398nXwsJCV1oba2X6V9z/curD4tMGWI07EGsYw/L2p5H8U/erQpHuJO03+8l9L/8b/zf4zf+fvXcPb6O+077v0cHyQbZ1GNmyJR8kJ3FsJ7ZzKHlKOZaGq1C6SyFLt9ClLYduSwsUylvo0rKlW0oo0EK7z266DVfhLX2Wd9t92u0C7W5LSElDy2InIWkSSOKzHcexZMuWbZ1n3j/s32Qk6ziaGY3k+VxXuEIkzcGyRvfvO/f3/k7fjOHh4ZJZrDIMg7KyMqxfvx6hUAjDw8MYHR1Fa2srrFarqAJdrp9ZukZgIvrn5+cxPDwMANxdaECt7CuJAubsPwjgJYqivgXgMIDnMr1A/XaVECmqBDqdTtE59PmSTWWfZVn4/X5OoIRCIS4xp7m5uWQXQsUIP++eRMapvvvCwjAMd0fF6/VmdefrexO357XP+diFBDJdjsO0crHyjAeXM8yVXJHPlmNzjdzfmRxSPzo6OjA7O4vjx4/jyJEjcLvdklWC5aiE85uADQYD2tvbuSm1IyMjXHZ9vsciZyNwLBbLWNyoqanhRP/g4CDeffddtLa2YmFhAU6nU5bjVEkNCyqnz2Xe+2PZ/QD2r/x9EMBFubxeFfsSIpVnPxrNf0qkUklW2WdZNq6pljQoqVGmyoM/dMzn83G++7a2NhiNxqLx25aSjYdlWUQiEYyPj8Pn8yEYDHJ3VNIN8QOAv3+PNODGVyHT2nV41X2+yM9EPlYeIvILSb6JPHxxny8GgwEmkwktLS0YHByERqOBy+WC0WgUbR9yfT6SWV4Sp9QmDqwSaz9Skcu+ampq0NPTg8XFRXzta19DJBIBTa+eDaEiP+oEXRXJKHQOvdSQ8wuFQpyXm9+sWWyisdSJxWKcgPzjH/+Y19AxFfEIh8NcktH8/DxCoRA0Gk1OiVMXhP5qMtl1gNyEvlBGg5akVp5UfvtUFpxCNOmKKe4TIVXq6upq9PT0YG5uDqdPn4bBYIDL5RKlQMIwjCzX4XSBFPyBVUNDQxgZGRF8J0NOsS8kz//iiy/Gb3/7W9x55514/vnnsX//fvz93/89urq6JDpKlXSwkG+CrhioYr/IKFUbTzQa5SrCfr8f77zzDpd1X+hmTbEp5qQMvoXK4/EgEonAZDJBq9Vi+/btaavEKtJBFl0ejwczMzPQarXchO7a2lr09fXB4XBkZXFLJ/L5pBL889Fle5Zek7xKH2W1eVt55Krki92ke3zOLtq20pFoSamtrUVvby9mZ2dx4sQJGI1GtLa25jVHRK5UuGyy/El2Pb+5le9zz3Y/clb2hfYo6fV67N27F3Nzc7j33ntB0zS+//3vo66uLm7727dvh8PhwMsvv4xbbrkFfX190Ov1uOiii/DDH/4w6bV6dHQUd9xxB8bGxkBRFF599VW0trbi05/+NH7/+99zsaDPP/88ent7hZ18yUAhJk4ajyyoYl9CVBtPaohveGZmBjMzM2AYBhaLBTabDTMzM7joopzsaEVDMcbiEQuVx+OJs1DxffdvvvlmSQl9pdt4yDA4Ur0Ph8Npm52z+Z37yolPrwj0ZcGTqyAnIj8fMll5lGDXyRW5BD6fZP5ziqJgsVhgNpvh8Xhw9OhRmM1mtLS0CPrsyuVxz2VRwW9uHRgYgFarhdvtRlVV5qFtYg0Iy4Z8FhakQbe7uxu/+93v8MYbb6y6k/Hss8+io6MD8/PzAIBbbrkFL774IgDg5ptvxt69e/H5z39+1bZvvfVWPPzww9i5cycWFhbifh5PPvkkdu3aJeiYSxG1sq8iKcVq40mWxGIymWCxWNDS0hJXcTx16lQBj1RaSAOyku9URCIR7n3y+XwwGAyqhUoBEGubx+PB/Pw8jEYjaJoWpW/l4XdvhT7hVzLKZhb9EVaLQCy5UIwwGtGq+2dDtYqaUJspkacQAp9PumsMRVGw2WygaRrnzp3D4cOHYbPZ0NTUlFO1Wa7rWCwWy3kxUlNTg97eXvh8Ppw6dQplZWVwuVxpLWxyV/aFBkmQoAPCZZddFvf4+Pg4XnnlFTz88MP47ne/CwC49tpruccvuugijI+Pr9ruiRMnEI1GsXPnTgAQtb+jVFEr+yqSodPpEAwGC30YGSFxfUQ0qhNQl9FoNIqrGPPTWWZmZgAAVqtV9d0XGDKHwOPxYHZ2FlqtFjRNo6WlBTU1NTkvupI9/+F3b03yzHjSCfPFqEHy5JuzofQTRVNFcMqdk//ufL1k29ZQbNbJH7sOfR17mu/N+LmlKAoNDQ2or6/H2bNncejQIdjtdjgcjqxEr1yV8HxEuMlk4uxLJ0+eRGVlJVpbW5MujuX27AtdoGeK3vzSl76E73znO/D7/asei0Qi+MlPfoJnn3121WOnTp2CyWTCDTfcgKGhIXzoQx/C7t27uZ/Jww8/jG9+85u46qqrsHv37rwsYKUAy1JqZV9lmbVm4wkGg5zvfm5uDlVVVbBYLOoEVB5iDA3Ll2TRpdmms6wVCmHjIe8LseaQOQQ0Tec9LyLZuWQj9AmJgn8xeuGLPp2oTlfdz0SiyM837YYgRk4+QUqBnw+5VN01Gg2cTicaGhowPj6O/v5+OBwONDQ0pN2GXJ79fO8g8O1LXq8Xx48fR3V19aqeBTkn0+fj2Y9EIinvCrz88suoq6vDtm3bsH///lWP33XXXbjssstw6aWXrnosGo3iwIEDOHz4MJqbm/Hxj38czz//PG6//XY8/vjjsNvtCIfD+OxnP4snnngCjzzyiKDjVykMqtgvMpRk44lEInExi3q9nsu6F1J55FNsvvZsoSiqIGKfH11KKkNqdGnhCQaDnDWHvC80TUt69+srJz698rd4AZWNKOeL/HxJdcdgPGguSE5+tok8ROCLtWCQAiECWavVoqWlBQ6HA6Ojo+jr60NzczPq6+uTXovltPGIIcIpigJN07BarVzPAoknLSsrE5SQIxSp7iIcPHgQv/rVr/Dqq68iGAxifn4en/zkJ/Hiiy/i0UcfxfT0NH74wx8mfa3T6cSWLVvgdrsBANdffz3+9Kc/4fbbb0dDQwOA5UjXz3zmM3jqqadEP/ZiROoJumKiin0ZEFO46nS6glX2SeIH3+5hsVhQX1+P9vZ20S5epPot14VXTuSq7PMXYrOzs5zvniRUlOJCqhiIRqNx1hy9Xg+apiV/X1iWxX0n70KFNpzyOZmq8L5IBfQpRLgYlpnJYHq7TqEg56bUKn4y8hHiOp0ObrcbTqcTIyMjGB8fTzqtttjEPoHfszA1NYV33nkHFosFOp1OtruaUon9xx9/HI8//jgAYP/+/Xjqqafw4osvYu/evfiv//ovvPbaaynfs/e9732YnZ3F9PQ0bDYb9u3bh+3btwMAJicn0dDQAJZl8ctf/hKbNm0S/diLDRbLFsJiQRX7EkJRlOhf3nJW9lmWxdzcHCfuSVMtESdSXRhVsZ87DMNwCzGv1wvgwkJs48aNsnwpl9LdGLFsPKQxnVhzYrEYzGYzbDYbNmzYINvv+P+t2YNs7t8kE/wL0fwmUmdaRChV5APAKb+t0IcgCDGEeFlZGdavX49gMMhNq3W73dzgKrk8+1ItKiiKgt1uR11dHaampjAwMIDa2lrU1dXlZZnLhmg0KmgfQq9Jn/vc59DS0oL3v//9AIAbbrgBjzzyCPr6+rBnzx7s3bsXWq0WTz31FK666iqwLItt27bhzjvvBLCc5jM9PQ2WZdHb24s9e/YIOo7SglIr+yrSIWXOPsuyWFxc5ARjIBAoSFMtWdCUondcLLGfGL0YCoVgMplgtVrR2toq+8+uGCNFpSIxqrSmpgY0TaOnp0f2prb7jt++8jftyn/ZjBV4Is6TifwIqxGtuj8VrE5phUm1rVS+fbGbdLMR+WJ6/8VGzGJJeXk5Nm7ciKWlpbjBVXLm7Eu5H41Gg4aGBiwtLSEajeLQoUOoq6tDU1OTZPsVek6BQCDroXhXXHEFrrjiCgBI6QbYvn079u7dy/3/zp07cfTo0VXP27dvX87HWuosR28Wz/edKvaLDLEbdIkwmZmZwfz8PKqqqmC1WtHe3o7KysqCiDetVlvwJlapyCeNJxgMcuLe7/dz0YudnZ1ZfwFIhdJz6aWEDITzeDzw+XwoKytTRFTpBaGPOC96JgEciJUhJOHnbyp4IUmkUII52X4H/LTsxyEVUgjxyspKdHV1YWFhAYODgwgGg7BYLKLuIxly5vnX1dVh3bp1OHv2LPr7+3NKJ8oFoWI/UxKPirzEoFb2VVYQWwTla+MJh8NxiTlEmAiN85MCjUajmCZkscmlQTcSiXD+btIALYe/WwilJvbTnQ/f3ubxeLiBcGL3rgiFL/IBJG06TSX4A7GytI8D6av7qYgwGsyEMw82KgTFIvJzid98YOY5/HPVPZIch9FoRHd3N86cOQOPx4NQKJQxwz4f5IrEJPvRarVoampCY2Mjl07U2NiIxsZGURcdQq7ffr9/1QAtlcLAglIr+yrSkWtlmGR1k+q9RqOBxWJRdIa6khKHxCadjYfvuydTha1Wq2JEZDpKTewnQmZGeDweLC4uora2FlarFb29vYrJm77v+O0rXz7LX0CZBDlf0BORny/JFgnnQ8uVSF0BEnZSMeCnFWvBEQupr+1lZWVobm5GeXk5Tp48CaPRuCrOUgzksgcmLir46URjY2Po6+uD0+mE3W7P+2cr9FqpVvaVBaNW9lUIcosghmEwNzfHVe+j0SiXod7W1iZ545EYKCGLXir450Z896RHIhgMcr77xKnCSqfUxH40GkUgEMCJEycwOzuL8vJyWK1Wxc6MuPfPdwAJyRCRleaxdKKfYTUIMcmvCflW94nIF4pYvn0+xVLFFwOpxT7DMNDpdFyGPYmzNJvNaG5uFvX6VQixT9DpdHC5XHA6nVlFkkpJ4vRclcLBssvXomJB+cqvyJG6cTGZYCRVR6fTqZiqYy6UcmWfYRh4PB6cO3cO8/PzMBqNsFqt6OjoKLjvPh+KXeyTRTL5HEWjUTAMI2uakRCWRX56kgnzBV4lP1dLTiZSifwoq0la3Zfat7+WBD4fOcQ+2UdinOWRI0dgs9nQ1NRUFAUmILNdSK/Xo62tDU1NTRgZGcHY2BhaWlpgs9ly+n7PRw8sLCyolX0Fodp4VCSFYRiMj4/HNWqWgmAklFKDLmneJHn30WgUtbW1aG1tVUyPhBgUo9hfWlriGp6Xlpa4RXJzczPC4TAGBgZgtVoLfZhJuePIF1ClC2X9fL7gX0iw7IiVsMMX+YUYipXI0EIHCK23AAAgAElEQVT65lExFhlKTuSRU+wT+HGWk5OTOHTokGRNrmKTbW8AiSQNhUIYGRnB6Oho0jkE6fYj9L2Zn59Xxb5CWPbsK7MIlAxV7BcB4XCYqzjOzc0hGAwiHA7D7XYXNO1DKoq5QZdUiD0eD+e7t1gsXK762NgY9Ho9amuVmy0uhHxShuQiEolwnyOfz4fy8nLQNJ3UmhMOpx4+VWi+cOxvYdAuT6Dlk2waLZ9EkZ8v/EVCvpYdMckk8tcKUov9dOJYo9HA4XDAbrdjYmIC/f39cDgcaGhoUOxdslwr7gaDARs2bIibQ+ByuWA2m9NuJxaLCb7bodp4lEVMHaqlkg9kyiapBms0GlitVjgcDnR2dqK/vx9NTU0lmUMPFJeNh8wmIBViYqOiaTqp775U+xGUWNnnL7zIoDGr1Zp1c7rSzucLx/427eNRVptU8PObb8VM2AGkF/nZ3lkY8i8LfKVW2QtBISr7iWi1WjQ3N6OxsVGQ313Oa6VQew1/DsHw8DCGh4c50Z+MfNKF/H4/7Ha7oNeqiIuas68SRzYX3GTVYNJUu27dulVVAJK1X6piX+mV/WAwyFWI+bMJsrFRKf3chKIEsc+ybJw1JxAIcAuvXAeNKeluWSaRz4cv+KVM2PGGjABSi+tUIl0s3z5p0iUiX+h2io1c4jcv/cMe9O28T7JjySX/XqfTwe12w+l0cn731tZW0DSd9rNWTJPUKysr0dnZicXFRW74mMvlWnUXNx+xr1b2lYRq41HJAMuy8Pv9nGAMh8OcXzibFJZiqnwLQavVKspGkei71+v1gmcTaDQaRCIRCY+2MBRK7JO5ER6PB3Nzc6ioqABN0wUdCicmn33nLpDpt0Q8J0ui4RNltYgwycVEvgk7RORf2F5hxPWw31LSol4ow175LExChl0RvzuxvoyOjsLlcqUcziWn2BfrWlFVVYVNmzbB7/djaGgILMvC7XZzXvtoNJqX2Fc9+8qBUW08KnxIxZGIe/KBtVqt6OrqQkVFRU7b0+l0JS/2C2l1SUxmSfTd5/Plo9p48oPMIiB3wSiKirO4iWVdKPSdimWRv0yiOE8VPQkAoZhu5TXiHvt0qDpjrKXUDPtVL34icor7RPKpUPOtL6QK7na7k1bB5fD4S/FZr66uRnd3N+bn5zE4OAiNRgOXy5WXZ1/N2VcOavSmShwUReHYsWOIxWJc1n2+TbXExlOqyG11Ib57Iu6J/YMks4iZF10MjaxCyGUycC4k64kwmUzcJOFSs7LxRT6Q2mOfKPiJyCekq7jnkrDjVcDUWylFfrEl8gx5rAVecl1ASGU/kcrKSnR1dWFhYQGDg4MAwAVPAPJNzxXjXFJRU1ODnp4e+Hw+nD59GgzDCLbiqDYeZaHaeFTi2Lx5s6gXrLVg45H6/EKhUFzCEfHdS23/kEoUFxoxf14kfcrj8WB+fh6VlZWgabpkomVTcduRLwIrExk1YKHTpP8MxFgK0RR2HaEQK48YIj9f3/7oginvYyhmhjzKjH0liCmQjUYjuru7MTc3h9OnT6OsrAwul0s2G48ciwqTyYQtW7bg9OnT8Hg8iEajaG1tzenOvlrZVxGKKvZlQGzhqNPpSr6yL7YgJglHHo8Hs7Oz0Ol0XOVezrz7UrbxCD0vhmG492ZmZgYajQY0TaOpqQm1tbVF77vPxLLIX4ZvlSFCPpnoD8Yu3NFIJpwBYdV9X7gy5yq1mJXtXAR+qTXjKl3cJ8KyrOjV8NraWmzZsgUzMzM4efIkdDqdLJPE5bqDACxHdpLevOPHj6O6uhqtra1ZDcD0+/1qZV8hLOfsF893kyr2JUYKoaJW9jPDMAzm5+e5CjFJOKJpOm/ffT6UstjP1p7En/rs8XgQDoc5a05bW5siJm7K4dlPJfITiTJaTvDzRb6Y+MKZ75gwoCTz7Y+tiHxKBPFeLIsAoeKeAhRj5ZEKi8UCs9mMoaEhnD17FqdPn84qvEIocor9WCzGBQlYrVZ4PB4cPXoUJpMp4zmGw+GsFgUq8qA26KpIik6nU1RajdgIEcTJYhdrampA0zR6e3sVc4Fcq2Kf2KaINcdoNIKmaUEN6sXOzf33oUwTBVa+KFJV5vlEGS2iKfyhqWwxQGbhm0zkyymWx9aQVacQlfvtv/2epPGbUkJRFIxGIxwOByoqKnDkyBHQNI3m5mbRCwJyi32yL4qiYLPZQNM0zp8/j3feeQcWiwXNzc0l149Uaqg5+yqSU+oNutlW9gvlu8+HtSL2Y7EYNxhuZmYGWq1WcFxpIZCqsv/pw3ejLEGzExGfSrCHGZKwI97vjS9csbJNcc4x1QIhlV1oZMGc9C4By1KiVPeVQrFZc5QGSa6x2+2oq6vD5OQkDh06hPr6ejidTtEEeqHEPoGiKNTX18Nms2FqagqHDx+WbGGjIh5qg67KKoRO50vGWrDxJBPEsVgsLu+eCMimpiZ0dXUpdgw7n0JHOkrJ4uIi/H4/PB4PIpEIZ5tSijWnkHz68N0Zn5NYoScin5AuRSfb6j4R+ULJx8ozsVib+UkFQMw7GYWMwkzF8ePH4XK5irK5nd8ErNFo4HA4YLfbMTExgb6+PjgcDjQ2NuZ97ZdT7Eej0ZTXQ41Gg4aGBtTX13MLm7q6OtjtdsXcnVZZgVU9+yo8KIqSpEG3lMU+id5kWTYu7z4Wi6WdLFwMlFJln0wSJtapqqoqOBwObN68GeXl5YU+PEXw6cN3rzTaajOm6wDLol2KalGuIl9MASylyC+0P390xlywfWdLQ0MDTpw4kVMjaCbkKljEYrFVHnatVovm5mY0NjZibGwMfX19aG5uRn19veDv2kJX9hPhL2yGhoZwySWX4KMf/WhRLthKFRaqZ19FYkrVxsMfPra4uIiDBw9yefc9PT0lUdkoZrHPv7MyMzPDTRImVcOamhrU19cX+jBFId87MLv+5wGUa6MAtJwY5Yv4ZBV6fiU/dZU+t+p+JruOlGJ5cqlwEYFSnlcxCHw+pNl1enoaR48ehcViQUtLS17FEjHvVKcjnTDW6XRwuVxwOBwYHR3F2NgYWltbQdN0zscm1/Ausq9sFxZarRbr1q3Dvn378Pjjj+PEiRP4p3/6J9x+++0l8X1Y7KiVfRVJKSUbD8lUJ777iooKWK1WGAwGfOADH1C8tztXiknssyzLJRp5vV5EIhFYLBZYrVasX78+7gtrenq6ZO1JufLJ/i+hfOVHk030ZaJdRwwSK/lyVsALKfKlotgEfiIURaGurg40TXP2ELvdDofDIaiiLeUQqlz3U1ZWhnXr1iEUCmF4eBijo6NwuVwwm81Zf3/EYjHZGmKj0WjOP/OamhrccccdGB8fh9frxY4dO3DPPffg1ltvLco73KWA2qCrsgqxfdrFnLNPGjdJ3r1Go4HVaoXD4UBnZyd3YZ+YmCg5oQ8oX+wHg0F4PB54PB5uWqPVas1ozSnVycC58Mn+L60022pQloVlJ53IT+/BT13dnwnlnpOfipRNt0l8+0Tg57LvVP5/JTTpiiXuKYoFK4EgEBq/ybeHjI+Po7+/H06nE3a7PSfxLpftJZf9GAwGtLe3Y2lpCUNDQxgZGYHb7UZtbWYbWSwWk816KHQ+wcLCAqxWK77+9a/ji1/8Ip5++mns3r0bX/va1wAsX7svu+wyhEIhRKNR7Nq1C48++iguvfRS+P1+AMD58+dx0UUX4Ze//GXctkdGRnDDDTcgFoshEong7rvvxuc+9zksLS3hr/7qrzAwMACtVouPfvSj2L17d/4/hBJBFfsqklJMlX1SHSa+7mg0yjVuFqvvPh+UJoqj0Whc07Ner+eaao1GY9YLrlJrPM7lfP667/6Vv2k4sZs5YWdZwKQTx+kEfyLzYeFCJZ+qfylV8Yu9ep+KZPGbWq0WLS0taGxsxOjoKPr7+3OywCipsp9IZWUlurq6sLCwgMHBQQCA2+2G0WhM+Ro5PftCi1h+v587B7PZjG9961txjxsMBuzbtw9GoxGRSASXXHIJrrnmGhw4cIB7zo033oi//Mu/XLXthoYGvPnmmzAYDFhYWMCmTZvwF3/xFzCZTHjggQdw5ZVXIhwO46qrrsKvf/1rXHPNNYLOoZRQh2qprEJsIaTk6jDLsggEApy4X1xc5PLuu7u713zjZj6TZsUgcfEVi8VgsVhgs9nyHjZWSmI/Gy6I/NSifXXCTvzPV6jQJtX9XES+mFYeJYn8fM5rfHbt5PwnQ6/Xo62tDU6nE0NDQxgdHYXb7YbZnH7hI5fYz0eEG41GdHd3Y25uDmfOnIFer0+ZSsQwjGxiX+h10u/3p71LQeYSAEAkEkEkEolbWPj9fuzbtw8//vGPV72W3wQdCoW476jKykpceeWV3HO2bt2K8fFxQcdfiqgNuipxELEvli1FafaWVL779evXo6qqSvDxytUEJieFOB/+4otYc2iaFrXpWWl3LKSGCP1sROZywk7q912IWPWFywUP0sqHc4vLIr/QNpt8WOsCPxkGgwEbN27E0tISBgcHMTIygra2NlRXJ1/UKbmyn0htbS16e3sxMzODkydPoqqqCq2trXGFJ7kq+/lcI/1+f8r3gxCLxbBt2zacOXMGX/jCF7Bjxw7usV/84he46qqrUFNTk/S1Y2Nj+MhHPoIzZ87gySefRGNjY9zjPp8P//mf/4l7771X8DmUFKxq41EpcRIHJqXy3ecDuXshV7WllCDWHNIXYTAYBFlzcqHQdyzEJtXduJve/jJ5BjQUy13sU1b2GX4CT+5f9Il3Bny8Sn4uNp98IAKfTypffa4LjXxy+zNum3csqsDPjsrKSmzatAnz8/MYGBiATqeD2+1eVQ1Xomc/EySVyOPx4NixYzCZTGhpaUFZWZls55PPd9rCwkJGsa/VanHkyBH4fD587GMfw5///Gds2rQJAPCv//qvuOOOO1K+tqmpCUePHsXZs2dx/fXXY9euXVy6WjQaxSc+8Qncc889cLvdgo6/1FAbdFVKjmSpLCTvXqqBSaQvQRX7mWEYJs6awzAMLBYL6uvrsXHjRlkqcKXm2U/kgshPLtoTRT9f5GdDJpHsy8OTn81+kv07EfmFyLEXo0l3YtZU1HcgCklNTU1cNdxoNMZl9BeDjScZFEXBZrOBpmlMTU3hyJEjoGkakUhE8YuXhYUF1NXVZfVck8mEK664Ar/5zW+wadMmeL1e/M///A9+8YtfZHxtY2Mjurq6cODAAezatQsA8NnPfhbr16/Hl770JUHHXqqoYl8lDqmsG1LaXEjePd/6kU0qi1gouS9BCSwtLcX1RdTW1nLj1ROH0MhBqVX2CZlEfiLpRL4Qe8182JD1vvPdFyFZJb9YmFBgBV+qRB45SJbR39zcXFQ2nmRQFAW73Y66ujpMTk5ibm4OZ8+eRXNzs6SiPx+xn8nGMz09Db1eD5PJhEAggN/97nd48MEHAQA/+9nPcN1116X87h4fH4fVakVFRQVmZ2dx8OBB3H//slXxa1/7Gubm5rB3715Bx12qqA26KquQQpCTyrdYVfVwOMxZP+bm5lBeXs5Nqs3Hdy+UYkockoNIJMK9Pz6fj3t/8u2LEItSq+x//NDfLf+F1UCnWV7EpLPshGMXvsDJ85ORrQgnIj8TYlp5ilXkT/qkm9CrZITGb+a8H15G/7lz53D48GFUVVWhoiK3qcz57F8qSBTpxMQENBoN+vr64HA40NjYKMkiQ0jGPoEU3VIxOTmJT33qU4jFYmAYBjfddBOuu+46AMBLL72Ehx56KO75fX192LNnD/bu3YuTJ0/iy1/+Mncdf+CBB7B582aMj4/jsccew8aNG7F161YAwBe/+MW0dqC1RDEt4lWxX6SQrH2hYj8Wi8Hn88Hj8XC+e4vFIqrvPh/WemWfYRjMzc1x7w/LsrBYLGhoaEBHR0fB359ESkXsX/vmV1cm36YW7XzBzhf5hCijSSv4kyG0gi8G55dSRxICqRcoYvn2hbJWRb4QksVv5opGo0FjYyPq6+tx8uRJnD17FuXl5Tln9CsRiqLQ0tICh8OBsbEx9PX1oampCXa7XdTFRj4FukyV/e7ubhw+fDjpY/v371/1b9u3b+eq9Tt37sTRo0dXPcfpdJbEdV1FFftFS66Vb5Zl4ff7OetHJBKByWTiGjeVlne/1ir7LMty1imPx4NAIMBZc0gTmZIpBbF/w1v/D8q16SvzBIal0lp20gl+vhjOtoIvpoBmWAqeQJUo25IbVeAXHq1WC7PZjJqaGgQCAfT396OlpQU2m63gdxiFQq5dOp0OLpcLTqcTIyMj6OvrE/Xc8vXsZ2rQVZEXNXpTJQ4pLoA6nS6jGC607z4fSl3ssywbZ83hR5a2t7ejsrKyqL44i1nsX//WV1b+tpwMQ0R8KrHOz8oXmiSTSuQLEfWprDzJtjW9UsVXUuNqpkSefAS+EqbxliIMw0Cv16O5uRlOpxPDw8MYGxuDy+WCxWIp9OHljV6vx7p16xAKhTA8PIzR0VHu3PK5Lufr2U9n41GRF1aN3lSRA61Wi2g0GvdvkUiEE/d8X7eUkYtSUYo2HoZh4PP5EAqF8NZbb4GiKEVZp/KhGMX+BZGfXLQniv7EgVhAeqGarLqfj10nn+r+dAarjtI4N6eKGrEITa8eIpUvsViMS+YxGAxob2/H0tJS3GCufIWpnNeTVN+N5NwCgUDcuaUbbpWOfKy32eTsq8iL6tlXkRytVhsn7mdmZjjxqFRfdy6UQmWfZVksLi5y1pxgMAiTyQSdToeenh7ZGtzkoBjEPrGy3Xrywpj5bCrzyUR+riRW8uXytYsl8uU6XlXk50/IUwFILEKSpeRUVlaiq6sLfr8fg4OD0Gq1STP689mHFGRTVKqoqEBnZycWFhYwNDQEhmHgdrtzFt/5ePZDoZDi78ivLdQ0HpUExKqoE7Hi9Xpx7tw5TE5OwmazwWq1wuVyQa/Xi7IfJVCslf3EacKVlZWwWq3o6OjgvvTefvvtkpsfoFSxHwqFuMXW3y3+n5V/5SXsrHguk1b22ewGYqWr7s+FynO2keQrrBMFfi7NtbkiRpPu1Fx1ETlfhSFl/GbII3/RIJ0Qr66uRk9PD2ZnZ7mJtS6XK+dp3UrM8jcajdi8eXPGoWPp9pXP1PJiuju/FlAr+yqiEQgEOLFCGnSsVisaGxtRXl4Op9NZ6EOUhGKp7DMMw00T9nq93DRhp9OZ0ppTrAuZdChF7JP3g6QYabVaPBz+FQyZEnZ4gp0v8rnHcxCvi5HsmqnFrJZHWQ1mA+LbNaRiak61IwghWABhn4xshLjZbMbWrVvh8XjiMvqzLUopeaotGTpGFjSVlZVwuVwZK+/5RG+qKAt1gq5KSrIZgkWaNr1eL2ZnZ2EwGJL67sfHx4tCDAuF2JSUBsuyWFhY4BZg4XAYJpMJVqsVbrc7q1u0pSj2NRpNQcQ+STHyeDycVcpsNnMpU9e//TUYskzYCTPa9BX8NOKcAYVARPo7a8mOYWZpWeQXQ9EvlchngZKv7gtBKeI+kWyFOJlYa7VauYz++vp6OJ3OjK8XIsKFkM+igixovF4v/vznP6O2tjZteppQG48SCikqCbDLTbrFgir2ZSCdwOdXhmdmZgAsTy202+3YuHFjyuqJTqdDKBSS5HiVgJIEMbGCEGuO0WiE1WpFZ2enID+qks5NTOT6QkocMFZRUQGapuOsUte++VUAgGblo8ePyUwU/vzHhFTbSSU/lZVHiGUmm+MgIl/pFLqKX0yJPFKK+83/54c4dvPfirKtXC02/Iz+iYkJ9Pf3w+FwoKGhIeV2YrGY4mw8yaAoCjRNw2q1YmpqCkeOHAFN02hqalp1F0PovkKhUF72HxVpUKM3VVZBBD+pDJO8e35lOBfffbHYXIRSyPOLxWJxCzCtVgur1Yrm5mbU1NTk7ZtUiuVFTKSs7LMsyw0Y83q9aQeMXRD5qY+FpOSkyslPW8HnPZZo18kUIZnrvlKRSuSzbPLqfq5DsVKRy3am54sr/adQBL0V8ozBFRmhfnqtVovm5mY0NjZidHQUfX19aG1tTZpjL5eNR6z9UBQFu92Ouro6TE5OJr2LIXRfmabnqsgPC3k8+xRFlQN4A4ABy5r95yzL/j1FUS4ALwGwADgE4G9Ylg2n2o4q9mXC7/djaGgIfr8fRqMRNE2jq6tLcCJLNjn7xYyc1W/+Aszj8SASicBsNnP2KbEHjpViZV/sBUwwGOTej4WFBW7AWHNzc9Jb5Ne++VUwLAWdJvMxRBmNoCm3hGw9+XzyrS77Asq0cySiivz0BL0yvY8UK2kiT77Ns6Sx1eFwcDn2brc7LqNfiQ262aDRaOBwOGC32zExMYG+vj44HA40NjYK9uzPz8+rsZuKQ7Y0nhCAD7Isu0BRlB7AHyiK+jWA+wF8j2XZlyiK2gPgdgD/nGojqtiXCb1ej9bWVlEqw0DynP1SQurKfigU4irF8/Pz3AJs06ZNkkdilqrYz+ecYrEYZ82ZnZ2FXq/nfPfpZkR8+ODfkSOAhmLjLr6JVejESn62U24JfJEvRwwlw1KYDyo/am963lg0Nhk5CXiKw2YlBLEEMj/HfnBwECMjI2hra0NNTU3RVfYT4d/FGBsbQ19fn2Cxr1b2lYkcN+jZ5Srawsr/6lf+sAA+CODmlX9/AcA3oIr9wlNRUYHy8nLRorPWgo1HTEFMxCSx5uj1elitVrS0tIi2AMuWUhX7uZDqbgpN09iwYUPGL8QLIj+18CaCPZVdJ1tyqeSLZeXxBZcXnEIn9EqNFBX8UmjSLWWBz0fsqntFRUVcRr9Go0FNTU1Ri32CTqeDy+WC0+nEW2+9hUOHDqGlpSWpdSkVJIlPRVnIFb1JUZQWQD+AdQD+N4ABAD6WZUnFdxyAI902VLEvE2LbHNaCjSef8yMzCUj1ni8m161bJ7o1JxdKVexnOqdwOMy9H6TRmaZpbN68OethMR8++HeIsRoAGug16X8/YowGMSBt1TlTdT8QTd5DI8Rrn42Vh4h8oUjt21dtOvGsFXGfSDbJckLgZ/S/++67KCsrQ319vaTNqXLdQdDr9SgrK0N3dzdnXXK5XLBYLBl/lqqNR3mwrGhin6Yoqo/3///Csuy/xO+LjQHopSjKBOAXADqSHVK6nahiX0bEvECuBRtProKY+Ly9Xi83WjxXMSkHhYqplJJki1mGYeDz+bj3RKPRcCkVmzZtyumzsPMPX1v5mwZaamUgVgrLTiyhkp+roF3iVfKF2FOEVPdTiXwh2xIbr78q43OUnngj1vGtVXGfDCnvhprNZjgcDgSDQRw9ehRmsxktLS2SDI6MxWKyDqTkW5eGhoYwMjICt9sNk8mU8jWqjUeZiOTZ97Asuz2bJ7Is66Moaj+A/wXARFGUbqW67wRwNt1rVbEvE2JfGEvdxpNNZT8ajXIDlPg+b5fLherqasVOG8zX365EiNjnZ94HAgGYTCbuPRHyhXpB5IMT+clgWCptlSWd2CPV/aUkdh0pRexcgsBXmljORuSXOkveC+JeYW+PIMSM35QalmVRW1uL9evXcxn9dXV1aGpqErUSL1dlH4jXARUVFejs7MTCwkKc6E9WwSfFKxVlIUfNjqIoG4DIitCvAPAhAE8AeB3ALiwn8nwKwH+k244q9osUpQpZsUi2mGFZFvPz81ylOBaLwWw2w2azZeXzVgqlZOOJRqPwer2YmpqC1+vFyZMnQdM02tvbUVlZKfj39PL934BOGwNpvE0n9GO8ibdCquDBqF5Qw60QK89soFKW5l6heOd5Ar+0LzFJ4Yv7RFhKIsFPoSjjN6WGiHCKotDQ0IC6ujqcPXs2q4z+XPcjR+oPwzBJr4dGoxGbN2/G/Pw8BgYGOI9/VdWFz+LCwgJaW1slP0aV3JDJs98A4IUV374GwL+xLPsyRVEnALxEUdS3ABwG8Fy6jahiX0WREEEcCAS4abXkViZN0+jp6SnaISPFLPb5Cy6PxwOGYWC1WlFXV4dQKIRt27bltf1LX38UZboodNoEa86KoOeLfr7IJ6SzvSRW6YM8P3464S5oKFaS48jXj58tufr2gQSRv8ZIJ/CLGonjN6UmsQlYq9WiqakJDQ0NXEZ/S0sL6urq8ip+CZ1qK2Q/6QpSNTU16O3txezsLN577z1UVFTA5XKhvLxcbdBdw7AsexTAliT/Pgjgomy3o4p9mSj1SrxYRKNRLoLR7/fj+PHjXN59ugjGYqLYxH5i5j1ZcPX29nILrnA4jLGxsbz2c9WBr6NMlz7WMpnAzwWWpRCKiXfZy6a6n6/Il8q3P+PPIHILEI8jxy5LVtxnydzcHGprawt9GBlJJY5JRr/T6cTw8DDGxsaybnRNtR85KvvRaDSrRYXZbIbJZILX68Wjjz6KmZkZ1NbWqmJfYbBIbx1VGqrYlwmpRKpUqQhyQaajkuo9wzCwWCyor6/H7Owstm/Pqm+lqNBoNIhEIoU+jJSQCcIej4eLKaVpmvOTJvt9yydt6oNvPLKyjfTPS5ehH/e8FOKYVPJTVemF2HJSMRcoT3k+YiXjCCGjwM8DJTfpBmaKYyiZHAwPD0Oj0aCtrQ2Vlbn/PqSyo4hNpkp4WVkZNmzYwDW6jo6Ochn9Yu5HLHLZD0VRoGka3/rWt/DCCy/gqaeeQiQSQW9vb9pGXhV5UebVLjmq2C9iSIW4WLzqhKWlJU7cLy4uora2FlarNa5SDJTu3RCxY1jzhWTek/ckHA7nHFMq5JwuiPyEFJ8VUU8EcbLEg0zCnC/4gwnxmUJEabavmQtcSH1KZacpBLMrIl+pYlxsVHGfGhJtefLkSRiNRrhcrqRTqVMh12TbbPfDb3QdGBiARqOB2+2O87ynQ4lin6DVanHbbbfh97//PdxuNy6//HJ84hOfwN133531+alIhHjRm7Kgiv0ihmTtK13sRyIRbqDV7OwsysvLYbVasX79elRVVZWsqLwJIfMAACAASURBVE+FEmw84XCYE/dzc3OoqqoCTdPo6uoSNEE4lzjRVCI/kUyxZpkEf6LIzwYh1X3fUoUiRfSshFV8JaIK/Owxm83YunUrpqen8c4778BqtaK5uTmrhb1cYj/X7zaj0Yienh74fL5Vnvd0yFUwEzo9FwAWFxdx++234/7778cPf/hDXHrppXjjjTdgNBoRDAZx2WWXIRQKIRqNYteuXXj00Ufxj//4j3jmmWcwMDCA6elp0DSddNsPPvggXnnlFQDA17/+dXz84x8HAOzbtw8PPPAAwuEwtm3bhueee66g82kUifIu+ylR3zmZkELQkqz9XKoycsAwDGfN8Xq9YFmWs+Zs3LhRli8KJVMIsU/eE5JkRFEUrFaroMz7VGQS+5fv/wYAQKshz09eLU+slqQT0snEeTByQeSLmXyT7HjnA+LOb0j1M8nFt+9bSJMoo2CrTa4UQtyXQiIPid+kKAp1dXWgaRpnz57FoUOH0NjYiMbGxrTXaDnTa4Tsx2QyYcuWLfB6vTh27FjGjH65ziefRmDSoFteXo57770Xd911F3c+BoMB+/btg9FoRCQSwSWXXIJrrrkGH/jAB3DdddfhiiuuSLndV155BYcOHcKRI0cQCoVw+eWX45prroHRaMSnPvUpvPbaa9iwYQMeeeQRvPDCC7j99tsFHX+polb2VWRBSVn7JF/d6/ViaWmJs+Y0NzfntRgp9p6EZMgl9pO9JzRNo7W1VfQhMulsPBdE/upzJhdLimJTXjizEah8gZ8N+YrefEW+mP0BQHqBnxcFaNJNh1q9Fx+NRgOn0wm73Y6xsTH09fWhtbUVNpst6bVXrkp4PnetiefdarVmzOinKEoRPQjpCAQCcXdc+ddviqJgNC5Pto5EIohEIqAoClu2rApwWcWJEydw+eWXQ6fTQafToaenB7/5zW9w5ZVXwmAwYMOGDQCAnTt34vHHH1fFfgIKcuNmRBX7RYxOpyvYFN1IJMJV7n0+H8rLy0HTtKjWHDJFV+k2pVyRSuzzk4x8Ph8MBoNsdqlk204n8vmQibfpnpdKnIciupX9J3+dEFGd6jX+YOqo19R3KaT17c/6KxXTFyAWiesLVeDnQQ7xmyTf3eFwYGhoCGNjY3C73TCbzXHPk8vGw7Js3vshGf319fWYmJhAf3//qrsXcvVP5Wu5TXf9jsVi2LZtG86cOYMvfOEL2LFjR1bb7OnpwaOPPor7778fS0tLeP3119HZ2QmaphGJRNDX14ft27fj5z//ed5pa6UGC7Wyr5IEqWw8clX2E20gAGC1WtHQ0ICOjg5JLv5kim4pin0xvmBI5j3x3sdiMUXYpS59/VEAgFYT32CbKKCJyOf/f6aFAYGI/HzItrqfTuQXAiV78cWyCakCv3CUlZWhvb0dS0tLGBwc5FJuSPVYLrEvJhqNhsvoJ3cvmpubUV9fL9sxRKNRQelH2aDVanHkyBH4fD587GMfw5///Gds2rQp4+uuvvpqvP3227j44oths9nw/ve/HzqdDhRF4aWXXsJ9992HUCiEq6++WvXrJ8KiqOZYqO9eEUMadKWAZdk4G0ggEIDJZILVapXEBpIMJdmUxISiKMGV/VAoxGXekxHqShky9mDot8Drv00p2EnFPFHkZwvLUghHky/8pKigF0rkpxLMqUR+rueuVN9+UBX4slDmya54UllZiU2bNmF+fh6nT5+GwWCA2+0u6gIM/+7F8PAwxsfHEYvFZLGLyvFzM5lMuOKKK/Cb3/wmK7EPAA8//DAefvhhAMDNN9+M9evXAwDe//7348CBAwCA//7v/8apU6ekOegiRrXxqKREzIsKadAVC5LQ4vV6MTc3h4qKCtA0jfb2dlRWVsrunVdCao0U5HJeDMPEZd5rtVrQNA2Xy5Uy815uLlTyM9t1YsgwNCtFdT8YXb5UCRkulauVZ2FF5IsliIVMtCXM+UtXAKviXh6yFfepIJNdScNreXl5xoQbpUMy+hcXF7kGVbfbLemwMaFiPxQKpe17m56ehl6vh8lkQiAQwO9+9zs8+OCDWR+Tz+eD1WrF0aNHcfToUVx99dUAgPPnz3OT0Z944gluQaDCQxX7KolI0QSUb+WbYRj4fD5OSJKEFofDgc7OzoLfqi3Vyn46sc+yLBYXF7k7KqFQCCaTCTRNo62tTVG3Ui/Ztyzyya81v2LPF+yJlfxMIpcv+InI516bJpVGSHWfVLkXRKjii1kxV5TIF7FJVxX40lM2Lf41gt/weurUKUxNTcFgMMDhcBRtlR9YbnStrq7GunXrMDg4CABoa2uTJMNeaPQmSeJJxeTkJD71qU8hFouBYRjcdNNNuO666/D9738f3/nOd3Du3Dl0d3fj2muvxd69e9HX14c9e/Zg7969iEQiuPTSSwEsL+pefPFF7jvmySefxMsvvwyGYfD5z38eH/zgB4WdeMlSXBN0qQze4SJatyifYDAIQDz//uTkJILBIFwuV1bPTxSSwWAQZrMZVqsVFotFFmtOLpw4cQKNjY0lNzEwEAjg5MmT2Lp1K4ALzc4k876yshJWqxU0TUvm8cyHRJEvlHSCP5LG6pOuup/umFI13aY6DiHCPdVrUh0Xf998gZ/rvnN9L3I+txy2n7jtUhT4krmgBGxXqLjvv+cOQa+bnJxEKBQCRVGYmppCU1MT7Ha7qMUshmFw6NAhySeoBwIBnDlzBps3bwYA+Hw+DA4OZp3RnwvHjh0TNLV4eHgY3/jGN/Dv//7voh2LwikKBW1wO9nGb34h7+0M/83f9bMsK+0vOtTKflGTjY0n1fCkjo4ORQpJPqRBtxQJh8M4ffp0XLOzUu6opOKSfY+CAQVthksxv36Q7vs/WYU/HLtQ+UolSHPJnE9FNn58ubztyar4ue5bSdN6gdIU+EpBisp9LjAMA71eD4fDgcbGRoyMjKC/vx8ulwsWi0UU0S/n4C7+fhIz+k0mE1paWkSZZSM0Z5/0ZqkoDHWCrkoq0mWRCyGZzSXR463RaEDTtKjDk+SilGw8gUCAa6xdXFxEJBJBdXW1aF8kUnLxvm8CADRYrqqnEvPJfrWzFaF8kZ8PmfaXTOSLmXmfbQSnf6GwnmcpFjKh2eL2cSuRMo9OcffXGYbhRKter8e6desQDAbjkntqamry2odcTcDJBDjfsjQ1NYUjR47AZrOhqakpLxul0HNaWFjI++epIhEK+2ymQxX7RYxOp0MkEoHf7+esOeFwWLEe71wp5gbdaDTKLbpmZ2dRVlbGzSEwGAw4dOgQ7HZ7oQ8zLRdEfuorWjZr11QCnAj8VEI7nSDNpbq/ELywmCr0WrfQIl9sVIEvLmUe5V+vk1Xdy8vL0dnZiYWFBQwMDECr1cLtdgu+e1yoyj4fiqJgt9tRV1eX04RhIftKx/z8vFrZVyzFUzxV/pWlhBCrsh8KheD1enHu3DnMzMwgFouBpml0dXXFTdkrdoqpss+ybNyiKxKJwGKxwGazYcOGDXEVHYZhFL2I2fG7bwEAtBm+l5iEC1224lusKn4q/AEDqitCcSJfKGJUwBcWVj6TCoy7zBpek64q8MUjK0sOBUVVENOJVqPRiJ6eHszOzuLkyZOorq5Ga2trzncv5arsZzO0MdmEYZLRn8udcqEhHZkadFUKiII+l5lQxb6MELGf6wc+FovFVYm1Wi2sViucTidYlkVvb69ER1xYlF7ZJ4suj8fDVV9omsbmzZvTNnaJbecSiwsiP/5nTkQ9EfOJIj8bWBaIMMm/VNPZaISK7VyFvphWHu4YFkpn4R2eLS+m+TGKpdB+ezHIRiCbzWZs3boV58+fF2SDkWtyei4JOfyM/pGREYyPj6O1tRVWqzWr73Sh13zVxqMiBsV/5SlBSJWYCMlIJAKz2QyaprFu3TrughmJRDA8PFzYg5UQrVaLSCRS6MPgSJZ5b7Va0dLSgpqamqwXcUrrm0gl8hOJsZq0wjuVtYZU8sU+7cT9ZROfKXUj6+Jimqo3S+VU3S90k25YreCnJNu3shTEfSLZWmwoikJ9fT1sNlvONhihlpdcEbKoKCsrw/r161f1KUiV0e/3+9HU1CTJtlXyRHk1u5SU3pWoSAkGg5y4J933Vqs1bZW4mGwuQtBqtVxcaSHgTxH2eDxcVGkp9EMAwEW/JSJ/+YqVurmUivt7toI/0a6TTowKre6nEvhiNqBms620Il+hJDsvVeDnRzGJ+23f3ysofjNXPz3fBjM6Oor+/n60tLTAZrOlLHwUskE3W/h9CiSj3+12w2g0rnouwzCCizxKr+y/9dZbYBgG27ZtU3zYhKiwQDHd7iyeK1OJEYvFMDMzw1lz9Ho9rFZrTpNRNRqNIu0gYlEIG08kEuHeF5/Px00RLoao0mzY8uvHodctLxCJyOdDhD1FsSljxbIR/NFYcjEgVvV5SQQ/fiI5T9pdKC94w68YqAJfOPoiaKgVG6FVd51OB7fbDYfDgeHhYYyNjcHtdsNsNq96rpwNugZDfgP1jEYjuru7MTc3h1OnTqG8vBwulyuufy6fRYUSozeJHfn555/HiRMncODAAfzbv/0bmpqaMDExgYaGBsVGSItJMcmvtXelKiAURWFoaAherxfRaBQWiwU0Ta9q4FRZRo47FyzLYm5ujmusZRgGVqsVDQ0N6OjoKJkLFhH5el1ykU9giMDPIHyTCf5INHNGfjqyEdtiiPx8FxwLJZCoE/HlPzF4LVJMlXupyNdPbzAY0N7ejqWlJQwMDHCin18Rl7OyL9Z+amtrsWXLFszMzOD48eOora3lopXz2Y+Sxf4zzzyDn/70p3jjjTfAMAz8fj/uvPNOPPfcc2hoaCj0YUqPKvZVkkFRFKqqquBwOESdzFeqSFXZDwaDnDVnYWEBtbW1oGkazc3NJXcb8n3//RgAQKe9IHCJoOcLayZJFT8b8c0X+HzEznFfDBhy3p7YxyCKyJfYt5+OfAU+xRbVXWtRyFXc5/j2FiViVd0rKyuxefNmriLOn1orZ2VfzEUFRVHcRHp+Rr/VahW8HyXaeMh7U1lZyaUA1tbWorq6GufPny+579GUFNEFURX7MlNXV1cy1WKpEauyn8wyRXz3RqNRcQ2zYkBEPgBoUlTykwn8ZM9JJviJyBciRLP17kth1cmVxcX0Allpk2sTj0et4OeGYiv3CorfFFuIk4o4mVprNpuh1WpliZGW6g5CYkb/8ePHUVZWJuhnp8TKPuGv//qv8eSTT+L06dOYm5vD7OwsFhcXUVVVVehDk4ViWtgr9MpWmkghKimKkq0KIjcajUaQ2GdZFgsLC1z1np9mVOqWqff992MrXnsKWm3quyKJXsNsfzUTK/npKs9Cq9KFFPlksZFJ5CsZVeBnj2LFvYKRIimHP7V2cnISg4ODsFgskhfHpLYLkeZkg8GA0dFRQRn9SqzsE+655x489dRT6OnpwYsvvoi33noL11577dpwLrBQzAI8G9QrXZFDqt+lKPa1Wm3WNp5wOMyJ+/n5eRiNxqwy7wuF0JkLqdj+X98GsFzFJwKbL+jJblI1FGWqtsdSNNwKJdn+AiE9gNQzCYUsHlInDCXZ/+LKIkNBlfpciM6pIj8TcRNqi+iLWkmwLCvZ9w1FUWhsbMTi4iKi0Sj6+vrQ1NQEu90uSbFMrt4AALBYLHA6nVxzssvlyiqjf2lpSZHhEJFIBHv27MHOnTuxYcMGTExM4KGHHsLFF19c6EOTCUq18ajIh06nQzQahV6vL/ShiE46Gw/DMPD5fFxjrUaj4Xz3tbW1irfmkDsy+X7RXBD56RdFDCOsys6v5AuJxswk0InAj3sN5NXbnMiXCxGN3arAT0/ZGkzLyQWh8ZtSX19ZlkVDQwPWrVuH4eFh9Pf3w+VywWKxiLpvucQ+Gd6l1+u5jP6hoSGMjo7C7XbDZDKlfb0Sv88ikQiOHj2K06dPg6ZpNDU1YW5uDu+99x7a29sLfXjyUEQFA/VKKCNSfGBLOWs/sUGXn3kfCARgMplA0zRcLlfRLXbIuQn9otn6m8cBiJuRz692p2q8FYtAaFlgi9lAmwvBpTQCP8fVhtS+/cT3Lcq36cisAZTepKuK+9KAWFOJOA4EApw4bmtrE83WItdd8cRFRXl5OTo6OrC4uMgN5kqV0a9UKisr8aMf/QgnT57EsWPHcODAAfz0pz9FZ2cn/vCHP5SsvTgOVeyryEUpi32WZREMBnH8+HH4fD6Ul5eDpmm0t7ejsrJSkdWObBGaNHRB5K9+bb4Z+ReabpPvW+jgKz5E5Asl33SatCJfwURVH35SVHFfmiSK44qKCnR2dsLv92NgYAA6nQ5tbW15N/FKaUniE4vFktpJq6qquESi06dPw2AwrMroVzodHR3o6OjATTfdhIceegi/+tWvACjzboToqGJfRS6IjacUYFkW8/PzXPWeYRjEYjHY7faSyrwHchf76UQ+H5alsqjgxz8ueRU/WJZzBVpMK09gMffYTiUQmyvOhYnUiCbwJUq4WQvxm1KT6q5ndXU1ent7uSz7mpoatLa2Co56lEuQZrIL1dbWrjovm82Gqqoqxd21Jr1mg4OD+MEPfoANGzagpaUFHR0dOHbsGP70pz/h85//vKg9aYpEnaCrkgkxPwTFXtlPzLyvqakBTdPo7e2FwWDAm2++CavVWujDFJ1spx9v+fVquw4Qb39JVsXPRvALmXKbS3U/mMSPn+tx5kMxVvFVgb8atXq/goLiN6Umk73GYrHAbDbj/PnzXJZ9c3NzzrZIuSbQZ9MbwM/oHx0dxc6dO3HppZcqLomHaBcSW33w4EG8+eabqKmpwdTUFOfXl+tnW0iKaVGvXkVlhKIo0Ve6xVbZj8VimJ2dhcfjwczMDJd573a7UV1dXdqVAB6kQTcZm1/+DnTa5QVcqmm3qWw6ic9JJqTzycjPhqQiX8RSfboFgmgCX2rffkL5VxX5F1DFvbxEIpGsq8dSDDlMRrbiuL6+HjabDRMTE+jv74fD4UBDQ4Pi7gJHo1HodNn9XlMUhZaWFhw8eBBPPPEEfvGLX+DZZ5/F5z73ORgMhbfznTx5EgcOHMDOnTvx3e9+l/v3/v5+zm4FoKQjrjlUsa8iF0qv7JPMe6/XC4/Hg3A4zGXer1u3LusLYKmRzMZDqvg6bWqRD6wehpVuyi1fGOeWkZ97dT8UFve9zEVvBzPEZkp5B0Eoogh8uaOLJEIV+IXj8OHDsNvtcDqdGUWyGAli2ZBLc6dGo0FTUxMaGhowOjqK/v5+tLa2gqbptMUjOW0mQlJ/DAYDbrzxRkxMTGBpaQk7duzAfffdh09+8pMFFdKkj25wcBAajQZWqxXr169He3s76urqclo8qsiHspa/KjmjRLEfDocxOTmJY8eO4eDBgzhz5gy0Wi26urpw8cUXo6OjAzabbc0KfSBe7Pe+uhu9r+6Oq9bHGIr7Q2BYKunU20yTcCNRrWS+/FBYx/0RSjZ3KZIRXCzj/lzYmODDkIXYvJ77U6yIsWbSe3Uo81z4oyIf5Z74P/e9fBQMw6Cvrw9TU1Np7RdyJqzkKsR1Oh3cbje6u7vh9Xpx+PBh+Hy+lM+XM2Nf6L78fj8sFgu++tWv4rXXXsPx48exZ88eAMDY2BiuvPJKdHR0oKurC88++yz3uh/84Adob29HV1cXvvKVryTdts/nw65du7Bx40Z0dHTgj3/8Y1av37x5Mx544AF88IMfRH19PYaGhvDSSy/h6aefxmOPPYZDhw4BWDs2nnz/yIV6lZUZMkxJLHQ6HQKBgGjbEwLDMJibm+My74n3sKmpCZs2bcq7elKKjT4ajQZXvLl80c5UcY4xVM7RjoniXkgOfrrqfjCkz71SLlIVOrRUXEK5mIW9mOi96tdNISj3ZH5Oa2srGhsbMTw8jPHxcbS1tSXNfi+GOEWDwYCNGzfGxVq2tbWhqqoq7nlyin2Ss58rfr+f8+xbrVZ85zvf4R7T6XR4+umnsXXrVvj9fmzbtg07d+7E1NQU/uM//gNHjx6FwWDA+fPnk2773nvvxYc//GH8/Oc/RzgcxtLSEgDg9ddfT/t6nU6HpqYmNDU14eqrr0YoFIJGo8Hk5CR+//vfrwmRz6E26KrIRaEq+yTz3uv1YmlpCbW1taBpGq2traLewiPnV0p3AXpeeQIAf6ptZotJJk84sdZInawTFtmqkwmyPiiIwM/Dt7/KoqMwC5EcFIW4L7FEnmyEfSrKysqwYcMGLC0tYWBgIKlILqZp7fxYy/feew8VFRVwu92c711OsS/U/uT3+1FdXZ30sYaGBjQ0NABYTinq6OjAxMQEfvSjH+Ghhx7izrOurm7Va+fn5/HGG2/g+eefB7D83pNEo3/+539O+3qy4Hv99dfx+uuvY2RkBA0NDdiyZQu6u7u5Bt1SK9AVO8XxqS0hxP4AyCX2o9Eozp8/jxMnTuDgwYM4efIkGIbB+vXrcfHFF2PTpk2w2+2ie/W0Wq1sTWFS0/PKE+h55QlQFLtK3JPIzHSkK5hEYxqE0wj9dNtO91gotCzYwmGdpEI/1TGEFstEE/pC7UK5EJsrW9PNtnqvjvujIj2JlhwxqKysxObNm9Hc3Ix3330X7733HsLhMAD5PPtiUltbiy1btoCmaRw9ehQDAwOIRqOyin2hd6cXFhZSin0+w8PDOHz4MHbs2IFTp07hwIED2LFjBy6//HK8/fbbq54/ODgIm82Gz3zmM9iyZQvuuOMOLC4uAkDG15PK/Y9//GNUV1djZmYGx44dw/e+9z1s2bIF+/fvByBfM3fBYEX6IxPqFVlmiI1HLNEvVRoPP/Pe6/UiFovBYrGgvr4eGzdulK26o9FoFNeTkCsXKvmZP9m5TLkFkDI+UwyIuE8l8gU1vWZRLQ8t5imWZW5aZebXtrhXkY9yL2QTCCaTCVu3bsX09DQXb2kymSS/9kthA6EoCjabDVarFefOncOhQ4dkORf+/oXg9/vhcDjSPmdhYQE33ngjnnnmGdTU1CAajWJ2dhZ/+tOf8Pbbb+Omm27C4OBg3DFEo1EcOnQIP/jBD7Bjxw7ce++92L17N/7hH/4h4+vJ++Pz+XDjjTdiaGgId955J7Zs2YKnn34abW1tAFA0d4Dyoohu2KpX6iJHzMp+KBTiMu/J7UOaptHT01OwyC8lNiBnS/eKyE+XlpOMbAR/jEmRkY/UOje9P//CY3JbdQipRL4Sk3QUJfBlXtzoZtSvDbkQq1ovFIqiUFdXB5qmMTExgZMnT6KiokLSPiop+wI0Gg0aGxtRX1+P9957D16vF7W1taivr5fUdiJ0AZOpsh+JRHDjjTfilltuwQ033AAAcDqduOGGG0BRFC666CJoNBp4PB7YbDbudU6nE06nEzt27AAA7Nq1C7t3787q9cRS293dDZZlUV1djX379mHLli145ZVXsGPHDqxfv74ke+0SUdjXUlrUq3aRk09ln2GYuMx7rVYLmqbhcrkUk3mf66TZQkMEPpC7yOeTTOBGYxduOaddDCB77ccX9kIadcUgXCQNt4oS+DIjhcBXJ82uptDiPhUk3rKsrAxjY2Po7++Hy+WSZOChHE3A5LuurKwMfr8f4+PjcLvdsFgsou8rH9FLBk2m2u7tt9+Ojo4O3H///dy/X3/99di3bx+uuOIKnDp1CuFwGDRNx73WbrejqakJ7733Htrb2/Haa69x+fiZXk/sT3fffTf0ej1uvfVWPPPMM/jyl78MhmFQX18PYI149ovo+qWKfZkppGefZVksLi5y1ftwOAyTyQSaptHW1qbIJthiqex3/ceTAACtDohFNaAoIBzWorwyHPe8RN94pim3FMXGifzEx3KFZSlEIsl9qkK2KeQ14UV9wbLhhRyvKCK/yJStWr2XB6WI+w88shcHv3lHxudRFAWaplFfX4/BwUGMjY2hra0tK195tsjlpY/FYjAYDGhqakIgEIhL7lHK+czPz6c8loMHD+InP/kJNm/ejN7eXgDAt7/9bdx222247bbbsGnTJpSVleGFF14ARVE4e/Ys7rjjDrz66qsAluM1b7nlFoTDYbjdbvz4xz8GgJSvJ9x2223o7e3FfffdB2B5mvF9992H/fv345577kFLS4ugcy1KiueSrop9uRFb7GeqfEciEW6g1dzcHCorK2G1WtHZ2YnKykpRj0UKiqFBlwh9YFnox3hiOhRYrlobKiJJG0TTic9YTJNWFKe15WD1S1OJ/GwQq7ovWxU/T2tLnMBfAwUqQBX4cmDwFPevE6m6V1RUoKurC36/H2fOnIHBYIDb7UZ5eXne+5BT7JM7CPzzGRgYgF6vh9vtRkVFhSj7EXo+6Ww8l1xySUp70Isvvrjq3xobGzmhDwC9vb3o6+tb9byysrKkryd86EMfwoEDB3DnnXfixhtvxIc//GF0dnZydwbWCnLn5OeLenUvchIXD4mZ98ByPq/D4UBnZ2fRNc0ovUE3TuhHkmfbM2EtAuHlx8prQqu2wRftscSGWxH82PmIfDEQQ+DL4dtfizYdVeBDsvhNYFnclxKJFpvq6mr09vbC6/Xi2LFjsFgsaGlpyesusVxZ/qSyz4ecz8zMDI4fP47a2lq0tLRwsZRCiEajgn8e6Ww8heJv/uZvcPHFF+O5557DSy+9hCNHjuDaa69Fd3d3oQ9NftScfRU5YRgGY2Nj8Hg8WFxc5Kw5+V6klICSK/sbf/ZdADwhzfvcUxQLJrxaZAfnDUkF/yqRzyeN4E8lgqNhnaCyg5hWnmLw4peMwM9yUaiKe2kpny70EUhLsio1sfZYLBYu6aaxsRGNjY2CRLuclf1U+7FYLDCbzZiamsKRI0dQV1eHpqYmQceVz/mky9kvFOFwGG1tbfj2t7+Nt99+G3v27MFPfvITXHPNNXjf+96nuOOVFLWyr5IKMWw8JBrL4/FgdnYWgUAAsVgM69evR1VVVUk1xii1sr8s9HmQAVlhykB5/wAAIABJREFULUCxaa8BfMHPMOK+V1F+ko7IPvFsrDxZC3yZE2QSyUnkF/hY80UV+NJREHEv4Z2ITDAMk7KARJJu6urqMDY2hr6+PrhcLtA0ndN3klyV/UwzAyiKgt1uR11dHSYmJtDf3w+n0wm73Z7T8eUj9peWllZN/i00/Pe/u7sbu3fvxpNPPomPfOQjuPnmm/Hcc88V8OjkRbXxqIgKy7Lw+/2cNScSicBiscBms2HDhg1466230NLSUlIin6C0Bl2WZdHx8+/F/yO1IvIzEdRyzwdyFPoZqvuJFqJ8ENR0q8QqfsLPjPXruX8uCDI26RaLwC+mvuVSr9pnQzZCXKfTweVyobGxEUNDQ1wTb21tbVb7UEJlnw9JImpoaMDIyAj6+/vR2tqa9SImn/NhWVZR1tvFxUXce++9AJYnFJOeQZ1Oh+uuuw4nTpwAkF8CUVFRJNcuQBX7iiUUCnGNtaQjn6ZpbN68eVUTFBHESkzTyRetVstNbywUpMl5enoaf/Xub+MeYxNFdjLlEkxi55muRJk1kNdxRcP8KM4UT5JQTUUCiQJf2iufIIuRX4GLEAnQzZbeZ7/QlHsgya90Md8oyqXqbjAYsHHjRiwuLmJgYAAajQZutztjMITSxD5Bp9Ohra0NTqczLoko0yImH8++0ojFYqivr4fBYEB1dTVaWlpgtVpRX1+PlpYWrqF5rQj9YilUAKrYl51UH4JkmfdWqxUtLS2oqalJ++EhWfulckHhUwgbD8uyXJOzx7PcYWe1WtHU1AS8u/wcJqzNnE4T0K7+Vuf9f9hbkZvgX1EJ0WzuIkhEZEnE2EyJVE+cwC/h7xxV4IuLUmIwC0U28Zv8BJtsqaqqQnd3N2ZnZ3HixAnU1NTA5XJBr0++EJezQVfIosJgMKCjo4NbxFAUBbfbndJuI9fiRQ5qamrw2GOPAVgugr399tuoq6tDXV2dKMlFRYcq9lUywbIslpaWOEEZDAZhNpsFZd4rzeoiJnI16CZOD66trQVN02hubuY8iht++iziGnITodhlgc/9v7jHGA0nWTyskNZPL6C6n1hFj66q4iuPtVDFVwW+eKi2nNzJ5HNPh9lsxrZt2zA1NYXDhw+jvr4eTqdz1fbkukudrwgnixifz4f33nsPlZWVcLlcqxJ+YrGYoKCMaDSq2EXC8ePH8cgjj8But8NgMMBqtcLpdGLbtm3YtGlToQ9PPlSxr5KOyclJDA0NobKyEjRNo6OjI6/M+1IW+1JV9hmGgc/nw/T0dFbTg5eF/gVWCetgFpUo3ms0geXnRyeqoHMspnzJqiq+zB6A3ES+/J2DGQW+WD+vAnovVIEvDqq4z598q+6k6dVms3FNr83Nzaivr+euuUqv7CdiMpmwZcsWeDweHD16dFX8aDQaFVT19vv9iovdJO/N6dOnce7cOfzsZz/DgQMHcPz4cfzyl79Ef38/vv/975fU3Yx0qDYelZSQmDK73S7ah4HYeEoRMRcy/DspgUAAJpMJNpstv+nBK6I9nV2HDxH56Z4DCLPqiDX4KhbM8LMooPBlWQpYKOLLVpZ3WVSBnz9See7XMmIJca1Wi+bmZjQ0NGB4eBjj4+Nwu92wWCyyCUUxFxUURcFms8FqtWJychKHDh1CQ0MDHA6H4DsVSozdJAuy+vp6XHXVVdBoNLj88stx+eWX46677gKw7FpYC0JfLiiKagLw/wKwA2AA/AvLss9SFGUB8P8BaAUwDOAmlmVnU21H/UYpAGJn35d6ZV+ojScWi2FmZoaLKCW3G9vb21FZWZl1E9Gqqn5iFT/DZjQZqv786r5kfvwsRGZGkS8F2S4cilngZ8FaFvdi9ZCvKc99geI3xRbier0e69evRyAQwMDAAMbGxqDX62E2m0XbRyqkSIzRaDRwOByw2+34/9l78/g2Cjv9/5mRZFnypWMkW7Z8yPIZ27HjpCx0IaWloVlIG8JVWnZDS0KBnr8FukApbVkKDS3d0gKFUui2sCy/loUs28L2ostZCvERcjmHHSexHTuW5FPypWO+fzgzSLKukWZGM/K8Xy+/YsujmZEczTzzzPP5fE6dOoWuri5oNBpYrVbO60o0PTdbMO/Z0tIS/vSnP2FgYABbt25FZWUl7HY7rFbrihhTTiPOZzAA4FaapnsIgigC0E0QxJ8AfA7AqzRN7yII4g4AdwC4Pd5KVu8ZJofIZbHP5bXRNA2fz8e690tLSxEtSjM9Sa0Q+XEXXP4nociPcY5JWejz6KwH59XSLmLNYZG/mgU+H4gi7rPY016KCBWx0el0aG1txfT0NPbv349AIAC9Xi9b4ahSqeBwOFBRUYHu7m4cOXIEdXV1MJlMKa9DijEe5m9vs9lwxRVX4NixY3juuedgtVpRXFyMK664Aueee+7qab0pAjRNjwIYPfv9LEEQfQAqAGwFcOHZxX4F4DUoYj+3yfUYTyJn3+/3Y2JiAi6XC9PT02wdREtLCy/dARqfehgEUhft5AKZlngOnNYD1MrJulxJNcoTnA8fvgUeBT8P6mhW/cGq+EBCuX31lHJ7O11yybmXa/tNofP0JSUlMBqNKC4uxr59+2A2m1FVVSXbTnN5eXnQ6/Worq7G8PAwTp06BafTmZJjL8UYD0NDQwNuu+029ueBgQH84Q9/yFnTMSZZaL1JEEQNgHUA3gVQevZCADRNjxIEkfD2kTw/QTKHIAjQNH//S3LZ2Y8u0KVpGjMzM6x7HwqFYDabUVFRgTVr1vB6Imp86uHU93MhTnY/FmHLqObO/kAQ4PQXTEMtRAj8TOFbrczG2De5KqIoFIGfHrkk7uVCsvabYhTP0jTNHtNPnz6Nnp4eVFRUwGaz8bZtPs+/yQgGgygsLERraytmZmbQ39+PvLw81NbWJjSkvF6v5Jz9cI4fP47Dhw+jtLQU69evZzP7wCrpsw/wddePIgiiK+znJ2iafiJ6IYIgCgG8AOD/o2l6hut7rIj9LMC32Fer1VkfPCUUKpUKgUAAp0+fZgeMFRcXg6IodHR0ZPU2L7mY/omHFfkAK2hVp3QIVmU2aAtY6e4HYwz1kgw5GtNRBD53FHGfffTjyeujhBZyTF0ASZKw2+0oKytjJ9c6HA6YzeaM90Gsjj9AZJ1DcXExOjo6MDExgYMHD6KkpAQ1NTUxZw5I0dln4jn/93//h9/97neYm5uDTqfDG2+8gauuugp2uz3buygu/Mg4N03TGxItQBCEBstC/1mapl88+/AZgiBsZ119G4DxROvIzTOtDOAz08YI4lwhFApFDLXyer2Yn59PacAYXyRy9VVnXXw6xQ487PPmxXM7OAt8MaM8isBXOAsj8AW7Ha5k7hOSirgXm+giYGZybUVFBQYHB9nJtZm43pnMC0iH8HMWQRAwm80wmUwYGxtDb28vrFYrKisrI/ZpdnYWZWVlou1jKjDv2+OPP47Ozk5ce+21GBkZwU9+8hOMjIzg7rvvTjpROFcgIE6Mh1j+z/MUgD6apv8t7Ff/A+A6ALvO/vtSovXk5llX4vAtVnMhxrOwsAC32w2XywWfzweDwQCKolBTU4M9e/bA6XRmdf9UUcW2K4R+oucmEvlRv+Lk7scQ6CGmo44YRyEuFwiKwFdAfPeer448ComRoriPJp7rnp+fj+bmZni9XgwMDECtVieNwsRDzIFV8e7iEwQBm80Gq9XKzhyw2+2w2WwgCEKSMR5G7Hs8HmzcuBF2ux12ux3PPvssPvGJT+D999/Hxo0bV0+BrjjHrL8H8E8A9hMEsffsY9/Assj/DUEQOwCcAnBVopXk5hl4laFWq2Un9kOhENsWc2JiAhqNBhRFob6+HgUFBVk9UKx59FEgf/n7aJEfl6jdVc8RnC4IMiEUq2WmFNQTHwJfQsW1gCLuuaJEcwQkhbsWchD30dA0nTBiU1hYiPb2dng8Hhw8eBAGgwHV1dUxozDxENvZT0T4zIGTJ0/ioYceQnl5uSRjPMx7fNNNN+GJJ57A0NAQ1q5dC4PBAK/XC4PBAGCVZPZFKtClafotxD97XZTqehSxnwPIJcYT3hZzcXERRqORFfhSOfAyJBL58US8OiyHn67QV80j5ULd4IKalyFaLHwJ61l19i80eEQ9La3/m1ImJ8W9QFEgIerP9S56uWhnFRAdhWGGWKWSxRdrcBcXh1uj0aCurg5bt27F3XffjSNHjqCtrU3gPeTG888/j0svvRSXXHIJpqamcPDgQZw8eRIjIyM455xzUFlZme1dFBcZfdQUsZ8FVkuMJxAIRAy10ul0oCgKzc3N0Ov12d69mKx59FHOz1Gnm8UPe5p6bvlfmgDyjuiw1Bg7yhM9+IqvqbkZE91NRwp3FjJAM6US7c6MnMlJcS8j9C7xPmNidrBJlfAozNDQELq6ulBdXQ2r1ZrwPCuW2A8Gg5wLgWtra/Hss8/immuuwbPPPov//d//xX333YfGxkaB9jJ1vF4vdDod/vVf/xUWiwU+nw+nT59GS0sLduzYIbk7EYIjvY9EXMQpR1eIgG+xL5U++zRNY3Z2FsePH8d7772HPXv2YHJyEqWlpTjvvPPQ2dmJqqoqyQr9VGAEoHqeYL/iLZMM9dwHX8meF1xQc59wK7Ra9aqXRX6stpkyRDOlYr8UYpPvWRb4zJeCuOjH6YgvIdh004qufwDE7WDDFZVKhZqaGnR0dGBqago9PT2YmpqKu7yYYj+TGQFPP/00vva1r2Hnzp24+eabsbi4PItlaGgIH/3oR9Hc3IyWlhb8+MfLU96ff/55tLS0gCRJdHV1xVznwsICzjnnHLS3t6OlpQXf/va32d9de+21aGxsRGtrK66//nr4/f6I51555ZUgCALNzc0YHBzE3NwcCgsL4fF48Nhjj0nSdBQSgs78Syxy4yy9ysmms7+0tASPxwO3243p6WkUFhaCoiisXbsW+fn5vGyDIAhRTjSpuPppu/js81NbLu+IDvPV/uQL8k0q2QKxi20FzO0rwj45+Z5s70GGyLgjT1qCniAyjvIMDQ2tiMSk41KLTV5eHhobGzE3N4eBgQF2iFVBQUHEcmKK/XS3w0zQveCCC/DGG2/gtddeQ15eHoBlg++HP/whOjs7MTs7i/Xr12PTpk1obW3Fiy++iBtvvDHuerVaLf7yl7+gsLAQfr8f559/Pv7hH/4B5557Lq699lr8x3/8BwDgs5/9LJ588kncfPPN7HMZ597lcuEHP/gB+/2BAwfQ1dUluTiu4MjouKKI/RxAzGIYmqYj2mICAEVRqKysRGtrqyD7QpJkVl0ltptOCi8tlpmeqsBPF1GiPDnUTSdVgU/Qwt8ckSLZEvcyT35ljC4skpPt9yEQCKCrqwsOhwMURbGGi9BiLhQK8XIO0ev1aGtrw9TUFA4fPozCwkI4HA5WLMtB7Pt8PhQWFgJYPsd/9KMfZX9ns9lgs9kALAvw5uZmjIyMYNOmTUnXSxAEu16/3w+/38++55dccgm73DnnnIPh4WH2Z5qm8cYbb2B0dBTf//738aUvfQkAYLFY8NGPfjThnZSchIYi9hUSI7dK9YWFBXg8HrhcLni9XpSUlICiKFRVVbEHTyFh7lwIOTI92tXPtCc+V4EvSVGZqcCXkHrTKEW2cZG9cy9TxMzbc8XhcKC8vBzHjx/H8PAw6urq2EFXQsK3qWMwGNDZ2QmXy4W9e/ey/eyFPp8wZNLiM1lXIoYTJ06gt7cXf/d3f5fyuoPBINavX4/+/n586UtfWvFcv9+PZ555ho0HMftD0zTefvttzMzM4P7770dhYSFqamqgUqnw1a9+Fdu2bVs9bTchmdNbSihiX2EFoVAIk5OTbFtMlUoFiqLgdDpRWFgo+gdZpVIhFBKnhVxckZ9qDp8nF189BxT1aTDbnGGUJx3BnSMuviLw46MIfI7wEAWSsriPhVarRXNzM2ZnZzEwMACCIAQX+0I47gRBwGq1gqIotp+9TqeD1WrldTuxEPqiwuv14oorrsBDDz3EqSe/SqXC3r17MTU1hW3btuHAgQNobW1lf//FL34RGzduxAUXXMA+RpIkNm7ciOLiYiwuLiI/Px979uzBO++8g1AohGuvvZbX1yYLZPSRzo2zugKAzKbyzs3NsdGc+fl5ti2m0+kUxQFJBEmSgtYktD34U6gyCIWrGIGf5ioYV1/jW/lYyuvIMMpDRAl8Sd5pSAFF4MeGV3Ev4wy8mMhN3MejqKgI7e3tGBoawsmTJ3H8+HFUVVUJcl4QMq5JkiQqKytRVlaG999/H4ODg1Cr1TCbzYJsD8js4iVZ9yO/348rrrgC1157LS6//PK0tmEwGHDhhRfi97//PSv277nnHrhcLvzsZz9bsTxJkujs7MQTT0QWcU9PT7OTc1eLqw8ozr5CEoTMtad6YAkGgxFDrfLz80FRFBobG6HX6yX1gc16a9EYb4WKRwc/W0QLfEmToEhXEfgrUZx78ckVcR8LgiBQVFSE0tJS5OXloaenJ2LaK1+IkaXXaDQoLi5GSUkJxsbGMDQ0BKfTKUjbyHRfT7L4D03T2LFjB5qbm3HLLbdwWrfL5YJGo4HBYMD8/Dz+/Oc/4/bbbwcAPPnkk/jDH/6AV199NeFF16FDh/Db3/4WRqMR55xzDjo6OjjtQ84go4+8jM72ColgBHG8AwRN0+xQK5fLBb/fD5PJBIvFgoaGBklX0TMXMkLQ9uBPU142ocDncL5LJvDDXXW+ozyiC3yBcvtiCXw5FekqAj8BAtyN0LtpWZ3subDppifwp8e/EPEYYybZ7XaUlZXhxIkT6O7uRm1tLUwmEy/bFWuybTAYhE6nQ0tLC2ZmZtDf3w+tVova2lreusgBy6Kdy2RfBq/Xm/Di4+2338YzzzyDtrY2Vmjff//9WFxcxFe+8hW4XC5ceuml6OjowB/+8AecPn0aO3fuxCuvvILR0VFcd911CAaDCIVCuPrqq7FlyxYAy5Nxq6urcd555wEALr/8cnzrW98C8EFyYO/evfj2t7/N/s337NmDzZs344orruD8OmWNUqCrkCp8FrIwvfbDC2b9fj/bFnNqagoFBQWgKAqtra3Q6XS8bFcMsursE/y4+GI4+ImiPLJy8eOgOPiRKOJeXPTuGGd2qUaaeGi/GU14xEatVqOurg7z8/MYGBjA0NAQ6urqVrS45IpY7T3DjbHi4mJ0dHTA4/Fg//79MJlMqK6u5iWmxFxUcMXr9SbM4J9//vlxYz7btm1b8Vh5eTleeeUVAMDatWvR29sb87mJ5vUwemXfvn0gSRL//u//DgD43e9+h1/84hfQarXYsmXLqirQlRPyVwAyhCAIQaboBgKBiLaYoVAIZrMZFRUVWLNmjeR7JMdDKGc/kavPFNqm5OrGWSYdgc+ni0x4w8Qxx/VKxdHWzCgCn0E7Ia+MaDpIqIFTVmM5UnofGGLdOdbpdGhtbcX09HTMFpd8bEMIou8gEAQBiqJgMpkwOjqKnp4elJeXo7y8PKPzZrqvZ3Z2lm2PKRUYzVJSUgKr1cq+ti1btmBmZgb/9V//hS1btojW6SjbEOBn/ItY5P5fJMdZWlpinfve3l62sLajowNarTbbu8cLYjn70Z100hG7fDv4Go7rixD4MkUR+B+gncj2HqwedGHOvdSEthRIVDxbUlISs8UlV6Er1jyVeJl4kiRRUVGB0tJSnDp1Ct3d3aipqWFnDXAlE7HPpbuOGDAXSCqVCu+++y62b9+OzZs3g6Io9Pb2orOzEwBWhdBnkdFxYhX9VXKDUCiE6elpuFwueDwekCQJiqJgMBhgs9lgsViyvYu8I4TYX3fvTwEdD60yCf4EPtuVJ2p9pm4NJtYnzu2TviQnFL6m0KZDCjalIvCXkY24l2p8JUV0sSI5CglJJsTDW1wODw+ju7sbVVVVKC0tTVkoZ8vZj0atVqO2thYVFRUYHBxki3iZjjOpEggE0hK/UhT7zPtVVlaGc889Fy6XC2+88QYGBwdB0zTq6urw1ltvob29XZBiZykiJ1NAEftZgiCIpK21GObn59lojs/ng8FgAEVRcDgcbPFPf3+/aL3oxUaoGE8ioZ/M1WcFPk8COp2LjqQCX+LIReALHWniIvClGO+QA7oc7pQjFqFQKCXhSpIkqqqq2CLekZEROJ1OGAyGpM8VU+yncgdBq9WiqakJXq8XAwMDUKlUqK2thV6vT2k76b6eZAW62SAUCmHXrl04cOAAqqqqYLFYoNfrcfXVV8Pn8+HNN9/E97//fXzrW99iC4Cl3PiDF2R0WFHEvgQJBoMRQ600Gg0sFgvq6+tRUFAQ0yVRq9XZbU8pICqVCouLi7ytb929qXfgCWeFg5+BAEz3joKYAl8IkSsXgS8ksnHvZYwi7vmHq3jLy8tDQ0MDfD4fW8TrdDoTCuVULyjEprCwEO3t7ZicnMShQ4dQUlKCmpqapJ12MhH7UnP2H374YfT39+NjH/sYLBYLBgYG8Oabb6Kvrw/3338/LrvsMvzwhz9kl895oQ8oYl8hOeHOPk3TEUOtFhcX2ex9fX19Sh8apkA3FxGy9WYy+MzgZxIZMnVrMNWU4XuQpSiPZoaUVyWTACgCX1j4juVwuoMi80hTPKLbb6abpy8oKMDatWtTEspSd4ONRiPWr1+PM2fOoLe3F6WlpbDb7XH3OVm//HjMzMyIMuGXC2+88QZ27NiBSy65hH3slltuwZ133oldu3bh29/+NiwWy+rpxkPL6y6rIvazRCgUwpkzZ+DxeDA1NQWdTgeKotDc3JzyLcJw+Ha/pQSfmf1UXP2UWm2meCzLuCZApmhmokRBNmsGsoAi7tMnFaGtZO5TgOf2m5kWzzJCeWxsDL29vbDZbKioqIhYp1gFuplAEATKyspgsViS1ibQNJ3W6/H5fJKL8czNzbHThhcWFkCSJEiSxPe+9z1s2bIFhw8fzsmawYTI6DCkiP0sEQqFMDU1hbKyMjQ3N2d8gFOr1fD5fDztnbTgS+wnuzvA21RcngW+el4eR5QVAn+VoQh84ViN4l5q9Rl8DLwiCAI2mw1WqzVmtxsxnH2+nGeVSoXq6mqUl5fjxIkTGB4ehtPphNFoZJdJdztSLNC98sor8dOf/hRNTU0rCpXn5ubYVqGrwtU/i5Q+n8lQxH6W0Gg0aGho4M3FyOrgKYHJJMYzPz8Pl8sFt9uNhYWFFb+XjcCnAaqHgLtT3KNLstz+ahH4sd6HVS/uBYqv6Nx05ifRHI3WiEXB6NKKx/gceKVSqeBwOFBeXo7jx49jeHgYdXV1ooh9vreh0WhQX1+Pubk5HD9+HKdOnWIHjKXahCOa2dlZyTn727dvx8DAAHbu3ImLL74Y7e3tKCgowNGjR6FSqUBRVLZ3UXxkdIxRxH6OkOsFuqm+tlAohImJCbhcLkxOTiIvLw8WiwWNjY34yH2/AnQ8CPyzoo9PgS+ae89DnGa1CPxYSEHgS83xzZTV6NpLjVjiPhohIjZarRbNzc2YnZ1Ff38/5ufnUVZWxus2ohHqgkKv17MDxo4cOQK9Xp+2SSXFAl2NRoM77rgDTz75JF5//XW89dZb0Ol0OHjwIG6//XbY7fZs76LoyOk4rIj9LMH3QXM1F+gyxc0ulyuiuLmhoWHFQT0Toa9eeWMgI1IW+BI4oKxWgZ83me09yD0UcZ99UhH30QiZpy8qKkJHRwe6u7tx9OhRWCwWVFVVCdKZR+i7ByUlJVi3bh3Gx8cxNjaGwcFBVFZWcnotUnT2AaC4uBi33HILBgcHceDAAdA0jV27dqXUVjXnoCGJc3OqKGI/R8jlGE/0a2NakzLuvVarTVrcvOEbabbbzJbAlwDqWZ5P7DIp0lUEPr/IVdzn0h0U/VjioXypILRIJggCarUara2tcLvd6Onpgd1uh81m4zUHzmccKR4EQcBoNKKkpAQajQY9PT2oqKiAzWZLadtS7LMfjsPhgMPhyPZuZB8ZHR8UsZ8j5HKMhyRJ+P1+nDx5ckVr0ljufabwKfAzFvdRTxc6t8+7wJcJisDnD52HzvgkKDuhLbEaAX0azn0sLtv6CP77pS8DEKdTTjAYhEajgd1uZ4dydXd3o7a2FiaTiZdt8FFonArBYBBqtZp9LSdPnkR3dzccDgfMZnPCCxipOvsKH0BAXscoRexnCb4r1nMtxhMMBjExMcEOFpufX87fpNOaNBVXX1ICPwrNHM9HlCiHfTUK/Lyps9/I6GAtVXQe5U3MNnyJ+0SIIfbDt6FWq1FXV4f5+Xl2KBdT+JoJ6fa+z2Q7arUaTqcTFRUVOH78OPta4gl6mqYlPW9A4SwyOvQpYj9HIEky7cp/qTA3N8d2zmHce2Zy8HvvvYfq6mpet8eXwBcimqPxCfu3XNUCXyEj5BrLkSPx7nCIIe5jIUZbxeht6HQ6tvD18OHDKCwshMPhQF5eXlrrF9vZDyc/Px9r1qzB7OwsBgYGoNFoUFtbC51OJ/j+KPAPISPNpYh9hawR7d7n5+fDYrGkPVgsFuGuvqTde4HFPQBowgR+onaagiJibj+Xxb2YMRfZinuJRWsyQX8mO+JeSpSUlKCzsxPj4+PYu3cvrFYrKisrOQt3sab0JtoOU5Ds8Xhw4MABGI1GVFdXx5wqrCBRlAJdhVRYTYMnwvH5fGznnKWlJda9FyJ7D0jXvQ9fH8GxO5vtLWD0/NSW1awyBz+XBb5Y5Ht46HOvkBEFY4q4jwVBECgtLU1pem08pCD2GcxmM0wmE0ZHR9HT04Pe3l780z/906rVBwrCoYh9BUFh3Humcw7j3q9Zs4Y39z4e596SXgceBj4FvthdeJKJ/GTDsuRERgI/h9zfdMkXInOvvK+cEFvc0wQhqwhCNCRJoqqqii3iHRkZQV1d3YrJrrEIBoNpR4C4EAgEUmq3SRAEysvLYTab8dJLL+H888+H1WrlbdKvgnDIyRRRxH4OQRCEKEVUyfD5fGz2fmlpCSZf5A6QAAAgAElEQVSTCVarFU1NTVnft2SILfC5uPrq+fCFV76Pq8XFV9z7zBBE3AuAFDrycNoHDhc4GYt7EkB685okSzo1Z3l5eWhoaIDP58PAwAAIgkBdXV3CDLyYzj6X3vparRb3338/rrzySuzYsQMf+chH8L3vfQ9///d/L+BeKmSEPA6lAGIpBgVR4bOoNlu99oPBIFwuFw4dOoS3334bR44cAUmSaGlpwYc//GE0NTWBoihRhX6qrr56no74ygQ+1wUA6oXQ8td8KEroA5V/Wv5ZM0uyX7lM3tQHXwrcyPfQEV8K4qI/41/xRcvIsb1s6yOiNH/IxKgqKCjA2rVrUVFRgYMHD+LYsWPw+2PPFpBSjCcWer0e55xzDn7+85/jwQcfxOWXX45jx44BAK6//npYrVa0trayy3/nO99BRUUFOjo60NHRgVdeeSXmen/84x+jtbUVLS0teOihh9jH33//fZx33nloa2vDJz/5SczMzHDe59UKQWf+JRaKs58lCIIQpP0m06dYSGiajuicw7j3paWlgrn3XO5aJBP6fLn3ma4n2tVXL8Sw6hJsQrYCP8UiXUXYJyae66wI+uyiP5P5ACupIXbbzXQxmUwwGo0YGxtDb28vbDYbKioqItYrlthPt8Xn7OwsiouL0djYiN27d+PNN9/E4OAg6uvr8bnPfQ5f/vKXsX379ojn/PM//zNuu+22uOs8cOAAfv7zn+O9995DXl4eNm/ejEsvvRT19fXYuXMnHnzwQXzkIx/BL37xC/zgBz/Avffey3m/VyUyOtQqYj+HUKvVgvXaDwaD8Hg8cLvdmJychE6ng8ViQUtLiyhtw1QqVUYnA6kI/Ih1xRL3IiK13L4i7tMjf0JGZxyxEaF2IELc5+ifQqyBWnyIcIIgYLPZYLVacerUKXR3d6OmpgYURYEgCMnGeBiip+decMEF7PcbN27EiRMnOK+zr68P5557Llsn95GPfAS7d+/Gv/zLv+DIkSPYuHEjAGDTpk34xCc+oYj9VBDZmc8UReznEHzGeGiaZjvnMO692WwW1L1PBEmSKR08z7/5UUBHSFLca+Y4ivsEm1bPB5ELH19JCHyZFZMmHWLFw+uRQl5eiuSia58Khw8fFjzKw7cIV6lUcDgcKC8vx/HjxzE8PIy6ujrJx3gYZ58LjzzyCJ5++mls2LABP/zhD2E0GiN+39rairvuugsejwc6nQ6vvPIKNmzYwP7uf/7nf7B161Y8//zzGBoa4rzPqxYZHSNlmgPIDaQ2RTcQCGB8fBwHDx7EX//6Vxw7dgwqlYrN3jc2NsJsNmelyJbLhUwmAp3P3L1mLhTxlQnq+WDEFwDY/28xo3Vmi7xpJX/PBZ2HjviSDRK6a5Qu0Vn71YrJZILX68Xg4KBgdWFC3T3QarVobm5GXV0d+vv7MT09Lcq0+UzEfrzJurG4+eabMTAwgL1798Jms+HWW29dsUxzczNuv/12bNq0CZs3b0Z7eztrnP3iF7/Ao48+ivXr12N2dlaUTkW5AAEls6+QJdRqNacDMePeM9n7QCAAk8mEsrIyNDc3S6pzDhPjScT5Nz+a1rr5cu8zFfThqOfEL7QWkrzpbO+BfJCVoM8xYgn6XL3LwaX9ZklJCcxmM9RqdVq97VNBaMedGWT17rvvoq+vDxRFoaqqKq2oTSqk2nozmtnZWZjN5pSXLy0tZb+/4YYbsGXLlpjL7dixAzt27AAAfOMb34DdbgcANDU14Y9//CMA4OjRo3j55Zc57/OqRUbtaxWxn0UIghC9G08gEGD73k9NTUGv14OiKLS1tSE/P5+3feEbJsbDB/xFfPgR96qo9YjZ/1qo3L4i7lMnfyLbeyBdhBTagjj1YkbCRGy/GQqFoFKpUFlZibKyMgwODnLqbZ8KYsRrCIKASqVCZ2cnO8jKbrfDZrPxfqc93dfj9XrhcDhSXn50dBQ2mw0AsHv37ohOPeGMj4+zdQwvvvgi3nnnnYjHQ6EQvvvd7+Kmm27ivM+rFTmZAIrYzyKM2OfrIBOrQDeee2+z2STn3icimbOfzNXnpRVmAnHP5UMfLe7TRTUXAKDlZV18oAj81FDEfXbQjwsf3eCCnAZbbf+np/GDBz8BANBoNGxv+/7+fqjVajidzozNIrFmxNA0DZVKBbvdzg7l6u7uRm1tLUwmE6/bSef1+Hy+uDGez3zmM3jttdfgdrtht9txzz334LXXXsPevXtBEARqamrws5/9DABw+vRp7Ny5k23FecUVV8Dj8UCj0eDRRx9lc/3PPfccHn10+fx5+eWX4/Of/3w6L3f1QUNWmX1F7OcQKpUKfr8fgUCA7ZzDuPcWi0Xy7n0iuDr7Qov7cJIJfS7iPt7JXzUf9trDlql+2YeTlxakvH6+yRmBL6Ajq4j77KA/Iy1xL3eihWtBQQHa29vh8Xiwf/9+mM1mVFdXp+3Oi1U4G45arUZdXR3m5+cxMDCAoaEh1NXVoaAge8fUmZmZuAW6zz333IrHmGhONOXl5RE99998882Yy33ta1/D1772tTT2VIHLUMxso4j9HICmaXi9Xng8HkxOTmJ0dFSW7n0iEkWULvzcI7z9R+YjmpOucx8u9CPEfTgScAJzRuALRKbinhfHd5V15NGdde3lsr9yJN55xGw2w2g04vTp0+ju7majPlzvWGdz+rtOp0Nrayump6dx+PBhFBYWwuFwZKVYNbr1poKEkdHxRhH7WSST+A7j3rtcLkxPT0Ov10On04GiKLS0tPC4l9IgXoznws89ktF6MxX3BA2oMuyXr1oIpOYQZEnoK+I+OYp7HweB7pjoJBbJWQ0kEuIkScJut6O0tBQnTpxAT08PnE4nDAZDyutPty89F5LVyJWUlKCzsxPj4+PYu3cvSktLYbfbRb3jkE7rTYXsICdzQRH7WYSL2Gfce7fbDZfLhWAwCLPZjPLycqxZswYkSbKufi7CV4EuH859wnWk8OFXLaQvVMjFsOfyJP5jFekqAj8x+ZOQlasjZ7gIe053IwhCEnfK5EIqglej0aC+vh5zc3Po7+/H8PAwnE5nSoMXg8EgtFpha5BSydETBIHS0lJQFIXh4WF0d3ejuroaVqs15XN2KBRK28xTnH2ZQENWxw9F7EuYaPe+oKAAFEVh7dq1MbP3Qk7QzTaxnP1UXH3BxX04cT73ycR9PFefXEjQLUSAg4wi8OOTP5ntPVg9SDFrz+0iArLpyJMsMpY38sFBgUvERq/XY+3atZiYmMCBAwdgMplQXV2d0LmX2pRelUqF6upq2Gw2DA4OskO5Uuk+lEn9Adc++wrZQ3H2FdKCce+ZzjmMe19RUcG694ngc4Ku1CBJEn5/8lZ56oWwT18agli1EMroA8zVtQ8X+uRiILV9DluGWAqg9lk3jl9Lcdoug2YmraflJmEiTRH34hHRJUdGJ08+kFpHnrzRsweE0Mp9SkeIm0wmGAyGlNpcilGgm8428vLy0NjYCJ/Ph4GBAZAkmfRuRbo99pl9FDrOpMAT0vnoJkX5H5VFCIJg+94znXMKCwtBURTa29s539LMZbEf/drCXf0Igc+Q4gk0Om/PVeirFoKctsc+bz7GRUGSdRCLMS52OLp6iriPT87l7sV0mFNEau0vVzva06nfzvvqlqfwm667OG+DJElUVFSwef7u7m44nU629SOD1Jz9aAoKCti7FQcPHoTBYEB1dTU0Gg2v21FQEAJF7GeZgYEBqFSqlN37RORyjIckSTbG8/FrHk77P26iYtpUhD4r7sNJQejHFPcJ1hFT2EcTAoil5MspAj82GYt7AcW0VBzfTDvy6F3BmC5xXCR4gZJLcBH3fMO0uZybm8PAwACb59fr9QCk6+xHYzKZYDQaMTo6it7eXpSXl6O8vDzi3K2I/dyHgBLjUeBAY2Mjb25GuCDONTjdtQhvYZlBp5yYwj7BthjIqOclE20rhH2c5QmmODf69zHiTYrAX0nOOfcSRO+K8ZkhCW6CX4E3tKNpHggE/Jvp9Xq0tbVhcnIShw4dgsFgQE1NjeSd/XAIgkB5eTlKS0tx8uRJdHd3o6amBhRFsXfs09lONtuPKnCEppUCXYXU4Hs8N9/rkxJMge7Hr3k48XLx+tMnYbmFJsfnnv2gR4v7yPVydOzPLk8sxon5RAn7257aAqPRCIqi8A8/fSGFnV49aM/m7uXkvsiJmMJeAqzWjjx5Y7MRP0vhzlAijEYj1q9fj9HRUXR3dwNIry6AC3w77iqVCrW1taioqMDx48fZIt50c/c+ny+rA70UuCGnc4si9hVkAUmS+Nq9f4n5u3QFPiPuuXxg2daXKdwwIGgaxFLyVplJHXvmcX8AX/n5P4AgCHbUu16vz+mLPK5olcJawdC5pSnuxUJqQ8byTs8mX0jiMA651WrFu+++i/3798PpdMJkMgmyvWAwKMgFhVarRXNzM2ZnZ9Hf349QKJTWa1B67MsMCR0PkqGIfQlA07Qi2JJw5T8+BeiWHZlMxX04yU7eZCyHPV6rzHiufXj3nBQdeyz58eib/wy3282eACiKgtlsxuTkJPr7+6HVatm862pFEffCIVXnXhbwXHvAuva5mdKEWq1mBXN4m0u+j29CZ+mLiorQ0dGBI0eOYHR0FDRNo6qqKmWXX+mxLy/EuPgnCOIXALYAGKdpuvXsYyYAvwZQA+AEgKtpmk54NlTEfhYRSuDn2sUDM/WQi8hPJZIT/UGNKeyjOXuyJZfiuPHh618KxM+9+gMAHWK//68j32OHpnk8HoRCIfh8PlRVVaGoqCji72mxWGA0GjEwMIDu7m40NTWhsLAw+b7nAJIT91Iv0k1x//SMay8jpypXiP47R8dxVgs0TaOgoACtra2YmppCX18fiouLUVNTE7PjTTqIUThLEATy8/PhdDrh9/uTthwNZ2ZmRnH25QINsWqRfgngEQBPhz12B4BXaZreRRDEHWd/vj3RShSxn2X4FuVMIavc+/QGAgG43W643W7cetefky7PNW9P0CmK+7OQsfrnR+fxwyM74QcBf9jjS0t44eguAMsnHqbt6t/+9reIoWl5eXkJ90etVqOxsREzMzM4dOgQzGYz/nbXTpx735Mpvya5IDmBnwPopRzJWWUdebRjs6nXDWQ4RCvTGoWrN9yXVvtNrhgMBnR2dmJsbCxux5t0CAaDSY+tfMCcg0tLSyOKeGtraxPGexRnX2aIcJyiafoNgiBqoh7eCuDCs9//CsBrUMT+6kKuYp+mafh8PnagWCAQgNlsjiv0VYuh8CentA3VYmo98WMK+yjiFtpGP+7344Uj32N/nJ+fx6lTp+B2u7G0tASTyYTS0tK0uzIVFxdjw4YNGBoawp49ezg/X4rwLe6llrXOBlkX90pHHgCA9ow3ZwqChYYgCNhsNlit1gixbDab016nWC0xw7ej0WhQV1eH+fl5DAwMYGhoCHV1dTELcRWxLy+yeF4ppWl6FABomh4lCMKa7AnyUoQKSWF67XMdyJUNgsEgPB4P3G43JicnodfrYbFY0NbWhvz8fFyy+d8A7bIAjhD34cQ5cbLCPoXlk4n7uEW2SYQ9sNxKjXHvJyYmoNVqQVEUmpubE05g5AJJkqiurobVagX++D4v6xQbxb3nD7Gy9lK+iJJCRx7tGS/v6+RCxjEwiVygMR1vysvL2f788cRyMkKhkChiP1brTZ1Oh9bWVkxPT+Pw4cMoLCyEw+GIuNOgxHhkBj/HDYogiK6wn5+gafoJPlYcjiL2swxBEGwmnQ+kPkV3bm4OLpcLLpcrwtluamqKcLYv2fxvABKIfCCyn348cR+1PBG2XLwTYYS4D98WE8cJ0UAggBcO3x/z+YuLi/B4PHC5XJibm4PBYABFUXA6nYKeaPi6eBADRdzzR3iXnIzF9yqL0HAl3kWEdiy7wj4XSHYezM/PR0tLCyuWi4qK4HA4OOX5s+HsR1NSUoLOzk6Mj49j7969KC0thd1uh0qlgtfrRUlJieD7p8APPJkdbpqmN3B8zhmCIGxnXX0bgPFkT1DEfpbJdbHPONsulwuTk5PQarWwWCxYs2ZN3E4LjNBPhCqFqA0AEHGWY4W+Pxj5M0P4ZNqz38cT9zRNY2Zmhi2uJUmSFfcFBQU5VSydLoq454/V3gJTCmjP+LK9CzkFl2FSjFg+c+YMent7YbPZUFFRkdLzxRT7iaK0BEGgtLQUFEVheHgYTz75JDQaDWZmZlBVVSX4/inwAI1sGiP/A+A6ALvO/vtSsicoYl8C8Nk9h4nxZJP5+Xm43W64XC7Mz8/DZDKBoig0NDQkPdDGE/pkCo48wHTAib/+aNeeCHfsmfUGAnjh0H0J99Pv97MXMbOzsygqKgJFUaiqquKtc0Q67PnWjfjQv/4sa9sPZ9UIfIHdcEXcZxftmbmInwUZVpVDw73SgevkWIIgUFZWBovFglOnTqG7uxsOhwNmsznhuVQKzn44KpUK1dXV+OQnP4m7774b77//Pm688UbB908hcwiIM7iOIIjnsFyMSxEEMQzg21gW+b8hCGIHgFMArkq2HkXsZxmhuvGISSgUwtTUFFwuFzweDzQaDSwWCxobG1POVYZCIXzqoh8i2eE+/MMVM24TJvRj/h4AEe7a+/1JhT3wQQEx0yEoFArBbDajsrISxcXFinsPQDuV7T2Ij5Tz5dFkvZhWKLhkwLMUJ4oW9ikjpljPckceIUhXhKtUKjgcjhV5/nitiMUU+1wuXsrLy/HUU0/hxhtvxIsvvoh3330Xu3btgsPhEHAvFTJGhLkXNE1/Js6vLuKyHkXs5xgqlUoUZ39xcZF1771eL4xGIywWC5xOZ8qdgLZabmK/D7Y6ky4fd2gVAIRii3vCH4g8saUo7oHlA/bk5GREATFFUWhra5NFAbQYSFngywG5C3s5XURFox0Pi+KIOaxKgmKbC0K038xUhGu1WqxZswYzMzM4evQoCgoKVhS/8rGdVCEIIi0DiCAIPPbYYxgfH8c111yDjRs34t5770V+fj6uv/56/O53v4PVasWBAwcAABMTE/j0pz+NEydOoKamBr/5zW9gNBpXrPfUqVPYuXMnhoaGQBAEXnnlFdTU1ICmaXzzm9/E888/D5VKhZtvvhlf/epXM379qwUxnH2+UMR+jqFWqwVx9mmaxvT0NNsaU6VSsbn0wsLClA5s4eKehSAQbKmNuXwicR/Z0z7s8eie9ikKewYmguR2u7G4uAij0Qir1YqGhgZBxqzLDU7iXin2XIHQ4l7O4ptvot+LCHEfTaZuuUThZTCbCHCN8cSjuLgY69atg8vlwt69e1FWVga73c6uOxQKiXIXNt06PKb1ZltbG/7617/iv//7v9kLls997nP48pe/jO3bt7PL79q1CxdddBHuuOMO7Nq1C7t27cIDDzywYr3bt2/HXXfdhU2bNsHr9bLvxy9/+UsMDQ3h8OHDIEkS4+NJ6zwVGLKb2eeMIvazjBAxnqWlJV7WtbS0xHaVmZmZQUlJCSwWS8oTDWOKe5UKCH1wVqXrl4uRkk2kjenaRw/F8vvxwsHvJt2vcEKhEKanp9nWmBqNBhRFobGxkfdR7WLBd25fce/TR5bOfQ5cpOWPn43jCCB05SKgeUGk9pt8Ou4EQcBqtcJsNmNoaAhdXV1wOBygKIr9vVSZnZ1lW2+qVCpcccUV7O82btyIEydORCz/0ksv4bXXXgMAXHfddbjwwgtXiP1Dhw4hEAhg06ZNABARcXrsscfwn//5n6z4t1qTtmtXYKFldYdOEftZhu8DTyYFujRNY3Z2lnXvaZoGRVGorq5OmkuPKeyBZXEfDUkCBAG6tmL5xyihHzdrHy7uo4T90tISjh49in379qGxsTFhzGZpaYl1730+H0pKSkBRFGpra0W5xSt1FHGfPjqPAOJe5rEPoWGFvYJs4cvZD0elUqGmpgY2mw3Hjx/H8PCwKPVsmdw9YJo9pMqZM2dgs9kAADabLaYzf/ToURgMBlx++eUYHBzExz/+cezatQsqlQoDAwP49a9/jd27d8NiseAnP/kJ6uvr09r31Yic7qIqYj/H4FqgGwgEWOE7NTWFoqIiWCwWrFu3LuFY8a3Wm2MLkHhiWUV+4BDZS0HnffBfL9Y0WmIpatptEtc+Ly8Pra2tcLlc6OnpQXV1NWw2G9vadHZ2lm2NCQAURcHhcKQcQcplVou4FyLikqxTjhKryYA4dxhyVtzL6KJuaWkp4fmBK0Jm6bVaLZqbmzE7O4uenh709fWhtrZWsLqrTCbYB4NB3ru5BQIBvPnmm+jt7UVVVRU+/elP45e//CV27NiBxcVF5Ofno6urCy+++CKuv/56vPnmm7xuX0EaKGI/x0gm9pmuMox7HwgEYDabUVFRgZaWlrjCd6v15lgbi7MTKx0aQqUCXf7BmHNihZsfts/+AF448K9xX0MiLBYLjEYjjhw5glOnTkGn02Fubg6FhYWgKAodHR1ZbY0pFVaLwOcbpQ1mhnCMheS75gXcGZ6RU0eeDImVh88EIZz9aAoLC6HT6UBRFN5//31YrVZUVlbyfpEhVhEwAJSWlmJ0dBQ2mw2jo6MxYzh2ux3r1q1Dbe1ybdxll12Gv/3tb9ixYwfsdjsbFdq2bRs+//nPi7LfOYNMLs4BRexnHTFiPMFgEB6PJ6KrjMViQVtbG/Lz82OuJ6a4j3cwjiPuWQwrJwJGRnLSF/cMNE1jbm6OvUsRCARQUFCAmZkZVFZWorKyclU5+NG5/ayJe5nnvxVxnxy+7l5oXQuZr0QuZNvFz2D79OgZrF+/ns3D19bWJu1vnwwxBDKzDYvFArPZjOHhYXR3d6OmpgYWi4W380Mmr4VrYe+nPvUp/OpXv8Idd9yBX/3qV9i6deuKZT70oQ9hcnISLpcLFosFf/nLX7Bhw/LA1ssuuwx/+ctfcP311+P1119HQ0NDWvu9KqEBQkZF/YrYzzEYZ39ubg4ulwsulwtLS0swmUwoLS1FU1NTTAclY3EfftuSpgG1GiiM7LFPLAbYAVaZintg2Q1iDmJTU1PIz88HRVFoaWlhL2KCwSCOHz+O7u5uNDc3p9z3X66EzzxQ3HvuCJK5FxlexLcIF2lpi3suQpXLshzccjkV6aa7r/TpM2e/Wfnca6r+Gc+P/AQ2m43tb19fX5/28VUMsR8KhdhtkCSJqqoqlJWVsXn+uro6tjg2EwKBQFoxnmTDNT/zmc/gtddeg9vtht1uxz333IM77rgDV199NZ566ilUVVXh+eefBwB0dXXh8ccfx5NPPgmVSoUHH3wQF110EWiaxvr163HDDTcAAO644w5ce+21+NGPfoTCwkI8+eST6b3o1YpMjgGAIvZzhlAohImJCYyPj2NiYgJ9fX2wWCxYs2ZN0q4yrNCPc7BlXHqa/uBMGCHuw5+nC7tTcDZO9MK+ezi8ksQsLCyw7v3CwgLb3z9ea0yVSoX6+npMT0/j4MGDsFgsqK6uzqk2mtEFx0ajke08oZCYXBD3ckAbHseRkRuW69Bn3JEPxIqAJrhgYvrbT09P4/DhwygqKoLD4eAclQyFQmnn3FMl1gVFXl4empqa4PV6cezYMWi1Wjidzozy/OleuPh8voQXS88991zMx1999dUVj23YsCFCuG/atAn79u1bsZzBYMDLL7/MeV8VziIfra+I/WyTya1Dpie8y+XC/Pw8TCYTLBYLJicnsX79+pTWEQqF8MLphxEKhRAMBnFN7dc/2LfwA5aKBMHMt40+kEX9zKe4Z/r7M8W1arUaFEVxdpFKSkqwYcMGnDhxAl1dXWhububU9UBK0DQNr9fLTiwGwHYTKigoWFVxJa7IVtxnO/bBAa2ccvZSQ6C/Mz3uXvkgjy01S0pK0NnZibGxMfT29qKiogLl5eUpH4vEjPHEorCwEB0dHfB4PNi3bx8oikJVVVVa+5Tuawlvu6kgD+Rydw9QxL6sCI9oeDweaDQaWCwWNDY2RgjfY8eOJVwHTdMIBoPs98y0P7VajReHfyzGS0mI3+9nnWqv18u2xqypqcnI/SFJErW1tbBarejr64PRaITD4ZBFu81gMIiJiQm4XC5MT0+zBcft7e28dsXINaTQ5z7XO/Lkuxa4CdQcjcsAyOpFGeGeWP4mhohPeY9Uqtjufgz8fj9UKhV7l5QgCNhsNlgsFpw8eRLd3d1wOp0xJ7pGI0aBbjIRThAEKIqCyWTCyMgIuru7UVVVhdLSUk4GSiAQSOucwgzUUpARMjo2KWJfIsTL6y0uLrLuvdfrZWMrTqczZeEbCoUivoDlAxtJkuy/2YRxqhmBDwBmsxnV1dUoKiri3akuLCzEhg0bMDQ0hD179qCpqQkGg4HXbfBB9DRfs9kMm80Wt+4imrf+7Uacfwt/w7XSRsQi3XDnnheBLfMCY77Jj5ezl9GdB8mQ5ntGjE/ws/0MB2aRJIlgMMieu5hjklqthtPpxPz8PPr7+9k8vE6ni7uubDv74ZAkicrKSpSVlWFwcBAjIyOoq6tDScnKRhPxtpOOKcW1x75ClqEhq0iiIvazDOOqMzCxFaY1pkqlAkVRcDqdKfeEp2kaoVAIgUBghXsf7sRkk0AggImJCbjdbkxPT6OgoAAWi0U0p5ogCFRVVYGiKPT19aGgoAB1dXWC50YTEf63D5/m29TUlPBEuZqRbSxHYPi6mxBX3GcbCRTpCg3hmox8QGIXU3l5eQgGg/D7/aBpGiqVKkJM63Q6tLW1YXJyEgcPHoTRaER1dXXMY6yUxD6DRqNBQ0MDfD4f+vv72YuYeB3swreTTntnJcYjLwjQsrrrqIh9CRAeW5mZmUFJSQksFgtqampSPmiEx3MIgsDo6CjMZrNk3HsAEa0x/X4/TCYTJ6daCPR6PTo7O3H69Gl0dXWhvr4eZrM5+RN5wu/3w+PxsHdumMiSw+HI6oWHVOEi7nM9PsM3WtditndBVvAZMYoQ9lPG648AACAASURBVAIICIIgIxos8IVKpQJBEAgGg2w0NNpQMhqN6OzsxOjoKHp6emJGY6QQ44lHQUEB2tvb4fF4sH//fvauc7x1pbsdJcYjQxSxr8AFr9eLubk5VFdXo7i4OOXYClNUy8RzGPe+ra0NR44cwcTEBBoaGrKWSWdaYzL9/bVaLSiKQnNzs6ScaoIgUFFRAbPZjMOHD2NsbAwNDQ2CDN9ihpoxFz2hUAgURQkWWZI7inMfBs9RGUXciw/hjuqHG4ohwDP9O2cYz4lJjH26vOxLeHHsUZAkCZIkoVKpEAgEWOEfLvpJkkRFRQWsVisbjamvr2edbCk6+9GYzWYYjUacPn0a3d3dbNQn+pid7nZmZmYUZ19uKGJfgQsmkwlGozGp0EtWXBuemezo6MDo6Cj27NmDhoYG0dxqpsbA7XZjbm6ObQNZV1cn+ULY/Px8tLe3Y3x8nB0WU1pamvF6g8FgxEVP+FAzoUa2yxXdxFnxI6ODaCpk+y6D1h0m7KXw1uZyke5ZVgh7ucChSDcckiTZaE8gEGALVcOP++HRmGPHjiEvLw9Op1M0Zz/TiChJkrDb7SgtLcWJEyfQ09MDp9MZUfOVbp99xdmXGUpmX4FP4rn34cNBYkEQBMrLy2EymdDX14fx8XHU19fzHg2haRozMzNszlylUsFsNsPpdMqyDSRBECgtLYXRaMTRo0cxNjaGpqYmzqKc6zwAoZB6kS4r7lcsL6GCTxkW6eZnw7WX0t9MZFYI+5RrBMjY7r5YCHAXgIn2hNeNRUd7wqMx77//Pvx+v+DnCj7vHmg0GtTX12Nubo4tQnY6ndDpdBnFeCoqKnjZPwVxkJMJoYh9CUAQBDsmO1X3PlXy8/PR0dGB06dPY8+ePWhsbITJZMpof5mcudvtZouKmCiKENGXbJCXl4fW1la43W709PSguroaNpst7gmJuehh5gEwhdWZTJXMReKKe4W0yXcvrU6RnYUiXTKWWy/We5/hxZRQuf1YMNEepmMP4/aHn8PCW12+88476O3thcPhAEVRggj/YDDIu9Gi1+uxdu1aTExM4MCBAzCZTGm33lQKdGWIjI67itiXALOzs+ztRabANhX3PlXCM+l9fX04c+YMJ5efyZkz/f1DoRDMZjMqKys51RjIEYqiYDAYcOzYMYyNjUXUGwQCAfaiZ2ZmBkVFRbBYLKiqqsqZi55M0XmyK+6zHZ8Rgnz3kmjbkmuEhg9iCnsFToTn+f1+PwKBwIqucCRJQqPRoKOjAwMDAxgeHkZ9fT0KCwt53Zd0W2KmgslkgsFgwOjoKIaGhuByuVBRUcHp3KjEeOQGrYh9BW68+OKLePbZZ/GTn/wEtbW1gsU8wl3+rq4uNDQ0xHX5mSFObrcbU1NTKCgoAEVRqzJnrlar0dzcjMnJSfT29qKgoAB+vx/BYBBmsxkVFRVYs2ZNTl/0cCHbAj/X4D2SI8NYktCQrunIB7J9Es92kW6s3H6CIt2ku0OS0Gq1rMPP9OcPd8Dz8vLQ3NyM2dlZHD16FAUFBXA4HLy1YhbC2Q+HKUIeGRnB/Pw8p6FigOLsyw4a2T9OcEAR+xLghhtuQH19PbZv347rr78e119/vWAHpXCX/9ChQxgfH2f7yzNDnFwuF5aWlmAymVBaWorGxkZJtO7MBszUYrfbjYmJCeTn57MRq9bWVllEdITO7edHRXNy0U3ng1Tel6xk7WUAn3cYSM9M5AN8d64B5FW/IET3njhEt+pk3PZwo6SoqAjr1q3D+Pg49u7dC5vNhoqKiozPQWJ0/AGWz7FMnp+5U+F0OqHX6xM+T3H2ZYiMfC1F7EuECy+8EG+99Ra+/vWv4/LLL8cjjzwCu90u2PaYzjMDAwN46623oFar2S4xUmuNKTZLS0tsca3P54PBYGCnFjMni5mZGRw8eBAWiwXV1dWr6mIoWtwLhpQEk0BuuNazLO6JTN9SqbxXEhtgRbqnky+UbbgU6cootx+P6FadCwsLbAOK8Dx/aWkpKIrCqVOn0N3djdra2oy6yjGFwmKh1+vZoWKHDh2CwWBATU1N3CiRIvYVhEQR+xKisLAQP/3pT/GnP/0JV155Jb74xS/iH//xH3kVkrGEbH19PcbGxqDX61FeXi75Fpl8Q9M0vF4vW5MALGf1a2tr43YUKi4uxoYNG3DixAl0dXWhqakpZ2/Biibuc5x8t+LaC0mEY5/phY9Qxb9iInK/fS7Mz89jfHwcLpcLoVAIdrudjfaED4FUqVRwOByw2Wzo7+/HyMgI6urqkrrksRDL2Y/GaDRi/fr17FCxiooKlJeXrzivMHVfCvJBTvVMitiXGARB4OKLL8Ybb7yBW265Bb/97W/x8MMPo6ysLK31RXeJIUkSZrN5hZAtLy/HyMgI27En1ZyhXGFqElwuF6anp1FYWAiKotDe3p5yRpQkSdTW1sJqtaKvrw8GgwG1tbWyv1jKNXGfrVhRroh7KRbpysKxzxQRLyJCs7Mgo4RmaG4OdKyLhRh3BrYWXoeXvL+Ku37GUBkfH4fH44FarYbVao2oAQsGg/D7/aBpekXnufz8fLS2tmJqaiollzwWYoh9Os7fi2mFbbVacfLkSXR1dcHpdEbUzPn9/lVXDyd7JHZcTIQi9iWKwWDAU089hZdffhlbt27FLbfcgquuuioll9/v97PFtYxbQFFUwi4xBEHAbrev6Ngjd+EaDlOT4Ha7sbi4CLPZDJvNhqampozunhQWFmLDhg0YGhrCnj170NTUFDFkRQ7kmsDPBvke8brkZIyMinRV7rOOPZf4Cac4kUCZdYk6/qEZb8z3MjQ7m9oKCDIlwU/TNKampjA+Po6JiQkUFBTAarWiuro6pkiPleeP7s9vMBgiXHK73Z6wJXI4zF0DIUl2QaFWq+F0OlFeXs7m+cvLy0FRlKD7pSAANESrdeEDIt6V6Fnk80pymImJCXz1q1+Fz+fDj370I1it1ojfM60xGfc+GAzCZDLBYrGk1RqTpmmMjIxgeHhY1i4/TdOYnp5mB35pNBpQFAWLxSJYTcL8/Dz6+vqg1+vZwmepEF6kmz8ZEvzTzYubzpNY4mdfIn9MKu457HvGmX2O21tePvVFOTn7XPcj6rWrJmbjn0S5CH4u+xHTwebhNXPahxivLYP1hqZnYjvzAKf3MZ113P/uv2BmZgYlJSWwWq0wmUycDJXwgVwAVoh+YLn18YkTJzA1NYW6urqkBst7772Hc845J+V9SIfFxUUcPnwY7e3tKS0/NTWFa665Bg6HA0ePHsV7770n6P7JBFm0tSvJL6M/XHVdxuv5/bHvd9M0vYGHXUqIdJSIQlxMJhOeeeYZ7N69G5/85Cdx55134uMf/zh+//vf47XXXsNnP/tZtjVma2trxrcCw13+Q4cOobCwEHV1dbJw+aMHfpWUlICiKDgcDlGEt06nw7p169j2pnV1dZJwbRYWFpYFvtyQiDuqPSvshYoD0eTqLNJVuVN0k7OBTHL7oemZuL8jSCK+WE+RuOuI4/ADwDf+7vsAkDDakwiSJJGXl8e26mQGVYWfg9RqNerq6jA3N4djx45hZGQETqcT+fn5aW2TD5jBYaliMBjw8ssv44knnsDLL7+MRx99FDfeeKOkTCKFBEjheJsiyv8omUAQBDZs2IDt27fjtttug1qtxoc//GF86lOfwjnnnCPIwUGn06GzsxPDw8OSzfKH39Vwu93swK+qqioUFRVlpfc9096UoigcPnwYY2NjaGxsFHXQFlOrwRQdKycPbmjlFMkRAT5y+5yEvYjtICVN2EVEaDrs/cu0o04CoZ4UDs9LluVPBhPtCXf6o11+vV6P9vZ2eDwe7N+/n42sZsOcSqcuQKVSYfv27di9ezfGx8dx3nnn4d5778XmzZsF2ksF3lDEvgJfnDhxAo8//jheffVVmM1mXHLJJXj99dfR1dWF+++/H1dddZWgBzWCIFBZWQmKoiTj8odCIUxOTsLlcmFqago6nU6SA7+0Wi3Wrl2L8fFxdHV1oba2FqWlpYJtLxAIsEXH4RN9PyhkW723iJMV6Srinl9UHu/KB6Vy5yEWEsjth2ZmQRYXITQV36n/YL2pi/VM3X06ergWR7YWLkcdMnH5mS8my8846OGi32w2w2g0YmRkBN3d3aiurobVamUvFsRoj5xuEbDX64XBYMA999yDnTt34s4778T+/fvx9a9/fcWyNTU1KCoqgkqlglqtRldXV8TvX3rpJdx9990gSRJqtRoPPfQQzj//fJw8eRKXX345Wwj9la98BTfddFPar3XVo2T2FfhkcHAQ+/btw0UXXbRifPjo6ChuuukmlJSUYNeuXYIXhdI0jeHhYYyMjIhehLq4uMgO/FpYWIDRaARFUTAajbLocb+0tISjR48iGAyiqamJt4uS8EFofr8fZrMZFEWhpKQk5l2Nj3/+scgHVmluP11xz/n1rJLcfsqufaY5eiCncvuhqaiuQlzEg4C5+0wFfiIycfqBZbPH7/ezAp75CmdpaQmDg4Pw+Xyor69Hfn4+9u/fj87Ozoy2nQymKUZtbS2n5x07dgwPPPAAfv3rX7OPxYsE1dTUoKurK2481Ov1sp329u3bh6uvvhqHDx/G0tISaJqGVquF1+tFa2sr/vrXv6K8vJzbixQeeWT2taX0h8uvzXg9vz/xIyWzrwA4HA44HI6Yv7PZbNi9ezeeeeYZbN68Gffddx8+9rGPCRZdEdPlj24ZqlKpQFEU6uvrodfrsxLPyYS8vDy0trbC7Xajp6cHVVVVMXstJyNW0bEyCC0x+R7/8jdSdZX5RAT3fIVrn8vvK0+5/Zi5ehHft2S5eyHFfTR8OP1arTZhnj8vLw+NjY3wer04duwYNBqNKKYQ18w+Q6yBWulGL8NNQZ/Px55jwltKLy4ussXPChkgo2OfIvZlDkmSuO6663DRRRfhhhtuwEsvvYT77rtP0OEc0Vl+vlz+QCDAFteGx1AStQyVGxRFwWAwoL+/H729vSmJdOZ9cblcmJ2dRXFxMSwWi2hFx1mHo4Blxb0ACNmzn5ciXQFQS7mIVoKscOu5wCVOlEHung4I9xlJFb7y/Ey0J1aev7CwEB0dHRgeHsbg4CBOnToFu90umPDPJMaT6jmbmcVDEARuvPFGfOELX1ixzO7du3HnnXdifHwcL7/8Mvv40NAQLr30UvT39+MHP/iBFF19+SCzGM8qUAqrA7vdjpdffhlPPvkkLr74YjzwwAO44IILBHf5mb78RUVFcDqdnA90c3NzbAwlEAjAbDajoqICa9askZ17nypqtRpNTU2YnJzE+++/j/LyclRWVka83ljvS2VlZVqtVHMdIcX9akPNuPZCOVZS6H/Pw/bo6RkQJcWgoxx7WoJuaWhJuvUofOX5VSoVAoFAzP78BEGwXdlCoRBbP2U2m3k/lgaDwZSHMobDmDip8Pbbb6O8vBzj4+PYtGkTmpqasHHjxohltm3bhm3btuGNN97A3XffjT//+c8AgMrKSuzbtw+nT5/GZZddhiuvvFLQOrKcR3H2FbIBSZL4whe+gIsvvhg7d+7Eb3/7W3znO99BQUGBYNvU6/Xo7OxMeaBUKBTC1NQU3G43JiYmoNVqYbFY0NLSktWWadnAaDTiQx/6EI4fP46uri5UVFTA5/PB4/FAq9WCoijh3xcZDVdiyJ8IE/dc9j0bBaISLkpVu2MU0coBLo42j+//CmEfI5pDkGTqgp+PfYvxXkhZ3MeDD9Gfl5fH5vmDwSA7RIsp7FWr1aipqYHNZmMHWtXX1/N6fgwEAmnFKWdnZ1N29hk33mq1Ytu2bXjvvfdWiH2GjRs3YmBgAG63OyLjX15ejpaWFrz55pu48sorOe+vwlkkemyPhfQrGxU4U1NTgz/+8Y9oamrCxRdfjHfeeUfQ7REEgaqqKqxduxb9/f1sISrD0tISTp8+jX379uHdd9/FmTNnWKG7bt062O32VSf0geWZAC6XC4uLi1hcXMTRo0exsLCA9evXY926daisrOT9ffnzv9/M6/qSQfNgnOV7lpA/4We/FNJD7fZGfPFGDt5poqdnPviamY0p7AWD5PZ+hpaWIr7kDCP604XJ86vV6oh2nUzEB1jukrZmzRo4HA4cPnwYR48ehd/Pz3GFuajgSqrOvs/nw+zZScc+nw9//OMf0draGrFMf38/mMYrPT09WFpagtlsxvDwMObn5wEAk5OTePvtt9HY2Mh5XxUY6GWxn+mXSCjOfo5CkiS+8pWvYPPmzdi5cyc6OzvxzW9+U9AiTr1ej/Xr1+PUqVN49913YTQa4fUuiwpmsFVhYeGqjqGEzwQIBoPsTICWlhbQNI2TJ0+it7cXTU1NKd/WzTWSTqZVSIp6wpfZCiR8R4Jv6MkMMvaZksb7vELQZ9IzX4Jk6vIDYNtyMrGexcXFFTn9kpISdHZ2YmxsDL29vaioqEiraUI4mWT2bTZb0uXOnDmDbdu2AVi+i/DZz34WmzdvxuOPPw4AuOmmm/DCCy/g6aefhkajgU6nw69//WsQBIG+vj7ceuutIAgCNE3jtttuQ1tbG+d9VTgLjdhTryWK0npzFRAMBvGjH/0Izz33HB566CGsX79ekG1MTEzA7XZjamoKWq0WCwsLMJlMqK+vl8X0XSGIF1uiKCqua+/z+XDo0CEYDAbU1tby/t5Jrf1mxuKey/4L0MaT722mU6SrjtXXPhacWjtKYFkgTktMDm0np2ZAlCxHJOjwwVRcTtQc95lTdj/eus++7pTd+hwS/OGkK/pDoRA8Hg/Gx8cxPT0Nh8MBo9G4oogXWBbOJ0+exOTkJJxOZ9rDIw8ePIiamhrO0aDvfve72LhxIy699NK0tptjyMINLNFY6Q+bM49A/f7MY0rrTQV+UKlUuO2223DJJZfghhtuwPnnn4877rgj417vTI93t9uNxcVFmEwmlJWVobGxESRJgqZpnDp1Cnv27EFzczNKSkp4ekXSxu/3s++L1+tFSUkJLBZLygXMBQUF2LBhA1sHIcXJxZmgPRvFyXQi62olwrWX43soUFY9FvTZAVURIj+t7YlzpyO0sJj+k3PM4Wfg4vQHAgG43W6Mj4/D5/PBZDKhvLwca9asYWM9sVp1qtVqOJ1OzM/Po7+/H8PDw6irq+N8Jzzd1ptcCnQVJISMjr+K2F9FrFmzBq+//joeeOABXHzxxXj44Yexdu3alJ8fq8c7RVFobGyEXq9fsTxBEKiurgZFUejr60NJSQmcTqcshmBxgaZpzM3NweVywe12IxQKgaIoVFdXo6ioKK3bwkwdhMViQV9fH8bGxlBfX89Lq80///vNke6+gEW6kuuUI8Mi3YSRHKnEbSSwH/T0LLd9IMms34YPzS/wu8IcFfxA/FadS0tLcLlcGB8fZ/PpzJTZ8GNvdKtOJl8ffj7S6XRoa2vDxMQEDhw4AJPJhOrq6pSPu2K03lRQSAdF7K8y1Go17rrrLmzZsgU33ngjLr74Ytx6661x+9j7/X629/3s7CzbwoxLj/eCggI2y8907JG7y8/Ec1wuFyYnJ5Gfnw+LxYK2tjbepuMCyyefdevWYXR0FHv27EF9fX3cyYlSgIu4pwlCcfejUHvmpPOeSEDAA4jZEpOO18teIvscrysPvbgYf5ptuuSouI8F4/L//67HWYFP0zQsFgsaGhqSxmditepk3Phw0W8ymWAwGHD69Gl2CGJpaWlS4yZdsa84+3KEVvrsK8RmaGgI27dvx/9j79zDoizTx/8ZQDTOh5lBFBAVQaSyVUltV7PTqoRHSLNvWZmlbaZt1q7WL1PT1NbKUqvdju5aprXZoOK5VdcOmnioTBFFVAhmhvN5YGbe3x8174KAMsOcwOdzXVyXMC/P8wzC+37e+72f+y4oKJDLZM6ZM4fi4mImT55MTk4O0dHRbNq0ieDgYCRJYs6cOaSnp+Pj48NHH31kt3bf/fv358CBAyxZsoRRo0axevVq+VHn8ePH6dKlC9XV1ZjNZnkTqa1Ramgc5f/5558JDg6mV69e7SrKX1dXJze3qqqqIigoCJVK5bAuwhYUCgXdunUjNDSU06dPU1BQQGxsrE31nO2N20XunYS9mmt5FVU3M7a4CWqIVFrmHhdVK28kJEMbUnKuOvi1I/jNca9qJgAbC/9uU8WyhqU6Lak9lhsByzXJw8ODiIgIwsLCOH/+PHl5efTp0+eqUm7LNVJE9tshEkjt6O9QbNB1Ivn5+eTn5zNgwAAqKioYOHAgX375JR999BEhISHMmzeP5cuXU1JSwooVK0hPT2f16tWkp6dz6NAh5syZw6FDh+y+rm+++YaHHnqIiIgILl68SGRkJAsWLOCmm26ya5TagiWXv6CggPj4eLeNaEiSRFVVlZyeA79WFVIqlS6tKqTVasnOzqZXr16o1Wqb1mHrJt0uJb/JvZ3OcXaT2naySbc5uW9+bCdveLXH2Nauo4Xjm43aO2rNYLeNuubfyhq2ahhbbl7akVg4k7ZU7bFgMpmor69HkqQm+fwWqqqqyMrKwtvbm969ezd7bfz+++9JTEy0ev677rqLffv2XZMlqJuhfWzQ9VJJQwPGt3mcnSXviQ26HY3w8HC5vJa/vz/x8fHk5eWh0WjYt28fAA8++CAjRoxgxYoVaDQapk6dikKhYMiQIZSWlpKfn9+qEl1XIz8/n/T0dLZt28b58+cZOXIkpaWlGI1GXn/9dWJjY9s8R0u4c5TfbDZTUlIip+f4+PigUqno37+/W0TSAcLCwggJCSEzM5OCggL69u3b9puyFvL2ZbnvSDgp1cOrsI3lL1uLm6Su2LKOFtNxnLwOW8a2Ru6bDOOhuLrwC7lvFfYo1Xl5Pr+lLn/Da5Kvry/9+/enqKiIEydOoFariYyMtMtTXYPB4JDAmsDBuMN5t5UI2XcROTk5HDt2jMGDB6PVamWBDw8PR6fTAZCXl0dkZKT8PREREeTl5bVZ9ktKSrj//vtJSkpi2bJlxMbGytHhb7/9lmnTpnHfffcxY8YMh6anWKrOXLhwQa7Y44oof11dHYWFhej1eqqrqwkODpZzQN3hBqQ5OnXqxPXXX09hYaGcU2pNjegmm3R/o9Vy74HdovsdBXkjbUf6udhbnEv/15zKqkfgzeTt241WbtSVN9M6UsKF4NuMPbrwXp7Pb8nBt1wHFAoFSqWSkJAQcnNzycjIoGfPnnbZR3Ut959pl0iSyzf4W4OQfRdQWVlJSkoKq1atuqLcNpdiZY8TQnBwMHv37m32taFDh3Lw4EGee+45xo4dy9q1a4mOjm7znC2hUCiIjo5GpVI5LcovSRKVlZVyeUz4NT2nd+/e+Pr6tquTrlKpJCgoiLNnz3Ls2DHi4+OtKhfn6o607Tk/vc2Nq65Ae/65yJReueusQuHhtjmvV6ySY6eKNwoPBVKDTuMC+2AP6bfk89fX1zdbqtPDw4OoqCi6du3KuXPnyM3NdZun0wIn0o7O0UL2nUx9fT0pKSn83//9HxMnTgR+TcuwpOfk5+ejVquBXyP5ly5dkr83NzeXbt26OXyNPj4+rFq1in379nHfffcxbdo0pk2b5tATmaOj/CaTiZKSEgoLCykpKcHX1xelUulW6Tm24uXlRd++fSkpKeHEiRN069aNyMjIq960uFr07YoDy4cCdCpyUkqOM3BUlLzsN7lvh5tp7V4C8woIwXcOLZXqbC0eHh507txZ3sDbXGqPt7c38fHxVFRUkJmZicFgoK6uzqprylX2TQrcGKua57kYcRvqRCRJ4pFHHiE+Pp6nn35a/vrYsWNZt+7Xk9K6desYN26c/PV//vOfSJLEd999R2BgoF3y9VvLiBEjOHjwIKdOnWLChAnk5uY6dD5LlD8hIYHMzEzOnTuHuQ1/TAaDgby8PI4fP87hw4cpKipCpVIxePBgbrzxRrp169buRb8hwcHBJCYmYjAYOHLkCJWVzXdVtfRLELRMp+LqRh9WcS2cVcvKm344Gg/7PXEzV1U3+rAaRev/kyWTqdGHwHmM83tQjvTbipeXF97e3nh6esobeS+/Lln24HXu3Jnjx49z6dKlVl+7ampqrG7eJXAHpF8DCm39cBKiGo8TOXjwIMOGDeOGG26QowMvv/wygwcPZtKkSVy8eJGoqCg+++wzQkJCkCSJWbNmsWPHDnx8fPjwww8ZNMjhm7abIEkSe/bsYe7cufzpT3/i/vvvd/jjSrPZzIULF9DpdPTr169VZcks6TmW6jkeHh4olUpUKhU+Pj7tKj2nrZSXl3P69GmUSiXR0dFIkiSXDS0vL8ff3595z3/V9onsENhwSUUeaHSivarQW13hxcq1NIPVPxdrjrcm+l5W7rixsTJ339qnBr+tW2qwmdZude6vsG4h9e5JWyv3WFJ7LN7UMNJfUVFBbm4usbGxXLx4kcLCQnr16kVoaOgVx9TpdDzxxBPs2LGjTWvrQLSLC3WgR6g0pHNSm8fZVbveKdV4hOwLWk1ZWRlPP/00+fn5rF692ilPGSorKzl16hQhISH07NmzyU2GyWSiuLiYwsJCSktL8fX1RaVSoVQqW2wUdq1QXV3NmTNnKCkpwdvbG7VajUqlIjAwUL7xSR73ZtsmcacSnK0cQhZ7h8q0dUM3h8tkv7kofTuVfam6+Zs4ewu/kPv2g71KdTZM7fH09JSruFkq2dXW1nL27FnMZjMxMTHNdpkHOHfuHEuXLuWzzz5r87o6CO1H9r1HtXmcXYZPROlNgXsRGBjIe++9R3p6OuPHj+fPf/4zkyZNcmiU38/Pj4EDB3LhwgWOHDlCfHw8nTp1kjfX1tbWEhISQlhYGHFxcdf0BilJkqioqECv11NUVISnpydKpZKIiAhycnIA2tQYrb1idRqOm+DQTboN8/btnYLj0Mo5rRu7Jcm3F5KxA+13ucZwRKnOhp14LXTp0oXrr7+e0tJSfv75Z4KC1X3bkgAAIABJREFUgoiOjm7SeV50z22fSNgxaHAFFArFKOANwBN4T5Kk5baMI2RfYBUKhYK7776boUOHMmfOHLZs2cLrr78ubyp21JyhoaHU1tby/fff06lTJyIjI+nTp89V26N3dCwbj/V6PaWlpfj5+aFSqYiKimr0ZCM0NJRLly7x/fffExcXR3BwsAtX7SB+26TrFnLvitKkrdmU2rBCjjU3Eg6sXW+PqjzWyn2r6txfPocQ/A6FPUt1VlVVUVhYSJcuXTCbzY2CTkFBQQwcOJD8/HyOHj1KREQE4eHhctBFdM9tp0iSw0vlKhQKT2AtcBeQC3yvUCjSJEn62dqxhOwLbCIkJIR//vOfbN68mTFjxjB//nzGjRtnt6ixJT1Hr9dTVlYmS2yvXr345Zdf0Ol0V82F7Khc3hegNU82FAoFUVFRqFQqTp06RUFBAX369HHyyh1Dp1Z2pW2CuzSjciRXKX/ZHpFqau1X+vIKwi/kXnAlqqur0el06PV6PDw85PRRo9Eo3wg0rM/frVs31Go1OTk5ZGRkEBMTQ1BQEBUVFUL22ylOiOzfDJyVJCkbQKFQfAqMA6yWfZGzL2gzer2eJ554AoVCwcqVK22W8NraWnlzrcFgICQkRM4xv1xiKysr+fnnn+UNqB05fUeSJKqqquSfDSBfWGzpCyBJEvn5+Vy4cIGYmBgenr6hbQt0Yn56p+LfNlrabVOvFeO4YJMuWJG7X2JDhSWHvv/WH3+1yL5UdVm3WjtF1C6/WAvBvzZ4Yd+TxMbGWpU+YykAodPpKCwsbLQPqmFVN0vFHkmSmtTnt1BdXc3WrVvZuHEjI0eOxGw28+yzz9rlvXUA2kWeaYAiRBqsuKPN4+yRPm8xZ1+hUKQCoyRJmv7b5w8AgyVJmmXtPEL2BXZBkiQ2btzI0qVLefHFFxk9evRVJVSSJMrLy+Uccy8vL1liW9rM1BCz2UxOTg6FhYXEx8d3qOiI2WymtLQUvV5PcXExPj4+8s/GXuVCDQYDp0+f5vkF+9u4WLssp1mpleX+clwh+9Ye72jZt0XuL8dNZP/X4X/b7Hq52Lf4DW3/AZvrjaJr7TVCw3SdiooKzpw5w3XXXUdMTEyL51TLNUqn01FUVISPjw9qtRqlUtkk974hZrNZzuUHmtTnt/DFF1+wePFiEhIS+PTTT1t13bsGaBeyr1AodgBtb50MXYCGjT7+IUnSP36b4x5g5GWyf7MkSU9avV4h++2badOmsXXrVtRqNT/99BMAkydPJjMzE4DS0lKCgoI4fvw4OTk5xMfHExcXB8CQIUN455137LqegoICZsyYQUBAACtWrCAoKKjR6yaTqUkJSJVKRUhIiM3VcyoqKjh16lS7j/LX19fL6TlVVVUEBwfLrdkd+Z7cqSJPi3LfHHap4ONA2Qf7PvUoq7hsbDsM7gblPc2VNjYss0HSzfVGu40lcH+ulI8vSRI6nY7s7Gy6d+9OREQEHh4ecqBFp9NRUlKCv78/arWa0NDQZqP0V8JsNstVe6B56X/ttdfIzs7mxIkTPPfcc9xzzz3XXBGFy7im33xDFArFUGChJEkjf/t8PoAkScusHkvIfvvmwIED+Pn5MXXqVFn2GzJ37lwCAwNZsGABOTk5JCcnN3ucPTGbzfzrX//i1VdfZcmSJURFRbF582bOnj3LI488QmhoaJMSkPaY0xLl79evH35+fnYZ19FYNnbp9XrMZrPcF8DPz89pJ3xXyn5DuXdoqUl7jeMk2Ve0Jtfe3WUfmhV+c3W1/ar1tELSWxR8G8YSuD/Wbrg1mUycP3+egoICfHx8MBgMBAUFoVarCQ4OtkugpblSnRaWLl3KH/7wB4YMGcKCBQs4deoUn3/+ebPpsJIkMWfOHNLT0/Hx8eGjjz5iwIABTY7LyMjgoYceoqamhqSkJN544w0UCgXFxcVMnjyZnJwcoqOj2bRpkzsWaxCy/xsKhcILOAPcAeQB3wP3SZJ00tqxxAbdds7w4cPlsoqXI0kSmzZt4quv7NA8yQokSSIuLo5bb72Vhx56iG7dujFmzBjmzp1L3759HTKnh4cHvXr1QqVS8fPPP6NSqejRo4fbRfklSWqUntO5c2dUKhU33HADnTt3dsmatmpmt034rag8Y1Xk/hpCYYnaO3vDsBM2KZsdXAazyXytlfvLUXgI4W+n2FJRx2QyUVhYiE6no7KykuDgYLmbbXR0tF272lpKdTaM9Fui/JYNukqlkrfeeovTp0+3KODbt28nKyuLrKwsDh06xOOPP86hQ4eaHPf444/zj3/8gyFDhpCUlMSOHTsYPXo0y5cv54477mDevHksX76c5cuXs2LFCru9T4F9kSTJqFAoZgE7+bX05ge2iD4I2e/Q/Pe//yUsLKxR1ZXz58/zu9/9joCAAJYsWcKwYcPsNt/XX3/Ne++9R0ZGBoMGDSI5OZklS5awceNG1q5dy6233kpcXJxDI9b+/v4MGjSI8+fPc+TIEbeI8huNRjl1qaKigsDAQFQqFb1797b6sXB7wlqxd2hdeXthJzlWXJ6SYwseHvaJ7ltDK95/q9Jy7FWLX+GBua6u7eOAEP12hi2Cb0mV1Gq11NbWolQq6dGjR6P+I8XFxfzwww+EhobSs2dPu52jG1boaVif//I6+1cKiGk0GqZOnYpCoWDIkCGUlpaSn5/fqMFlfn4+5eXlDB06FICpU6fy5ZdfMnr0aDQaDfv27QPgwQcfZMSIEUL23RxJktKB9LaOI2S/A7NhwwamTJkifx4eHs7FixcJDQ0lIyOD8ePHc/LkSbs19OjUqRMzZszg5ptvbhRRf+yxx/jjH//I9OnTSUtLY9GiRQ6tj+/h4UHv3r1Rq9Uui/LX1NTI1XPq6+sJDQ0lMjKSgICADpuP6fSofTsqnWkXuXdTbM65b8ucQvCvSWwRfIPBgF6vR6fTYTQaUSqVxMTEtBgECgkJITExkby8PA4fPkzPnj0JCwuz23m7ofB/9dVXHDhwgCeeeKJV35uXl0dkZKT8eUREBHl5eY1kPy8vj4iIiCbHAGi1WvnY8PBwdDqdPd6SoB0gZL+DYjQa+eKLL8jIyJC/1rlzZzlVZODAgfTu3ZszZ84waJB9OjXffPPNLb4WHR3Nrl27WLt2LX/84x9ZuXKlHHlwFA2j/BkZGcTHxzssyn95ZaFOnTqhUqmIj4+36+Ngd6KR3LdnZ7LzTYOitLLxF9ykeZU95pTF3h5rtCK6bze5ByH47QhbG15Zgi06nQ5JklCr1Vadiz08PIiMjCQsLIxz586Rm5tLXFxcmyu+1dTUsHfvXjQaDT/88AO33XYbf/vb3+jfv3+rvr+5PZaX34S05hjBtYeQ/Q7Knj176Nu3b6M7fL1eT0hICJ6enmRnZ5OVlUWvXr2ctiYPDw+efPJJRo0axfTp0xkwYAD/7//9P4fKcMMo/8mTJ1Gr1XaL8lsqCxUWFlJWViZXFmquJXpH4IqRe1d0jHUVl8lxE7l3Jg5O5XFF1B6E3F/L2Cr4VVVVcpMrT09P1Gp1m/dCeXt7Ex8fT0VFBZmZmfj6+tK7d2+ryh9XVFSwc+dONBoNZ8+eZeTIkcyePZvExMRWXYfWrl3Lu+++C0BiYiKXLl2SX8vNzaVbt26Njo+IiCA3N7fZY8LCwuS0n/z8fNRqdavfh6B9I6rxtHOmTJnCvn37KCwsJCwsjEWLFvHII4/w0EMPMWTIEGbOnCkf++9//5sFCxbg5eWFp6cnixYtYsyYMS5Zt8lkYtWqVXzyySesWrWKgQMHOnxOs9nM+fPnKS4upl+/fjalEtXW1srVcwwGg0MqC7mKyzfpWp2W4+wmUuCSijyKEhtSchxa8ccO9eYrKvHw82293Nvz6cNv0X0h+Ncutgi+pcmVVqulqKiIzp07y02ubC3jfLX5tFot58+fb1SqszlKSkrYtm0bW7ZsIT8/n6SkJFJSUrjxxhvbdJ3Ytm0ba9asIT09nUOHDjF79mwOHz7c5LjExERWr17N4MGDSUpK4sknnyQpKYlnn32W0NBQeYNucXExr7zyis3rcRDt+0LqpgjZF7iUU6dO8eijj/L73/+eefPmOaUiTXl5OadOnSIsLIwePXpc8eRruaBY8u89PT3l8pgdrQHKhGFt3KjlCtkHh9bbt0nsrRjfLse3QfbNFW14KtHGn7v0m9zbreW8EPx2ha2CX1ZWJje58vX1JSwsjNDQUKc9TTWZTOTk5LB582bi4uLkgJlWq2Xbtm2kpaVRXl7OmDFjSE1Nlfva2ANJkpg1axY7duzAx8eHDz/8UE7Dvemmmzh+/DgAR44ckUtvjh49mtWrV6NQKCgqKmLSpElcvHiRqKgoPvvsM0JCQuy2PjshZN8BCNkXuByj0cgrr7zC5s2bWb16NTfeeKPD5zSbzWRnZ1NSUtIkym82mykuLkav11NaWoqvr6/cvdYRESN3Qch+Cyk57aJ5V+t++FJVNZK90n5s+LlILUTvbRJ+IfftDlsE32w2U1JSgk6no7S0lICAANRqtZyS6ipOnz7NU089RU1NDR4eHnTu3Jlx48aRkpJCdHS0y9bVARCy7wCE7Avchh9++EGu3DN37lyniLUlyq9UKunSpQuFhYXU1NQQHByMSqUiKCjI7Wr1O4o2yz7Yt2Nsa2mDjLcqct+OZV+qar7GvTOEvyWxb/H41gi/EPx2h6018IuLi9HpdJSXlxMcHIxarXaL83F2djYajYatW7fi4+PD9ddfz/79+xk3bhx//etfO9wTXxcgZN8BCNkXuBV1dXUsXbqUXbt2sXr1avr16+eQeSRJoqqqCr1ej16vp7a2FoVCQd++fVEqle0+/95W2mV0353y7e05jg2pPC3JfZOhHST71gp+k+EuF34h9+0SWwTfaDTKTa6qqqoIDQ1FrVa7fD+UJEmcOnUKjUbDjh07UKlUpKSkMG7cOJRKpbz2t99+m/fff5/nn3+ee+65x2Xr7QBcmxdfByNkX+CWZGRkMHPmTMaPH8+TTz5pl3xMs9ncqHutj4+PnJ7j7e1NWVkZp0+fblUuf0dDkiSqq6u5f9Satg3kZqk8dsm5d2PZl9qQc28v4ZcMBruMA7/JvhD8domtTa4sJTINBgNKpRK1Wo2fn5/LBf/48eNoNBr27NlDdHQ0KSkpJCcnExgY2OL36fV60tLSeOSRR5y42g7HtXPhdSJC9gVui8Fg4MUXX+TgwYOsWbOG2NhYq8ewdEzU6/VUVVURFBSESqUiJCSk2cfBZrOZc+fOUVpaanPFnvaCJEmNbn66dOnCoid3tm1QF8q+oqwZ8bXb5k/3SOWRKqvsdvNhi+zbU+wbjWsyOWRcgeOwtUSmwWBAp9Oh0+kwmUyoVCrUarXLz7Vms5nDhw/LXWYTEhKYOHEio0ePdvnarjGE7DsAIfsCt+e7777jT3/6E1OmTGHmzJlX3ZRVXV0tp+eYzWa5eo410SJLlL9r165ERUV1mCi/0WikqKgIvV5PRUUFgYGB8s2Pp6dnu8rbV5S2ImrvTrJv5ThXjNo7UfgdIfhC7tsnbWlyZRF8hUIhl8h0dcNBo9HIwYMH0Wg0fPPNNwwaNIjU1FTuvPNOp1SGEzRLx7jYuhlC9gVNmDZtGlu3bkWtVvPTTz8BsHDhQt59911UKhUAL7/8MklJSQAsW7aM999/H09PT958801Gjhxp9zXV1NTw3HPPcfz4cdasWUPPnj3l1yzl2Czdazt37iyn53Tp0sXmOU0mE9nZ2ZSVlREfH99uozsNewPU1dXJvQECAgKavYlx17x9OXJvVS57+5L9VqflOFD2RfRe0JD1+WvkhlIxMTGtLpxQWVmJTqejsLAQLy8vWfBdLdEGg4H//Oc/pKWlkZGRwR/+8AdSU1O59dZbO2QzxHaIkH0HIGRf0IQDBw7g5+fH1KlTG8m+n58fzzzzTKNjf/75Z6ZMmcLhw4f55ZdfuPPOOzlz5ozDSqLt37+fOXPmcN999+Hr60t6ejqSJLF48eJGEWp7UlZWxqlTp+jWrRuRkZFuH+VvrjeA5eanNZUi3EX2PVqK3FtdqcaNhP/yDa225tzbsamVucbK5mlWIAS/fXJ5BF+SJAoKCsjJySEqKopu3bo1OQ9KkkRFRYUs+Ndddx1qtdotShZXV1eze/du0tLSOHnyJHfccQepqakMHTrU5dV9BE1w7wtsO0XcxgqaMHz4cHJyclp1rEaj4d5776Vz58707NmTmJgYDh8+zNChQ+2+rgsXLvDjjz+iVCp57bXXiImJYebMmYwbN86h9ZYDAwNJTEwkOzubjIwM+vXr53bl1Sy1qPV6PSUlJXJvgN/97ncuv9C2lhblvoMgWbrT2mNjrEJhs/Cbax0TuQch9+2ZK6XoKBQKwsPDUalUnDt3jiNHjhAXF4e/vz+lpaXodDqKi4vx8/NDrVbTs2dPl9bAh1/LKu/YsQONRkNOTg6jRo1i7ty5DBw40O0DNgKBvRGyL2g1a9as4Z///CeDBg3i1VdfJTg4mLy8PIYMGSIfExERQV5enl3n/eijj3jrrbcICQlhzJgxvP/++0RFRbFnzx7mzp1LZWUl999/v0MjNJ6envTp04eysjJ++OEHt4jy19fXy/n3lZWVcm+A2NhY10arPGhVdP+akXs34IqCr/BoUwUcIfjtF2tz8L28vOjTpw+//PILx48flzfYdu3alT59+rg8Sl5UVCR3sdXr9dx999289NJLJCQkCMEXXNOINB5Bs+Tk5JCcnCyn8Wi1Wrn+/AsvvEB+fj4ffPABTzzxBEOHDuX+++8H4JFHHiEpKYmUlBS7rSUrK4uwsDACAgKavFZWVsbTTz9Nfn4+q1evJjw83G7ztoTJZOLcuXOUl5c7PcpfU1Mjbz42mUxyLWp7l6pzRCqPR1mV/coqumEqT6vl3l417qHF9Vgdvbfi/0XIffvG1iZXRUVF6HQ6Kioq5MCCwWDgwoULLab2OIOCggK2bNlCWloaNTU1jB07lpSUFPr06eP0tQjsgrgrcwAisi9oFWFhYfK/H330UZKTk4FfI/mXLl2SX8vNzaVbt252nftKJ+3AwEDee+890tPTmTBhAk899RSTJk1yeJQ/NjaW0tJSh0f5JUmivLxc3nzcqVMnVCoVCQkJbdp87Gg8ytwnqu0obI7ce3jYV/ixQ2rOVaL7QvDbN21pcqXVaqmpqSE0NJTIyMgmG/vVanWj1J7mgjL25uLFi3IXWw8PDyZMmMCHH35IVFSUw+cWCNojIrIvaJbLI/v5+fly1Pz111/n0KFDfPrpp5w8eZL77rtP3qB7xx13kJWV5ZJ8zeLiYubMmUNlZSWvv/46arXa4XNaovwVFRXEx8fbJcpvMpnk/PvS0lL8/f1RqVSEhoY6rVqEtZF9j5JWim87juy3pYFVE9oo++aaWjst5DIa/P8IwW+/2Fois66uTm5yVVdXh1KpJCwsDF9f36sGMyorK8nMzMTHx8eqqj2tJSsri7S0NNLT0/H392fixImMHz+erl272nUegcsRkX0HICL7giZMmTKFffv2UVhYSEREBIsWLWLfvn0cP34chUJBdHQ0f//73wFISEhg0qRJ9OvXDy8vL9auXeuyjVkhISH885//5Msvv2TMmDHMmzeP8ePHO/TR8uVR/u7duxMREWH1nHV1dXJ5zOrqakJCQggLCyMuLs7lebDN0Wq5v5w25of/bxwrN6h6KKwSfns2r2p+PdZH9x0m+L8hGesdOr7Asdgq+LW1tbLgm81mVCoVcXFxVgcu/Pz8GDBgAFqtliNHjhAZGUn37t1tPv9KksTJkyfRaDTs3LmT8PBwJk6cyLZt2wgJCbFpTIHgWkVE9gUdEr1ez6xZs5AkiVdffZXQ0FCHz2kymTh79iyVlZX069fvqg1jqqur5TJ1kiTJzb9aE0VzBg2j+x5l1XbMe3fP6H6TtBxHyj5cVfYdLfcgBL+9Y6vgW849er0eDw8PuYutvVIDjUaj3KMkNjaWwMDAVn2fJEkcPXoUjUbDnj17iImJISUlheTkZPz9/e2yNoHb4/qLXwdEyL6gwyJJEhs3bmTp0qW8+OKLjB492ikSXVpayunTp5tE+Vtq/uUOjWaaI+XGFxt/oYPJ/lVz7h0t+9BI+Bs2s5Ls9bO+jCapOfb6vxA4DVsEX5Ikqqqq0Gq1FBYW4u3tLTe58vb2dsAqf8WS2nPdddcRExPT7Fwmk4nvvvsOjUbDgQMHuPHGG0lJSWHUqFEu77BrDTt27GDOnDmYTCamT5/OvHnzGr1uMBiYOnUqGRkZhIaGsnHjRqKjo12zWPdGyL4DELIv6PAUFBQwY8YMAgICWLFiBUFBQQ6f0xLlr6iooGvXrpSVlVFeXk5AQICcf+/qOtRXw2GyDy4Rfqnchpx7Bwu/1EJDK3vL/hXz74Xwuz22Cn55eTk6nY6ioiKXNbmSJAmtVsuKFSuIjIxkzpw5mM1mDhw4wJYtW/j2228ZPHgwqamp3H777Q69+XAUJpOJ2NhYdu/eTUREBImJiWzYsIF+/frJx7z11lv88MMPvPPOO3z66ads3ryZjRs3unDVbouQfQcgZF9wTWA2m1m/fj0rV67kpZde4s4773RYlN9gMMjlMauqqjCZTISHhxMTE+OW+fdXoj1H922SeyvGt2k4K7rV2ir8Nm2sFcLvdtgq+CUlJeh0OkpKSvD390etVrtFcKGgoICnn36aEydO4OnpyahRo0hNTeUPf/iD0woPOIpvv/2WhQsXsnPnTgCWLVsGwPz58+VjRo4cycKFCxk6dChGo5GuXbui1+vdImXTzRA/EAfQvv/CBIJW4uHhwdSpU7n99tt57LHHSEtLY+nSpXYpE2d5RK7X6yksLEShUKBUKomNjcXX11eO8h87dqxVufwC22iUluOgNBhrsUbu2zSPqJzTIbBF8M1mM8XFxeh0OsrKyggMDCQsLMz1zfWAqqoqdu3ahUajITMzk7vuuovJkyfz/vvvYzQaueGGG9q96APk5eURGRkpfx4REcGhQ4daPMbLy4vAwECKiopQKpVOXavg2qT9/5UJBFYQERHB1q1bef/99xk5ciTLly9n+PDhVkdXzGYzpaWl6PV6iouL8fHxQaVS0b9//yaPoT09PYmLi6OkpIQTJ04QERHRpioVgl+5YilMK6vvtIi1VX+wn+ArPBRXjO63WfBFNN8tsLXJVWFhITqdjsrKSkJCQggPDyc+Pt7l55XS0lK2b9+ORqMhLy+P0aNHM3/+fG666SZ5bffeey+fffYZd9xxB3/+85958MEHXbrmttJchsTl/w+tOUYgcBRC9gXXHB4eHjz66KPcddddTJ8+nbS0NBYvXoyvr+8Vv89oNFJUVIRer6eiooKgoCBUKhUxMTGtekQeHBxMYmIiWVlZHDt2jPj4+PYX5bebRFtfgtOude7tiCOj9w2F3y7ReyH4LsfWCjr19fWy4NfU1KBUKunRowf+/v4ul0a9Xs+2bdvQaDSUlpaSnJzMihUriI+Pb/Z4hULBpEmTSEpKIiMjw8mrtT+taS5pOSYiIgKj0UhZWZkoISpwGiJnX+A0pk2bxtatW1Gr1XKzrmeffZYtW7bg7e1N7969+fDDDwkKCiInJ4f4+Hji4uIAGDJkCO+8847d12Q2m3nrrbd47733WLlyJbfcckuj1y01qPV6PfX19YSGhqJSqZp0kbSWkpISMjMz20WU31V5+22We7tuKP7fWM5KzQEw1xvbPogQfJfTliZXOp0OnU6H0WhEqVSiVqvx8/Oz8wqt55dffiEtLY0tW7ZQX1/PuHHjSElJoVevXq5emtMxGo3Exsayd+9eunfvTmJiIp988gkJCQnyMWvXruXHH3+UN+h+8cUXbNq0yYWrdlvc92LYjhGyL3AaBw4cwM/Pj6lTp8qyv2vXLm6//Xa8vLz461//CsCKFSuadPB1NFlZWTz66KPcdNNN/PGPf2Tbtm0cPHiQV199lYiICFQqld2j8CaTiaysLKqrq906yu802a+s/vXL9pRTe3TOral1mjALue84tKXJlUXwJUlCpVIRFhbmFueHnJwcWfA7d+7MhAkTmDhxIt27d3f10lxOeno6Tz31FCaTiWnTpvH888+zYMECBg0axNixY6mtreWBBx7g2LFjhISE8Omnn16TN0atQMi+AxCyL3AqV5L4zZs38/nnn/Pxxx87Vfbr6urYv38/Go2GL774guDgYMaPH8+MGTOcsnmquLiYM2fOuG2Uv4nsg32E/wqRe7sJvw3rlFpqZuUgiRaC33H4rPhdsrKyqKuro2/fvq0W9KqqKrnJlaenp1wD315NrtpCZmYmGo2G7du3ExISwsSJExk3bhxqtdrVSxN0TNzrAthBELIvcCpXkvgxY8YwefJk7r//fnJyckhISCA2NpaAgACWLFnCsGHD7LqWEydO8PLLL3P69GlGjBjB2LFjGTZsGOfOnePRRx/llltuYf78+U5peGU0Gjl79izV1dX069fP5Rd5k8kk708oLy9n5YwdjQ+wVfZbmZrj7Oh+i4Lf6CD7rMkucg9C8N2E5iL4JSUlnDlzBrVaTY8ePZpUxZEkicrKSrmDtre3N2FhYSiVSpfXmZckiR9++AGNRsOuXbuIiopi4sSJjB071ik9SgTXPEL2HYCQfYFTaUn2ly5dypEjR/jiiy9QKBQYDAYqKysJDQ0lIyOD8ePHc/LkSbuUyrRw6dIlSkpKuOGGG5pE041GI6+88gqbN2/mzTffpH///nab90oUFxeTmZlJVFQU3bp1c2qUv66uTt6fUFtbK+9PCAwMJLX/wsYHt1b225B378jofqvkvjlsXJOI3ncsWpOiYzabuXjxIgUFBcTGxhIcHExZWRk6nU6u4GVpcuXq8pNms5kjR46g0Wj46quv6Nu3LykpKSQlJbnF/gDBNYWQfQcgZF/gVJqT/XUTN+gGAAAgAElEQVTr1vHOO++wd+9efHx8mv2+ESNGsHLlSgYNGuSspQLwww8/8Nhjj3HXXXfxzDPPOKXzpNFoJCsri9raWuLj4x0a5bf0B9Dr9QCoVCpUKlWTykStztuvqrJbTr89Zd9mub+cVq5JRO87HrbWwNdqtZw9exaj0UhoaCjh4eGEhIS4vMmVyWTi66+/Ji0tjf/+978MGDCA1NRU7rrrLpc/WRRc0wjZdwBC9gVO5XLZ37FjB08//TT79+9HpVLJx+n1evmCmJ2dzbBhw/jxxx9dUqqsrq6OpUuXsnPnTtasWdOoBbojcUSUX5IkysvL0el0FBUV0blzZzk/+GrpA80Kf1VV0wPdQPalKgdWzGlhXULwOx62Cn5RURE6nY7y8nKCgoJQq9UYjUays7OJjIx02d4cy/6ktLQ0Dh8+zC233EJqaiojRoxwSiBDIGgFQvYdgJB9gdOYMmUK+/bto7CwkLCwMBYtWsSyZcswGAyEhoYC/yux+e9//5sFCxbg5eWFp6cnixYtYsyYMS5df0ZGBjNnzmTcuHHMnj3bKY/e7RHlN5lMFBcXo9frKSsrIyAgAJVKRWhoqFXRxZSec1t3oB1LXloj/FJNrfM650pm+8n9b+MJXI+tFXQsPTi0Wi1VVVWEhoaiVqsJDAxsJPUW4S8rK6Nv3774+/vba+ktUlNTw969e9FoNPz444/cdtttpKSk8Pvf/97lTxcEgmYQsu8AhOwLBFZgMBh48cUXOXjwIGvWrCE2NtYp8xYVFXHmzBl69OhBeHj4VaOClzfgCQ4OluXj8s2CraXVsg9Oie63mJrjQOE319XZZyAh925DW5pc6fV6dDodtbW1KJVKwsLC8PPzu+rfZ0VFBZmZmfj7+9O7d2+7Bw4qKirYuXMnGo2Gc+fO8cc//pHU1FQSExPdrtqXQHAZ4hfUAQjZFwhs4LvvvuNPf/oTU6ZMYebMmU6JkBmNRs6cOYPBYGg2yl9TUyPn35tMJrkBj6+vr90u8K6M7rc6796Oc9tN7kEIvhthq+AbDAZZ8I1GIyqVSv4bsxZJkvjll1+4ePEivXr1Qq1Wt7lR37Zt20hLSyM/P5+7776b1NTUZgsQCARujPhldQBC9gUCG6mpqeH555/n6NGjrF27lp49ezplXkuUPyoqCj8/PwoLCyksLKRTp07yBltHbbBztuybq6tt/Ebb55eM9Y0/b8t7EYLvNtgq+DU1NXKTK4VCIQu+vZpc1dXVybX54+LiWixS0BxarZatW7eSlpZGRUUFY8eOJSUlRe48LhC0Q4TsOwAh+wJBGzlw4ACzZ8/m4Ycf5pFHHrE5TaY1mM1mSkpK0Gq1aLVaPD096dmzJ+Hh4U7ZQ+DoVB6b5b4Nc18u980eY817EYLvNtgq+A2bXHl5ecmb2B3Zc8NSm1+lUhEdHd3ieSQ3N1fuYitJEuPHj2fixIlER0c7bG2OYMeOHcyZMweTycT06dOZN29eo9dfe+013nvvPby8vFCpVHzwwQf06NHDRasVOBEh+w5AyL5AYAeqqqr4y1/+wpkzZ1izZg2RkZF2G9toNFJYWIher6eyspLg4GBUKhXBwcEUFxeTlZXV6lx+e2DP6L7d5N7K+Vsj+E2+p6XxhNy7FbYIviRJVFRUyE2uunTpIgu+M6vUWGrzv/vuuwwdOpTk5GQAsrOz0Wg0bN26FV9fXyZMmMDEiRMJDw932trsiclkIjY2lt27dxMREUFiYiIbNmxoVOnsP//5D4MHD8bHx4e3336bffv2sXHjRheuWuAkhOw7ACH7AodjNpsdGu12FyRJYu/evcydO5fHH3+c+++/3+b3XVtbK+ff19fXo1QqUalU+Pv7NxH6+vp6zpw5Q319PfHx8Q7v+GuP6L5DJb+ZuW2R++aQhV8Ivlthq+CXlZWh1WopLi7Gz89PbnLl6io1mZmZ/OlPf8JsNmMwGOjevTsTJ05k3LhxKJVKl67NHnz77bcsXLiQnTt3ArBs2TIA5s+f3+zxx44dY9asWXz99ddOW6PAZQjZdwCubdsn6NBIkoRCoZCFd8uWLfTu3dtpdeqdjUKh4M477+TAgQPMnTuXtLQ0Vq9e3aromyRJjRpceXp6olKpiI+Pv2pucKdOnUhISKCwsJCjR48SHR1N165d3XZTnlNEH8BDgWTHDbaSyWS3sQRtx9Ya+CUlJeh0OkpLSwkICECtVtOnTx+XByQkSeL48eN8+eWX7Nmzh169etGjRw92797NmDFjePjhh12+RnuRl5fX6OlnREQEhw4davH4999/n9GjRztjaQJBh0TIvsBhWGTzs88+4/z588ybN4++ffvy008/2f2iNW3aNLZu3YparZYbdhUXFzN58mRycnKIjo5m06ZNBAcHI0kSc+bMIT09HR8fHz766CMGDBhgt7UEBgby7rvvsn37diZMmMBTTz3FpEmTmrxnSZIoLS1Fr9dTXFzMddddh1qt5ne/+51NqQNKpZLAwEDOnDmDVqt1WJT/3+dftSq67yy5t6fYg5B7d8PW/HuTySQ3uaqoqCA4OJiwsDDi4uJcLs9ms5lDhw6RlpbGvn37SEhIICUlhUWLFskbdSsrK1m8eDHDhw9n9erV/O53v3Ppmu1BcxkFLQUn1q9fz5EjR9i/f7+jlyUQdFiE7Ascxs6dOzl8+DC7d+/mySefpHfv3qxcuRIPDw+7p/Y89NBDzJo1i6lTp8pfW758OXfccQfz5s1j+fLlLF++nBUrVrB9+3aysrLIysri0KFDPP7441eMKtmCQqEgKSmJIUOGMGfOHNLS0nj99dfx8fFBo9Hwyy+/MGzYMAIDA1GpVPTu3dsuqQOuivKbq6rx8PWR/+0shOB3bNrS5MrSZ6K6uprQ0FAiIyMJCAhw+RMvo9HIwYMHSUtL4+uvvyYxMZHU1FReeeWVZm/O/fz8eOWVV/jpp5/IyMjoELIfERHBpUuX5M9zc3Pp1q1bk+P27NnD0qVL2b9/v8PTEwWCjozI2RfYnUOHDvHNN9/w3HPP8a9//YvU1FQ2b95Meno6r7zyCsHBwfKx9pT+nJwckpOT5ch+XFwc+/btIzw8nPz8fEaMGEFmZiYzZsxgxIgRTJkypclxjkCn07F48WI2bdqEn58fI0aMYNKkSQwbNsyh4mHJ5TcajfTt29fuF8uG0f0rCv6VzzFWIwS/Y2Or4NfV1ck18Ovq6uQ+E61pcuVoDAYD//nPf0hLSyMjI4Nhw4aRmprK8OHDnVJFy90wGo3Exsayd+9eunfvTmJiIp988gkJCQnyMceOHSM1NZUdO3bQp08fF65W4GTcM/+0nXPtnWUEDsNsNrNu3Tpeeuklnn32WW6//XZWrVqFj48P586dY8CAAXL99/r6ejp16uSQKL8FrVYrC3x4eDg6nQ5oPl80Ly/PrrJ/9uxZvvzyS7k8XnJyMl9++SVvvPEGFRUVJCQkOFxALFF+vV7P0aNH6dmzJ2FhYXabt9URfIWiTcIv5L7jY6vgWzay63Q6TCYTKpWK2NhYm5pc2Zvq6mp2796NRqPh559/5s477+TRRx/lgw8+cHn6kKvx8vJizZo1jBw5EpPJxLRp00hISGDBggUMGjSIsWPH8uyzz1JZWck999wDQFRUFGlpaS5euUDQPhGyL7AbHh4ejB07lt69ezN8+HAef/xx1q1bx8yZM+nTpw/z58/nuuuu4/jx42zevJkLFy6wePFioqKinLpOa/JFbWXTpk2o1Wo2bdpEWFiY/PWhQ4eyadMmkpKSWLBgAUlJSQ6XfpVKRVBQEJmZmXIuv7e3t0PnbAv2lnsQgu+OvLDvSQICAujdu7dV31ddXS3XwFcoFKjVahISEhzWSM4aysvL2b59OxqNhgsXLjBq1CieffZZBgwY4PKnC+5GUlISSUlJjb62ePFi+d979uxx9pIEgg6LSOMR2A1L9R3Lv41GI506deLpp5+murqad955B4B+/foxY8YMQkJCWLZsGQsXLmTSpElA29J63DWNpzkKCgqYOXOmnI8bFBTklHn1ej1nz56lZ8+edO3atc3jTVA/3vqDr3CuEYJ/bdAwgi9JEnl5eeTm5hITE9NiSUlLpSqL4Hfq1Am1Wo1arXaLm9aioiK2bt3Kli1b0Ov1JCcnk5qaSr9+/YTgCwTWI/5oHICI7AvsRsMLm0KhoFOnTly4cIFVq1Zx6tQp+bWRI0dSV1fHAw88QHR0tFx1orq6Wv63PVJ7xo4dy7p165g3bx7r1q1j3Lhx8tfXrFnDvffey6FDhwgMDHR6c5quXbvyxRdfsH79ekaNGsVLL73EnXfeec1E+YXcXzu0lKKjUCiIiIhApVKRmZlJfn4+sbGxdO7cGUmSKC8vR6fTUVRUJFeqGjBggFObXLVEfn4+W7duJS0tjZqaGsaNG8ebb75JTEyMq5cmEAgETRCRfYHD+f777wkNDWXjxo3Mnz+f4uJiHnzwQZYsWUL//v05cuQIa9asIScnh6lTpzJt2jSr55gyZQr79u2jsLCQsLAwFi1axPjx45k0aRIXL14kKiqKzz77jJCQECRJYtasWezYsQMfHx8+/PBDBg0a5IB33jpyc3N57LHHCA8PZ+nSpQQEBDhlXkuUv1evXo1SjayltdF9yWCweY4WxxSC75bYkoOv0+k4c+YM1113HQaDQa6BHxoa6vImVwAXL16Uu9h6enrKXWzt2S1bIBCIyL4jELIvcBgN03ry8/N56KGHCAwMZMaMGaxatYp77rmHqVOnMnz4cG6++Wbmz5/P+PHjGThwIKtWrZKj+9dCB16z2cz777/PmjVrWL58OcOHD3dKCkB9fT2ZmZmYzWb69u3b6ii/pfuoXq/nL79/rfljHCD3IATfHbF1g63ZbKa4uBidTkdZWRn+/v4YjUaMRiPx8fEu32iblZWFRqMhPT2dgIAAJk6cyIQJE9p0cywQCK6IkH0HIGRf4FRee+01MjIySE1NpVu3bgwePJjPP/+c//73v7zxxhvU1NSg0+no0aMHJSUlcplOk8nkFtE9R3PhwgWmT59OTEwMixcvdprs6HQ6zp07d8Uov0XM9Hq93H1UpVIRGhpKavgsAKS6+v99g2S2y9qE3Lsn9mpyFRISglqtJigoSL7BLSsrIzMzE6VSSXR0tNNu9iVJ4qeffkKj0bBr1y7Cw8NJSUlh7NixhISEOGUNAsE1jpB9ByBkX+AUGsp6fX09Wq2WF154gRUrVqBWq7nrrruYPXs2ycnJHDx4kA0bNuDh4UFVVRVvvvkm/v7+Ln4HzsNsNvP222/z3nvv8be//Y1bbrnFKfPW19dz+vRpJEmSo/wNmxNVVVUREhIi5/03FLAJ6scbiz60SfaF4Lsntgp+fX29/HtUU1NDaGgoarX6ik2uzGYzFy9eRKvVEhcX57BN7JIkkZGRQVpaGnv27KFPnz6kpKRw9913X1PnHYHATRCy7wCE7AucRsO0HoCXXnqJzz77jEceeYTTp08THR2NQqFg69atVFdXc+TIEV599VW2b9/O1q1b6dKlC7W1tfzyyy9ERUV1+GY0WVlZPProo9x000288MILXHfddU6ZNy8vj3Pnzsl9EFrbnGh80PSmX7RC+IXguyf2aHJVX18v/x75+vpalaJWXV3N6dOn6dKlC3369LHLBl2TycR3332HRqPhwIED9O/fn5SUFEaOHOm0vzOBQNAsQvYdgJB9gdNpKP0nTpzg448/Jjk5Ga1Wy3fffceoUaPYsmULJ0+eZObMmRw+fJinn36ab775hkuXLuHh4cG9996LWq128TtxPCaTiVWrVvHJJ5/w+uuvO2wjcVVVFXq9Xq5dHhISQllZGZ6enlbl8lsr/ELw3ZO2NLnS6XTodDokSUKlUqFWq+UqW7YiSRIFBQXk5OTQq1cv1Gq11Xta6uvrOXDgAGlpaXz33XcMGTKElJQUbr/9drco4SkQCAAh+w5ByL7AJUiShCRJjVJBTp06xcyZM9m/fz8AaWlpvPbaa/Tv35833niDwYMHk52dzfTp01m2bBk1NTVkZGTQv3//Dv+4/dSpUzz66KPccsstzJ8/n86dO7dpPEtpQ71eT2FhIZ07d0atVqNSqRqJjyWXv3fv3q26ubqa7Au5d19sFfyGTa48PDzk3yNHNLmqq6sjKyuL+vp6+vbte9U5amtr+eqrr9BoNBw/fpxbb72V1NRU/vCHP7SrJ4M7duxgzpw5mEwmpk+fzrx585o97vPPP+eee+7h+++/d2mFMYGgDQjZdwBC9gUu5fKKPffffz/R0dEsWrSIiIgI6uvr6dSpEwsXLkSv13P77bfz1ltvsWHDBj7++GO2b9/OmTNnWLlyJampqS5+N47FaDTyt7/9jS+++II333yT/v37W/X9ZrOZkpIS9Ho9JSUl+Pv7yxtsryQ+dXV1nD59GoVCQVxc3FWjoJcLv2Ssb+FIgauxRfAlSaKyshKdTkdhYSHe3t7N3ig6kuLiYs6cOQPAoEGDGv3+VlZWsmvXLtLS0sjMzOSuu+4iNTWVm2++uV1W9TKZTMTGxrJ7924iIiJITExkw4YN9OvXr9FxFRUV3H333dTV1bFmzRoh+4L2ipB9ByBkX+B2PPfccxw9epTVq1fTp08fNmzYwNKlS/nmm2/kGvRvvfUW27ZtY+7cuXh7ezNjxgyeeeYZHn74YRev3vH8+OOPPPbYY9xxxx0888wzVxQso9EoVz6prKwkODgYlUpFcHCw1eKj1WrJzs5uVZR/nN+DVo0tcB62Cn7DJlc+Pj6o1WqUSqXLIuQmk4lly5axZcsWli5dil6vR6PRkJeXx+jRo0lNTaV///7tvovtt99+y8KFC9m5cycAy5YtA2D+/PmNjnvqqae48847WblyJStXrhSyL2ivtO8/WDel/TzHFHR4LBV7Xn75ZXJzc4mIiOD8+fOsX7+eDRs2EBAQgMFg4MSJEzzzzDMcOHBAvqDdd999HD161KGyn5mZyeTJk+XPs7OzWbx4MaWlpbz77ruoVCoAXn75ZZKSkhy2jhtuuIH9+/fz8ssvM2rUKFavXk1CQoL8enV1NSUlJeh0OgwGA0qlkqioqCtWPmkNYWFhBAcHc/r0abRaLX379m1xs6Smcp0QfjehLTXwS0tL0el08pMgtVpNr1693KIMbnFxMREREURERPDYY4/Rp08f3njjDQYMGODqpdmVvLy8Ro27IiIiOHToUKNjjh07xqVLl0hOTmblypXOXqJAIHBzhOwL3AZPT085rSciIgL4VagPHDggRw8PHDjAihUr8Pb25ptvviEmJoYjR47wt7/9jX/961/yWI5oxBUXF8fx48eBX29MunfvzoQJE/jwww/585//zDPPPGPX+a6Et7c3CxcuZOzYscyYMYNbb70VhULBnj176NmzJ0uWLCE2Ntbudfq9vb258cYb0Wq1HDly5IpRfiH8rqMtgm95ElReXk5QUBBqtZrY2Fi3SIH55ZdfSEtLY8uWLRiNRsaNG8fatWuJjo7m73//O4888gjLly9n5MiRrl6q3Wju6XvDm3az2cyf//xnPvroIyeuSiAQtCeE7Avcissjz3fccQebN28mLy+PLVu2kJ2dzejRo9mxYwczZsxg6tSpBAQEyF1n161bx4MPPujwzrt79+6ld+/e9OjRwyHjXw1Jkjh+/DgajQYAjUZDt27dWLZsGcOHD3f4/A2j/Dqdjri4uGaj/EL4nUdbmlxZauBXVlYSEhJC9+7d6devn1ukwOTk5KDRaNi6dSudO3dmwoQJrF+/nu7duzc67vHHH2fs2LHMnj2bY8eOtbiJtb0RERHBpUuX5M9zc3Pp1q2b/HlFRQU//fQTI0aMAKCgoICxY8eSlpYmUnkEAgEgcvYFbozld9MiHP/4xz/w8vJi4sSJcoOdCxcuyMKdnJxMeXk5AwYM4IEHHmDgwIEAXLp0qdFjcHswbdo0BgwYwKxZs1i4cCEfffQRAQEBDBo0iFdffVXu/OsIli1bxqeffkpCQgLjx49n1KhRBAQE8N133/HEE09w7733MnPmTKelWhQUFHD+/HliYmLkVKbLEcLvGNra5Eqr1VJbWyvXwPf393cLwT99+jRpaWls376dkJAQJk6cyPjx41v8/bqcyspK/Pz8HLxK52A0GomNjWXv3r10796dxMREPvnkk0apew0ZMWKEyNkXtGdcfwLqgAjZF7QrLNV56urq5I2p5eXlzJkzh0uXLjFv3jwMBgP79u3jpZdeokuXLhw+fJhDhw7x5JNP2mUNdXV1dOvWjZMnTxIWFoZWq0WpVKJQKHjhhRfIz8/ngw8+sMtczXHmzBmio6Ob3ZhbU1PD888/z9GjR1m7di09e/Z02DoaUldXx6lTp/D09Gwxyi+E3z7YKvgGg0FucmU0Ghs1S3M1kiTxww8/oNFo2L17N5GRkaSkpDBmzBiHdc5tT6Snp/PUU09hMpmYNm0azz//PAsWLGDQoEGMHTu20bFC9gXtHCH7DkDIvqBdcHn3Xcvnx48f58CBAxw9erRJzupPP/3Ev/71L5YtW0Z1dTV+fn4YjcY2Vw/RaDSsXbuWXbt2NXktJyeH5ORkfvrppzbN0VYOHDjA7Nmzeeihh5g+fbpT8q0lSUKr1V4xyi+E3zZsFfyamhpZ8CVJQq1Wo1ar3aJLrNls5siRI2g0Gr766ivi4+NJSUkhKSnJ7ntNBAJBu0HIvgMQsi9ot9TV1fHSSy/h6enJ5MmTiY+Plyv6ACQmJjJr1iySk5Px9PSUI4RtzeW/9957GTlypFz5Jz8/n/DwcABef/11Dh06xKefftrGd9d2qqqq+Mtf/kJmZiZr1661eypTSxgMBk6fPi2i/G1EU7lOriffvXt3IiIiWpViU1VVJTe58vT0lAW/rY3Y7IHJZOLrr79Go9Fw8OBBBg4cSGpqKnfeeadDmnAJBIJ2h5B9ByBkX9CuseQeW2Qbft3A9vbbb5ORkcHSpUuZPXs2sbGx6PV6lixZwk033WTzfNXV1URGRpKdnU1gYCAADzzwAMePH0ehUMhVQRqux5VIksTevXuZO3cuM2fO5IEHHhBRfjemuQi+yWTi3LlzlJeXEx8f3yTqbWlypdVqKSwspEuXLnKTq5ZKozqTuro69u3bx5YtWzh8+DC///3vSUlJYcSIEW6xvmsVy9PRy5+aCgQuRvwyOgAh+4J2S3MR+q+//prvv/+eEydO0L17d2pqaoiPj+fhhx9m3bp1rFmzhk2bNhETE+OiVbuGsrIy5s6dS15eHmvWrHHazYglyu/l5UVsbKyI8l+GNek5ZWVlnD59GrVaTVRUFBUVFXKTK19fX8LCwq7aDdlZ1NTUsHfvXjQaDT/++CO33XYbqamp3HLLLW5Ro/9axGw2o1AoGom9ZQ+UEH6BGyF+ER2AkH1Bh+KDDz6gsLCQXr168e2333L77bdz9913y6/n5OQQERGBl5dXowtcw/SfjookSWzfvp2//vWvPPXUU0yePNlpUf6CggJycnLo06cPSqWyyTHXkvC3tQZ+dnY2lZWVhIaG0r17d0JCQtzid7eiooKdO3ei0Wg4d+4cI0eOJDU1lUGDBgmRdBH5+fmcPXuWYcOGNXmtuLiY1NRUvvzyS7kzuUDgBoiThQMQsi/ocNTV1VFQUMBDDz3Ejh078Pb2lqv3SJJEeXk5H3/8Mbm5uajVap566ilXL9mpFBcXM2fOHCoqKnj99dcJCwtzyrwGg4FTp07RqVMnYmNjMRgM6HQ6CgsL8fLyQq1W80Tf552yFmfTlhr4xcXFcpOr4OBg1Go1Xl5eZGZmEhwcTM+ePV0m+yUlJWzbto20tDQKCgq4++67SU1N5frrrxeC7wIkSeL7779n//79PPvssxw7doz09HQefPBBOnfuzGuvvca9995L//79eeuttygtLeW5555zaE8SgcBKxInDAQjZF3QYGkbqq6urmTlzJhcvXuSNN94gISEBLy8vNm7cyLp169DpdOzevZtnnnmGoqIiNm7c6BYbGJ2FJEloNBpeeOEF/vrXvzJhwgSHy5kkSZSWlpKTk0NxcTH+/v5ERkaiVCobpfd0lCi/rYJvNBrlJldVVVWEhoaiVqsJDAxsUpHq4sWL5Ofn07dvX6eVqNRqtWzdupW0tDQqKysZO3YsKSkpxMbGOmV+QWMkSZLPfQqFgtraWgwGA4GBgSxYsID33nsPb29v1q9fz8cff4wkSbzzzju88cYbFBcXs2jRIle/BYGgIUL2HYCQfUGH5sMPP8RsNnPfffeRnZ3N22+/zfXXX88XX3xBfHw8M2fOZP369Tz33HPXZLk/vV7Pk08+iclk4tVXX202xaYtmM1mSkpK0Ol0lJaWEhAQgEqlws/PjzNnzuDt7U1sbGyzeebtUfrb0uRKr9ej1Wqpq6trVAP/ajdh1dXVnDp1Cl9fX2JiYhySs5+bm0taWhpbtmxBkiTGjx9PSkqKyzpIC5pPPczLy+PkyZNotVpuu+021q9fz549e9i8eTP+/v6cOnWKOXPmsHz5cl555RUWLVpEXFyci96BQNAsQvYdgJB9QYek4WNpy0UxOzubxx9/nJ07dwKwYMECNBoN0dHRfPTRRw7teuvOSJLEpk2bWLJkCS+88AJ33313m6L8JpOJoqIidDodFRUVcupJUFBQo1QBSZLIz8/nwoULxMbGEhoa2mSs9iD8bWlypdPp0Ol0mEwmVCoVarXapptOSZLI+//t3XlU1PX+x/HnoKKAgiziAngUB5BFRQTFEEy9OIaGskSW3iJTk7JNPeYvyfTmbt4W6ZaWeSrUtLIGN5QMpMtFcMOTScXNUEBiWMYQFJCZ+f3hYY6m3jIZwOH9OKdzwvnmvAcGen3ffD7vT0kJRUVFt/1c3qmzZ8+iVqvZs2cPNjY2REdHExUV1WYmTbU3vz9RvElDQwO7d+/m2LFjnD9/nsDAQImkupEAABp0SURBVHbs2MGRI0e4cuUKoaGh5OTkoFAosLCwYNmyZXTq1ImdO3fy5ZdfttjBe0L8SRL2TUDCvmg3CgoKmDp1Kk888QRz584Frm3Yra2tve3R8+3Jr7/+SkJCAjY2Nqxdu/aOloU0daY1Gg11dXXGpSe2trZ/eONQV1dHfn4+nTt3vme6/HdzyFVTwFcoFMYRmc11yFVdXR0//PCDcV/EnYy2NBgM5Ofno1arSU1NxdnZmZiYGCZPntwsNw/izpWXl1NTU3PLQP7f//6X1157jS1btjBo0CDGjRvH22+/DYC3tzdqtRpPT0/CwsJ4+eWXmTBhAnDtZ978+fO5cOEC2dnZ7WI4gbinSNg3AdmRI9oNDw8PPv/8cw4cOEBkZCRnzpyhX79+bSbo9+vXj0GDBuHv72886r6qqorw8HA8PDwIDw9Hq9Wa7Pl79erFF198gUqlYsKECaSlpfG/mgF1dXUUFRVx/PhxTp48SX19PUqlkuDgYDw8PG5aY347Xbp0wd/fn+7du3P06FEqKytvuuavhuvmpK75yPjPnaipqeHs2bPk5uaSn59Phw4dGDx4MIGBgfTt27dZT7Pt0qULQ4YMwdHRkWPHjlFWVvY/rzcYDJw8eZJXX32V0NBQVq1ahbe3N4cOHWLv3r3MmDHjngr6qampeHl5oVQqWb169S2v2blzJz4+Pvj6+vLoo4+2cIV/rOl7zmAw8P333/Of//wHuLZca8OGDZSUlBivLS8vR6/X07t3b/z8/Ix/Pnr0aON/N3bsWE6dOsXly5epqqqiX79+TJs2zXgDIUFfCPMnnX3Rbly/tCcjI4P777+/dQv6nX79+nHs2LEb1s0vXLgQBwcHFi1axOrVq9FqtaxZs8bktZSUlDB79mx69erFihUrjKP5vvvuO6ysrNBqtVhYWNCjR49m70y3lS7/X73BMBgMxhn4FRUVWFlZ4ezsfNNGZFNraGjgp59+Ijs7G5VKRd++fYFr3wc5OTmo1WoOHz6Mn58fMTExTJgwAWtr6xarr7npdDo8PT1JS0vD1dWVoKAgtm/fjo+Pj/GagoIC4uLi+Oabb7C3t0ej0eDs7NyKVV9jMBjQ6/U3Be/Fixeze/du6uvr2b9/P3Fxcbz88stER0eTm5vLp59+yvz58/nwww+5cuUKK1eu5PLly2zZsoXGxkaef/55jhw5wqOPPkqPHj1ITk7Gw8ODefPmoVKpUKlUrfSKhbgt6eybQOufviJEC7GwsDD+yrop6Lf1w2TUajUZGRkAPP7449x///0tEvZdXFzYvXs3mzdvJiwsjICAAE6ePImTkxPr169nyJAhWFpaNvvzNnX5S0tLOXr06C3Xn6trPjJZ4L+bgH/x4kU0Gg1VVVV07doVZ2fnVh2LaWlpiZ+fH/n5+UycOJHIyEhqa2vJzs5m+PDhxMTEsG7dOrOZQpWbm4tSqcTd3R2AqVOnolarbwj777//Ps8884xxf05rBf3a2lreffddRo8eTVBQEAqFwvg+OXToEB4eHtja2pKXl4ebmxvr16/H3d2dqKgoMjIyiI6Opnv37tTU1FBVVYWfn5+xk29tbU1JSQlubm40NDQQHBxMRkaG8WZv1apVHDx4kISEhFZ57UKIlidhX7Qrvw9ebSnoKxQKxo8fj0Kh4KmnnmL27NmUlZUZN0T27t0bjUZj8jp0Oh1ZWVl8+eWXpKen4+3tzYULFwgLC2PlypUmn1qkUCjo06cPDg4O5Ofno9Fo8PDwuKHL3xTKmyP0380hV1qtlrKyMn777Tfs7OxwdnbGw8OjTcwsr6+vJz09nfT0dGxtbTl8+DCdOnVCrVYbA7E5aQq4TVxdXcnJybnhmp9++gmAkJAQdDodS5cuNa5lN7W6ujq6dOkCXLuJX7hwIVu2bCEoKAitVss777zDjh07cHR0ZPjw4cTHx/Paa6+xcuVKBg4ciE6nY/DgwaSkpAAwYMAA0tPTmTdvHpcuXcLS0hKtVou9vT1TpkxhwIABxrNFmoI+QExMDC+++CJdunRp880OIUTzkLAvRBuRlZVFnz590Gg0hIeHM3DgwBavIS0tjfnz5zNy5EiioqJYvXo1nTt3Rq/X8+677xIeHs7rr7/OfffdZ/Jamrr8Fy5c4OjRo3h5eeHg4HDDNX+1y383h1z9ftJQr169GDhwYJsI+JcvXyYtLQ21Wk1+fj7jxo1j9uzZBAcHY2FhweHDh4mNjeXJJ58kISGhTdTcXG61JPX3QbaxsZGCggIyMjIoLi4mNDSU06dPm/SMguLiYh588EHuu+8+li9fjr29vfGciePHj/P444+j1+uZMGECiYmJ/PDDDyxcuJC8vDzi4uI4ceKEMcTr9XpsbGw4d+4cOp2O8vJy8vLyGDRoEK6ursbldsOHD7/t56DpPAQ5SEuI9kPCvhBtRJ8+fYBrSwuioqLIzc2lZ8+elJaW0rt3b0pLS02+7CA0NJSTJ0/e9BsQCwsLnnnmGVQqFTNnzmTIkCEsWbKkWTeX3opCocDFxQVHR0fy8/MpKyv7y13+uznkqmnS0JUrV3B0dMTNze1PTRpqCdXV1ezfvx+1Ws358+eZMGECCxcuZOjQoTfVN3r0aLKysli6dClvvvkm8+bNa6Wqm5+rqytFRUXGj4uLi43fU9dfExwcTKdOnejfvz9eXl4UFBQQFBTUbHU0rb9vGnVZU1ODpaUlRUVFZGZmEhkZSWVlJatWrSI5ORkAR0dHfv75ZyZNmmTc71FVVUXHjh0ZPnw4P/zwAyNHjsTHx4d///vf/O1vf2PmzJl88sknjBo16i+NDZagL0T7IRt0hWgDamtr0ev1dOvWjdraWsLDw1myZAmHDh3C0dHRuEG3qqqKtWvXtmqtOp2Ot956i+TkZN54441mDUr/i8Fg4MKFC8ZZ8r/v8sPNgf+vBvyGhgZjwL/TQ65aQmVlpfEU28rKSiZNmkRMTAw+Pj5/uj5zW8LR2NiIp6cnhw4dwsXFhaCgILZt23bDtK3U1FS2b9/ORx99REVFBUOHDiUvL8+kE4e0Wi1Tp05FpVLx/fffs3nzZkaNGsWiRYtQq9W89NJLKJVKli5dioODA8899xyJiYloNBo2bdrEG2+8wT//+U8CAwN577336NKlC42NjTfVbG5fT9FuyZvYBKSzL0QbUFZWRlRUFHAttDz66KNMmDCBoKAg4uLi2Lx5M3379uWzzz5r5Uqv7XuYN28eDzzwgHGJyMsvv2zyjZ7Xd/nPnDmDRqO56cTYuxnRWVdXZwz4er2eHj164OXl1WYm1JSWlrJ79252795NXV0dkZGRbNiwAaVS+Zf+PnMLhh07diQpKQmVSoVOp2PGjBn4+vqyZMkSAgMDiYyMRKVScfDgQXx8fOjQoQPr1q27q6BfWlrK6dOnCQ8PN/7ZhQsX2LFjB3l5eSxcuBBfX19qamrw9PSkqKiIZcuWMW3aNHQ6HVZWVly+fJlff/2Vc+fOMXbsWOrr6yktLWXv3r1s2rSJOXPmoFQqCQsLw87Ozvg81zfqFAqF2X09hRDNRzr7Qoi/rLGxkXXr1vHFF1/w9ttv4+/v3yLP23RibHFx8W27/H/G5cuX0Wg0lJeXG0eJOjs7GzdStrbz58+TkpLC7t276dChA1FRUURHR9+wEVW0nN+PyMzLy2PXrl1MnjwZe3t73N3diY+Px8bGBhcXF86ePcvTTz9NamoqdXV1REdHExISwowZM1izZg1PPPEE//jHP+jfvz//+te/2LJlC9bW1sybNw87OzvGjx8vHXvR3sib3QQk7Ash7tp3333H7NmzGTduHAsWLDDJWM5buXLlCvn5+VhbW+Ph4fGHYy4NBgO1tbWUlZVRUVGBpaWl8RTblqr5jxQUFKBWq9m3bx92dnZER0czZcoUevbs2dqlid9JTExk48aNODk5kZSURHl5OTt37mTXrl3odDqSkpKorq4mMDCQTz/9lI8++ogFCxYwfPhw4uLi6N+/P8nJyYSEhACQk5PDsGHDbnm+hBDthIR9E5CfKEKIuzZo0CAyMzNZsWIFKpWKpKSkFjmZ2MrKiqFDh1JSUmKc2PP7zYoGg4Hq6mo0Gg2VlZXGQ64CAgJa9JCr2zEYDJw+fRq1Ws3Bgwfp06cPMTEx7N+//y9tvBR3T6/XAzdvYj127Bhbt27FxcWFadOm4eHhwZAhQ9i3bx+Wlpbs2rWLfv36ARg36Lq6ulJfX4+9vT2//fYbiYmJxvfd//3f/92w6X7EiBHG55elOUKI5iKdfSFEszpx4gRz5szhwQcf5Pnnn2+xLuX1XX6lUmkM+Fqtlm7duuHs7Iyjo2OrHXJ1PYPBwPHjx1Gr1Rw6dAhPT0+io6OZOHEi3bp1a+3y2iWdToeFhcVtA3Z2djZvvPEGY8eOpUOHDuTm5vL+++/j7+9PRkYG3bt355133kGr1fLCCy/QtWtXJk+ezMyZM9HpdHz11VcsX74cV1fXFn5lQtxT5A7XBCTsCyGaXX19PcuWLSMzM5MNGzbg5eVl8ufU6/VUVlZSWFhIdXU1Dg4O9O3bF3t7+zYxZlCn05GdnU1KSgqZmZn4+/sTHR2NSqUy+QhTcbPq6mpKS0tv+d7MysoiOTkZFxcXEhMTgWsnWM+aNYuqqireeustHBwc+Oyzz5g8eTKPPPIIU6dOJT09nZ07d9K3b190Oh2nT59m27ZtVFRUUF1dfcvN1DLvXogbSNg3AQn7QgiTycnJ4emnn+bhhx8mISGh2bvqOp2OiooKNBoNNTU1ODg44OzsTOfOncnPz6dr164olcpW6+ZfvXqVzMxMUlJSOHLkCMHBwcTGxjJmzJg2s0egPTl79ix79+6la9euuLm5UVdXx6RJkwA4cOAAX3zxBbNmzWLHjh24u7vz+uuvs3HjRsLDwxkxYgRarZaxY8cSFRWFSqUC4PXXX6eiooIXXngBgIsXL7J06VLc3d2ZPn06Pj4+rfZ6hbgHSdg3AQn7QgiTunLlComJiRw/fpykpCTc3d3v6u+7evWqMeA3HXLVs2dPunXrdsMSDIPBQHFxMSUlJbdcy28qdXV1fPPNN6jVak6dOsXo0aOJjY1l1KhRbWIJUXtz5swZvvrqK5KTk+nevTvBwcHMnj0bLy8vGhoaSE5O5sSJE1y9epX6+npyc3OZP38+M2fOZNGiRVy9epXly5fz0ksv8dBDDxEaGgrAzz//zIABA8jPz+ehhx7C1taWzZs34+3t3cqvWIh7moR9E5ANukIIk7KysmL9+vVkZmYyffp04uPjmTlz5h0tXWhoaECj0aDRaGhsbMTJyYkBAwZgY2Nz2zXWCoUCNzc3nJycOHPmjEm7/DU1NRw8eBC1Wk1BQQHh4eHMnTuXoKAgWaLRirZt28bGjRsJCQlBo9Hw+eefGzvtK1asMI5Yzc7O5ttvvwVg8eLFuLi4ABAREcGqVauwsrLCzs6Od955h/Lycg4cOEBJSQkffvgh3t7efPvttzfdTP7RHgAhhGgp8n8hIcxcUVERY8aMwdvbG19fX9566y0Ali5diouLC/7+/vj7+7Nv3z6T1hEWFkZWVhYFBQVMmTKFoqKi/3l9XV0d58+f59ixY5w6dYrGxka8vb0ZPnw47u7uf/o0WysrKwICArC2tubo0aNcvHixWV7PxYsX2bZtG4888ggRERH8+OOPLF68mJMnT7Ju3TpGjBghQb+VTZ48mcOHD7Ny5UqmT5/O4cOHjY8NHjyYrKwsHn74YbRaLTY2Nuj1empqaoybpJt+a1ReXk5iYiJeXl7GgL9582acnZ3R6/XY29sbZ/A36dChgwR9IUSbIJ19Icxcx44dWb9+PQEBAVy6dIlhw4YZT/x88cUXWbBgQYvVYmNjQ1JSEt988w1xcXE89dRTPPbYY8ZQfPbsWRQKBeXl5XTo0AFnZ2f8/Pzu+pCr5uryl5eXs3fvXlJSUrh48SKTJk1izZo1DBw48K7qE6ZhY2MDgFarxcHBgUuXLhkfGz9+PIsWLQLAy8uLX375hf79+3Pp0iUKCwsZNWoUxcXF9OjRg8rKSnr06MGrr7560w1c08cyKlMI0VZJ20kIM9e7d28CAgIA6NatG97e3pSUlLRaPQqFgnHjxvHtt99y4sQJJk6cyNy5cwkICODZZ5/F0tISf39/hg0bhpubW7OeZtvU5beysvrTXf4LFy7w3nvvMXHiRKZPn87ly5d59913OXLkCImJifdc0E9NTcXLywulUsnq1atvevz8+fOMGTOGoUOHMnjwYJP/xqcl2Nvb09DQQOfOnamvrweuTYwKDQ0lPT2dkJAQCgoKAPD19WXPnj0AhISEsGLFCuPX2MLCAoPBgE6n4w/2uwkhRJshnX0h2pHCwkJOnjzJiBEjyMrKIikpiY8//pjAwEDWr1/fIptY9Xo9ubm57Nq1i+PHj9OtWzd+/PFHnn32WR5//HGTL31RKBT07dvX2OU/d+4cKpWKrl27Gq8pLCxErVazZ88eunTpQlRUFFu3bqVPnz4mrc3UdDodzzzzDGlpabi6uhIUFERkZOQNE2OWL19OXFwcCQkJnDlzhoiICAoLC1uv6LvUNNrSysqKoqIiOnfuDEBtbS2urq6Ul5dTXl5unI60YMEC49kQ178nmigUCtloLYS4p0hnX4h2oqamhpiYGN58801sbW1JSEjg559/Ji8vj969ezN//nyT17Bp0yb8/f3ZuHEjoaGhZGdnk5mZyZ49e8jJyWHatGmUlZWZvA4Aa2trhg0bRmFhIaGhoWzdupU1a9YwZswY5s+fT48ePYyHXs2dO/eeD/oAubm5KJVK3N3dsbS0ZOrUqajV6huuUSgUVFdXA/Dbb7+ZxesGuO+++9i/f7/xYzs7O2pqahg9ejRz5szh/vvvB669L2QsqhDCnMjoTSHagatXrzJp0iRUKhXz5s276fHCwkImTZrE6dOnTVrHr7/+iqOjI506dbrpMYPBgFqt5pVXXmHhwoVER0ebdA20wWDg1KlTxkOuzp07x9ChQ/nggw/o1auXyZ63NX3++eekpqbywQcfAPDJJ5+Qk5NDUlKS8ZrS0lLGjx+PVqultraWr7/+mmHDhrVWyc2mqqoKpVLJTz/9hJOTU2uXI4S4Ndn4YgLS2RfCzBkMBp588km8vb1vCPqlpaXGf//yyy/x8/MzeS29evW6ZdCHax3lKVOmkJ6ezt69e4mPj6eioqJZn79pCdHixYsJCQlhw4YNDBs2jLS0NIqKihg/fjwPPvggubm5zfq8bcWtmju/v6Havn078fHxFBcXs2/fPv7+97/fMGXmXmVra0t2djZOTk43fB5k7b0QwtzJmn0hzFxWVhaffPIJgwYNwt/fH4CVK1eyfft28vLyUCgU9OvXj40bN7Zypdc4OTmxfft2PvvsMyZOnMgrr7zCxIkT/3KXX6fTkZWVhVqtJisri4CAAGJjY1m1atVNm3+fe+45IiIimDVrFs8++yzR0dHN8ZLaDFdX1xtGnhYXF9+0TGfz5s2kpqYCMHLkSOrq6qioqMDZ2blFa21uHTt2xMvLC7jxBkcm6AghzJ0s4xFCtFllZWXMmTMHa2tr1q5d+6c3EDc0NJCRkUFKSgpHjx4lJCSE2NhYRo8efdvfLFxPr9dTX1+PlZXV3b6ENqWxsRFPT08OHTqEi4sLQUFBbNu2DV9fX+M1DzzwAA8//DDx8fHk5+czbtw4SkpKJBQLIVqC/KAxAQn7Qog2Ta/Xs3XrVtauXctrr71GeHj4LYPnlStX+Prrr0lJSeH06dOMGTOG2NhYRo4cKdNTrrNv3z5eeOEFdDodM2bMYPHixSxZsoTAwEAiIyM5c+YMs2bNoqamBoVCwdq1axk/fnxrly2EaB8k7JuAhH0hxD2hpKSE2bNn07NnT1auXImtrS2XLl3iwIEDqNVqzp49i0qlIiYmhsDAQOlECyHEvUd+cJuAhH0hxD1Dr9fz4Ycfsnr1anr16kV9fT0RERHExsbi5+cnAV8IIe5t8kPcBCTsCyHuOVlZWeh0OsLCwlq7FCGEEM1Hwr4JSNgXQgghhBBtgYR9E5A5+0IIIYQQQpgpCftCCCGEEEKYKQn7QohmlZqaipeXF0qlktWrV7d2OUIIIUS7Jmv2hRDNRqfT4enpSVpaGq6urgQFBbF9+3Z8fHxauzQhhBBtn6zZNwHp7Ashmk1ubi5KpRJ3d3csLS2ZOnUqarW6tcsSQggh2i0J+0KIZlNSUoKbm5vxY1dXV0pKSlqxIiGEEKJ9k7AvhGg2t1oWeK8ddDVjxgycnZ3x8/O75eMGg4HnnnsOpVLJ4MGDOXHiRAtXKIQQQvx5EvaFEM3G1dWVoqIi48fFxcX06dOnFSu6c/Hx8aSmpt728f3791NQUEBBQQGbNm0iISGhBasTQggh7oyEfSFEswkKCqKgoIBffvmFhoYGPv30UyIjI1u7rDsSFhaGg4PDbR9Xq9U89thjKBQKgoODuXjxIqWlpS1YoRBCCPHndWztAoQQ5qNjx44kJSWhUqnQ6XTMmDEDX1/f1i6rWd1uX0Lv3r1bsSohhBDi1iTsCyGaVUREBBEREa1dhsmYw74EIYQQ7Ycs4xFCiDtgDvsShBBCtB8S9oUQ4g5ERkby8ccfYzAYOHLkCHZ2drKERwghRJsly3iEEOI6jzzyCBkZGVRUVODq6sqyZcu4evUqAHPmzCEiIoJ9+/ahVCqxtrZmy5YtrVyxEEIIcXuKW60/vc7/fFAIIYQQQohmIhugTECW8QghhBBCCGGmJOwLIYQQQghhpiTsCyGEEEIIYaYk7AshhBBCCGGmJOwLIYQQQghhpiTsCyGEEEIIYaYk7AshhBBCCGGmJOwLIYQQQghhpiTsCyGEEEIIYaYk7AshhBBCCGGmJOwLIYQQQghhpiTsCyGEEEIIYaYk7AshhBBCCGGmJOwLIYQQQghhpjr+weOKFqlCCCGEEEII0eyksy+EEEIIIYSZkrAvhBBCCCGEmZKwL4QQQgghhJmSsC+EEEIIIYSZkrAvhBBCCCGEmZKwL4QQQgghhJn6f1mq/lrGkSZ6AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 1080x720 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"########################################################################\n",
"#Creando funcion que grafica en 3d con Matplotlib\n",
"########################################################################\n",
"\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"from matplotlib import cm\n",
"from matplotlib.ticker import LinearLocator, FormatStrFormatter\n",
"\n",
"def plot_function_3D(X, Y, Z, ejez=''):\n",
" \n",
" Z = Z.T\n",
" X, Y = np.meshgrid(X, Y)\n",
"\n",
" # Creando el gráfico\n",
" fig = plt.figure(figsize=(15, 10))\n",
" ax = fig.gca(projection='3d')\n",
" ax.mouse_init()\n",
" surf = ax.plot_surface(X, Y, Z, cmap=cm.viridis, linewidth=0, antialiased=False)\n",
"\n",
" #Formateando el eje z\n",
" ax.zaxis.set_major_locator(LinearLocator(10))\n",
" ax.zaxis.set_major_formatter(FormatStrFormatter('%.2f'))\n",
"\n",
" ax.set_xlabel('$Asset Price$')\n",
" ax.set_ylabel('$Time to Maturity$')\n",
" ax.set_zlabel(ejez)\n",
"\n",
" #Añadiendo la barra de color\n",
" fig.colorbar(surf, shrink=0.5, aspect=15)\n",
"\n",
" #Girando el gráfico\n",
" ax.view_init(None, 145)\n",
"\n",
" plt.show()\n",
" \n",
"z = np.ones((200,100))\n",
" \n",
"for i in range(0,200):\n",
" for j in range(0, 100):\n",
" S = (i + 1)\n",
" T = (j + 1)/100\n",
" z[i,j] = (BS_Vanilla_Call(S, 50, T, 0.05, 0.25)\n",
" -2*BS_Vanilla_Call(S, 100, T, 0.05, 0.25)\n",
" +BS_Vanilla_Call(S, 150, T, 0.05, 0.25))\n",
" \n",
"x = np.arange(1,201)\n",
"y = np.arange(1,101)/100\n",
"plot_function_3D(x, y, z, '$Option Value$')"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
" <script type=\"text/javascript\">\n",
" window.PlotlyConfig = {MathJaxConfig: 'local'};\n",
" if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}\n",
" if (typeof require !== 'undefined') {\n",
" require.undef(\"plotly\");\n",
" define('plotly', function(require, exports, module) {\n",
" /**\n",
"* plotly.js v1.51.1\n",
"* Copyright 2012-2019, Plotly, Inc.\n",
"* All rights reserved.\n",
"* Licensed under the MIT license\n",
"*/\n",
"!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).Plotly=t()}}(function(){return function(){return function t(e,r,n){function a(o,s){if(!r[o]){if(!e[o]){var l=\"function\"==typeof require&&require;if(!s&&l)return l(o,!0);if(i)return i(o,!0);var c=new Error(\"Cannot find module '\"+o+\"'\");throw c.code=\"MODULE_NOT_FOUND\",c}var u=r[o]={exports:{}};e[o][0].call(u.exports,function(t){return a(e[o][1][t]||t)},u,u.exports,t,e,r,n)}return r[o].exports}for(var i=\"function\"==typeof require&&require,o=0;o<n.length;o++)a(n[o]);return a}}()({1:[function(t,e,r){\"use strict\";var n=t(\"../src/lib\"),a={\"X,X div\":\"direction:ltr;font-family:'Open Sans', verdana, arial, sans-serif;margin:0;padding:0;\",\"X input,X button\":\"font-family:'Open Sans', verdana, arial, sans-serif;\",\"X input:focus,X button:focus\":\"outline:none;\",\"X a\":\"text-decoration:none;\",\"X a:hover\":\"text-decoration:none;\",\"X .crisp\":\"shape-rendering:crispEdges;\",\"X .user-select-none\":\"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;\",\"X svg\":\"overflow:hidden;\",\"X svg a\":\"fill:#447adb;\",\"X svg a:hover\":\"fill:#3c6dc5;\",\"X .main-svg\":\"position:absolute;top:0;left:0;pointer-events:none;\",\"X .main-svg .draglayer\":\"pointer-events:all;\",\"X .cursor-default\":\"cursor:default;\",\"X .cursor-pointer\":\"cursor:pointer;\",\"X .cursor-crosshair\":\"cursor:crosshair;\",\"X .cursor-move\":\"cursor:move;\",\"X .cursor-col-resize\":\"cursor:col-resize;\",\"X .cursor-row-resize\":\"cursor:row-resize;\",\"X .cursor-ns-resize\":\"cursor:ns-resize;\",\"X .cursor-ew-resize\":\"cursor:ew-resize;\",\"X .cursor-sw-resize\":\"cursor:sw-resize;\",\"X .cursor-s-resize\":\"cursor:s-resize;\",\"X .cursor-se-resize\":\"cursor:se-resize;\",\"X .cursor-w-resize\":\"cursor:w-resize;\",\"X .cursor-e-resize\":\"cursor:e-resize;\",\"X .cursor-nw-resize\":\"cursor:nw-resize;\",\"X .cursor-n-resize\":\"cursor:n-resize;\",\"X .cursor-ne-resize\":\"cursor:ne-resize;\",\"X .cursor-grab\":\"cursor:-webkit-grab;cursor:grab;\",\"X .modebar\":\"position:absolute;top:2px;right:2px;\",\"X .ease-bg\":\"-webkit-transition:background-color 0.3s ease 0s;-moz-transition:background-color 0.3s ease 0s;-ms-transition:background-color 0.3s ease 0s;-o-transition:background-color 0.3s ease 0s;transition:background-color 0.3s ease 0s;\",\"X .modebar--hover>:not(.watermark)\":\"opacity:0;-webkit-transition:opacity 0.3s ease 0s;-moz-transition:opacity 0.3s ease 0s;-ms-transition:opacity 0.3s ease 0s;-o-transition:opacity 0.3s ease 0s;transition:opacity 0.3s ease 0s;\",\"X:hover .modebar--hover .modebar-group\":\"opacity:1;\",\"X .modebar-group\":\"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;\",\"X .modebar-btn\":\"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;\",\"X .modebar-btn svg\":\"position:relative;top:2px;\",\"X .modebar.vertical\":\"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;\",\"X .modebar.vertical svg\":\"top:-1px;\",\"X .modebar.vertical .modebar-group\":\"display:block;float:none;padding-left:0px;padding-bottom:8px;\",\"X .modebar.vertical .modebar-group .modebar-btn\":\"display:block;text-align:center;\",\"X [data-title]:before,X [data-title]:after\":\"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;\",\"X [data-title]:hover:before,X [data-title]:hover:after\":\"display:block;opacity:1;\",\"X [data-title]:before\":\"content:'';position:absolute;background:transparent;border:6px solid transparent;z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;\",\"X [data-title]:after\":\"content:attr(data-title);background:#69738a;color:white;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;\",\"X .vertical [data-title]:before,X .vertical [data-title]:after\":\"top:0%;right:200%;\",\"X .vertical [data-title]:before\":\"border:6px solid transparent;border-left-color:#69738a;margin-top:8px;margin-right:-30px;\",\"X .select-outline\":\"fill:none;stroke-width:1;shape-rendering:crispEdges;\",\"X .select-outline-1\":\"stroke:white;\",\"X .select-outline-2\":\"stroke:black;stroke-dasharray:2px 2px;\",Y:\"font-family:'Open Sans';position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;\",\"Y p\":\"margin:0;\",\"Y .notifier-note\":\"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,0.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;\",\"Y .notifier-close\":\"color:#fff;opacity:0.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;\",\"Y .notifier-close:hover\":\"color:#444;text-decoration:none;cursor:pointer;\"};for(var i in a){var o=i.replace(/^,/,\" ,\").replace(/X/g,\".js-plotly-plot .plotly\").replace(/Y/g,\".plotly-notifier\");n.addStyleRule(o,a[i])}},{\"../src/lib\":716}],2:[function(t,e,r){\"use strict\";e.exports=t(\"../src/transforms/aggregate\")},{\"../src/transforms/aggregate\":1285}],3:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/bar\")},{\"../src/traces/bar\":862}],4:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/barpolar\")},{\"../src/traces/barpolar\":874}],5:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/box\")},{\"../src/traces/box\":884}],6:[function(t,e,r){\"use strict\";e.exports=t(\"../src/components/calendars\")},{\"../src/components/calendars\":589}],7:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/candlestick\")},{\"../src/traces/candlestick\":893}],8:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/carpet\")},{\"../src/traces/carpet\":912}],9:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/choropleth\")},{\"../src/traces/choropleth\":926}],10:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/choroplethmapbox\")},{\"../src/traces/choroplethmapbox\":933}],11:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/cone\")},{\"../src/traces/cone\":939}],12:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/contour\")},{\"../src/traces/contour\":954}],13:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/contourcarpet\")},{\"../src/traces/contourcarpet\":965}],14:[function(t,e,r){\"use strict\";e.exports=t(\"../src/core\")},{\"../src/core\":694}],15:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/densitymapbox\")},{\"../src/traces/densitymapbox\":973}],16:[function(t,e,r){\"use strict\";e.exports=t(\"../src/transforms/filter\")},{\"../src/transforms/filter\":1286}],17:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/funnel\")},{\"../src/traces/funnel\":983}],18:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/funnelarea\")},{\"../src/traces/funnelarea\":992}],19:[function(t,e,r){\"use strict\";e.exports=t(\"../src/transforms/groupby\")},{\"../src/transforms/groupby\":1287}],20:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/heatmap\")},{\"../src/traces/heatmap\":1005}],21:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/heatmapgl\")},{\"../src/traces/heatmapgl\":1014}],22:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/histogram\")},{\"../src/traces/histogram\":1026}],23:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/histogram2d\")},{\"../src/traces/histogram2d\":1032}],24:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/histogram2dcontour\")},{\"../src/traces/histogram2dcontour\":1036}],25:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/image\")},{\"../src/traces/image\":1043}],26:[function(t,e,r){\"use strict\";var n=t(\"./core\");n.register([t(\"./bar\"),t(\"./box\"),t(\"./heatmap\"),t(\"./histogram\"),t(\"./histogram2d\"),t(\"./histogram2dcontour\"),t(\"./contour\"),t(\"./scatterternary\"),t(\"./violin\"),t(\"./funnel\"),t(\"./waterfall\"),t(\"./image\"),t(\"./pie\"),t(\"./sunburst\"),t(\"./treemap\"),t(\"./funnelarea\"),t(\"./scatter3d\"),t(\"./surface\"),t(\"./isosurface\"),t(\"./volume\"),t(\"./mesh3d\"),t(\"./cone\"),t(\"./streamtube\"),t(\"./scattergeo\"),t(\"./choropleth\"),t(\"./scattergl\"),t(\"./splom\"),t(\"./pointcloud\"),t(\"./heatmapgl\"),t(\"./parcoords\"),t(\"./parcats\"),t(\"./scattermapbox\"),t(\"./choroplethmapbox\"),t(\"./densitymapbox\"),t(\"./sankey\"),t(\"./indicator\"),t(\"./table\"),t(\"./carpet\"),t(\"./scattercarpet\"),t(\"./contourcarpet\"),t(\"./ohlc\"),t(\"./candlestick\"),t(\"./scatterpolar\"),t(\"./scatterpolargl\"),t(\"./barpolar\")]),n.register([t(\"./aggregate\"),t(\"./filter\"),t(\"./groupby\"),t(\"./sort\")]),n.register([t(\"./calendars\")]),e.exports=n},{\"./aggregate\":2,\"./bar\":3,\"./barpolar\":4,\"./box\":5,\"./calendars\":6,\"./candlestick\":7,\"./carpet\":8,\"./choropleth\":9,\"./choroplethmapbox\":10,\"./cone\":11,\"./contour\":12,\"./contourcarpet\":13,\"./core\":14,\"./densitymapbox\":15,\"./filter\":16,\"./funnel\":17,\"./funnelarea\":18,\"./groupby\":19,\"./heatmap\":20,\"./heatmapgl\":21,\"./histogram\":22,\"./histogram2d\":23,\"./histogram2dcontour\":24,\"./image\":25,\"./indicator\":27,\"./isosurface\":28,\"./mesh3d\":29,\"./ohlc\":30,\"./parcats\":31,\"./parcoords\":32,\"./pie\":33,\"./pointcloud\":34,\"./sankey\":35,\"./scatter3d\":36,\"./scattercarpet\":37,\"./scattergeo\":38,\"./scattergl\":39,\"./scattermapbox\":40,\"./scatterpolar\":41,\"./scatterpolargl\":42,\"./scatterternary\":43,\"./sort\":44,\"./splom\":45,\"./streamtube\":46,\"./sunburst\":47,\"./surface\":48,\"./table\":49,\"./treemap\":50,\"./violin\":51,\"./volume\":52,\"./waterfall\":53}],27:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/indicator\")},{\"../src/traces/indicator\":1051}],28:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/isosurface\")},{\"../src/traces/isosurface\":1057}],29:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/mesh3d\")},{\"../src/traces/mesh3d\":1062}],30:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/ohlc\")},{\"../src/traces/ohlc\":1067}],31:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/parcats\")},{\"../src/traces/parcats\":1076}],32:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/parcoords\")},{\"../src/traces/parcoords\":1086}],33:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/pie\")},{\"../src/traces/pie\":1097}],34:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/pointcloud\")},{\"../src/traces/pointcloud\":1106}],35:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/sankey\")},{\"../src/traces/sankey\":1112}],36:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scatter3d\")},{\"../src/traces/scatter3d\":1148}],37:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scattercarpet\")},{\"../src/traces/scattercarpet\":1154}],38:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scattergeo\")},{\"../src/traces/scattergeo\":1161}],39:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scattergl\")},{\"../src/traces/scattergl\":1172}],40:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scattermapbox\")},{\"../src/traces/scattermapbox\":1181}],41:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scatterpolar\")},{\"../src/traces/scatterpolar\":1188}],42:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scatterpolargl\")},{\"../src/traces/scatterpolargl\":1194}],43:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/scatterternary\")},{\"../src/traces/scatterternary\":1201}],44:[function(t,e,r){\"use strict\";e.exports=t(\"../src/transforms/sort\")},{\"../src/transforms/sort\":1289}],45:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/splom\")},{\"../src/traces/splom\":1210}],46:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/streamtube\")},{\"../src/traces/streamtube\":1218}],47:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/sunburst\")},{\"../src/traces/sunburst\":1226}],48:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/surface\")},{\"../src/traces/surface\":1235}],49:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/table\")},{\"../src/traces/table\":1243}],50:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/treemap\")},{\"../src/traces/treemap\":1252}],51:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/violin\")},{\"../src/traces/violin\":1264}],52:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/volume\")},{\"../src/traces/volume\":1272}],53:[function(t,e,r){\"use strict\";e.exports=t(\"../src/traces/waterfall\")},{\"../src/traces/waterfall\":1280}],54:[function(t,e,r){\"use strict\";e.exports=function(t){var e=(t=t||{}).eye||[0,0,1],r=t.center||[0,0,0],s=t.up||[0,1,0],l=t.distanceLimits||[0,1/0],c=t.mode||\"turntable\",u=n(),h=a(),f=i();return u.setDistanceLimits(l[0],l[1]),u.lookAt(0,e,r,s),h.setDistanceLimits(l[0],l[1]),h.lookAt(0,e,r,s),f.setDistanceLimits(l[0],l[1]),f.lookAt(0,e,r,s),new o({turntable:u,orbit:h,matrix:f},c)};var n=t(\"turntable-camera-controller\"),a=t(\"orbit-camera-controller\"),i=t(\"matrix-camera-controller\");function o(t,e){this._controllerNames=Object.keys(t),this._controllerList=this._controllerNames.map(function(e){return t[e]}),this._mode=e,this._active=t[e],this._active||(this._mode=\"turntable\",this._active=t.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}var s=o.prototype;[[\"flush\",1],[\"idle\",1],[\"lookAt\",4],[\"rotate\",4],[\"pan\",4],[\"translate\",4],[\"setMatrix\",2],[\"setDistanceLimits\",2],[\"setDistance\",2]].forEach(function(t){for(var e=t[0],r=[],n=0;n<t[1];++n)r.push(\"a\"+n);var a=\"var cc=this._controllerList;for(var i=0;i<cc.length;++i){cc[i].\"+t[0]+\"(\"+r.join()+\")}\";s[e]=Function.apply(null,r.concat(a))}),s.recalcMatrix=function(t){this._active.recalcMatrix(t)},s.getDistance=function(t){return this._active.getDistance(t)},s.getDistanceLimits=function(t){return this._active.getDistanceLimits(t)},s.lastT=function(){return this._active.lastT()},s.setMode=function(t){if(t!==this._mode){var e=this._controllerNames.indexOf(t);if(!(e<0)){var r=this._active,n=this._controllerList[e],a=Math.max(r.lastT(),n.lastT());r.recalcMatrix(a),n.setMatrix(a,r.computedMatrix),this._active=n,this._mode=t,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}}},s.getMode=function(){return this._mode}},{\"matrix-camera-controller\":434,\"orbit-camera-controller\":457,\"turntable-camera-controller\":540}],55:[function(t,e,r){var n,a;n=this,a=function(t,e,r,n,a){\"use strict\";function i(t){return t.target.depth}function o(t,e){return t.sourceLinks.length?t.depth:e-1}function s(t){return function(){return t}}a=a&&a.hasOwnProperty(\"default\")?a.default:a;var l=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};function c(t,e){return h(t.source,e.source)||t.index-e.index}function u(t,e){return h(t.target,e.target)||t.index-e.index}function h(t,e){return t.partOfCycle===e.partOfCycle?t.y0-e.y0:\"top\"===t.circularLinkType||\"bottom\"===e.circularLinkType?-1:1}function f(t){return t.value}function p(t){return(t.y0+t.y1)/2}function d(t){return p(t.source)}function g(t){return p(t.target)}function v(t){return t.index}function m(t){return t.nodes}function y(t){return t.links}function x(t,e){var r=t.get(e);if(!r)throw new Error(\"missing: \"+e);return r}function b(t,e){return e(t)}var _=25,w=10,k=.3;function T(t,e){var r=0,n=0;t.links.forEach(function(a){a.circular&&(a.source.circularLinkType||a.target.circularLinkType?a.circularLinkType=a.source.circularLinkType?a.source.circularLinkType:a.target.circularLinkType:a.circularLinkType=r<n?\"top\":\"bottom\",\"top\"==a.circularLinkType?r+=1:n+=1,t.nodes.forEach(function(t){b(t,e)!=b(a.source,e)&&b(t,e)!=b(a.target,e)||(t.circularLinkType=a.circularLinkType)}))}),t.links.forEach(function(t){t.circular&&(t.source.circularLinkType==t.target.circularLinkType&&(t.circularLinkType=t.source.circularLinkType),Y(t,e)&&(t.circularLinkType=t.source.circularLinkType))})}function A(t){var e=Math.abs(t.y1-t.y0),r=Math.abs(t.target.x0-t.source.x1);return Math.atan(r/e)}function M(t,e){var r=0;t.sourceLinks.forEach(function(t){r=t.circular&&!Y(t,e)?r+1:r});var n=0;return t.targetLinks.forEach(function(t){n=t.circular&&!Y(t,e)?n+1:n}),r+n}function S(t){var e=t.source.sourceLinks,r=0;e.forEach(function(t){r=t.circular?r+1:r});var n=t.target.targetLinks,a=0;return n.forEach(function(t){a=t.circular?a+1:a}),!(r>1||a>1)}function E(t,e,r){return t.sort(L),t.forEach(function(n,a){var i,o,s=0;if(Y(n,r)&&S(n))n.circularPathData.verticalBuffer=s+n.width/2;else{for(var l=0;l<a;l++)if(i=t[a],o=t[l],!(i.source.column<o.target.column||i.target.column>o.source.column)){var c=t[l].circularPathData.verticalBuffer+t[l].width/2+e;s=c>s?c:s}n.circularPathData.verticalBuffer=s+n.width/2}}),t}function C(t,r,a,i){var o=e.min(t.links,function(t){return t.source.y0});t.links.forEach(function(t){t.circular&&(t.circularPathData={})}),E(t.links.filter(function(t){return\"top\"==t.circularLinkType}),r,i),E(t.links.filter(function(t){return\"bottom\"==t.circularLinkType}),r,i),t.links.forEach(function(e){if(e.circular){if(e.circularPathData.arcRadius=e.width+w,e.circularPathData.leftNodeBuffer=5,e.circularPathData.rightNodeBuffer=5,e.circularPathData.sourceWidth=e.source.x1-e.source.x0,e.circularPathData.sourceX=e.source.x0+e.circularPathData.sourceWidth,e.circularPathData.targetX=e.target.x0,e.circularPathData.sourceY=e.y0,e.circularPathData.targetY=e.y1,Y(e,i)&&S(e))e.circularPathData.leftSmallArcRadius=w+e.width/2,e.circularPathData.leftLargeArcRadius=w+e.width/2,e.circularPathData.rightSmallArcRadius=w+e.width/2,e.circularPathData.rightLargeArcRadius=w+e.width/2,\"bottom\"==e.circularLinkType?(e.circularPathData.verticalFullExtent=e.source.y1+_+e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.rightLargeArcRadius):(e.circularPathData.verticalFullExtent=e.source.y0-_-e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.rightLargeArcRadius);else{var s=e.source.column,l=e.circularLinkType,c=t.links.filter(function(t){return t.source.column==s&&t.circularLinkType==l});\"bottom\"==e.circularLinkType?c.sort(O):c.sort(P);var u=0;c.forEach(function(t,n){t.circularLinkID==e.circularLinkID&&(e.circularPathData.leftSmallArcRadius=w+e.width/2+u,e.circularPathData.leftLargeArcRadius=w+e.width/2+n*r+u),u+=t.width}),s=e.target.column,c=t.links.filter(function(t){return t.target.column==s&&t.circularLinkType==l}),\"bottom\"==e.circularLinkType?c.sort(I):c.sort(z),u=0,c.forEach(function(t,n){t.circularLinkID==e.circularLinkID&&(e.circularPathData.rightSmallArcRadius=w+e.width/2+u,e.circularPathData.rightLargeArcRadius=w+e.width/2+n*r+u),u+=t.width}),\"bottom\"==e.circularLinkType?(e.circularPathData.verticalFullExtent=Math.max(a,e.source.y1,e.target.y1)+_+e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.rightLargeArcRadius):(e.circularPathData.verticalFullExtent=o-_-e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.rightLargeArcRadius)}e.circularPathData.leftInnerExtent=e.circularPathData.sourceX+e.circularPathData.leftNodeBuffer,e.circularPathData.rightInnerExtent=e.circularPathData.targetX-e.circularPathData.rightNodeBuffer,e.circularPathData.leftFullExtent=e.circularPathData.sourceX+e.circularPathData.leftLargeArcRadius+e.circularPathData.leftNodeBuffer,e.circularPathData.rightFullExtent=e.circularPathData.targetX-e.circularPathData.rightLargeArcRadius-e.circularPathData.rightNodeBuffer}if(e.circular)e.path=function(t){var e=\"\";e=\"top\"==t.circularLinkType?\"M\"+t.circularPathData.sourceX+\" \"+t.circularPathData.sourceY+\" L\"+t.circularPathData.leftInnerExtent+\" \"+t.circularPathData.sourceY+\" A\"+t.circularPathData.leftLargeArcRadius+\" \"+t.circularPathData.leftSmallArcRadius+\" 0 0 0 \"+t.circularPathData.leftFullExtent+\" \"+(t.circularPathData.sourceY-t.circularPathData.leftSmallArcRadius)+\" L\"+t.circularPathData.leftFullExtent+\" \"+t.circularPathData.verticalLeftInnerExtent+\" A\"+t.circularPathData.leftLargeArcRadius+\" \"+t.circularPathData.leftLargeArcRadius+\" 0 0 0 \"+t.circularPathData.leftInnerExtent+\" \"+t.circularPathData.verticalFullExtent+\" L\"+t.circularPathData.rightInnerExtent+\" \"+t.circularPathData.verticalFullExtent+\" A\"+t.circularPathData.rightLargeArcRadius+\" \"+t.circularPathData.rightLargeArcRadius+\" 0 0 0 \"+t.circularPathData.rightFullExtent+\" \"+t.circularPathData.verticalRightInnerExtent+\" L\"+t.circularPathData.rightFullExtent+\" \"+(t.circularPathData.targetY-t.circularPathData.rightSmallArcRadius)+\" A\"+t.circularPathData.rightLargeArcRadius+\" \"+t.circularPathData.rightSmallArcRadius+\" 0 0 0 \"+t.circularPathData.rightInnerExtent+\" \"+t.circularPathData.targetY+\" L\"+t.circularPathData.targetX+\" \"+t.circularPathData.targetY:\"M\"+t.circularPathData.sourceX+\" \"+t.circularPathData.sourceY+\" L\"+t.circularPathData.leftInnerExtent+\" \"+t.circularPathData.sourceY+\" A\"+t.circularPathData.leftLargeArcRadius+\" \"+t.circularPathData.leftSmallArcRadius+\" 0 0 1 \"+t.circularPathData.leftFullExtent+\" \"+(t.circularPathData.sourceY+t.circularPathData.leftSmallArcRadius)+\" L\"+t.circularPathData.leftFullExtent+\" \"+t.circularPathData.verticalLeftInnerExtent+\" A\"+t.circularPathData.leftLargeArcRadius+\" \"+t.circularPathData.leftLargeArcRadius+\" 0 0 1 \"+t.circularPathData.leftInnerExtent+\" \"+t.circularPathData.verticalFullExtent+\" L\"+t.circularPathData.rightInnerExtent+\" \"+t.circularPathData.verticalFullExtent+\" A\"+t.circularPathData.rightLargeArcRadius+\" \"+t.circularPathData.rightLargeArcRadius+\" 0 0 1 \"+t.circularPathData.rightFullExtent+\" \"+t.circularPathData.verticalRightInnerExtent+\" L\"+t.circularPathData.rightFullExtent+\" \"+(t.circularPathData.targetY+t.circularPathData.rightSmallArcRadius)+\" A\"+t.circularPathData.rightLargeArcRadius+\" \"+t.circularPathData.rightSmallArcRadius+\" 0 0 1 \"+t.circularPathData.rightInnerExtent+\" \"+t.circularPathData.targetY+\" L\"+t.circularPathData.targetX+\" \"+t.circularPathData.targetY;return e}(e);else{var h=n.linkHorizontal().source(function(t){return[t.source.x0+(t.source.x1-t.source.x0),t.y0]}).target(function(t){return[t.target.x0,t.y1]});e.path=h(e)}})}function L(t,e){return D(t)==D(e)?\"bottom\"==t.circularLinkType?O(t,e):P(t,e):D(e)-D(t)}function P(t,e){return t.y0-e.y0}function O(t,e){return e.y0-t.y0}function z(t,e){return t.y1-e.y1}function I(t,e){return e.y1-t.y1}function D(t){return t.target.column-t.source.column}function R(t){return t.target.x0-t.source.x1}function F(t,e){var r=A(t),n=R(e)/Math.tan(r);return\"up\"==G(t)?t.y1+n:t.y1-n}function B(t,e){var r=A(t),n=R(e)/Math.tan(r);return\"up\"==G(t)?t.y1-n:t.y1+n}function N(t,e,r,n){t.links.forEach(function(a){if(!a.circular&&a.target.column-a.source.column>1){var i=a.source.column+1,o=a.target.column-1,s=1,l=o-i+1;for(s=1;i<=o;i++,s++)t.nodes.forEach(function(o){if(o.column==i){var c,u=s/(l+1),h=Math.pow(1-u,3),f=3*u*Math.pow(1-u,2),p=3*Math.pow(u,2)*(1-u),d=Math.pow(u,3),g=h*a.y0+f*a.y0+p*a.y1+d*a.y1,v=g-a.width/2,m=g+a.width/2;v>o.y0&&v<o.y1?(c=o.y1-v+10,c=\"bottom\"==o.circularLinkType?c:-c,o=V(o,c,e,r),t.nodes.forEach(function(t){b(t,n)!=b(o,n)&&t.column==o.column&&j(o,t)&&V(t,c,e,r)})):m>o.y0&&m<o.y1?(c=m-o.y0+10,o=V(o,c,e,r),t.nodes.forEach(function(t){b(t,n)!=b(o,n)&&t.column==o.column&&t.y0<o.y1&&t.y1>o.y1&&V(t,c,e,r)})):v<o.y0&&m>o.y1&&(c=m-o.y0+10,o=V(o,c,e,r),t.nodes.forEach(function(t){b(t,n)!=b(o,n)&&t.column==o.column&&t.y0<o.y1&&t.y1>o.y1&&V(t,c,e,r)}))}})}})}function j(t,e){return t.y0>e.y0&&t.y0<e.y1||(t.y1>e.y0&&t.y1<e.y1||t.y0<e.y0&&t.y1>e.y1)}function V(t,e,r,n){return t.y0+e>=r&&t.y1+e<=n&&(t.y0=t.y0+e,t.y1=t.y1+e,t.targetLinks.forEach(function(t){t.y1=t.y1+e}),t.sourceLinks.forEach(function(t){t.y0=t.y0+e})),t}function U(t,e,r,n){t.nodes.forEach(function(a){n&&a.y+(a.y1-a.y0)>e&&(a.y=a.y-(a.y+(a.y1-a.y0)-e));var i=t.links.filter(function(t){return b(t.source,r)==b(a,r)}),o=i.length;o>1&&i.sort(function(t,e){if(!t.circular&&!e.circular){if(t.target.column==e.target.column)return t.y1-e.y1;if(!H(t,e))return t.y1-e.y1;if(t.target.column>e.target.column){var r=B(e,t);return t.y1-r}if(e.target.column>t.target.column)return B(t,e)-e.y1}return t.circular&&!e.circular?\"top\"==t.circularLinkType?-1:1:e.circular&&!t.circular?\"top\"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&\"top\"==t.circularLinkType?t.target.column===e.target.column?t.target.y1-e.target.y1:e.target.column-t.target.column:t.circularLinkType===e.circularLinkType&&\"bottom\"==t.circularLinkType?t.target.column===e.target.column?e.target.y1-t.target.y1:t.target.column-e.target.column:\"top\"==t.circularLinkType?-1:1:void 0});var s=a.y0;i.forEach(function(t){t.y0=s+t.width/2,s+=t.width}),i.forEach(function(t,e){if(\"bottom\"==t.circularLinkType){for(var r=e+1,n=0;r<o;r++)n+=i[r].width;t.y0=a.y1-n-t.width/2}})})}function q(t,e,r){t.nodes.forEach(function(e){var n=t.links.filter(function(t){return b(t.target,r)==b(e,r)}),a=n.length;a>1&&n.sort(function(t,e){if(!t.circular&&!e.circular){if(t.source.column==e.source.column)return t.y0-e.y0;if(!H(t,e))return t.y0-e.y0;if(e.source.column<t.source.column){var r=F(e,t);return t.y0-r}if(t.source.column<e.source.column)return F(t,e)-e.y0}return t.circular&&!e.circular?\"top\"==t.circularLinkType?-1:1:e.circular&&!t.circular?\"top\"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&\"top\"==t.circularLinkType?t.source.column===e.source.column?t.source.y1-e.source.y1:t.source.column-e.source.column:t.circularLinkType===e.circularLinkType&&\"bottom\"==t.circularLinkType?t.source.column===e.source.column?t.source.y1-e.source.y1:e.source.column-t.source.column:\"top\"==t.circularLinkType?-1:1:void 0});var i=e.y0;n.forEach(function(t){t.y1=i+t.width/2,i+=t.width}),n.forEach(function(t,r){if(\"bottom\"==t.circularLinkType){for(var i=r+1,o=0;i<a;i++)o+=n[i].width;t.y1=e.y1-o-t.width/2}})})}function H(t,e){return G(t)==G(e)}function G(t){return t.y0-t.y1>0?\"up\":\"down\"}function Y(t,e){return b(t.source,e)==b(t.target,e)}t.sankeyCircular=function(){var t,n,i=0,b=0,A=1,S=1,E=24,L=v,P=o,O=m,z=y,I=32,D=2,R=null;function F(){var o={nodes:O.apply(null,arguments),links:z.apply(null,arguments)};!function(t){t.nodes.forEach(function(t,e){t.index=e,t.sourceLinks=[],t.targetLinks=[]});var e=r.map(t.nodes,L);t.links.forEach(function(t,r){t.index=r;var n=t.source,a=t.target;\"object\"!==(\"undefined\"==typeof n?\"undefined\":l(n))&&(n=t.source=x(e,n)),\"object\"!==(\"undefined\"==typeof a?\"undefined\":l(a))&&(a=t.target=x(e,a)),n.sourceLinks.push(t),a.targetLinks.push(t)})}(o),function(t,e,r){var n=0;if(null===r){for(var i=[],o=0;o<t.links.length;o++){var s=t.links[o],l=s.source.index,c=s.target.index;i[l]||(i[l]=[]),i[c]||(i[c]=[]),-1===i[l].indexOf(c)&&i[l].push(c)}var u=a(i);u.sort(function(t,e){return t.length-e.length});var h={};for(o=0;o<u.length;o++){var f=u[o],p=f.slice(-2);h[p[0]]||(h[p[0]]={}),h[p[0]][p[1]]=!0}t.links.forEach(function(t){var e=t.target.index,r=t.source.index;e===r||h[r]&&h[r][e]?(t.circular=!0,t.circularLinkID=n,n+=1):t.circular=!1})}else t.links.forEach(function(t){t.source[r]<t.target[r]?t.circular=!1:(t.circular=!0,t.circularLinkID=n,n+=1)})}(o,0,R),function(t){t.nodes.forEach(function(t){t.partOfCycle=!1,t.value=Math.max(e.sum(t.sourceLinks,f),e.sum(t.targetLinks,f)),t.sourceLinks.forEach(function(e){e.circular&&(t.partOfCycle=!0,t.circularLinkType=e.circularLinkType)}),t.targetLinks.forEach(function(e){e.circular&&(t.partOfCycle=!0,t.circularLinkType=e.circularLinkType)})})}(o),function(t){var e,r,n;for(e=t.nodes,r=[],n=0;e.length;++n,e=r,r=[])e.forEach(function(t){t.depth=n,t.sourceLinks.forEach(function(t){r.indexOf(t.target)<0&&!t.circular&&r.push(t.target)})});for(e=t.nodes,r=[],n=0;e.length;++n,e=r,r=[])e.forEach(function(t){t.height=n,t.targetLinks.forEach(function(t){r.indexOf(t.source)<0&&!t.circular&&r.push(t.source)})});t.nodes.forEach(function(t){t.column=Math.floor(P.call(null,t,n))})}(o),T(o,L),function(a,o,s){var l=r.nest().key(function(t){return t.column}).sortKeys(e.ascending).entries(a.nodes).map(function(t){return t.values});(function(r){if(n){var o=1/0;l.forEach(function(t){var e=S*n/(t.length+1);o=e<o?e:o}),t=o}var s=e.min(l,function(r){return(S-b-(r.length-1)*t)/e.sum(r,f)});s*=k,a.links.forEach(function(t){t.width=t.value*s});var c=function(t){var r=0,n=0,a=0,i=0,o=e.max(t.nodes,function(t){return t.column});return t.links.forEach(function(t){t.circular&&(\"top\"==t.circularLinkType?r+=t.width:n+=t.width,0==t.target.column&&(i+=t.width),t.source.column==o&&(a+=t.width))}),{top:r=r>0?r+_+w:r,bottom:n=n>0?n+_+w:n,left:i=i>0?i+_+w:i,right:a=a>0?a+_+w:a}}(a),u=function(t,r){var n=e.max(t.nodes,function(t){return t.column}),a=A-i,o=S-b,s=a+r.right+r.left,l=o+r.top+r.bottom,c=a/s,u=o/l;return i=i*c+r.left,A=0==r.right?A:A*c,b=b*u+r.top,S*=u,t.nodes.forEach(function(t){t.x0=i+t.column*((A-i-E)/n),t.x1=t.x0+E}),u}(a,c);s*=u,a.links.forEach(function(t){t.width=t.value*s}),l.forEach(function(t){var e=t.length;t.forEach(function(t,n){t.depth==l.length-1&&1==e?(t.y0=S/2-t.value*s,t.y1=t.y0+t.value*s):0==t.depth&&1==e?(t.y0=S/2-t.value*s,t.y1=t.y0+t.value*s):t.partOfCycle?0==M(t,r)?(t.y0=S/2+n,t.y1=t.y0+t.value*s):\"top\"==t.circularLinkType?(t.y0=b+n,t.y1=t.y0+t.value*s):(t.y0=S-t.value*s-n,t.y1=t.y0+t.value*s):0==c.top||0==c.bottom?(t.y0=(S-b)/e*n,t.y1=t.y0+t.value*s):(t.y0=(S-b)/2-e/2+n,t.y1=t.y0+t.value*s)})})})(s),m();for(var c=1,u=o;u>0;--u)v(c*=.99,s),m();function v(t,r){var n=l.length;l.forEach(function(a){var i=a.length,o=a[0].depth;a.forEach(function(a){var s;if(a.sourceLinks.length||a.targetLinks.length)if(a.partOfCycle&&M(a,r)>0);else if(0==o&&1==i)s=a.y1-a.y0,a.y0=S/2-s/2,a.y1=S/2+s/2;else if(o==n-1&&1==i)s=a.y1-a.y0,a.y0=S/2-s/2,a.y1=S/2+s/2;else{var l=e.mean(a.sourceLinks,g),c=e.mean(a.targetLinks,d),u=((l&&c?(l+c)/2:l||c)-p(a))*t;a.y0+=u,a.y1+=u}})})}function m(){l.forEach(function(e){var r,n,a,i=b,o=e.length;for(e.sort(h),a=0;a<o;++a)r=e[a],(n=i-r.y0)>0&&(r.y0+=n,r.y1+=n),i=r.y1+t;if((n=i-t-S)>0)for(i=r.y0-=n,r.y1-=n,a=o-2;a>=0;--a)r=e[a],(n=r.y1+t-i)>0&&(r.y0-=n,r.y1-=n),i=r.y0})}}(o,I,L),B(o);for(var s=0;s<4;s++)U(o,S,L),q(o,0,L),N(o,b,S,L),U(o,S,L),q(o,0,L);return function(t,r,n){var a=t.nodes,i=t.links,o=!1,s=!1;if(i.forEach(function(t){\"top\"==t.circularLinkType?o=!0:\"bottom\"==t.circularLinkType&&(s=!0)}),0==o||0==s){var l=e.min(a,function(t){return t.y0}),c=e.max(a,function(t){return t.y1}),u=c-l,h=n-r,f=h/u;a.forEach(function(t){var e=(t.y1-t.y0)*f;t.y0=(t.y0-l)*f,t.y1=t.y0+e}),i.forEach(function(t){t.y0=(t.y0-l)*f,t.y1=(t.y1-l)*f,t.width=t.width*f})}}(o,b,S),C(o,D,S,L),o}function B(t){t.nodes.forEach(function(t){t.sourceLinks.sort(u),t.targetLinks.sort(c)}),t.nodes.forEach(function(t){var e=t.y0,r=e,n=t.y1,a=n;t.sourceLinks.forEach(function(t){t.circular?(t.y0=n-t.width/2,n-=t.width):(t.y0=e+t.width/2,e+=t.width)}),t.targetLinks.forEach(function(t){t.circular?(t.y1=a-t.width/2,a-=t.width):(t.y1=r+t.width/2,r+=t.width)})})}return F.nodeId=function(t){return arguments.length?(L=\"function\"==typeof t?t:s(t),F):L},F.nodeAlign=function(t){return arguments.length?(P=\"function\"==typeof t?t:s(t),F):P},F.nodeWidth=function(t){return arguments.length?(E=+t,F):E},F.nodePadding=function(e){return arguments.length?(t=+e,F):t},F.nodes=function(t){return arguments.length?(O=\"function\"==typeof t?t:s(t),F):O},F.links=function(t){return arguments.length?(z=\"function\"==typeof t?t:s(t),F):z},F.size=function(t){return arguments.length?(i=b=0,A=+t[0],S=+t[1],F):[A-i,S-b]},F.extent=function(t){return arguments.length?(i=+t[0][0],A=+t[1][0],b=+t[0][1],S=+t[1][1],F):[[i,b],[A,S]]},F.iterations=function(t){return arguments.length?(I=+t,F):I},F.circularLinkGap=function(t){return arguments.length?(D=+t,F):D},F.nodePaddingRatio=function(t){return arguments.length?(n=+t,F):n},F.sortNodes=function(t){return arguments.length?(R=t,F):R},F.update=function(t){return T(t,L),B(t),t.links.forEach(function(t){t.circular&&(t.circularLinkType=t.y0+t.y1<S?\"top\":\"bottom\",t.source.circularLinkType=t.circularLinkType,t.target.circularLinkType=t.circularLinkType)}),U(t,S,L,!1),q(t,0,L),C(t,D,S,L),t},F},t.sankeyCenter=function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?e.min(t.sourceLinks,i)-1:0},t.sankeyLeft=function(t){return t.depth},t.sankeyRight=function(t,e){return e-1-t.height},t.sankeyJustify=o,Object.defineProperty(t,\"__esModule\",{value:!0})},\"object\"==typeof r&&\"undefined\"!=typeof e?a(r,t(\"d3-array\"),t(\"d3-collection\"),t(\"d3-shape\"),t(\"elementary-circuits-directed-graph\")):a(n.d3=n.d3||{},n.d3,n.d3,n.d3,null)},{\"d3-array\":153,\"d3-collection\":154,\"d3-shape\":162,\"elementary-circuits-directed-graph\":174}],56:[function(t,e,r){var n,a;n=this,a=function(t,e,r,n){\"use strict\";function a(t){return t.target.depth}function i(t,e){return t.sourceLinks.length?t.depth:e-1}function o(t){return function(){return t}}function s(t,e){return c(t.source,e.source)||t.index-e.index}function l(t,e){return c(t.target,e.target)||t.index-e.index}function c(t,e){return t.y0-e.y0}function u(t){return t.value}function h(t){return(t.y0+t.y1)/2}function f(t){return h(t.source)*t.value}function p(t){return h(t.target)*t.value}function d(t){return t.index}function g(t){return t.nodes}function v(t){return t.links}function m(t,e){var r=t.get(e);if(!r)throw new Error(\"missing: \"+e);return r}function y(t){return[t.source.x1,t.y0]}function x(t){return[t.target.x0,t.y1]}t.sankey=function(){var t=0,n=0,a=1,y=1,x=24,b=8,_=d,w=i,k=g,T=v,A=32,M=2/3;function S(){var i={nodes:k.apply(null,arguments),links:T.apply(null,arguments)};return function(t){t.nodes.forEach(function(t,e){t.index=e,t.sourceLinks=[],t.targetLinks=[]});var e=r.map(t.nodes,_);t.links.forEach(function(t,r){t.index=r;var n=t.source,a=t.target;\"object\"!=typeof n&&(n=t.source=m(e,n)),\"object\"!=typeof a&&(a=t.target=m(e,a)),n.sourceLinks.push(t),a.targetLinks.push(t)})}(i),function(t){t.nodes.forEach(function(t){t.value=Math.max(e.sum(t.sourceLinks,u),e.sum(t.targetLinks,u))})}(i),function(e){var r,n,i;for(r=e.nodes,n=[],i=0;r.length;++i,r=n,n=[])r.forEach(function(t){t.depth=i,t.sourceLinks.forEach(function(t){n.indexOf(t.target)<0&&n.push(t.target)})});for(r=e.nodes,n=[],i=0;r.length;++i,r=n,n=[])r.forEach(function(t){t.height=i,t.targetLinks.forEach(function(t){n.indexOf(t.source)<0&&n.push(t.source)})});var o=(a-t-x)/(i-1);e.nodes.forEach(function(e){e.x1=(e.x0=t+Math.max(0,Math.min(i-1,Math.floor(w.call(null,e,i))))*o)+x})}(i),function(t){var a=r.nest().key(function(t){return t.x0}).sortKeys(e.ascending).entries(t.nodes).map(function(t){return t.values});(function(){var r=e.max(a,function(t){return t.length}),i=M*(y-n)/(r-1);b>i&&(b=i);var o=e.min(a,function(t){return(y-n-(t.length-1)*b)/e.sum(t,u)});a.forEach(function(t){t.forEach(function(t,e){t.y1=(t.y0=e)+t.value*o})}),t.links.forEach(function(t){t.width=t.value*o})})(),d();for(var i=1,o=A;o>0;--o)l(i*=.99),d(),s(i),d();function s(t){a.forEach(function(r){r.forEach(function(r){if(r.targetLinks.length){var n=(e.sum(r.targetLinks,f)/e.sum(r.targetLinks,u)-h(r))*t;r.y0+=n,r.y1+=n}})})}function l(t){a.slice().reverse().forEach(function(r){r.forEach(function(r){if(r.sourceLinks.length){var n=(e.sum(r.sourceLinks,p)/e.sum(r.sourceLinks,u)-h(r))*t;r.y0+=n,r.y1+=n}})})}function d(){a.forEach(function(t){var e,r,a,i=n,o=t.length;for(t.sort(c),a=0;a<o;++a)e=t[a],(r=i-e.y0)>0&&(e.y0+=r,e.y1+=r),i=e.y1+b;if((r=i-b-y)>0)for(i=e.y0-=r,e.y1-=r,a=o-2;a>=0;--a)e=t[a],(r=e.y1+b-i)>0&&(e.y0-=r,e.y1-=r),i=e.y0})}}(i),E(i),i}function E(t){t.nodes.forEach(function(t){t.sourceLinks.sort(l),t.targetLinks.sort(s)}),t.nodes.forEach(function(t){var e=t.y0,r=e;t.sourceLinks.forEach(function(t){t.y0=e+t.width/2,e+=t.width}),t.targetLinks.forEach(function(t){t.y1=r+t.width/2,r+=t.width})})}return S.update=function(t){return E(t),t},S.nodeId=function(t){return arguments.length?(_=\"function\"==typeof t?t:o(t),S):_},S.nodeAlign=function(t){return arguments.length?(w=\"function\"==typeof t?t:o(t),S):w},S.nodeWidth=function(t){return arguments.length?(x=+t,S):x},S.nodePadding=function(t){return arguments.length?(b=+t,S):b},S.nodes=function(t){return arguments.length?(k=\"function\"==typeof t?t:o(t),S):k},S.links=function(t){return arguments.length?(T=\"function\"==typeof t?t:o(t),S):T},S.size=function(e){return arguments.length?(t=n=0,a=+e[0],y=+e[1],S):[a-t,y-n]},S.extent=function(e){return arguments.length?(t=+e[0][0],a=+e[1][0],n=+e[0][1],y=+e[1][1],S):[[t,n],[a,y]]},S.iterations=function(t){return arguments.length?(A=+t,S):A},S},t.sankeyCenter=function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?e.min(t.sourceLinks,a)-1:0},t.sankeyLeft=function(t){return t.depth},t.sankeyRight=function(t,e){return e-1-t.height},t.sankeyJustify=i,t.sankeyLinkHorizontal=function(){return n.linkHorizontal().source(y).target(x)},Object.defineProperty(t,\"__esModule\",{value:!0})},\"object\"==typeof r&&\"undefined\"!=typeof e?a(r,t(\"d3-array\"),t(\"d3-collection\"),t(\"d3-shape\")):a(n.d3=n.d3||{},n.d3,n.d3,n.d3)},{\"d3-array\":153,\"d3-collection\":154,\"d3-shape\":162}],57:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});var n=t(\"@turf/meta\"),a=6378137;function i(t){var e=0;if(t&&t.length>0){e+=Math.abs(o(t[0]));for(var r=1;r<t.length;r++)e-=Math.abs(o(t[r]))}return e}function o(t){var e,r,n,i,o,l,c=0,u=t.length;if(u>2){for(l=0;l<u;l++)l===u-2?(n=u-2,i=u-1,o=0):l===u-1?(n=u-1,i=0,o=1):(n=l,i=l+1,o=l+2),e=t[n],r=t[i],c+=(s(t[o][0])-s(e[0]))*Math.sin(s(r[1]));c=c*a*a/2}return c}function s(t){return t*Math.PI/180}r.default=function(t){return n.geomReduce(t,function(t,e){return t+function(t){var e,r=0;switch(t.type){case\"Polygon\":return i(t.coordinates);case\"MultiPolygon\":for(e=0;e<t.coordinates.length;e++)r+=i(t.coordinates[e]);return r;case\"Point\":case\"MultiPoint\":case\"LineString\":case\"MultiLineString\":return 0}return 0}(e)},0)}},{\"@turf/meta\":60}],58:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});var n=t(\"@turf/meta\"),a=t(\"@turf/helpers\");r.default=function(t,e){void 0===e&&(e={});var r=0,i=0,o=0;return n.coordEach(t,function(t){r+=t[0],i+=t[1],o++}),a.point([r/o,i/o],e.properties)}},{\"@turf/helpers\":59,\"@turf/meta\":60}],59:[function(t,e,r){\"use strict\";function n(t,e,r){void 0===r&&(r={});var n={type:\"Feature\"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=e||{},n.geometry=t,n}function a(t,e,r){return void 0===r&&(r={}),n({type:\"Point\",coordinates:t},e,r)}function i(t,e,r){void 0===r&&(r={});for(var a=0,i=t;a<i.length;a++){var o=i[a];if(o.length<4)throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");for(var s=0;s<o[o.length-1].length;s++)if(o[o.length-1][s]!==o[0][s])throw new Error(\"First and last Position are not equivalent.\")}return n({type:\"Polygon\",coordinates:t},e,r)}function o(t,e,r){if(void 0===r&&(r={}),t.length<2)throw new Error(\"coordinates must be an array of two or more positions\");return n({type:\"LineString\",coordinates:t},e,r)}function s(t,e){void 0===e&&(e={});var r={type:\"FeatureCollection\"};return e.id&&(r.id=e.id),e.bbox&&(r.bbox=e.bbox),r.features=t,r}function l(t,e,r){return void 0===r&&(r={}),n({type:\"MultiLineString\",coordinates:t},e,r)}function c(t,e,r){return void 0===r&&(r={}),n({type:\"MultiPoint\",coordinates:t},e,r)}function u(t,e,r){return void 0===r&&(r={}),n({type:\"MultiPolygon\",coordinates:t},e,r)}function h(t,e){void 0===e&&(e=\"kilometers\");var n=r.factors[e];if(!n)throw new Error(e+\" units is invalid\");return t*n}function f(t,e){void 0===e&&(e=\"kilometers\");var n=r.factors[e];if(!n)throw new Error(e+\" units is invalid\");return t/n}function p(t){return 180*(t%(2*Math.PI))/Math.PI}function d(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)&&!/^\\s*$/.test(t)}Object.defineProperty(r,\"__esModule\",{value:!0}),r.earthRadius=6371008.8,r.factors={centimeters:100*r.earthRadius,centimetres:100*r.earthRadius,degrees:r.earthRadius/111325,feet:3.28084*r.earthRadius,inches:39.37*r.earthRadius,kilometers:r.earthRadius/1e3,kilometres:r.earthRadius/1e3,meters:r.earthRadius,metres:r.earthRadius,miles:r.earthRadius/1609.344,millimeters:1e3*r.earthRadius,millimetres:1e3*r.earthRadius,nauticalmiles:r.earthRadius/1852,radians:1,yards:r.earthRadius/1.0936},r.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/r.earthRadius,yards:1/1.0936},r.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:3.86e-7,millimeters:1e6,millimetres:1e6,yards:1.195990046},r.feature=n,r.geometry=function(t,e,r){switch(void 0===r&&(r={}),t){case\"Point\":return a(e).geometry;case\"LineString\":return o(e).geometry;case\"Polygon\":return i(e).geometry;case\"MultiPoint\":return c(e).geometry;case\"MultiLineString\":return l(e).geometry;case\"MultiPolygon\":return u(e).geometry;default:throw new Error(t+\" is invalid\")}},r.point=a,r.points=function(t,e,r){return void 0===r&&(r={}),s(t.map(function(t){return a(t,e)}),r)},r.polygon=i,r.polygons=function(t,e,r){return void 0===r&&(r={}),s(t.map(function(t){return i(t,e)}),r)},r.lineString=o,r.lineStrings=function(t,e,r){return void 0===r&&(r={}),s(t.map(function(t){return o(t,e)}),r)},r.featureCollection=s,r.multiLineString=l,r.multiPoint=c,r.multiPolygon=u,r.geometryCollection=function(t,e,r){return void 0===r&&(r={}),n({type:\"GeometryCollection\",geometries:t},e,r)},r.round=function(t,e){if(void 0===e&&(e=0),e&&!(e>=0))throw new Error(\"precision must be a positive number\");var r=Math.pow(10,e||0);return Math.round(t*r)/r},r.radiansToLength=h,r.lengthToRadians=f,r.lengthToDegrees=function(t,e){return p(f(t,e))},r.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},r.radiansToDegrees=p,r.degreesToRadians=function(t){return t%360*Math.PI/180},r.convertLength=function(t,e,r){if(void 0===e&&(e=\"kilometers\"),void 0===r&&(r=\"kilometers\"),!(t>=0))throw new Error(\"length must be a positive number\");return h(f(t,e),r)},r.convertArea=function(t,e,n){if(void 0===e&&(e=\"meters\"),void 0===n&&(n=\"kilometers\"),!(t>=0))throw new Error(\"area must be a positive number\");var a=r.areaFactors[e];if(!a)throw new Error(\"invalid original units\");var i=r.areaFactors[n];if(!i)throw new Error(\"invalid final units\");return t/a*i},r.isNumber=d,r.isObject=function(t){return!!t&&t.constructor===Object},r.validateBBox=function(t){if(!t)throw new Error(\"bbox is required\");if(!Array.isArray(t))throw new Error(\"bbox must be an Array\");if(4!==t.length&&6!==t.length)throw new Error(\"bbox must be an Array of 4 or 6 numbers\");t.forEach(function(t){if(!d(t))throw new Error(\"bbox must only contain numbers\")})},r.validateId=function(t){if(!t)throw new Error(\"id is required\");if(-1===[\"string\",\"number\"].indexOf(typeof t))throw new Error(\"id must be a number or a string\")},r.radians2degrees=function(){throw new Error(\"method has been renamed to `radiansToDegrees`\")},r.degrees2radians=function(){throw new Error(\"method has been renamed to `degreesToRadians`\")},r.distanceToDegrees=function(){throw new Error(\"method has been renamed to `lengthToDegrees`\")},r.distanceToRadians=function(){throw new Error(\"method has been renamed to `lengthToRadians`\")},r.radiansToDistance=function(){throw new Error(\"method has been renamed to `radiansToLength`\")},r.bearingToAngle=function(){throw new Error(\"method has been renamed to `bearingToAzimuth`\")},r.convertDistance=function(){throw new Error(\"method has been renamed to `convertLength`\")}},{}],60:[function(t,e,r){\"use strict\";Object.defineProperty(r,\"__esModule\",{value:!0});var n=t(\"@turf/helpers\");function a(t,e,r){if(null!==t)for(var n,i,o,s,l,c,u,h,f=0,p=0,d=t.type,g=\"FeatureCollection\"===d,v=\"Feature\"===d,m=g?t.features.length:1,y=0;y<m;y++){l=(h=!!(u=g?t.features[y].geometry:v?t.geometry:t)&&\"GeometryCollection\"===u.type)?u.geometries.length:1;for(var x=0;x<l;x++){var b=0,_=0;if(null!==(s=h?u.geometries[x]:u)){c=s.coordinates;var w=s.type;switch(f=!r||\"Polygon\"!==w&&\"MultiPolygon\"!==w?0:1,w){case null:break;case\"Point\":if(!1===e(c,p,y,b,_))return!1;p++,b++;break;case\"LineString\":case\"MultiPoint\":for(n=0;n<c.length;n++){if(!1===e(c[n],p,y,b,_))return!1;p++,\"MultiPoint\"===w&&b++}\"LineString\"===w&&b++;break;case\"Polygon\":case\"MultiLineString\":for(n=0;n<c.length;n++){for(i=0;i<c[n].length-f;i++){if(!1===e(c[n][i],p,y,b,_))return!1;p++}\"MultiLineString\"===w&&b++,\"Polygon\"===w&&_++}\"Polygon\"===w&&b++;break;case\"MultiPolygon\":for(n=0;n<c.length;n++){for(_=0,i=0;i<c[n].length;i++){for(o=0;o<c[n][i].length-f;o++){if(!1===e(c[n][i][o],p,y,b,_))return!1;p++}_++}b++}break;case\"GeometryCollection\":for(n=0;n<s.geometries.length;n++)if(!1===a(s.geometries[n],e,r))return!1;break;default:throw new Error(\"Unknown Geometry Type\")}}}}}function i(t,e){var r;switch(t.type){case\"FeatureCollection\":for(r=0;r<t.features.length&&!1!==e(t.features[r].properties,r);r++);break;case\"Feature\":e(t.properties,0)}}function o(t,e){if(\"Feature\"===t.type)e(t,0);else if(\"FeatureCollection\"===t.type)for(var r=0;r<t.features.length&&!1!==e(t.features[r],r);r++);}function s(t,e){var r,n,a,i,o,s,l,c,u,h,f=0,p=\"FeatureCollection\"===t.type,d=\"Feature\"===t.type,g=p?t.features.length:1;for(r=0;r<g;r++){for(s=p?t.features[r].geometry:d?t.geometry:t,c=p?t.features[r].properties:d?t.properties:{},u=p?t.features[r].bbox:d?t.bbox:void 0,h=p?t.features[r].id:d?t.id:void 0,o=(l=!!s&&\"GeometryCollection\"===s.type)?s.geometries.length:1,a=0;a<o;a++)if(null!==(i=l?s.geometries[a]:s))switch(i.type){case\"Point\":case\"LineString\":case\"MultiPoint\":case\"Polygon\":case\"MultiLineString\":case\"MultiPolygon\":if(!1===e(i,f,c,u,h))return!1;break;case\"GeometryCollection\":for(n=0;n<i.geometries.length;n++)if(!1===e(i.geometries[n],f,c,u,h))return!1;break;default:throw new Error(\"Unknown Geometry Type\")}else if(!1===e(null,f,c,u,h))return!1;f++}}function l(t,e){s(t,function(t,r,a,i,o){var s,l=null===t?null:t.type;switch(l){case null:case\"Point\":case\"LineString\":case\"Polygon\":return!1!==e(n.feature(t,a,{bbox:i,id:o}),r,0)&&void 0}switch(l){case\"MultiPoint\":s=\"Point\";break;case\"MultiLineString\":s=\"LineString\";break;case\"MultiPolygon\":s=\"Polygon\"}for(var c=0;c<t.coordinates.length;c++){var u={type:s,coordinates:t.coordinates[c]};if(!1===e(n.feature(u,a),r,c))return!1}})}function c(t,e){l(t,function(t,r,i){var o=0;if(t.geometry){var s=t.geometry.type;if(\"Point\"!==s&&\"MultiPoint\"!==s){var l,c=0,u=0,h=0;return!1!==a(t,function(a,s,f,p,d){if(void 0===l||r>c||p>u||d>h)return l=a,c=r,u=p,h=d,void(o=0);var g=n.lineString([l,a],t.properties);if(!1===e(g,r,i,d,o))return!1;o++,l=a})&&void 0}}})}function u(t,e){if(!t)throw new Error(\"geojson is required\");l(t,function(t,r,a){if(null!==t.geometry){var i=t.geometry.type,o=t.geometry.coordinates;switch(i){case\"LineString\":if(!1===e(t,r,a,0,0))return!1;break;case\"Polygon\":for(var s=0;s<o.length;s++)if(!1===e(n.lineString(o[s],t.properties),r,a,s))return!1}}})}r.coordEach=a,r.coordReduce=function(t,e,r,n){var i=r;return a(t,function(t,n,a,o,s){i=0===n&&void 0===r?t:e(i,t,n,a,o,s)},n),i},r.propEach=i,r.propReduce=function(t,e,r){var n=r;return i(t,function(t,a){n=0===a&&void 0===r?t:e(n,t,a)}),n},r.featureEach=o,r.featureReduce=function(t,e,r){var n=r;return o(t,function(t,a){n=0===a&&void 0===r?t:e(n,t,a)}),n},r.coordAll=function(t){var e=[];return a(t,function(t){e.push(t)}),e},r.geomEach=s,r.geomReduce=function(t,e,r){var n=r;return s(t,function(t,a,i,o,s){n=0===a&&void 0===r?t:e(n,t,a,i,o,s)}),n},r.flattenEach=l,r.flattenReduce=function(t,e,r){var n=r;return l(t,function(t,a,i){n=0===a&&0===i&&void 0===r?t:e(n,t,a,i)}),n},r.segmentEach=c,r.segmentReduce=function(t,e,r){var n=r,a=!1;return c(t,function(t,i,o,s,l){n=!1===a&&void 0===r?t:e(n,t,i,o,s,l),a=!0}),n},r.lineEach=u,r.lineReduce=function(t,e,r){var n=r;return u(t,function(t,a,i,o){n=0===a&&void 0===r?t:e(n,t,a,i,o)}),n},r.findSegment=function(t,e){if(e=e||{},!n.isObject(e))throw new Error(\"options is invalid\");var r,a=e.featureIndex||0,i=e.multiFeatureIndex||0,o=e.geometryIndex||0,s=e.segmentIndex||0,l=e.properties;switch(t.type){case\"FeatureCollection\":a<0&&(a=t.features.length+a),l=l||t.features[a].properties,r=t.features[a].geometry;break;case\"Feature\":l=l||t.properties,r=t.geometry;break;case\"Point\":case\"MultiPoint\":return null;case\"LineString\":case\"Polygon\":case\"MultiLineString\":case\"MultiPolygon\":r=t;break;default:throw new Error(\"geojson is invalid\")}if(null===r)return null;var c=r.coordinates;switch(r.type){case\"Point\":case\"MultiPoint\":return null;case\"LineString\":return s<0&&(s=c.length+s-1),n.lineString([c[s],c[s+1]],l,e);case\"Polygon\":return o<0&&(o=c.length+o),s<0&&(s=c[o].length+s-1),n.lineString([c[o][s],c[o][s+1]],l,e);case\"MultiLineString\":return i<0&&(i=c.length+i),s<0&&(s=c[i].length+s-1),n.lineString([c[i][s],c[i][s+1]],l,e);case\"MultiPolygon\":return i<0&&(i=c.length+i),o<0&&(o=c[i].length+o),s<0&&(s=c[i][o].length-s-1),n.lineString([c[i][o][s],c[i][o][s+1]],l,e)}throw new Error(\"geojson is invalid\")},r.findPoint=function(t,e){if(e=e||{},!n.isObject(e))throw new Error(\"options is invalid\");var r,a=e.featureIndex||0,i=e.multiFeatureIndex||0,o=e.geometryIndex||0,s=e.coordIndex||0,l=e.properties;switch(t.type){case\"FeatureCollection\":a<0&&(a=t.features.length+a),l=l||t.features[a].properties,r=t.features[a].geometry;break;case\"Feature\":l=l||t.properties,r=t.geometry;break;case\"Point\":case\"MultiPoint\":return null;case\"LineString\":case\"Polygon\":case\"MultiLineString\":case\"MultiPolygon\":r=t;break;default:throw new Error(\"geojson is invalid\")}if(null===r)return null;var c=r.coordinates;switch(r.type){case\"Point\":return n.point(c,l,e);case\"MultiPoint\":return i<0&&(i=c.length+i),n.point(c[i],l,e);case\"LineString\":return s<0&&(s=c.length+s),n.point(c[s],l,e);case\"Polygon\":return o<0&&(o=c.length+o),s<0&&(s=c[o].length+s),n.point(c[o][s],l,e);case\"MultiLineString\":return i<0&&(i=c.length+i),s<0&&(s=c[i].length+s),n.point(c[i][s],l,e);case\"MultiPolygon\":return i<0&&(i=c.length+i),o<0&&(o=c[i].length+o),s<0&&(s=c[i][o].length-s),n.point(c[i][o][s],l,e)}throw new Error(\"geojson is invalid\")}},{\"@turf/helpers\":59}],61:[function(t,e,r){\"use strict\";var n=\"undefined\"==typeof WeakMap?t(\"weak-map\"):WeakMap,a=t(\"gl-buffer\"),i=t(\"gl-vao\"),o=new n;e.exports=function(t){var e=o.get(t),r=e&&(e._triangleBuffer.handle||e._triangleBuffer.buffer);if(!r||!t.isBuffer(r)){var n=a(t,new Float32Array([-1,-1,-1,4,4,-1]));(e=i(t,[{buffer:n,type:t.FLOAT,size:2}]))._triangleBuffer=n,o.set(t,e)}e.bind(),t.drawArrays(t.TRIANGLES,0,3),e.unbind()}},{\"gl-buffer\":243,\"gl-vao\":328,\"weak-map\":550}],62:[function(t,e,r){e.exports=function(t){var e=0,r=0,n=0,a=0;return t.map(function(t){var i=(t=t.slice())[0],o=i.toUpperCase();if(i!=o)switch(t[0]=o,i){case\"a\":t[6]+=n,t[7]+=a;break;case\"v\":t[1]+=a;break;case\"h\":t[1]+=n;break;default:for(var s=1;s<t.length;)t[s++]+=n,t[s++]+=a}switch(o){case\"Z\":n=e,a=r;break;case\"H\":n=t[1];break;case\"V\":a=t[1];break;case\"M\":n=e=t[1],a=r=t[2];break;default:n=t[t.length-2],a=t[t.length-1]}return t})}},{}],63:[function(t,e,r){var n=t(\"pad-left\");e.exports=function(t,e,r){e=\"number\"==typeof e?e:1,r=r||\": \";var a=t.split(/\\r?\\n/),i=String(a.length+e-1).length;return a.map(function(t,a){var o=a+e,s=String(o).length,l=n(o,i-s);return l+r+t}).join(\"\\n\")}},{\"pad-left\":458}],64:[function(t,e,r){\"use strict\";e.exports=function(t){var e=t.length;if(0===e)return[];if(1===e)return[0];for(var r=t[0].length,n=[t[0]],i=[0],o=1;o<e;++o)if(n.push(t[o]),a(n,r)){if(i.push(o),i.length===r+1)return i}else n.pop();return i};var n=t(\"robust-orientation\");function a(t,e){for(var r=new Array(e+1),a=0;a<t.length;++a)r[a]=t[a];for(a=0;a<=t.length;++a){for(var i=t.length;i<=e;++i){for(var o=new Array(e),s=0;s<e;++s)o[s]=Math.pow(i+1-a,s);r[i]=o}if(n.apply(void 0,r))return!0}return!1}},{\"robust-orientation\":508}],65:[function(t,e,r){\"use strict\";e.exports=function(t,e){return n(e).filter(function(r){for(var n=new Array(r.length),i=0;i<r.length;++i)n[i]=e[r[i]];return a(n)*t<1})};var n=t(\"delaunay-triangulate\"),a=t(\"circumradius\")},{circumradius:115,\"delaunay-triangulate\":166}],66:[function(t,e,r){e.exports=function(t,e){return a(n(t,e))};var n=t(\"alpha-complex\"),a=t(\"simplicial-complex-boundary\")},{\"alpha-complex\":65,\"simplicial-complex-boundary\":515}],67:[function(t,e,r){\"use strict\";e.exports=function(t,e){if(!t||null==t.length)throw Error(\"Argument should be an array\");e=null==e?1:Math.floor(e);for(var r=Array(2*e),n=0;n<e;n++){for(var a=-1/0,i=1/0,o=n,s=t.length;o<s;o+=e)t[o]>a&&(a=t[o]),t[o]<i&&(i=t[o]);r[n]=i,r[e+n]=a}return r}},{}],68:[function(t,e,r){e.exports=function(t,e){var r=\"number\"==typeof t,n=\"number\"==typeof e;r&&!n?(e=t,t=0):r||n||(t=0,e=0);var a=(e|=0)-(t|=0);if(a<0)throw new Error(\"array length must be positive\");for(var i=new Array(a),o=0,s=t;o<a;o++,s++)i[o]=s;return i}},{}],69:[function(t,e,r){(function(r){\"use strict\";var n=t(\"object-assign\");function a(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,a=0,i=Math.min(r,n);a<i;++a)if(t[a]!==e[a]){r=t[a],n=e[a];break}return r<n?-1:n<r?1:0}function i(t){return r.Buffer&&\"function\"==typeof r.Buffer.isBuffer?r.Buffer.isBuffer(t):!(null==t||!t._isBuffer)}var o=t(\"util/\"),s=Object.prototype.hasOwnProperty,l=Array.prototype.slice,c=\"foo\"===function(){}.name;function u(t){return Object.prototype.toString.call(t)}function h(t){return!i(t)&&(\"function\"==typeof r.ArrayBuffer&&(\"function\"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):!!t&&(t instanceof DataView||!!(t.buffer&&t.buffer instanceof ArrayBuffer))))}var f=e.exports=y,p=/\\s*function\\s+([^\\(\\s]*)\\s*/;function d(t){if(o.isFunction(t)){if(c)return t.name;var e=t.toString().match(p);return e&&e[1]}}function g(t,e){return\"string\"==typeof t?t.length<e?t:t.slice(0,e):t}function v(t){if(c||!o.isFunction(t))return o.inspect(t);var e=d(t);return\"[Function\"+(e?\": \"+e:\"\")+\"]\"}function m(t,e,r,n,a){throw new f.AssertionError({message:r,actual:t,expected:e,operator:n,stackStartFunction:a})}function y(t,e){t||m(t,!0,e,\"==\",f.ok)}function x(t,e,r,n){if(t===e)return!0;if(i(t)&&i(e))return 0===a(t,e);if(o.isDate(t)&&o.isDate(e))return t.getTime()===e.getTime();if(o.isRegExp(t)&&o.isRegExp(e))return t.source===e.source&&t.global===e.global&&t.multiline===e.multiline&&t.lastIndex===e.lastIndex&&t.ignoreCase===e.ignoreCase;if(null!==t&&\"object\"==typeof t||null!==e&&\"object\"==typeof e){if(h(t)&&h(e)&&u(t)===u(e)&&!(t instanceof Float32Array||t instanceof Float64Array))return 0===a(new Uint8Array(t.buffer),new Uint8Array(e.buffer));if(i(t)!==i(e))return!1;var s=(n=n||{actual:[],expected:[]}).actual.indexOf(t);return-1!==s&&s===n.expected.indexOf(e)||(n.actual.push(t),n.expected.push(e),function(t,e,r,n){if(null==t||null==e)return!1;if(o.isPrimitive(t)||o.isPrimitive(e))return t===e;if(r&&Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return!1;var a=b(t),i=b(e);if(a&&!i||!a&&i)return!1;if(a)return t=l.call(t),e=l.call(e),x(t,e,r);var s,c,u=k(t),h=k(e);if(u.length!==h.length)return!1;for(u.sort(),h.sort(),c=u.length-1;c>=0;c--)if(u[c]!==h[c])return!1;for(c=u.length-1;c>=0;c--)if(s=u[c],!x(t[s],e[s],r,n))return!1;return!0}(t,e,r,n))}return r?t===e:t==e}function b(t){return\"[object Arguments]\"==Object.prototype.toString.call(t)}function _(t,e){if(!t||!e)return!1;if(\"[object RegExp]\"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function w(t,e,r,n){var a;if(\"function\"!=typeof e)throw new TypeError('\"block\" argument must be a function');\"string\"==typeof r&&(n=r,r=null),a=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?\" (\"+r.name+\").\":\".\")+(n?\" \"+n:\".\"),t&&!a&&m(a,r,\"Missing expected exception\"+n);var i=\"string\"==typeof n,s=!t&&a&&!r;if((!t&&o.isError(a)&&i&&_(a,r)||s)&&m(a,r,\"Got unwanted exception\"+n),t&&a&&r&&!_(a,r)||!t&&a)throw a}f.AssertionError=function(t){var e;this.name=\"AssertionError\",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=g(v((e=this).actual),128)+\" \"+e.operator+\" \"+g(v(e.expected),128),this.generatedMessage=!0);var r=t.stackStartFunction||m;if(Error.captureStackTrace)Error.captureStackTrace(this,r);else{var n=new Error;if(n.stack){var a=n.stack,i=d(r),o=a.indexOf(\"\\n\"+i);if(o>=0){var s=a.indexOf(\"\\n\",o+1);a=a.substring(s+1)}this.stack=a}}},o.inherits(f.AssertionError,Error),f.fail=m,f.ok=y,f.equal=function(t,e,r){t!=e&&m(t,e,r,\"==\",f.equal)},f.notEqual=function(t,e,r){t==e&&m(t,e,r,\"!=\",f.notEqual)},f.deepEqual=function(t,e,r){x(t,e,!1)||m(t,e,r,\"deepEqual\",f.deepEqual)},f.deepStrictEqual=function(t,e,r){x(t,e,!0)||m(t,e,r,\"deepStrictEqual\",f.deepStrictEqual)},f.notDeepEqual=function(t,e,r){x(t,e,!1)&&m(t,e,r,\"notDeepEqual\",f.notDeepEqual)},f.notDeepStrictEqual=function t(e,r,n){x(e,r,!0)&&m(e,r,n,\"notDeepStrictEqual\",t)},f.strictEqual=function(t,e,r){t!==e&&m(t,e,r,\"===\",f.strictEqual)},f.notStrictEqual=function(t,e,r){t===e&&m(t,e,r,\"!==\",f.notStrictEqual)},f.throws=function(t,e,r){w(!0,t,e,r)},f.doesNotThrow=function(t,e,r){w(!1,t,e,r)},f.ifError=function(t){if(t)throw t},f.strict=n(function t(e,r){e||m(e,!0,r,\"==\",t)},f,{equal:f.strictEqual,deepEqual:f.deepStrictEqual,notEqual:f.notStrictEqual,notDeepEqual:f.notDeepStrictEqual}),f.strict.strict=f.strict;var k=Object.keys||function(t){var e=[];for(var r in t)s.call(t,r)&&e.push(r);return e}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"object-assign\":455,\"util/\":72}],70:[function(t,e,r){\"function\"==typeof Object.create?e.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],71:[function(t,e,r){e.exports=function(t){return t&&\"object\"==typeof t&&\"function\"==typeof t.copy&&\"function\"==typeof t.fill&&\"function\"==typeof t.readUInt8}},{}],72:[function(t,e,r){(function(e,n){var a=/%[sdj%]/g;r.format=function(t){if(!m(t)){for(var e=[],r=0;r<arguments.length;r++)e.push(s(arguments[r]));return e.join(\" \")}r=1;for(var n=arguments,i=n.length,o=String(t).replace(a,function(t){if(\"%%\"===t)return\"%\";if(r>=i)return t;switch(t){case\"%s\":return String(n[r++]);case\"%d\":return Number(n[r++]);case\"%j\":try{return JSON.stringify(n[r++])}catch(t){return\"[Circular]\"}default:return t}}),l=n[r];r<i;l=n[++r])g(l)||!b(l)?o+=\" \"+l:o+=\" \"+s(l);return o},r.deprecate=function(t,a){if(y(n.process))return function(){return r.deprecate(t,a).apply(this,arguments)};if(!0===e.noDeprecation)return t;var i=!1;return function(){if(!i){if(e.throwDeprecation)throw new Error(a);e.traceDeprecation?console.trace(a):console.error(a),i=!0}return t.apply(this,arguments)}};var i,o={};function s(t,e){var n={seen:[],stylize:c};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),d(e)?n.showHidden=e:e&&r._extend(n,e),y(n.showHidden)&&(n.showHidden=!1),y(n.depth)&&(n.depth=2),y(n.colors)&&(n.colors=!1),y(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),u(n,t,n.depth)}function l(t,e){var r=s.styles[e];return r?\"\\x1b[\"+s.colors[r][0]+\"m\"+t+\"\\x1b[\"+s.colors[r][1]+\"m\":t}function c(t,e){return t}function u(t,e,n){if(t.customInspect&&e&&k(e.inspect)&&e.inspect!==r.inspect&&(!e.constructor||e.constructor.prototype!==e)){var a=e.inspect(n,t);return m(a)||(a=u(t,a,n)),a}var i=function(t,e){if(y(e))return t.stylize(\"undefined\",\"undefined\");if(m(e)){var r=\"'\"+JSON.stringify(e).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return t.stylize(r,\"string\")}if(v(e))return t.stylize(\"\"+e,\"number\");if(d(e))return t.stylize(\"\"+e,\"boolean\");if(g(e))return t.stylize(\"null\",\"null\")}(t,e);if(i)return i;var o=Object.keys(e),s=function(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(e)),w(e)&&(o.indexOf(\"message\")>=0||o.indexOf(\"description\")>=0))return h(e);if(0===o.length){if(k(e)){var l=e.name?\": \"+e.name:\"\";return t.stylize(\"[Function\"+l+\"]\",\"special\")}if(x(e))return t.stylize(RegExp.prototype.toString.call(e),\"regexp\");if(_(e))return t.stylize(Date.prototype.toString.call(e),\"date\");if(w(e))return h(e)}var c,b=\"\",T=!1,A=[\"{\",\"}\"];(p(e)&&(T=!0,A=[\"[\",\"]\"]),k(e))&&(b=\" [Function\"+(e.name?\": \"+e.name:\"\")+\"]\");return x(e)&&(b=\" \"+RegExp.prototype.toString.call(e)),_(e)&&(b=\" \"+Date.prototype.toUTCString.call(e)),w(e)&&(b=\" \"+h(e)),0!==o.length||T&&0!=e.length?n<0?x(e)?t.stylize(RegExp.prototype.toString.call(e),\"regexp\"):t.stylize(\"[Object]\",\"special\"):(t.seen.push(e),c=T?function(t,e,r,n,a){for(var i=[],o=0,s=e.length;o<s;++o)S(e,String(o))?i.push(f(t,e,r,n,String(o),!0)):i.push(\"\");return a.forEach(function(a){a.match(/^\\d+$/)||i.push(f(t,e,r,n,a,!0))}),i}(t,e,n,s,o):o.map(function(r){return f(t,e,n,s,r,T)}),t.seen.pop(),function(t,e,r){if(t.reduce(function(t,e){return 0,e.indexOf(\"\\n\")>=0&&0,t+e.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0)>60)return r[0]+(\"\"===e?\"\":e+\"\\n \")+\" \"+t.join(\",\\n \")+\" \"+r[1];return r[0]+e+\" \"+t.join(\", \")+\" \"+r[1]}(c,b,A)):A[0]+b+A[1]}function h(t){return\"[\"+Error.prototype.toString.call(t)+\"]\"}function f(t,e,r,n,a,i){var o,s,l;if((l=Object.getOwnPropertyDescriptor(e,a)||{value:e[a]}).get?s=l.set?t.stylize(\"[Getter/Setter]\",\"special\"):t.stylize(\"[Getter]\",\"special\"):l.set&&(s=t.stylize(\"[Setter]\",\"special\")),S(n,a)||(o=\"[\"+a+\"]\"),s||(t.seen.indexOf(l.value)<0?(s=g(r)?u(t,l.value,null):u(t,l.value,r-1)).indexOf(\"\\n\")>-1&&(s=i?s.split(\"\\n\").map(function(t){return\" \"+t}).join(\"\\n\").substr(2):\"\\n\"+s.split(\"\\n\").map(function(t){return\" \"+t}).join(\"\\n\")):s=t.stylize(\"[Circular]\",\"special\")),y(o)){if(i&&a.match(/^\\d+$/))return s;(o=JSON.stringify(\"\"+a)).match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,\"name\")):(o=o.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),o=t.stylize(o,\"string\"))}return o+\": \"+s}function p(t){return Array.isArray(t)}function d(t){return\"boolean\"==typeof t}function g(t){return null===t}function v(t){return\"number\"==typeof t}function m(t){return\"string\"==typeof t}function y(t){return void 0===t}function x(t){return b(t)&&\"[object RegExp]\"===T(t)}function b(t){return\"object\"==typeof t&&null!==t}function _(t){return b(t)&&\"[object Date]\"===T(t)}function w(t){return b(t)&&(\"[object Error]\"===T(t)||t instanceof Error)}function k(t){return\"function\"==typeof t}function T(t){return Object.prototype.toString.call(t)}function A(t){return t<10?\"0\"+t.toString(10):t.toString(10)}r.debuglog=function(t){if(y(i)&&(i=e.env.NODE_DEBUG||\"\"),t=t.toUpperCase(),!o[t])if(new RegExp(\"\\\\b\"+t+\"\\\\b\",\"i\").test(i)){var n=e.pid;o[t]=function(){var e=r.format.apply(r,arguments);console.error(\"%s %d: %s\",t,n,e)}}else o[t]=function(){};return o[t]},r.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},r.isArray=p,r.isBoolean=d,r.isNull=g,r.isNullOrUndefined=function(t){return null==t},r.isNumber=v,r.isString=m,r.isSymbol=function(t){return\"symbol\"==typeof t},r.isUndefined=y,r.isRegExp=x,r.isObject=b,r.isDate=_,r.isError=w,r.isFunction=k,r.isPrimitive=function(t){return null===t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||\"symbol\"==typeof t||\"undefined\"==typeof t},r.isBuffer=t(\"./support/isBuffer\");var M=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function S(t,e){return Object.prototype.hasOwnProperty.call(t,e)}r.log=function(){var t,e;console.log(\"%s - %s\",(t=new Date,e=[A(t.getHours()),A(t.getMinutes()),A(t.getSeconds())].join(\":\"),[t.getDate(),M[t.getMonth()],e].join(\" \")),r.format.apply(r,arguments))},r.inherits=t(\"inherits\"),r._extend=function(t,e){if(!e||!b(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}}).call(this,t(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"./support/isBuffer\":71,_process:483,inherits:70}],73:[function(t,e,r){e.exports=function(t){return atob(t)}},{}],74:[function(t,e,r){\"use strict\";e.exports=function(t,e){for(var r=e.length,i=new Array(r+1),o=0;o<r;++o){for(var s=new Array(r+1),l=0;l<=r;++l)s[l]=t[l][o];i[o]=s}i[r]=new Array(r+1);for(var o=0;o<=r;++o)i[r][o]=1;for(var c=new Array(r+1),o=0;o<r;++o)c[o]=e[o];c[r]=1;var u=n(i,c),h=a(u[r+1]);0===h&&(h=1);for(var f=new Array(r+1),o=0;o<=r;++o)f[o]=a(u[o])/h;return f};var n=t(\"robust-linear-solve\");function a(t){for(var e=0,r=0;r<t.length;++r)e+=t[r];return e}},{\"robust-linear-solve\":507}],75:[function(t,e,r){\"use strict\";r.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return 3*(r+n)/4-n},r.toByteArray=function(t){var e,r,n=c(t),o=n[0],s=n[1],l=new i(function(t,e,r){return 3*(e+r)/4-r}(0,o,s)),u=0,h=s>0?o-4:o;for(r=0;r<h;r+=4)e=a[t.charCodeAt(r)]<<18|a[t.charCodeAt(r+1)]<<12|a[t.charCodeAt(r+2)]<<6|a[t.charCodeAt(r+3)],l[u++]=e>>16&255,l[u++]=e>>8&255,l[u++]=255&e;2===s&&(e=a[t.charCodeAt(r)]<<2|a[t.charCodeAt(r+1)]>>4,l[u++]=255&e);1===s&&(e=a[t.charCodeAt(r)]<<10|a[t.charCodeAt(r+1)]<<4|a[t.charCodeAt(r+2)]>>2,l[u++]=e>>8&255,l[u++]=255&e);return l},r.fromByteArray=function(t){for(var e,r=t.length,a=r%3,i=[],o=0,s=r-a;o<s;o+=16383)i.push(u(t,o,o+16383>s?s:o+16383));1===a?(e=t[r-1],i.push(n[e>>2]+n[e<<4&63]+\"==\")):2===a&&(e=(t[r-2]<<8)+t[r-1],i.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+\"=\"));return i.join(\"\")};for(var n=[],a=[],i=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",s=0,l=o.length;s<l;++s)n[s]=o[s],a[o.charCodeAt(s)]=s;function c(t){var e=t.length;if(e%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function u(t,e,r){for(var a,i,o=[],s=e;s<r;s+=3)a=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),o.push(n[(i=a)>>18&63]+n[i>>12&63]+n[i>>6&63]+n[63&i]);return o.join(\"\")}a[\"-\".charCodeAt(0)]=62,a[\"_\".charCodeAt(0)]=63},{}],76:[function(t,e,r){\"use strict\";var n=t(\"./lib/rationalize\");e.exports=function(t,e){return n(t[0].mul(e[1]).add(e[0].mul(t[1])),t[1].mul(e[1]))}},{\"./lib/rationalize\":86}],77:[function(t,e,r){\"use strict\";e.exports=function(t,e){return t[0].mul(e[1]).cmp(e[0].mul(t[1]))}},{}],78:[function(t,e,r){\"use strict\";var n=t(\"./lib/rationalize\");e.exports=function(t,e){return n(t[0].mul(e[1]),t[1].mul(e[0]))}},{\"./lib/rationalize\":86}],79:[function(t,e,r){\"use strict\";var n=t(\"./is-rat\"),a=t(\"./lib/is-bn\"),i=t(\"./lib/num-to-bn\"),o=t(\"./lib/str-to-bn\"),s=t(\"./lib/rationalize\"),l=t(\"./div\");e.exports=function t(e,r){if(n(e))return r?l(e,t(r)):[e[0].clone(),e[1].clone()];var c=0;var u,h;if(a(e))u=e.clone();else if(\"string\"==typeof e)u=o(e);else{if(0===e)return[i(0),i(1)];if(e===Math.floor(e))u=i(e);else{for(;e!==Math.floor(e);)e*=Math.pow(2,256),c-=256;u=i(e)}}if(n(r))u.mul(r[1]),h=r[0].clone();else if(a(r))h=r.clone();else if(\"string\"==typeof r)h=o(r);else if(r)if(r===Math.floor(r))h=i(r);else{for(;r!==Math.floor(r);)r*=Math.pow(2,256),c+=256;h=i(r)}else h=i(1);c>0?u=u.ushln(c):c<0&&(h=h.ushln(-c));return s(u,h)}},{\"./div\":78,\"./is-rat\":80,\"./lib/is-bn\":84,\"./lib/num-to-bn\":85,\"./lib/rationalize\":86,\"./lib/str-to-bn\":87}],80:[function(t,e,r){\"use strict\";var n=t(\"./lib/is-bn\");e.exports=function(t){return Array.isArray(t)&&2===t.length&&n(t[0])&&n(t[1])}},{\"./lib/is-bn\":84}],81:[function(t,e,r){\"use strict\";var n=t(\"bn.js\");e.exports=function(t){return t.cmp(new n(0))}},{\"bn.js\":95}],82:[function(t,e,r){\"use strict\";var n=t(\"./bn-sign\");e.exports=function(t){var e=t.length,r=t.words,a=0;if(1===e)a=r[0];else if(2===e)a=r[0]+67108864*r[1];else for(var i=0;i<e;i++){var o=r[i];a+=o*Math.pow(67108864,i)}return n(t)*a}},{\"./bn-sign\":81}],83:[function(t,e,r){\"use strict\";var n=t(\"double-bits\"),a=t(\"bit-twiddle\").countTrailingZeros;e.exports=function(t){var e=a(n.lo(t));if(e<32)return e;var r=a(n.hi(t));if(r>20)return 52;return r+32}},{\"bit-twiddle\":93,\"double-bits\":168}],84:[function(t,e,r){\"use strict\";t(\"bn.js\");e.exports=function(t){return t&&\"object\"==typeof t&&Boolean(t.words)}},{\"bn.js\":95}],85:[function(t,e,r){\"use strict\";var n=t(\"bn.js\"),a=t(\"double-bits\");e.exports=function(t){var e=a.exponent(t);return e<52?new n(t):new n(t*Math.pow(2,52-e)).ushln(e-52)}},{\"bn.js\":95,\"double-bits\":168}],86:[function(t,e,r){\"use strict\";var n=t(\"./num-to-bn\"),a=t(\"./bn-sign\");e.exports=function(t,e){var r=a(t),i=a(e);if(0===r)return[n(0),n(1)];if(0===i)return[n(0),n(0)];i<0&&(t=t.neg(),e=e.neg());var o=t.gcd(e);if(o.cmpn(1))return[t.div(o),e.div(o)];return[t,e]}},{\"./bn-sign\":81,\"./num-to-bn\":85}],87:[function(t,e,r){\"use strict\";var n=t(\"bn.js\");e.exports=function(t){return new n(t)}},{\"bn.js\":95}],88:[function(t,e,r){\"use strict\";var n=t(\"./lib/rationalize\");e.exports=function(t,e){return n(t[0].mul(e[0]),t[1].mul(e[1]))}},{\"./lib/rationalize\":86}],89:[function(t,e,r){\"use strict\";var n=t(\"./lib/bn-sign\");e.exports=function(t){return n(t[0])*n(t[1])}},{\"./lib/bn-sign\":81}],90:[function(t,e,r){\"use strict\";var n=t(\"./lib/rationalize\");e.exports=function(t,e){return n(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))}},{\"./lib/rationalize\":86}],91:[function(t,e,r){\"use strict\";var n=t(\"./lib/bn-to-num\"),a=t(\"./lib/ctz\");e.exports=function(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var i=e.abs().divmod(r.abs()),o=i.div,s=n(o),l=i.mod,c=e.negative!==r.negative?-1:1;if(0===l.cmpn(0))return c*s;if(s){var u=a(s)+4,h=n(l.ushln(u).divRound(r));return c*(s+h*Math.pow(2,-u))}var f=r.bitLength()-l.bitLength()+53,h=n(l.ushln(f).divRound(r));return f<1023?c*h*Math.pow(2,-f):(h*=Math.pow(2,-1023),c*h*Math.pow(2,1023-f))}},{\"./lib/bn-to-num\":82,\"./lib/ctz\":83}],92:[function(t,e,r){\"use strict\";function n(t,e,r,n,a,i){var o=[\"function \",t,\"(a,l,h,\",n.join(\",\"),\"){\",i?\"\":\"var i=\",r?\"l-1\":\"h+1\",\";while(l<=h){var m=(l+h)>>>1,x=a\",a?\".get(m)\":\"[m]\"];return i?e.indexOf(\"c\")<0?o.push(\";if(x===y){return m}else if(x<=y){\"):o.push(\";var p=c(x,y);if(p===0){return m}else if(p<=0){\"):o.push(\";if(\",e,\"){i=m;\"),r?o.push(\"l=m+1}else{h=m-1}\"):o.push(\"h=m-1}else{l=m+1}\"),o.push(\"}\"),i?o.push(\"return -1};\"):o.push(\"return i};\"),o.join(\"\")}function a(t,e,r,a){return new Function([n(\"A\",\"x\"+t+\"y\",e,[\"y\"],!1,a),n(\"B\",\"x\"+t+\"y\",e,[\"y\"],!0,a),n(\"P\",\"c(x,y)\"+t+\"0\",e,[\"y\",\"c\"],!1,a),n(\"Q\",\"c(x,y)\"+t+\"0\",e,[\"y\",\"c\"],!0,a),\"function dispatchBsearch\",r,\"(a,y,c,l,h){if(a.shape){if(typeof(c)==='function'){return Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)}else{return B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)}}else{if(typeof(c)==='function'){return P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)}else{return A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)}}}return dispatchBsearch\",r].join(\"\"))()}e.exports={ge:a(\">=\",!1,\"GE\"),gt:a(\">\",!1,\"GT\"),lt:a(\"<\",!0,\"LT\"),le:a(\"<=\",!0,\"LE\"),eq:a(\"-\",!0,\"EQ\",!0)}},{}],93:[function(t,e,r){\"use strict\";function n(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}r.INT_BITS=32,r.INT_MAX=2147483647,r.INT_MIN=-1<<31,r.sign=function(t){return(t>0)-(t<0)},r.abs=function(t){var e=t>>31;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t<e)},r.max=function(t,e){return t^(t^e)&-(t<e)},r.isPow2=function(t){return!(t&t-1||!t)},r.log2=function(t){var e,r;return e=(t>65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},r.countTrailingZeros=n,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var a=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,a=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--a;t[e]=n<<a&255}}(a),r.reverse=function(t){return a[255&t]<<24|a[t>>>8&255]<<16|a[t>>>16&255]<<8|a[t>>>24&255]},r.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},r.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},r.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},r.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>n(t)+1}},{}],94:[function(t,e,r){\"use strict\";var n=t(\"clamp\");e.exports=function(t,e){e||(e={});var r,o,s,l,c,u,h,f,p,d,g,v=null==e.cutoff?.25:e.cutoff,m=null==e.radius?8:e.radius,y=e.channel||0;if(ArrayBuffer.isView(t)||Array.isArray(t)){if(!e.width||!e.height)throw Error(\"For raw data width and height should be provided by options\");r=e.width,o=e.height,l=t,u=e.stride?e.stride:Math.floor(t.length/r/o)}else window.HTMLCanvasElement&&t instanceof window.HTMLCanvasElement?(h=(f=t).getContext(\"2d\"),r=f.width,o=f.height,p=h.getImageData(0,0,r,o),l=p.data,u=4):window.CanvasRenderingContext2D&&t instanceof window.CanvasRenderingContext2D?(f=t.canvas,h=t,r=f.width,o=f.height,p=h.getImageData(0,0,r,o),l=p.data,u=4):window.ImageData&&t instanceof window.ImageData&&(p=t,r=t.width,o=t.height,l=p.data,u=4);if(s=Math.max(r,o),window.Uint8ClampedArray&&l instanceof window.Uint8ClampedArray||window.Uint8Array&&l instanceof window.Uint8Array)for(c=l,l=Array(r*o),d=0,g=c.length;d<g;d++)l[d]=c[d*u+y]/255;else if(1!==u)throw Error(\"Raw data can have only 1 value per pixel\");var x=Array(r*o),b=Array(r*o),_=Array(s),w=Array(s),k=Array(s+1),T=Array(s);for(d=0,g=r*o;d<g;d++){var A=l[d];x[d]=1===A?0:0===A?a:Math.pow(Math.max(0,.5-A),2),b[d]=1===A?a:0===A?0:Math.pow(Math.max(0,A-.5),2)}i(x,r,o,_,w,T,k),i(b,r,o,_,w,T,k);var M=window.Float32Array?new Float32Array(r*o):new Array(r*o);for(d=0,g=r*o;d<g;d++)M[d]=n(1-((x[d]-b[d])/m+v),0,1);return M};var a=1e20;function i(t,e,r,n,a,i,s){for(var l=0;l<e;l++){for(var c=0;c<r;c++)n[c]=t[c*e+l];for(o(n,a,i,s,r),c=0;c<r;c++)t[c*e+l]=a[c]}for(c=0;c<r;c++){for(l=0;l<e;l++)n[l]=t[c*e+l];for(o(n,a,i,s,e),l=0;l<e;l++)t[c*e+l]=Math.sqrt(a[l])}}function o(t,e,r,n,i){r[0]=0,n[0]=-a,n[1]=+a;for(var o=1,s=0;o<i;o++){for(var l=(t[o]+o*o-(t[r[s]]+r[s]*r[s]))/(2*o-2*r[s]);l<=n[s];)s--,l=(t[o]+o*o-(t[r[s]]+r[s]*r[s]))/(2*o-2*r[s]);r[++s]=o,n[s]=l,n[s+1]=+a}for(o=0,s=0;o<i;o++){for(;n[s+1]<o;)s++;e[o]=(o-r[s])*(o-r[s])+t[r[s]]}}},{clamp:116}],95:[function(t,e,r){!function(e,r){\"use strict\";function n(t,e){if(!t)throw new Error(e||\"Assertion failed\")}function a(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function i(t,e,r){if(i.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&(\"le\"!==e&&\"be\"!==e||(r=e,e=10),this._init(t||0,e||10,r||\"be\"))}var o;\"object\"==typeof e?e.exports=i:r.BN=i,i.BN=i,i.wordSize=26;try{o=t(\"buffer\").Buffer}catch(t){}function s(t,e,r){for(var n=0,a=Math.min(t.length,r),i=e;i<a;i++){var o=t.charCodeAt(i)-48;n<<=4,n|=o>=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function l(t,e,r,n){for(var a=0,i=Math.min(t.length,r),o=e;o<i;o++){var s=t.charCodeAt(o)-48;a*=n,a+=s>=49?s-49+10:s>=17?s-17+10:s}return a}i.isBN=function(t){return t instanceof i||null!==t&&\"object\"==typeof t&&t.constructor.wordSize===i.wordSize&&Array.isArray(t.words)},i.max=function(t,e){return t.cmp(e)>0?t:e},i.min=function(t,e){return t.cmp(e)<0?t:e},i.prototype._init=function(t,e,r){if(\"number\"==typeof t)return this._initNumber(t,e,r);if(\"object\"==typeof t)return this._initArray(t,e,r);\"hex\"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var a=0;\"-\"===(t=t.toString().replace(/\\s+/g,\"\"))[0]&&a++,16===e?this._parseHex(t,a):this._parseBase(t,e,a),\"-\"===t[0]&&(this.negative=1),this.strip(),\"le\"===r&&this._initArray(this.toArray(),e,r)},i.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),\"le\"===r&&this._initArray(this.toArray(),e,r)},i.prototype._initArray=function(t,e,r){if(n(\"number\"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var a=0;a<this.length;a++)this.words[a]=0;var i,o,s=0;if(\"be\"===r)for(a=t.length-1,i=0;a>=0;a-=3)o=t[a]|t[a-1]<<8|t[a-2]<<16,this.words[i]|=o<<s&67108863,this.words[i+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if(\"le\"===r)for(a=0,i=0;a<t.length;a+=3)o=t[a]|t[a+1]<<8|t[a+2]<<16,this.words[i]|=o<<s&67108863,this.words[i+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var n,a,i=0;for(r=t.length-6,n=0;r>=e;r-=6)a=s(t,r,r+6),this.words[n]|=a<<i&67108863,this.words[n+1]|=a>>>26-i&4194303,(i+=24)>=26&&(i-=26,n++);r+6!==e&&(a=s(t,e,r+6),this.words[n]|=a<<i&67108863,this.words[n+1]|=a>>>26-i&4194303),this.strip()},i.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,a=1;a<=67108863;a*=e)n++;n--,a=a/e|0;for(var i=t.length-r,o=i%n,s=Math.min(i,i-o)+r,c=0,u=r;u<s;u+=n)c=l(t,u,u+n,e),this.imuln(a),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var h=1;for(c=l(t,u,t.length,e),u=0;u<o;u++)h*=e;this.imuln(h),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}},i.prototype.copy=function(t){t.words=new Array(this.length);for(var e=0;e<this.length;e++)t.words[e]=this.words[e];t.length=this.length,t.negative=this.negative,t.red=this.red},i.prototype.clone=function(){var t=new i(null);return this.copy(t),t},i.prototype._expand=function(t){for(;this.length<t;)this.words[this.length++]=0;return this},i.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?\"<BN-R: \":\"<BN: \")+this.toString(16)+\">\"};var c=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],h=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var a=0|t.words[0],i=0|e.words[0],o=a*i,s=67108863&o,l=o/67108864|0;r.words[0]=s;for(var c=1;c<n;c++){for(var u=l>>>26,h=67108863&l,f=Math.min(c,e.length-1),p=Math.max(0,c-t.length+1);p<=f;p++){var d=c-p|0;u+=(o=(a=0|t.words[d])*(i=0|e.words[p])+h)/67108864|0,h=67108863&o}r.words[c]=0|h,l=0|u}return 0!==l?r.words[c]=0|l:r.length--,r.strip()}i.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||\"hex\"===t){r=\"\";for(var a=0,i=0,o=0;o<this.length;o++){var s=this.words[o],l=(16777215&(s<<a|i)).toString(16);r=0!==(i=s>>>24-a&16777215)||o!==this.length-1?c[6-l.length]+l+r:l+r,(a+=2)>=26&&(a-=26,o--)}for(0!==i&&(r=i.toString(16)+r);r.length%e!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}if(t===(0|t)&&t>=2&&t<=36){var f=u[t],p=h[t];r=\"\";var d=this.clone();for(d.negative=0;!d.isZero();){var g=d.modn(p).toString(t);r=(d=d.idivn(p)).isZero()?g+r:c[f-g.length]+g+r}for(this.isZero()&&(r=\"0\"+r);r.length%e!=0;)r=\"0\"+r;return 0!==this.negative&&(r=\"-\"+r),r}n(!1,\"Base should be between 2 and 36\")},i.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,\"Number can only safely store up to 53 bits\"),0!==this.negative?-t:t},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(t,e){return n(\"undefined\"!=typeof o),this.toArrayLike(o,t,e)},i.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},i.prototype.toArrayLike=function(t,e,r){var a=this.byteLength(),i=r||Math.max(1,a);n(a<=i,\"byte array longer than desired length\"),n(i>0,\"Requested array length <= 0\"),this.strip();var o,s,l=\"le\"===e,c=new t(i),u=this.clone();if(l){for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),c[s]=o;for(;s<i;s++)c[s]=0}else{for(s=0;s<i-a;s++)c[s]=0;for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),c[i-s-1]=o}return c},Math.clz32?i.prototype._countBits=function(t){return 32-Math.clz32(t)}:i.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},i.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},i.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;e<this.length;e++){var r=this._zeroBits(this.words[e]);if(t+=r,26!==r)break}return t},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(t){return 0!==this.negative?this.abs().inotn(t).iaddn(1):this.clone()},i.prototype.fromTwos=function(t){return this.testn(t-1)?this.notn(t).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(t){for(;this.length<t.length;)this.words[this.length++]=0;for(var e=0;e<t.length;e++)this.words[e]=this.words[e]|t.words[e];return this.strip()},i.prototype.ior=function(t){return n(0==(this.negative|t.negative)),this.iuor(t)},i.prototype.or=function(t){return this.length>t.length?this.clone().ior(t):t.clone().ior(this)},i.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},i.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;r<e.length;r++)this.words[r]=this.words[r]&t.words[r];return this.length=e.length,this.strip()},i.prototype.iand=function(t){return n(0==(this.negative|t.negative)),this.iuand(t)},i.prototype.and=function(t){return this.length>t.length?this.clone().iand(t):t.clone().iand(this)},i.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},i.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;n<r.length;n++)this.words[n]=e.words[n]^r.words[n];if(this!==e)for(;n<e.length;n++)this.words[n]=e.words[n];return this.length=e.length,this.strip()},i.prototype.ixor=function(t){return n(0==(this.negative|t.negative)),this.iuxor(t)},i.prototype.xor=function(t){return this.length>t.length?this.clone().ixor(t):t.clone().ixor(this)},i.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},i.prototype.inotn=function(t){n(\"number\"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var a=0;a<e;a++)this.words[a]=67108863&~this.words[a];return r>0&&(this.words[a]=~this.words[a]&67108863>>26-r),this.strip()},i.prototype.notn=function(t){return this.clone().inotn(t)},i.prototype.setn=function(t,e){n(\"number\"==typeof t&&t>=0);var r=t/26|0,a=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<<a:this.words[r]&~(1<<a),this.strip()},i.prototype.iadd=function(t){var e,r,n;if(0!==this.negative&&0===t.negative)return this.negative=0,e=this.isub(t),this.negative^=1,this._normSign();if(0===this.negative&&0!==t.negative)return t.negative=0,e=this.isub(t),t.negative=1,e._normSign();this.length>t.length?(r=this,n=t):(r=t,n=this);for(var a=0,i=0;i<n.length;i++)e=(0|r.words[i])+(0|n.words[i])+a,this.words[i]=67108863&e,a=e>>>26;for(;0!==a&&i<r.length;i++)e=(0|r.words[i])+a,this.words[i]=67108863&e,a=e>>>26;if(this.length=r.length,0!==a)this.words[this.length]=a,this.length++;else if(r!==this)for(;i<r.length;i++)this.words[i]=r.words[i];return this},i.prototype.add=function(t){var e;return 0!==t.negative&&0===this.negative?(t.negative=0,e=this.sub(t),t.negative^=1,e):0===t.negative&&0!==this.negative?(this.negative=0,e=t.sub(this),this.negative=1,e):this.length>t.length?this.clone().iadd(t):t.clone().iadd(this)},i.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,a=this.cmp(t);if(0===a)return this.negative=0,this.length=1,this.words[0]=0,this;a>0?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o<n.length;o++)i=(e=(0|r.words[o])-(0|n.words[o])+i)>>26,this.words[o]=67108863&e;for(;0!==i&&o<r.length;o++)i=(e=(0|r.words[o])+i)>>26,this.words[o]=67108863&e;if(0===i&&o<r.length&&r!==this)for(;o<r.length;o++)this.words[o]=r.words[o];return this.length=Math.max(this.length,o),r!==this&&(this.negative=1),this.strip()},i.prototype.sub=function(t){return this.clone().isub(t)};var p=function(t,e,r){var n,a,i,o=t.words,s=e.words,l=r.words,c=0,u=0|o[0],h=8191&u,f=u>>>13,p=0|o[1],d=8191&p,g=p>>>13,v=0|o[2],m=8191&v,y=v>>>13,x=0|o[3],b=8191&x,_=x>>>13,w=0|o[4],k=8191&w,T=w>>>13,A=0|o[5],M=8191&A,S=A>>>13,E=0|o[6],C=8191&E,L=E>>>13,P=0|o[7],O=8191&P,z=P>>>13,I=0|o[8],D=8191&I,R=I>>>13,F=0|o[9],B=8191&F,N=F>>>13,j=0|s[0],V=8191&j,U=j>>>13,q=0|s[1],H=8191&q,G=q>>>13,Y=0|s[2],W=8191&Y,X=Y>>>13,Z=0|s[3],J=8191&Z,K=Z>>>13,Q=0|s[4],$=8191&Q,tt=Q>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,at=0|s[6],it=8191&at,ot=at>>>13,st=0|s[7],lt=8191&st,ct=st>>>13,ut=0|s[8],ht=8191&ut,ft=ut>>>13,pt=0|s[9],dt=8191&pt,gt=pt>>>13;r.negative=t.negative^e.negative,r.length=19;var vt=(c+(n=Math.imul(h,V))|0)+((8191&(a=(a=Math.imul(h,U))+Math.imul(f,V)|0))<<13)|0;c=((i=Math.imul(f,U))+(a>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(d,V),a=(a=Math.imul(d,U))+Math.imul(g,V)|0,i=Math.imul(g,U);var mt=(c+(n=n+Math.imul(h,H)|0)|0)+((8191&(a=(a=a+Math.imul(h,G)|0)+Math.imul(f,H)|0))<<13)|0;c=((i=i+Math.imul(f,G)|0)+(a>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(m,V),a=(a=Math.imul(m,U))+Math.imul(y,V)|0,i=Math.imul(y,U),n=n+Math.imul(d,H)|0,a=(a=a+Math.imul(d,G)|0)+Math.imul(g,H)|0,i=i+Math.imul(g,G)|0;var yt=(c+(n=n+Math.imul(h,W)|0)|0)+((8191&(a=(a=a+Math.imul(h,X)|0)+Math.imul(f,W)|0))<<13)|0;c=((i=i+Math.imul(f,X)|0)+(a>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(b,V),a=(a=Math.imul(b,U))+Math.imul(_,V)|0,i=Math.imul(_,U),n=n+Math.imul(m,H)|0,a=(a=a+Math.imul(m,G)|0)+Math.imul(y,H)|0,i=i+Math.imul(y,G)|0,n=n+Math.imul(d,W)|0,a=(a=a+Math.imul(d,X)|0)+Math.imul(g,W)|0,i=i+Math.imul(g,X)|0;var xt=(c+(n=n+Math.imul(h,J)|0)|0)+((8191&(a=(a=a+Math.imul(h,K)|0)+Math.imul(f,J)|0))<<13)|0;c=((i=i+Math.imul(f,K)|0)+(a>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(k,V),a=(a=Math.imul(k,U))+Math.imul(T,V)|0,i=Math.imul(T,U),n=n+Math.imul(b,H)|0,a=(a=a+Math.imul(b,G)|0)+Math.imul(_,H)|0,i=i+Math.imul(_,G)|0,n=n+Math.imul(m,W)|0,a=(a=a+Math.imul(m,X)|0)+Math.imul(y,W)|0,i=i+Math.imul(y,X)|0,n=n+Math.imul(d,J)|0,a=(a=a+Math.imul(d,K)|0)+Math.imul(g,J)|0,i=i+Math.imul(g,K)|0;var bt=(c+(n=n+Math.imul(h,$)|0)|0)+((8191&(a=(a=a+Math.imul(h,tt)|0)+Math.imul(f,$)|0))<<13)|0;c=((i=i+Math.imul(f,tt)|0)+(a>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(M,V),a=(a=Math.imul(M,U))+Math.imul(S,V)|0,i=Math.imul(S,U),n=n+Math.imul(k,H)|0,a=(a=a+Math.imul(k,G)|0)+Math.imul(T,H)|0,i=i+Math.imul(T,G)|0,n=n+Math.imul(b,W)|0,a=(a=a+Math.imul(b,X)|0)+Math.imul(_,W)|0,i=i+Math.imul(_,X)|0,n=n+Math.imul(m,J)|0,a=(a=a+Math.imul(m,K)|0)+Math.imul(y,J)|0,i=i+Math.imul(y,K)|0,n=n+Math.imul(d,$)|0,a=(a=a+Math.imul(d,tt)|0)+Math.imul(g,$)|0,i=i+Math.imul(g,tt)|0;var _t=(c+(n=n+Math.imul(h,rt)|0)|0)+((8191&(a=(a=a+Math.imul(h,nt)|0)+Math.imul(f,rt)|0))<<13)|0;c=((i=i+Math.imul(f,nt)|0)+(a>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(C,V),a=(a=Math.imul(C,U))+Math.imul(L,V)|0,i=Math.imul(L,U),n=n+Math.imul(M,H)|0,a=(a=a+Math.imul(M,G)|0)+Math.imul(S,H)|0,i=i+Math.imul(S,G)|0,n=n+Math.imul(k,W)|0,a=(a=a+Math.imul(k,X)|0)+Math.imul(T,W)|0,i=i+Math.imul(T,X)|0,n=n+Math.imul(b,J)|0,a=(a=a+Math.imul(b,K)|0)+Math.imul(_,J)|0,i=i+Math.imul(_,K)|0,n=n+Math.imul(m,$)|0,a=(a=a+Math.imul(m,tt)|0)+Math.imul(y,$)|0,i=i+Math.imul(y,tt)|0,n=n+Math.imul(d,rt)|0,a=(a=a+Math.imul(d,nt)|0)+Math.imul(g,rt)|0,i=i+Math.imul(g,nt)|0;var wt=(c+(n=n+Math.imul(h,it)|0)|0)+((8191&(a=(a=a+Math.imul(h,ot)|0)+Math.imul(f,it)|0))<<13)|0;c=((i=i+Math.imul(f,ot)|0)+(a>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(O,V),a=(a=Math.imul(O,U))+Math.imul(z,V)|0,i=Math.imul(z,U),n=n+Math.imul(C,H)|0,a=(a=a+Math.imul(C,G)|0)+Math.imul(L,H)|0,i=i+Math.imul(L,G)|0,n=n+Math.imul(M,W)|0,a=(a=a+Math.imul(M,X)|0)+Math.imul(S,W)|0,i=i+Math.imul(S,X)|0,n=n+Math.imul(k,J)|0,a=(a=a+Math.imul(k,K)|0)+Math.imul(T,J)|0,i=i+Math.imul(T,K)|0,n=n+Math.imul(b,$)|0,a=(a=a+Math.imul(b,tt)|0)+Math.imul(_,$)|0,i=i+Math.imul(_,tt)|0,n=n+Math.imul(m,rt)|0,a=(a=a+Math.imul(m,nt)|0)+Math.imul(y,rt)|0,i=i+Math.imul(y,nt)|0,n=n+Math.imul(d,it)|0,a=(a=a+Math.imul(d,ot)|0)+Math.imul(g,it)|0,i=i+Math.imul(g,ot)|0;var kt=(c+(n=n+Math.imul(h,lt)|0)|0)+((8191&(a=(a=a+Math.imul(h,ct)|0)+Math.imul(f,lt)|0))<<13)|0;c=((i=i+Math.imul(f,ct)|0)+(a>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,V),a=(a=Math.imul(D,U))+Math.imul(R,V)|0,i=Math.imul(R,U),n=n+Math.imul(O,H)|0,a=(a=a+Math.imul(O,G)|0)+Math.imul(z,H)|0,i=i+Math.imul(z,G)|0,n=n+Math.imul(C,W)|0,a=(a=a+Math.imul(C,X)|0)+Math.imul(L,W)|0,i=i+Math.imul(L,X)|0,n=n+Math.imul(M,J)|0,a=(a=a+Math.imul(M,K)|0)+Math.imul(S,J)|0,i=i+Math.imul(S,K)|0,n=n+Math.imul(k,$)|0,a=(a=a+Math.imul(k,tt)|0)+Math.imul(T,$)|0,i=i+Math.imul(T,tt)|0,n=n+Math.imul(b,rt)|0,a=(a=a+Math.imul(b,nt)|0)+Math.imul(_,rt)|0,i=i+Math.imul(_,nt)|0,n=n+Math.imul(m,it)|0,a=(a=a+Math.imul(m,ot)|0)+Math.imul(y,it)|0,i=i+Math.imul(y,ot)|0,n=n+Math.imul(d,lt)|0,a=(a=a+Math.imul(d,ct)|0)+Math.imul(g,lt)|0,i=i+Math.imul(g,ct)|0;var Tt=(c+(n=n+Math.imul(h,ht)|0)|0)+((8191&(a=(a=a+Math.imul(h,ft)|0)+Math.imul(f,ht)|0))<<13)|0;c=((i=i+Math.imul(f,ft)|0)+(a>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(B,V),a=(a=Math.imul(B,U))+Math.imul(N,V)|0,i=Math.imul(N,U),n=n+Math.imul(D,H)|0,a=(a=a+Math.imul(D,G)|0)+Math.imul(R,H)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(O,W)|0,a=(a=a+Math.imul(O,X)|0)+Math.imul(z,W)|0,i=i+Math.imul(z,X)|0,n=n+Math.imul(C,J)|0,a=(a=a+Math.imul(C,K)|0)+Math.imul(L,J)|0,i=i+Math.imul(L,K)|0,n=n+Math.imul(M,$)|0,a=(a=a+Math.imul(M,tt)|0)+Math.imul(S,$)|0,i=i+Math.imul(S,tt)|0,n=n+Math.imul(k,rt)|0,a=(a=a+Math.imul(k,nt)|0)+Math.imul(T,rt)|0,i=i+Math.imul(T,nt)|0,n=n+Math.imul(b,it)|0,a=(a=a+Math.imul(b,ot)|0)+Math.imul(_,it)|0,i=i+Math.imul(_,ot)|0,n=n+Math.imul(m,lt)|0,a=(a=a+Math.imul(m,ct)|0)+Math.imul(y,lt)|0,i=i+Math.imul(y,ct)|0,n=n+Math.imul(d,ht)|0,a=(a=a+Math.imul(d,ft)|0)+Math.imul(g,ht)|0,i=i+Math.imul(g,ft)|0;var At=(c+(n=n+Math.imul(h,dt)|0)|0)+((8191&(a=(a=a+Math.imul(h,gt)|0)+Math.imul(f,dt)|0))<<13)|0;c=((i=i+Math.imul(f,gt)|0)+(a>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(B,H),a=(a=Math.imul(B,G))+Math.imul(N,H)|0,i=Math.imul(N,G),n=n+Math.imul(D,W)|0,a=(a=a+Math.imul(D,X)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,X)|0,n=n+Math.imul(O,J)|0,a=(a=a+Math.imul(O,K)|0)+Math.imul(z,J)|0,i=i+Math.imul(z,K)|0,n=n+Math.imul(C,$)|0,a=(a=a+Math.imul(C,tt)|0)+Math.imul(L,$)|0,i=i+Math.imul(L,tt)|0,n=n+Math.imul(M,rt)|0,a=(a=a+Math.imul(M,nt)|0)+Math.imul(S,rt)|0,i=i+Math.imul(S,nt)|0,n=n+Math.imul(k,it)|0,a=(a=a+Math.imul(k,ot)|0)+Math.imul(T,it)|0,i=i+Math.imul(T,ot)|0,n=n+Math.imul(b,lt)|0,a=(a=a+Math.imul(b,ct)|0)+Math.imul(_,lt)|0,i=i+Math.imul(_,ct)|0,n=n+Math.imul(m,ht)|0,a=(a=a+Math.imul(m,ft)|0)+Math.imul(y,ht)|0,i=i+Math.imul(y,ft)|0;var Mt=(c+(n=n+Math.imul(d,dt)|0)|0)+((8191&(a=(a=a+Math.imul(d,gt)|0)+Math.imul(g,dt)|0))<<13)|0;c=((i=i+Math.imul(g,gt)|0)+(a>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(B,W),a=(a=Math.imul(B,X))+Math.imul(N,W)|0,i=Math.imul(N,X),n=n+Math.imul(D,J)|0,a=(a=a+Math.imul(D,K)|0)+Math.imul(R,J)|0,i=i+Math.imul(R,K)|0,n=n+Math.imul(O,$)|0,a=(a=a+Math.imul(O,tt)|0)+Math.imul(z,$)|0,i=i+Math.imul(z,tt)|0,n=n+Math.imul(C,rt)|0,a=(a=a+Math.imul(C,nt)|0)+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,n=n+Math.imul(M,it)|0,a=(a=a+Math.imul(M,ot)|0)+Math.imul(S,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(k,lt)|0,a=(a=a+Math.imul(k,ct)|0)+Math.imul(T,lt)|0,i=i+Math.imul(T,ct)|0,n=n+Math.imul(b,ht)|0,a=(a=a+Math.imul(b,ft)|0)+Math.imul(_,ht)|0,i=i+Math.imul(_,ft)|0;var St=(c+(n=n+Math.imul(m,dt)|0)|0)+((8191&(a=(a=a+Math.imul(m,gt)|0)+Math.imul(y,dt)|0))<<13)|0;c=((i=i+Math.imul(y,gt)|0)+(a>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(B,J),a=(a=Math.imul(B,K))+Math.imul(N,J)|0,i=Math.imul(N,K),n=n+Math.imul(D,$)|0,a=(a=a+Math.imul(D,tt)|0)+Math.imul(R,$)|0,i=i+Math.imul(R,tt)|0,n=n+Math.imul(O,rt)|0,a=(a=a+Math.imul(O,nt)|0)+Math.imul(z,rt)|0,i=i+Math.imul(z,nt)|0,n=n+Math.imul(C,it)|0,a=(a=a+Math.imul(C,ot)|0)+Math.imul(L,it)|0,i=i+Math.imul(L,ot)|0,n=n+Math.imul(M,lt)|0,a=(a=a+Math.imul(M,ct)|0)+Math.imul(S,lt)|0,i=i+Math.imul(S,ct)|0,n=n+Math.imul(k,ht)|0,a=(a=a+Math.imul(k,ft)|0)+Math.imul(T,ht)|0,i=i+Math.imul(T,ft)|0;var Et=(c+(n=n+Math.imul(b,dt)|0)|0)+((8191&(a=(a=a+Math.imul(b,gt)|0)+Math.imul(_,dt)|0))<<13)|0;c=((i=i+Math.imul(_,gt)|0)+(a>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(B,$),a=(a=Math.imul(B,tt))+Math.imul(N,$)|0,i=Math.imul(N,tt),n=n+Math.imul(D,rt)|0,a=(a=a+Math.imul(D,nt)|0)+Math.imul(R,rt)|0,i=i+Math.imul(R,nt)|0,n=n+Math.imul(O,it)|0,a=(a=a+Math.imul(O,ot)|0)+Math.imul(z,it)|0,i=i+Math.imul(z,ot)|0,n=n+Math.imul(C,lt)|0,a=(a=a+Math.imul(C,ct)|0)+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,n=n+Math.imul(M,ht)|0,a=(a=a+Math.imul(M,ft)|0)+Math.imul(S,ht)|0,i=i+Math.imul(S,ft)|0;var Ct=(c+(n=n+Math.imul(k,dt)|0)|0)+((8191&(a=(a=a+Math.imul(k,gt)|0)+Math.imul(T,dt)|0))<<13)|0;c=((i=i+Math.imul(T,gt)|0)+(a>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(B,rt),a=(a=Math.imul(B,nt))+Math.imul(N,rt)|0,i=Math.imul(N,nt),n=n+Math.imul(D,it)|0,a=(a=a+Math.imul(D,ot)|0)+Math.imul(R,it)|0,i=i+Math.imul(R,ot)|0,n=n+Math.imul(O,lt)|0,a=(a=a+Math.imul(O,ct)|0)+Math.imul(z,lt)|0,i=i+Math.imul(z,ct)|0,n=n+Math.imul(C,ht)|0,a=(a=a+Math.imul(C,ft)|0)+Math.imul(L,ht)|0,i=i+Math.imul(L,ft)|0;var Lt=(c+(n=n+Math.imul(M,dt)|0)|0)+((8191&(a=(a=a+Math.imul(M,gt)|0)+Math.imul(S,dt)|0))<<13)|0;c=((i=i+Math.imul(S,gt)|0)+(a>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(B,it),a=(a=Math.imul(B,ot))+Math.imul(N,it)|0,i=Math.imul(N,ot),n=n+Math.imul(D,lt)|0,a=(a=a+Math.imul(D,ct)|0)+Math.imul(R,lt)|0,i=i+Math.imul(R,ct)|0,n=n+Math.imul(O,ht)|0,a=(a=a+Math.imul(O,ft)|0)+Math.imul(z,ht)|0,i=i+Math.imul(z,ft)|0;var Pt=(c+(n=n+Math.imul(C,dt)|0)|0)+((8191&(a=(a=a+Math.imul(C,gt)|0)+Math.imul(L,dt)|0))<<13)|0;c=((i=i+Math.imul(L,gt)|0)+(a>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(B,lt),a=(a=Math.imul(B,ct))+Math.imul(N,lt)|0,i=Math.imul(N,ct),n=n+Math.imul(D,ht)|0,a=(a=a+Math.imul(D,ft)|0)+Math.imul(R,ht)|0,i=i+Math.imul(R,ft)|0;var Ot=(c+(n=n+Math.imul(O,dt)|0)|0)+((8191&(a=(a=a+Math.imul(O,gt)|0)+Math.imul(z,dt)|0))<<13)|0;c=((i=i+Math.imul(z,gt)|0)+(a>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(B,ht),a=(a=Math.imul(B,ft))+Math.imul(N,ht)|0,i=Math.imul(N,ft);var zt=(c+(n=n+Math.imul(D,dt)|0)|0)+((8191&(a=(a=a+Math.imul(D,gt)|0)+Math.imul(R,dt)|0))<<13)|0;c=((i=i+Math.imul(R,gt)|0)+(a>>>13)|0)+(zt>>>26)|0,zt&=67108863;var It=(c+(n=Math.imul(B,dt))|0)+((8191&(a=(a=Math.imul(B,gt))+Math.imul(N,dt)|0))<<13)|0;return c=((i=Math.imul(N,gt))+(a>>>13)|0)+(It>>>26)|0,It&=67108863,l[0]=vt,l[1]=mt,l[2]=yt,l[3]=xt,l[4]=bt,l[5]=_t,l[6]=wt,l[7]=kt,l[8]=Tt,l[9]=At,l[10]=Mt,l[11]=St,l[12]=Et,l[13]=Ct,l[14]=Lt,l[15]=Pt,l[16]=Ot,l[17]=zt,l[18]=It,0!==c&&(l[19]=c,r.length++),r};function d(t,e,r){return(new g).mulp(t,e,r)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=f),i.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?f(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,a=0,i=0;i<r.length-1;i++){var o=a;a=0;for(var s=67108863&n,l=Math.min(i,e.length-1),c=Math.max(0,i-t.length+1);c<=l;c++){var u=i-c,h=(0|t.words[u])*(0|e.words[c]),f=67108863&h;s=67108863&(f=f+s|0),a+=(o=(o=o+(h/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}r.words[i]=s,n=o,o=a}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,t,e):d(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),r=i.prototype._countBits(t)-1,n=0;n<t;n++)e[n]=this.revBin(n,r,t);return e},g.prototype.revBin=function(t,e,r){if(0===t||t===r-1)return t;for(var n=0,a=0;a<e;a++)n|=(1&t)<<e-a-1,t>>=1;return n},g.prototype.permute=function(t,e,r,n,a,i){for(var o=0;o<i;o++)n[o]=e[t[o]],a[o]=r[t[o]]},g.prototype.transform=function(t,e,r,n,a,i){this.permute(i,t,e,r,n,a);for(var o=1;o<a;o<<=1)for(var s=o<<1,l=Math.cos(2*Math.PI/s),c=Math.sin(2*Math.PI/s),u=0;u<a;u+=s)for(var h=l,f=c,p=0;p<o;p++){var d=r[u+p],g=n[u+p],v=r[u+p+o],m=n[u+p+o],y=h*v-f*m;m=h*m+f*v,v=y,r[u+p]=d+v,n[u+p]=g+m,r[u+p+o]=d-v,n[u+p+o]=g-m,p!==s&&(y=l*h-c*f,f=l*f+c*h,h=y)}},g.prototype.guessLen13b=function(t,e){var r=1|Math.max(e,t),n=1&r,a=0;for(r=r/2|0;r;r>>>=1)a++;return 1<<a+1+n},g.prototype.conjugate=function(t,e,r){if(!(r<=1))for(var n=0;n<r/2;n++){var a=t[n];t[n]=t[r-n-1],t[r-n-1]=a,a=e[n],e[n]=-e[r-n-1],e[r-n-1]=-a}},g.prototype.normalize13b=function(t,e){for(var r=0,n=0;n<e/2;n++){var a=8192*Math.round(t[2*n+1]/e)+Math.round(t[2*n]/e)+r;t[n]=67108863&a,r=a<67108864?0:a/67108864|0}return t},g.prototype.convert13b=function(t,e,r,a){for(var i=0,o=0;o<e;o++)i+=0|t[o],r[2*o]=8191&i,i>>>=13,r[2*o+1]=8191&i,i>>>=13;for(o=2*e;o<a;++o)r[o]=0;n(0===i),n(0==(-8192&i))},g.prototype.stub=function(t){for(var e=new Array(t),r=0;r<t;r++)e[r]=0;return e},g.prototype.mulp=function(t,e,r){var n=2*this.guessLen13b(t.length,e.length),a=this.makeRBT(n),i=this.stub(n),o=new Array(n),s=new Array(n),l=new Array(n),c=new Array(n),u=new Array(n),h=new Array(n),f=r.words;f.length=n,this.convert13b(t.words,t.length,o,n),this.convert13b(e.words,e.length,c,n),this.transform(o,i,s,l,n,a),this.transform(c,i,u,h,n,a);for(var p=0;p<n;p++){var d=s[p]*u[p]-l[p]*h[p];l[p]=s[p]*h[p]+l[p]*u[p],s[p]=d}return this.conjugate(s,l,n),this.transform(s,l,f,i,n,a),this.conjugate(f,i,n),this.normalize13b(f,n),r.negative=t.negative^e.negative,r.length=t.length+e.length,r.strip()},i.prototype.mul=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},i.prototype.mulf=function(t){var e=new i(null);return e.words=new Array(this.length+t.length),d(this,t,e)},i.prototype.imul=function(t){return this.clone().mulTo(t,this)},i.prototype.imuln=function(t){n(\"number\"==typeof t),n(t<67108864);for(var e=0,r=0;r<this.length;r++){var a=(0|this.words[r])*t,i=(67108863&a)+(67108863&e);e>>=26,e+=a/67108864|0,e+=i>>>26,this.words[r]=67108863&i}return 0!==e&&(this.words[r]=e,this.length++),this},i.prototype.muln=function(t){return this.clone().imuln(t)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r<e.length;r++){var n=r/26|0,a=r%26;e[r]=(t.words[n]&1<<a)>>>a}return e}(t);if(0===e.length)return new i(1);for(var r=this,n=0;n<e.length&&0===e[n];n++,r=r.sqr());if(++n<e.length)for(var a=r.sqr();n<e.length;n++,a=a.sqr())0!==e[n]&&(r=r.mul(a));return r},i.prototype.iushln=function(t){n(\"number\"==typeof t&&t>=0);var e,r=t%26,a=(t-r)/26,i=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(e=0;e<this.length;e++){var s=this.words[e]&i,l=(0|this.words[e])-s<<r;this.words[e]=l|o,o=s>>>26-r}o&&(this.words[e]=o,this.length++)}if(0!==a){for(e=this.length-1;e>=0;e--)this.words[e+a]=this.words[e];for(e=0;e<a;e++)this.words[e]=0;this.length+=a}return this.strip()},i.prototype.ishln=function(t){return n(0===this.negative),this.iushln(t)},i.prototype.iushrn=function(t,e,r){var a;n(\"number\"==typeof t&&t>=0),a=e?(e-e%26)/26:0;var i=t%26,o=Math.min((t-i)/26,this.length),s=67108863^67108863>>>i<<i,l=r;if(a-=o,a=Math.max(0,a),l){for(var c=0;c<o;c++)l.words[c]=this.words[c];l.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var u=0;for(c=this.length-1;c>=0&&(0!==u||c>=a);c--){var h=0|this.words[c];this.words[c]=u<<26-i|h>>>i,u=h&s}return l&&0!==u&&(l.words[l.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},i.prototype.shln=function(t){return this.clone().ishln(t)},i.prototype.ushln=function(t){return this.clone().iushln(t)},i.prototype.shrn=function(t){return this.clone().ishrn(t)},i.prototype.ushrn=function(t){return this.clone().iushrn(t)},i.prototype.testn=function(t){n(\"number\"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,a=1<<e;return!(this.length<=r)&&!!(this.words[r]&a)},i.prototype.imaskn=function(t){n(\"number\"==typeof t&&t>=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,\"imaskn works only with positive numbers\"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var a=67108863^67108863>>>e<<e;this.words[this.length-1]&=a}return this.strip()},i.prototype.maskn=function(t){return this.clone().imaskn(t)},i.prototype.iaddn=function(t){return n(\"number\"==typeof t),n(t<67108864),t<0?this.isubn(-t):0!==this.negative?1===this.length&&(0|this.words[0])<t?(this.words[0]=t-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(t),this.negative=1,this):this._iaddn(t)},i.prototype._iaddn=function(t){this.words[0]+=t;for(var e=0;e<this.length&&this.words[e]>=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},i.prototype.isubn=function(t){if(n(\"number\"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e<this.length&&this.words[e]<0;e++)this.words[e]+=67108864,this.words[e+1]-=1;return this.strip()},i.prototype.addn=function(t){return this.clone().iaddn(t)},i.prototype.subn=function(t){return this.clone().isubn(t)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(t,e,r){var a,i,o=t.length+r;this._expand(o);var s=0;for(a=0;a<t.length;a++){i=(0|this.words[a+r])+s;var l=(0|t.words[a])*e;s=((i-=67108863&l)>>26)-(l/67108864|0),this.words[a+r]=67108863&i}for(;a<this.length-r;a++)s=(i=(0|this.words[a+r])+s)>>26,this.words[a+r]=67108863&i;if(0===s)return this.strip();for(n(-1===s),s=0,a=0;a<this.length;a++)s=(i=-(0|this.words[a])+s)>>26,this.words[a]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),a=t,o=0|a.words[a.length-1];0!==(r=26-this._countBits(o))&&(a=a.ushln(r),n.iushln(r),o=0|a.words[a.length-1]);var s,l=n.length-a.length;if(\"mod\"!==e){(s=new i(null)).length=l+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var u=n.clone()._ishlnsubmul(a,1,l);0===u.negative&&(n=u,s&&(s.words[l]=1));for(var h=l-1;h>=0;h--){var f=67108864*(0|n.words[a.length+h])+(0|n.words[a.length+h-1]);for(f=Math.min(f/o|0,67108863),n._ishlnsubmul(a,f,h);0!==n.negative;)f--,n.negative=0,n._ishlnsubmul(a,1,h),n.isZero()||(n.negative^=1);s&&(s.words[h]=f)}return s&&s.strip(),n.strip(),\"div\"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),\"mod\"!==e&&(a=s.div.neg()),\"div\"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:a,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),\"mod\"!==e&&(a=s.div.neg()),{div:a,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),\"div\"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new i(0),mod:this}:1===t.length?\"div\"===e?{div:this.divn(t.words[0]),mod:null}:\"mod\"===e?{div:null,mod:new i(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new i(this.modn(t.words[0]))}:this._wordDiv(t,e);var a,o,s},i.prototype.div=function(t){return this.divmod(t,\"div\",!1).div},i.prototype.mod=function(t){return this.divmod(t,\"mod\",!1).mod},i.prototype.umod=function(t){return this.divmod(t,\"mod\",!0).mod},i.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),a=t.andln(1),i=r.cmp(n);return i<0||1===a&&0===i?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},i.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,a=this.length-1;a>=0;a--)r=(e*r+(0|this.words[a]))%t;return r},i.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var a=(0|this.words[r])+67108864*e;this.words[r]=a/t|0,e=a%t}return this.strip()},i.prototype.divn=function(t){return this.clone().idivn(t)},i.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var a=new i(1),o=new i(0),s=new i(0),l=new i(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var u=r.clone(),h=e.clone();!e.isZero();){for(var f=0,p=1;0==(e.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(e.iushrn(f);f-- >0;)(a.isOdd()||o.isOdd())&&(a.iadd(u),o.isub(h)),a.iushrn(1),o.iushrn(1);for(var d=0,g=1;0==(r.words[0]&g)&&d<26;++d,g<<=1);if(d>0)for(r.iushrn(d);d-- >0;)(s.isOdd()||l.isOdd())&&(s.iadd(u),l.isub(h)),s.iushrn(1),l.iushrn(1);e.cmp(r)>=0?(e.isub(r),a.isub(s),o.isub(l)):(r.isub(e),s.isub(a),l.isub(o))}return{a:s,b:l,gcd:r.iushln(c)}},i.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var a,o=new i(1),s=new i(0),l=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,u=1;0==(e.words[0]&u)&&c<26;++c,u<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var h=0,f=1;0==(r.words[0]&f)&&h<26;++h,f<<=1);if(h>0)for(r.iushrn(h);h-- >0;)s.isOdd()&&s.iadd(l),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(a=0===e.cmpn(1)?o:s).cmpn(0)<0&&a.iadd(t),a},i.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var a=e.cmp(r);if(a<0){var i=e;e=r,r=i}else if(0===a||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},i.prototype.invm=function(t){return this.egcd(t).a.umod(t)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(t){return this.words[0]&t},i.prototype.bincn=function(t){n(\"number\"==typeof t);var e=t%26,r=(t-e)/26,a=1<<e;if(this.length<=r)return this._expand(r+1),this.words[r]|=a,this;for(var i=a,o=r;0!==i&&o<this.length;o++){var s=0|this.words[o];i=(s+=i)>>>26,s&=67108863,this.words[o]=s}return 0!==i&&(this.words[o]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,\"Number is too big\");var a=0|this.words[0];e=a===t?0:a<t?-1:1}return 0!==this.negative?0|-e:e},i.prototype.cmp=function(t){if(0!==this.negative&&0===t.negative)return-1;if(0===this.negative&&0!==t.negative)return 1;var e=this.ucmp(t);return 0!==this.negative?0|-e:e},i.prototype.ucmp=function(t){if(this.length>t.length)return 1;if(this.length<t.length)return-1;for(var e=0,r=this.length-1;r>=0;r--){var n=0|this.words[r],a=0|t.words[r];if(n!==a){n<a?e=-1:n>a&&(e=1);break}}return e},i.prototype.gtn=function(t){return 1===this.cmpn(t)},i.prototype.gt=function(t){return 1===this.cmp(t)},i.prototype.gten=function(t){return this.cmpn(t)>=0},i.prototype.gte=function(t){return this.cmp(t)>=0},i.prototype.ltn=function(t){return-1===this.cmpn(t)},i.prototype.lt=function(t){return-1===this.cmp(t)},i.prototype.lten=function(t){return this.cmpn(t)<=0},i.prototype.lte=function(t){return this.cmp(t)<=0},i.prototype.eqn=function(t){return 0===this.cmpn(t)},i.prototype.eq=function(t){return 0===this.cmp(t)},i.red=function(t){return new w(t)},i.prototype.toRed=function(t){return n(!this.red,\"Already a number in reduction context\"),n(0===this.negative,\"red works only with positives\"),t.convertTo(this)._forceRed(t)},i.prototype.fromRed=function(){return n(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},i.prototype._forceRed=function(t){return this.red=t,this},i.prototype.forceRed=function(t){return n(!this.red,\"Already a number in reduction context\"),this._forceRed(t)},i.prototype.redAdd=function(t){return n(this.red,\"redAdd works only with red numbers\"),this.red.add(this,t)},i.prototype.redIAdd=function(t){return n(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,t)},i.prototype.redSub=function(t){return n(this.red,\"redSub works only with red numbers\"),this.red.sub(this,t)},i.prototype.redISub=function(t){return n(this.red,\"redISub works only with red numbers\"),this.red.isub(this,t)},i.prototype.redShl=function(t){return n(this.red,\"redShl works only with red numbers\"),this.red.shl(this,t)},i.prototype.redMul=function(t){return n(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.mul(this,t)},i.prototype.redIMul=function(t){return n(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.imul(this,t)},i.prototype.redSqr=function(){return n(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(t){return n(this.red&&!t.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,t)};var v={k256:null,p224:null,p192:null,p25519:null};function m(t,e){this.name=t,this.p=new i(e,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){m.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}function x(){m.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}function b(){m.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}function _(){m.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}function w(t){if(\"string\"==typeof t){var e=i._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),\"modulus must be greater than 1\"),this.m=t,this.prime=null}function k(t){w.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}m.prototype._tmp=function(){var t=new i(null);return t.words=new Array(Math.ceil(this.n/13)),t},m.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e<this.n?-1:r.ucmp(this.p);return 0===n?(r.words[0]=0,r.length=1):n>0?r.isub(this.p):r.strip(),r},m.prototype.split=function(t,e){t.iushrn(this.n,0,e)},m.prototype.imulK=function(t){return t.imul(this.k)},a(y,m),y.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n<r;n++)e.words[n]=t.words[n];if(e.length=r,t.length<=9)return t.words[0]=0,void(t.length=1);var a=t.words[9];for(e.words[e.length++]=4194303&a,n=10;n<t.length;n++){var i=0|t.words[n];t.words[n-10]=(4194303&i)<<4|a>>>22,a=i}a>>>=22,t.words[n-10]=a,0===a&&t.length>10?t.length-=10:t.length-=9},y.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r<t.length;r++){var n=0|t.words[r];e+=977*n,t.words[r]=67108863&e,e=64*n+(e/67108864|0)}return 0===t.words[t.length-1]&&(t.length--,0===t.words[t.length-1]&&t.length--),t},a(x,m),a(b,m),a(_,m),_.prototype.imulK=function(t){for(var e=0,r=0;r<t.length;r++){var n=19*(0|t.words[r])+e,a=67108863&n;n>>>=26,t.words[r]=a,e=n}return 0!==e&&(t.words[t.length++]=e),t},i._prime=function(t){if(v[t])return v[t];var e;if(\"k256\"===t)e=new y;else if(\"p224\"===t)e=new x;else if(\"p192\"===t)e=new b;else{if(\"p25519\"!==t)throw new Error(\"Unknown prime \"+t);e=new _}return v[t]=e,e},w.prototype._verify1=function(t){n(0===t.negative,\"red works only with positives\"),n(t.red,\"red works only with red numbers\")},w.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),\"red works only with positives\"),n(t.red&&t.red===e.red,\"red works only with red numbers\")},w.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},w.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},w.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},w.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},w.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},w.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},w.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},w.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},w.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},w.prototype.isqr=function(t){return this.imul(t,t.clone())},w.prototype.sqr=function(t){return this.mul(t,t)},w.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new i(1)).iushrn(2);return this.pow(t,r)}for(var a=this.m.subn(1),o=0;!a.isZero()&&0===a.andln(1);)o++,a.iushrn(1);n(!a.isZero());var s=new i(1).toRed(this),l=s.redNeg(),c=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new i(2*u*u).toRed(this);0!==this.pow(u,c).cmp(l);)u.redIAdd(l);for(var h=this.pow(u,a),f=this.pow(t,a.addn(1).iushrn(1)),p=this.pow(t,a),d=o;0!==p.cmp(s);){for(var g=p,v=0;0!==g.cmp(s);v++)g=g.redSqr();n(v<d);var m=this.pow(h,new i(1).iushln(d-v-1));f=f.redMul(m),h=m.redSqr(),p=p.redMul(h),d=v}return f},w.prototype.invm=function(t){var e=t._invmp(this.m);return 0!==e.negative?(e.negative=0,this.imod(e).redNeg()):this.imod(e)},w.prototype.pow=function(t,e){if(e.isZero())return new i(1).toRed(this);if(0===e.cmpn(1))return t.clone();var r=new Array(16);r[0]=new i(1).toRed(this),r[1]=t;for(var n=2;n<r.length;n++)r[n]=this.mul(r[n-1],t);var a=r[0],o=0,s=0,l=e.bitLength()%26;for(0===l&&(l=26),n=e.length-1;n>=0;n--){for(var c=e.words[n],u=l-1;u>=0;u--){var h=c>>u&1;a!==r[0]&&(a=this.sqr(a)),0!==h||0!==o?(o<<=1,o|=h,(4===++s||0===n&&0===u)&&(a=this.mul(a,r[o]),s=0,o=0)):s=0}l=26}return a},w.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},w.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},i.mont=function(t){return new k(t)},a(k,w),k.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},k.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},k.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(n).iushrn(this.shift),i=a;return a.cmp(this.m)>=0?i=a.isub(this.m):a.cmpn(0)<0&&(i=a.iadd(this.m)),i._forceRed(this)},k.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new i(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(n).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},k.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(\"undefined\"==typeof e||e,this)},{buffer:104}],96:[function(t,e,r){\"use strict\";e.exports=function(t){var e,r,n,a=t.length,i=0;for(e=0;e<a;++e)i+=t[e].length;var o=new Array(i),s=0;for(e=0;e<a;++e){var l=t[e],c=l.length;for(r=0;r<c;++r){var u=o[s++]=new Array(c-1),h=0;for(n=0;n<c;++n)n!==r&&(u[h++]=l[n]);if(1&r){var f=u[1];u[1]=u[0],u[0]=f}}}return o}},{}],97:[function(t,e,r){\"use strict\";e.exports=function(t,e,r){switch(arguments.length){case 1:return n=[],c(a=t,a,u,!0),n;case 2:return\"function\"==typeof e?c(t,t,e,!0):function(t,e){return n=[],c(t,e,u,!1),n}(t,e);case 3:return c(t,e,r,!1);default:throw new Error(\"box-intersect: Invalid arguments\")}var a};var n,a=t(\"typedarray-pool\"),i=t(\"./lib/sweep\"),o=t(\"./lib/intersect\");function s(t,e){for(var r=0;r<t;++r)if(!(e[r]<=e[r+t]))return!0;return!1}function l(t,e,r,n){for(var a=0,i=0,o=0,l=t.length;o<l;++o){var c=t[o];if(!s(e,c)){for(var u=0;u<2*e;++u)r[a++]=c[u];n[i++]=o}}return i}function c(t,e,r,n){var s=t.length,c=e.length;if(!(s<=0||c<=0)){var u=t[0].length>>>1;if(!(u<=0)){var h,f=a.mallocDouble(2*u*s),p=a.mallocInt32(s);if((s=l(t,u,f,p))>0){if(1===u&&n)i.init(s),h=i.sweepComplete(u,r,0,s,f,p,0,s,f,p);else{var d=a.mallocDouble(2*u*c),g=a.mallocInt32(c);(c=l(e,u,d,g))>0&&(i.init(s+c),h=1===u?i.sweepBipartite(u,r,0,s,f,p,0,c,d,g):o(u,r,n,s,f,p,c,d,g),a.free(d),a.free(g))}a.free(f),a.free(p)}return h}}}function u(t,e){n.push([t,e])}},{\"./lib/intersect\":99,\"./lib/sweep\":103,\"typedarray-pool\":543}],98:[function(t,e,r){\"use strict\";var n=\"d\",a=\"ax\",i=\"vv\",o=\"fp\",s=\"es\",l=\"rs\",c=\"re\",u=\"rb\",h=\"ri\",f=\"rp\",p=\"bs\",d=\"be\",g=\"bb\",v=\"bi\",m=\"bp\",y=\"rv\",x=\"Q\",b=[n,a,i,l,c,u,h,p,d,g,v];function _(t){var e=\"bruteForce\"+(t?\"Full\":\"Partial\"),r=[],_=b.slice();t||_.splice(3,0,o);var w=[\"function \"+e+\"(\"+_.join()+\"){\"];function k(e,o){var _=function(t,e,r){var o=\"bruteForce\"+(t?\"Red\":\"Blue\")+(e?\"Flip\":\"\")+(r?\"Full\":\"\"),_=[\"function \",o,\"(\",b.join(),\"){\",\"var \",s,\"=2*\",n,\";\"],w=\"for(var i=\"+l+\",\"+f+\"=\"+s+\"*\"+l+\";i<\"+c+\";++i,\"+f+\"+=\"+s+\"){var x0=\"+u+\"[\"+a+\"+\"+f+\"],x1=\"+u+\"[\"+a+\"+\"+f+\"+\"+n+\"],xi=\"+h+\"[i];\",k=\"for(var j=\"+p+\",\"+m+\"=\"+s+\"*\"+p+\";j<\"+d+\";++j,\"+m+\"+=\"+s+\"){var y0=\"+g+\"[\"+a+\"+\"+m+\"],\"+(r?\"y1=\"+g+\"[\"+a+\"+\"+m+\"+\"+n+\"],\":\"\")+\"yi=\"+v+\"[j];\";return t?_.push(w,x,\":\",k):_.push(k,x,\":\",w),r?_.push(\"if(y1<x0||x1<y0)continue;\"):e?_.push(\"if(y0<=x0||x1<y0)continue;\"):_.push(\"if(y0<x0||x1<y0)continue;\"),_.push(\"for(var k=\"+a+\"+1;k<\"+n+\";++k){var r0=\"+u+\"[k+\"+f+\"],r1=\"+u+\"[k+\"+n+\"+\"+f+\"],b0=\"+g+\"[k+\"+m+\"],b1=\"+g+\"[k+\"+n+\"+\"+m+\"];if(r1<b0||b1<r0)continue \"+x+\";}var \"+y+\"=\"+i+\"(\"),e?_.push(\"yi,xi\"):_.push(\"xi,yi\"),_.push(\");if(\"+y+\"!==void 0)return \"+y+\";}}}\"),{name:o,code:_.join(\"\")}}(e,o,t);r.push(_.code),w.push(\"return \"+_.name+\"(\"+b.join()+\");\")}w.push(\"if(\"+c+\"-\"+l+\">\"+d+\"-\"+p+\"){\"),t?(k(!0,!1),w.push(\"}else{\"),k(!1,!1)):(w.push(\"if(\"+o+\"){\"),k(!0,!0),w.push(\"}else{\"),k(!0,!1),w.push(\"}}else{if(\"+o+\"){\"),k(!1,!0),w.push(\"}else{\"),k(!1,!1),w.push(\"}\")),w.push(\"}}return \"+e);var T=r.join(\"\")+w.join(\"\");return new Function(T)()}r.partial=_(!1),r.full=_(!0)},{}],99:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,i,u,S,E,C,L){!function(t,e){var r=8*a.log2(e+1)*(t+1)|0,i=a.nextPow2(b*r);w.length<i&&(n.free(w),w=n.mallocInt32(i));var o=a.nextPow2(_*r);k<o&&(n.free(k),k=n.mallocDouble(o))}(t,i+E);var P,O=0,z=2*t;T(O++,0,0,i,0,E,r?16:0,-1/0,1/0),r||T(O++,0,0,E,0,i,1,-1/0,1/0);for(;O>0;){var I=(O-=1)*b,D=w[I],R=w[I+1],F=w[I+2],B=w[I+3],N=w[I+4],j=w[I+5],V=O*_,U=k[V],q=k[V+1],H=1&j,G=!!(16&j),Y=u,W=S,X=C,Z=L;if(H&&(Y=C,W=L,X=u,Z=S),!(2&j&&(F=v(t,D,R,F,Y,W,q),R>=F)||4&j&&(R=m(t,D,R,F,Y,W,U))>=F)){var J=F-R,K=N-B;if(G){if(t*J*(J+K)<p){if(void 0!==(P=l.scanComplete(t,D,e,R,F,Y,W,B,N,X,Z)))return P;continue}}else{if(t*Math.min(J,K)<h){if(void 0!==(P=o(t,D,e,H,R,F,Y,W,B,N,X,Z)))return P;continue}if(t*J*K<f){if(void 0!==(P=l.scanBipartite(t,D,e,H,R,F,Y,W,B,N,X,Z)))return P;continue}}var Q=d(t,D,R,F,Y,W,U,q);if(R<Q)if(t*(Q-R)<h){if(void 0!==(P=s(t,D+1,e,R,Q,Y,W,B,N,X,Z)))return P}else if(D===t-2){if(void 0!==(P=H?l.sweepBipartite(t,e,B,N,X,Z,R,Q,Y,W):l.sweepBipartite(t,e,R,Q,Y,W,B,N,X,Z)))return P}else T(O++,D+1,R,Q,B,N,H,-1/0,1/0),T(O++,D+1,B,N,R,Q,1^H,-1/0,1/0);if(Q<F){var $=c(t,D,B,N,X,Z),tt=X[z*$+D],et=g(t,D,$,N,X,Z,tt);if(et<N&&T(O++,D,Q,F,et,N,(4|H)+(G?16:0),tt,q),B<$&&T(O++,D,Q,F,B,$,(2|H)+(G?16:0),U,tt),$+1===et){if(void 0!==(P=G?M(t,D,e,Q,F,Y,W,$,X,Z[$]):A(t,D,e,H,Q,F,Y,W,$,X,Z[$])))return P}else if($<et){var rt;if(G){if(rt=y(t,D,Q,F,Y,W,tt),Q<rt){var nt=g(t,D,Q,rt,Y,W,tt);if(D===t-2){if(Q<nt&&void 0!==(P=l.sweepComplete(t,e,Q,nt,Y,W,$,et,X,Z)))return P;if(nt<rt&&void 0!==(P=l.sweepBipartite(t,e,nt,rt,Y,W,$,et,X,Z)))return P}else Q<nt&&T(O++,D+1,Q,nt,$,et,16,-1/0,1/0),nt<rt&&(T(O++,D+1,nt,rt,$,et,0,-1/0,1/0),T(O++,D+1,$,et,nt,rt,1,-1/0,1/0))}}else rt=H?x(t,D,Q,F,Y,W,tt):y(t,D,Q,F,Y,W,tt),Q<rt&&(D===t-2?P=H?l.sweepBipartite(t,e,$,et,X,Z,Q,rt,Y,W):l.sweepBipartite(t,e,Q,rt,Y,W,$,et,X,Z):(T(O++,D+1,Q,rt,$,et,H,-1/0,1/0),T(O++,D+1,$,et,Q,rt,1^H,-1/0,1/0)))}}}}};var n=t(\"typedarray-pool\"),a=t(\"bit-twiddle\"),i=t(\"./brute\"),o=i.partial,s=i.full,l=t(\"./sweep\"),c=t(\"./median\"),u=t(\"./partition\"),h=128,f=1<<22,p=1<<22,d=u(\"!(lo>=p0)&&!(p1>=hi)\",[\"p0\",\"p1\"]),g=u(\"lo===p0\",[\"p0\"]),v=u(\"lo<p0\",[\"p0\"]),m=u(\"hi<=p0\",[\"p0\"]),y=u(\"lo<=p0&&p0<=hi\",[\"p0\"]),x=u(\"lo<p0&&p0<=hi\",[\"p0\"]),b=6,_=2,w=n.mallocInt32(1024),k=n.mallocDouble(1024);function T(t,e,r,n,a,i,o,s,l){var c=b*t;w[c]=e,w[c+1]=r,w[c+2]=n,w[c+3]=a,w[c+4]=i,w[c+5]=o;var u=_*t;k[u]=s,k[u+1]=l}function A(t,e,r,n,a,i,o,s,l,c,u){var h=2*t,f=l*h,p=c[f+e];t:for(var d=a,g=a*h;d<i;++d,g+=h){var v=o[g+e],m=o[g+e+t];if(!(p<v||m<p)&&(!n||p!==v)){for(var y,x=s[d],b=e+1;b<t;++b){v=o[g+b],m=o[g+b+t];var _=c[f+b],w=c[f+b+t];if(m<_||w<v)continue t}if(void 0!==(y=n?r(u,x):r(x,u)))return y}}}function M(t,e,r,n,a,i,o,s,l,c){var u=2*t,h=s*u,f=l[h+e];t:for(var p=n,d=n*u;p<a;++p,d+=u){var g=o[p];if(g!==c){var v=i[d+e],m=i[d+e+t];if(!(f<v||m<f)){for(var y=e+1;y<t;++y){v=i[d+y],m=i[d+y+t];var x=l[h+y],b=l[h+y+t];if(m<x||b<v)continue t}var _=r(g,c);if(void 0!==_)return _}}}}},{\"./brute\":98,\"./median\":100,\"./partition\":101,\"./sweep\":103,\"bit-twiddle\":93,\"typedarray-pool\":543}],100:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,o,s,l){if(o<=r+1)return r;var c=r,u=o,h=o+r>>>1,f=2*t,p=h,d=s[f*h+e];for(;c<u;){if(u-c<a){i(t,e,c,u,s,l),d=s[f*h+e];break}var g=u-c,v=Math.random()*g+c|0,m=s[f*v+e],y=Math.random()*g+c|0,x=s[f*y+e],b=Math.random()*g+c|0,_=s[f*b+e];m<=x?_>=x?(p=y,d=x):m>=_?(p=v,d=m):(p=b,d=_):x>=_?(p=y,d=x):_>=m?(p=v,d=m):(p=b,d=_);for(var w=f*(u-1),k=f*p,T=0;T<f;++T,++w,++k){var A=s[w];s[w]=s[k],s[k]=A}var M=l[u-1];l[u-1]=l[p],l[p]=M,p=n(t,e,c,u-1,s,l,d);for(var w=f*(u-1),k=f*p,T=0;T<f;++T,++w,++k){var A=s[w];s[w]=s[k],s[k]=A}var M=l[u-1];if(l[u-1]=l[p],l[p]=M,h<p){for(u=p-1;c<u&&s[f*(u-1)+e]===d;)u-=1;u+=1}else{if(!(p<h))break;for(c=p+1;c<u&&s[f*c+e]===d;)c+=1}}return n(t,e,r,h,s,l,s[f*h+e])};var n=t(\"./partition\")(\"lo<p0\",[\"p0\"]),a=8;function i(t,e,r,n,a,i){for(var o=2*t,s=o*(r+1)+e,l=r+1;l<n;++l,s+=o)for(var c=a[s],u=l,h=o*(l-1);u>r&&a[h+e]>c;--u,h-=o){for(var f=h,p=h+o,d=0;d<o;++d,++f,++p){var g=a[f];a[f]=a[p],a[p]=g}var v=i[u];i[u]=i[u-1],i[u-1]=v}}},{\"./partition\":101}],101:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r=\"abcdef\".split(\"\").concat(e),a=[];t.indexOf(\"lo\")>=0&&a.push(\"lo=e[k+n]\");t.indexOf(\"hi\")>=0&&a.push(\"hi=e[k+o]\");return r.push(n.replace(\"_\",a.join()).replace(\"$\",t)),Function.apply(void 0,r)};var n=\"for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m\"},{}],102:[function(t,e,r){\"use strict\";e.exports=function(t,e){e<=4*n?a(0,e-1,t):function t(e,r,h){var f=(r-e+1)/6|0,p=e+f,d=r-f,g=e+r>>1,v=g-f,m=g+f,y=p,x=v,b=g,_=m,w=d,k=e+1,T=r-1,A=0;c(y,x,h)&&(A=y,y=x,x=A);c(_,w,h)&&(A=_,_=w,w=A);c(y,b,h)&&(A=y,y=b,b=A);c(x,b,h)&&(A=x,x=b,b=A);c(y,_,h)&&(A=y,y=_,_=A);c(b,_,h)&&(A=b,b=_,_=A);c(x,w,h)&&(A=x,x=w,w=A);c(x,b,h)&&(A=x,x=b,b=A);c(_,w,h)&&(A=_,_=w,w=A);var M=h[2*x];var S=h[2*x+1];var E=h[2*_];var C=h[2*_+1];var L=2*y;var P=2*b;var O=2*w;var z=2*p;var I=2*g;var D=2*d;for(var R=0;R<2;++R){var F=h[L+R],B=h[P+R],N=h[O+R];h[z+R]=F,h[I+R]=B,h[D+R]=N}o(v,e,h);o(m,r,h);for(var j=k;j<=T;++j)if(u(j,M,S,h))j!==k&&i(j,k,h),++k;else if(!u(j,E,C,h))for(;;){if(u(T,E,C,h)){u(T,M,S,h)?(s(j,k,T,h),++k,--T):(i(j,T,h),--T);break}if(--T<j)break}l(e,k-1,M,S,h);l(r,T+1,E,C,h);k-2-e<=n?a(e,k-2,h):t(e,k-2,h);r-(T+2)<=n?a(T+2,r,h):t(T+2,r,h);T-k<=n?a(k,T,h):t(k,T,h)}(0,e-1,t)};var n=32;function a(t,e,r){for(var n=2*(t+1),a=t+1;a<=e;++a){for(var i=r[n++],o=r[n++],s=a,l=n-2;s-- >t;){var c=r[l-2],u=r[l-1];if(c<i)break;if(c===i&&u<o)break;r[l]=c,r[l+1]=u,l-=2}r[l]=i,r[l+1]=o}}function i(t,e,r){e*=2;var n=r[t*=2],a=r[t+1];r[t]=r[e],r[t+1]=r[e+1],r[e]=n,r[e+1]=a}function o(t,e,r){e*=2,r[t*=2]=r[e],r[t+1]=r[e+1]}function s(t,e,r,n){e*=2,r*=2;var a=n[t*=2],i=n[t+1];n[t]=n[e],n[t+1]=n[e+1],n[e]=n[r],n[e+1]=n[r+1],n[r]=a,n[r+1]=i}function l(t,e,r,n,a){e*=2,a[t*=2]=a[e],a[e]=r,a[t+1]=a[e+1],a[e+1]=n}function c(t,e,r){e*=2;var n=r[t*=2],a=r[e];return!(n<a)&&(n!==a||r[t+1]>r[e+1])}function u(t,e,r,n){var a=n[t*=2];return a<e||a===e&&n[t+1]<r}},{}],103:[function(t,e,r){\"use strict\";e.exports={init:function(t){var e=a.nextPow2(t);s.length<e&&(n.free(s),s=n.mallocInt32(e));l.length<e&&(n.free(l),l=n.mallocInt32(e));c.length<e&&(n.free(c),c=n.mallocInt32(e));u.length<e&&(n.free(u),u=n.mallocInt32(e));h.length<e&&(n.free(h),h=n.mallocInt32(e));f.length<e&&(n.free(f),f=n.mallocInt32(e));var r=8*e;p.length<r&&(n.free(p),p=n.mallocDouble(r))},sweepBipartite:function(t,e,r,n,a,h,f,v,m,y){for(var x=0,b=2*t,_=t-1,w=b-1,k=r;k<n;++k){var T=h[k],A=b*k;p[x++]=a[A+_],p[x++]=-(T+1),p[x++]=a[A+w],p[x++]=T}for(var k=f;k<v;++k){var T=y[k]+o,M=b*k;p[x++]=m[M+_],p[x++]=-T,p[x++]=m[M+w],p[x++]=T}var S=x>>>1;i(p,S);for(var E=0,C=0,k=0;k<S;++k){var L=0|p[2*k+1];if(L>=o)d(c,u,C--,L=L-o|0);else if(L>=0)d(s,l,E--,L);else if(L<=-o){L=-L-o|0;for(var P=0;P<E;++P){var O=e(s[P],L);if(void 0!==O)return O}g(c,u,C++,L)}else{L=-L-1|0;for(var P=0;P<C;++P){var O=e(L,c[P]);if(void 0!==O)return O}g(s,l,E++,L)}}},sweepComplete:function(t,e,r,n,a,o,v,m,y,x){for(var b=0,_=2*t,w=t-1,k=_-1,T=r;T<n;++T){var A=o[T]+1<<1,M=_*T;p[b++]=a[M+w],p[b++]=-A,p[b++]=a[M+k],p[b++]=A}for(var T=v;T<m;++T){var A=x[T]+1<<1,S=_*T;p[b++]=y[S+w],p[b++]=1|-A,p[b++]=y[S+k],p[b++]=1|A}var E=b>>>1;i(p,E);for(var C=0,L=0,P=0,T=0;T<E;++T){var O=0|p[2*T+1],z=1&O;if(T<E-1&&O>>1==p[2*T+3]>>1&&(z=2,T+=1),O<0){for(var I=-(O>>1)-1,D=0;D<P;++D){var R=e(h[D],I);if(void 0!==R)return R}if(0!==z)for(var D=0;D<C;++D){var R=e(s[D],I);if(void 0!==R)return R}if(1!==z)for(var D=0;D<L;++D){var R=e(c[D],I);if(void 0!==R)return R}0===z?g(s,l,C++,I):1===z?g(c,u,L++,I):2===z&&g(h,f,P++,I)}else{var I=(O>>1)-1;0===z?d(s,l,C--,I):1===z?d(c,u,L--,I):2===z&&d(h,f,P--,I)}}},scanBipartite:function(t,e,r,n,a,c,u,h,f,v,m,y){var x=0,b=2*t,_=e,w=e+t,k=1,T=1;n?T=o:k=o;for(var A=a;A<c;++A){var M=A+k,S=b*A;p[x++]=u[S+_],p[x++]=-M,p[x++]=u[S+w],p[x++]=M}for(var A=f;A<v;++A){var M=A+T,E=b*A;p[x++]=m[E+_],p[x++]=-M}var C=x>>>1;i(p,C);for(var L=0,A=0;A<C;++A){var P=0|p[2*A+1];if(P<0){var M=-P,O=!1;if(M>=o?(O=!n,M-=o):(O=!!n,M-=1),O)g(s,l,L++,M);else{var z=y[M],I=b*M,D=m[I+e+1],R=m[I+e+1+t];t:for(var F=0;F<L;++F){var B=s[F],N=b*B;if(!(R<u[N+e+1]||u[N+e+1+t]<D)){for(var j=e+2;j<t;++j)if(m[I+j+t]<u[N+j]||u[N+j+t]<m[I+j])continue t;var V,U=h[B];if(void 0!==(V=n?r(z,U):r(U,z)))return V}}}}else d(s,l,L--,P-k)}},scanComplete:function(t,e,r,n,a,l,c,u,h,f,d){for(var g=0,v=2*t,m=e,y=e+t,x=n;x<a;++x){var b=x+o,_=v*x;p[g++]=l[_+m],p[g++]=-b,p[g++]=l[_+y],p[g++]=b}for(var x=u;x<h;++x){var b=x+1,w=v*x;p[g++]=f[w+m],p[g++]=-b}var k=g>>>1;i(p,k);for(var T=0,x=0;x<k;++x){var A=0|p[2*x+1];if(A<0){var b=-A;if(b>=o)s[T++]=b-o;else{var M=d[b-=1],S=v*b,E=f[S+e+1],C=f[S+e+1+t];t:for(var L=0;L<T;++L){var P=s[L],O=c[P];if(O===M)break;var z=v*P;if(!(C<l[z+e+1]||l[z+e+1+t]<E)){for(var I=e+2;I<t;++I)if(f[S+I+t]<l[z+I]||l[z+I+t]<f[S+I])continue t;var D=r(O,M);if(void 0!==D)return D}}}}else{for(var b=A-o,L=T-1;L>=0;--L)if(s[L]===b){for(var I=L+1;I<T;++I)s[I-1]=s[I];break}--T}}}};var n=t(\"typedarray-pool\"),a=t(\"bit-twiddle\"),i=t(\"./sort\"),o=1<<28,s=n.mallocInt32(1024),l=n.mallocInt32(1024),c=n.mallocInt32(1024),u=n.mallocInt32(1024),h=n.mallocInt32(1024),f=n.mallocInt32(1024),p=n.mallocDouble(8192);function d(t,e,r,n){var a=e[n],i=t[r-1];t[a]=i,e[i]=a}function g(t,e,r,n){t[r]=n,e[n]=r}},{\"./sort\":102,\"bit-twiddle\":93,\"typedarray-pool\":543}],104:[function(t,e,r){},{}],105:[function(t,e,r){var n=Object.create||function(t){var e=function(){};return e.prototype=t,new e},a=Object.keys||function(t){var e=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.push(r);return r},i=Function.prototype.bind||function(t){var e=this;return function(){return e.apply(t,arguments)}};function o(){this._events&&Object.prototype.hasOwnProperty.call(this,\"_events\")||(this._events=n(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0}e.exports=o,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._maxListeners=void 0;var s,l=10;try{var c={};Object.defineProperty&&Object.defineProperty(c,\"x\",{value:0}),s=0===c.x}catch(t){s=!1}function u(t){return void 0===t._maxListeners?o.defaultMaxListeners:t._maxListeners}function h(t,e,r,a){var i,o,s;if(\"function\"!=typeof r)throw new TypeError('\"listener\" argument must be a function');if((o=t._events)?(o.newListener&&(t.emit(\"newListener\",e,r.listener?r.listener:r),o=t._events),s=o[e]):(o=t._events=n(null),t._eventsCount=0),s){if(\"function\"==typeof s?s=o[e]=a?[r,s]:[s,r]:a?s.unshift(r):s.push(r),!s.warned&&(i=u(t))&&i>0&&s.length>i){s.warned=!0;var l=new Error(\"Possible EventEmitter memory leak detected. \"+s.length+' \"'+String(e)+'\" listeners added. Use emitter.setMaxListeners() to increase limit.');l.name=\"MaxListenersExceededWarning\",l.emitter=t,l.type=e,l.count=s.length,\"object\"==typeof console&&console.warn&&console.warn(\"%s: %s\",l.name,l.message)}}else s=o[e]=r,++t._eventsCount;return t}function f(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var t=new Array(arguments.length),e=0;e<t.length;++e)t[e]=arguments[e];this.listener.apply(this.target,t)}}function p(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},a=i.call(f,n);return a.listener=r,n.wrapFn=a,a}function d(t,e,r){var n=t._events;if(!n)return[];var a=n[e];return a?\"function\"==typeof a?r?[a.listener||a]:[a]:r?function(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}(a):v(a,a.length):[]}function g(t){var e=this._events;if(e){var r=e[t];if(\"function\"==typeof r)return 1;if(r)return r.length}return 0}function v(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}s?Object.defineProperty(o,\"defaultMaxListeners\",{enumerable:!0,get:function(){return l},set:function(t){if(\"number\"!=typeof t||t<0||t!=t)throw new TypeError('\"defaultMaxListeners\" must be a positive number');l=t}}):o.defaultMaxListeners=l,o.prototype.setMaxListeners=function(t){if(\"number\"!=typeof t||t<0||isNaN(t))throw new TypeError('\"n\" argument must be a positive number');return this._maxListeners=t,this},o.prototype.getMaxListeners=function(){return u(this)},o.prototype.emit=function(t){var e,r,n,a,i,o,s=\"error\"===t;if(o=this._events)s=s&&null==o.error;else if(!s)return!1;if(s){if(arguments.length>1&&(e=arguments[1]),e instanceof Error)throw e;var l=new Error('Unhandled \"error\" event. ('+e+\")\");throw l.context=e,l}if(!(r=o[t]))return!1;var c=\"function\"==typeof r;switch(n=arguments.length){case 1:!function(t,e,r){if(e)t.call(r);else for(var n=t.length,a=v(t,n),i=0;i<n;++i)a[i].call(r)}(r,c,this);break;case 2:!function(t,e,r,n){if(e)t.call(r,n);else for(var a=t.length,i=v(t,a),o=0;o<a;++o)i[o].call(r,n)}(r,c,this,arguments[1]);break;case 3:!function(t,e,r,n,a){if(e)t.call(r,n,a);else for(var i=t.length,o=v(t,i),s=0;s<i;++s)o[s].call(r,n,a)}(r,c,this,arguments[1],arguments[2]);break;case 4:!function(t,e,r,n,a,i){if(e)t.call(r,n,a,i);else for(var o=t.length,s=v(t,o),l=0;l<o;++l)s[l].call(r,n,a,i)}(r,c,this,arguments[1],arguments[2],arguments[3]);break;default:for(a=new Array(n-1),i=1;i<n;i++)a[i-1]=arguments[i];!function(t,e,r,n){if(e)t.apply(r,n);else for(var a=t.length,i=v(t,a),o=0;o<a;++o)i[o].apply(r,n)}(r,c,this,a)}return!0},o.prototype.addListener=function(t,e){return h(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return h(this,t,e,!0)},o.prototype.once=function(t,e){if(\"function\"!=typeof e)throw new TypeError('\"listener\" argument must be a function');return this.on(t,p(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){if(\"function\"!=typeof e)throw new TypeError('\"listener\" argument must be a function');return this.prependListener(t,p(this,t,e)),this},o.prototype.removeListener=function(t,e){var r,a,i,o,s;if(\"function\"!=typeof e)throw new TypeError('\"listener\" argument must be a function');if(!(a=this._events))return this;if(!(r=a[t]))return this;if(r===e||r.listener===e)0==--this._eventsCount?this._events=n(null):(delete a[t],a.removeListener&&this.emit(\"removeListener\",t,r.listener||e));else if(\"function\"!=typeof r){for(i=-1,o=r.length-1;o>=0;o--)if(r[o]===e||r[o].listener===e){s=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(t,e){for(var r=e,n=r+1,a=t.length;n<a;r+=1,n+=1)t[r]=t[n];t.pop()}(r,i),1===r.length&&(a[t]=r[0]),a.removeListener&&this.emit(\"removeListener\",t,s||e)}return this},o.prototype.removeAllListeners=function(t){var e,r,i;if(!(r=this._events))return this;if(!r.removeListener)return 0===arguments.length?(this._events=n(null),this._eventsCount=0):r[t]&&(0==--this._eventsCount?this._events=n(null):delete r[t]),this;if(0===arguments.length){var o,s=a(r);for(i=0;i<s.length;++i)\"removeListener\"!==(o=s[i])&&this.removeAllListeners(o);return this.removeAllListeners(\"removeListener\"),this._events=n(null),this._eventsCount=0,this}if(\"function\"==typeof(e=r[t]))this.removeListener(t,e);else if(e)for(i=e.length-1;i>=0;i--)this.removeListener(t,e[i]);return this},o.prototype.listeners=function(t){return d(this,t,!0)},o.prototype.rawListeners=function(t){return d(this,t,!1)},o.listenerCount=function(t,e){return\"function\"==typeof t.listenerCount?t.listenerCount(e):g.call(t,e)},o.prototype.listenerCount=g,o.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]}},{}],106:[function(t,e,r){(function(e){\"use strict\";var n=t(\"base64-js\"),a=t(\"ieee754\"),i=\"function\"==typeof Symbol&&\"function\"==typeof Symbol.for?Symbol.for(\"nodejs.util.inspect.custom\"):null;r.Buffer=e,r.SlowBuffer=function(t){+t!=t&&(t=0);return e.alloc(+t)},r.INSPECT_MAX_BYTES=50;var o=2147483647;function s(t){if(t>o)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"');var r=new Uint8Array(t);return Object.setPrototypeOf(r,e.prototype),r}function e(t,e,r){if(\"number\"==typeof t){if(\"string\"==typeof e)throw new TypeError('The \"string\" argument must be of type string. Received type number');return u(t)}return l(t,e,r)}function l(t,r,n){if(\"string\"==typeof t)return function(t,r){\"string\"==typeof r&&\"\"!==r||(r=\"utf8\");if(!e.isEncoding(r))throw new TypeError(\"Unknown encoding: \"+r);var n=0|p(t,r),a=s(n),i=a.write(t,r);i!==n&&(a=a.slice(0,i));return a}(t,r);if(ArrayBuffer.isView(t))return h(t);if(null==t)throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t);if(j(t,ArrayBuffer)||t&&j(t.buffer,ArrayBuffer))return function(t,r,n){if(r<0||t.byteLength<r)throw new RangeError('\"offset\" is outside of buffer bounds');if(t.byteLength<r+(n||0))throw new RangeError('\"length\" is outside of buffer bounds');var a;a=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n);return Object.setPrototypeOf(a,e.prototype),a}(t,r,n);if(\"number\"==typeof t)throw new TypeError('The \"value\" argument must not be of type number. Received type number');var a=t.valueOf&&t.valueOf();if(null!=a&&a!==t)return e.from(a,r,n);var i=function(t){if(e.isBuffer(t)){var r=0|f(t.length),n=s(r);return 0===n.length?n:(t.copy(n,0,0,r),n)}if(void 0!==t.length)return\"number\"!=typeof t.length||V(t.length)?s(0):h(t);if(\"Buffer\"===t.type&&Array.isArray(t.data))return h(t.data)}(t);if(i)return i;if(\"undefined\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\"function\"==typeof t[Symbol.toPrimitive])return e.from(t[Symbol.toPrimitive](\"string\"),r,n);throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t)}function c(t){if(\"number\"!=typeof t)throw new TypeError('\"size\" argument must be of type number');if(t<0)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"')}function u(t){return c(t),s(t<0?0:0|f(t))}function h(t){for(var e=t.length<0?0:0|f(t.length),r=s(e),n=0;n<e;n+=1)r[n]=255&t[n];return r}function f(t){if(t>=o)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+o.toString(16)+\" bytes\");return 0|t}function p(t,r){if(e.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||j(t,ArrayBuffer))return t.byteLength;if(\"string\"!=typeof t)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var n=t.length,a=arguments.length>2&&!0===arguments[2];if(!a&&0===n)return 0;for(var i=!1;;)switch(r){case\"ascii\":case\"latin1\":case\"binary\":return n;case\"utf8\":case\"utf-8\":return F(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*n;case\"hex\":return n>>>1;case\"base64\":return B(t).length;default:if(i)return a?-1:F(t).length;r=(\"\"+r).toLowerCase(),i=!0}}function d(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function g(t,r,n,a,i){if(0===t.length)return-1;if(\"string\"==typeof n?(a=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),V(n=+n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if(\"string\"==typeof r&&(r=e.from(r,a)),e.isBuffer(r))return 0===r.length?-1:v(t,r,n,a,i);if(\"number\"==typeof r)return r&=255,\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,r,n):Uint8Array.prototype.lastIndexOf.call(t,r,n):v(t,[r],n,a,i);throw new TypeError(\"val must be string, number or Buffer\")}function v(t,e,r,n,a){var i,o=1,s=t.length,l=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function c(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(a){var u=-1;for(i=r;i<s;i++)if(c(t,i)===c(e,-1===u?0:i-u)){if(-1===u&&(u=i),i-u+1===l)return u*o}else-1!==u&&(i-=i-u),u=-1}else for(r+l>s&&(r=s-l),i=r;i>=0;i--){for(var h=!0,f=0;f<l;f++)if(c(t,i+f)!==c(e,f)){h=!1;break}if(h)return i}return-1}function m(t,e,r,n){r=Number(r)||0;var a=t.length-r;n?(n=Number(n))>a&&(n=a):n=a;var i=e.length;n>i/2&&(n=i/2);for(var o=0;o<n;++o){var s=parseInt(e.substr(2*o,2),16);if(V(s))return o;t[r+o]=s}return o}function y(t,e,r,n){return N(F(e,t.length-r),t,r,n)}function x(t,e,r,n){return N(function(t){for(var e=[],r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function b(t,e,r,n){return x(t,e,r,n)}function _(t,e,r,n){return N(B(e),t,r,n)}function w(t,e,r,n){return N(function(t,e){for(var r,n,a,i=[],o=0;o<t.length&&!((e-=2)<0);++o)r=t.charCodeAt(o),n=r>>8,a=r%256,i.push(a),i.push(n);return i}(e,t.length-r),t,r,n)}function k(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function T(t,e,r){r=Math.min(t.length,r);for(var n=[],a=e;a<r;){var i,o,s,l,c=t[a],u=null,h=c>239?4:c>223?3:c>191?2:1;if(a+h<=r)switch(h){case 1:c<128&&(u=c);break;case 2:128==(192&(i=t[a+1]))&&(l=(31&c)<<6|63&i)>127&&(u=l);break;case 3:i=t[a+1],o=t[a+2],128==(192&i)&&128==(192&o)&&(l=(15&c)<<12|(63&i)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:i=t[a+1],o=t[a+2],s=t[a+3],128==(192&i)&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&i)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,h=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),a+=h}return function(t){var e=t.length;if(e<=A)return String.fromCharCode.apply(String,t);var r=\"\",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=A));return r}(n)}r.kMaxLength=o,e.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),e.TYPED_ARRAY_SUPPORT||\"undefined\"==typeof console||\"function\"!=typeof console.error||console.error(\"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"),Object.defineProperty(e.prototype,\"parent\",{enumerable:!0,get:function(){if(e.isBuffer(this))return this.buffer}}),Object.defineProperty(e.prototype,\"offset\",{enumerable:!0,get:function(){if(e.isBuffer(this))return this.byteOffset}}),\"undefined\"!=typeof Symbol&&null!=Symbol.species&&e[Symbol.species]===e&&Object.defineProperty(e,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),e.poolSize=8192,e.from=function(t,e,r){return l(t,e,r)},Object.setPrototypeOf(e.prototype,Uint8Array.prototype),Object.setPrototypeOf(e,Uint8Array),e.alloc=function(t,e,r){return function(t,e,r){return c(t),t<=0?s(t):void 0!==e?\"string\"==typeof r?s(t).fill(e,r):s(t).fill(e):s(t)}(t,e,r)},e.allocUnsafe=function(t){return u(t)},e.allocUnsafeSlow=function(t){return u(t)},e.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==e.prototype},e.compare=function(t,r){if(j(t,Uint8Array)&&(t=e.from(t,t.offset,t.byteLength)),j(r,Uint8Array)&&(r=e.from(r,r.offset,r.byteLength)),!e.isBuffer(t)||!e.isBuffer(r))throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');if(t===r)return 0;for(var n=t.length,a=r.length,i=0,o=Math.min(n,a);i<o;++i)if(t[i]!==r[i]){n=t[i],a=r[i];break}return n<a?-1:a<n?1:0},e.isEncoding=function(t){switch(String(t).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},e.concat=function(t,r){if(!Array.isArray(t))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===t.length)return e.alloc(0);var n;if(void 0===r)for(r=0,n=0;n<t.length;++n)r+=t[n].length;var a=e.allocUnsafe(r),i=0;for(n=0;n<t.length;++n){var o=t[n];if(j(o,Uint8Array)&&(o=e.from(o)),!e.isBuffer(o))throw new TypeError('\"list\" argument must be an Array of Buffers');o.copy(a,i),i+=o.length}return a},e.byteLength=p,e.prototype._isBuffer=!0,e.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(var e=0;e<t;e+=2)d(this,e,e+1);return this},e.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(var e=0;e<t;e+=4)d(this,e,e+3),d(this,e+1,e+2);return this},e.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(var e=0;e<t;e+=8)d(this,e,e+7),d(this,e+1,e+6),d(this,e+2,e+5),d(this,e+3,e+4);return this},e.prototype.toString=function(){var t=this.length;return 0===t?\"\":0===arguments.length?T(this,0,t):function(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return E(this,e,r);case\"utf8\":case\"utf-8\":return T(this,e,r);case\"ascii\":return M(this,e,r);case\"latin1\":case\"binary\":return S(this,e,r);case\"base64\":return k(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return C(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}.apply(this,arguments)},e.prototype.toLocaleString=e.prototype.toString,e.prototype.equals=function(t){if(!e.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");return this===t||0===e.compare(this,t)},e.prototype.inspect=function(){var t=\"\",e=r.INSPECT_MAX_BYTES;return t=this.toString(\"hex\",0,e).replace(/(.{2})/g,\"$1 \").trim(),this.length>e&&(t+=\" ... \"),\"<Buffer \"+t+\">\"},i&&(e.prototype[i]=e.prototype.inspect),e.prototype.compare=function(t,r,n,a,i){if(j(t,Uint8Array)&&(t=e.from(t,t.offset,t.byteLength)),!e.isBuffer(t))throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===r&&(r=0),void 0===n&&(n=t?t.length:0),void 0===a&&(a=0),void 0===i&&(i=this.length),r<0||n>t.length||a<0||i>this.length)throw new RangeError(\"out of range index\");if(a>=i&&r>=n)return 0;if(a>=i)return-1;if(r>=n)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(a>>>=0),s=(n>>>=0)-(r>>>=0),l=Math.min(o,s),c=this.slice(a,i),u=t.slice(r,n),h=0;h<l;++h)if(c[h]!==u[h]){o=c[h],s=u[h];break}return o<s?-1:s<o?1:0},e.prototype.includes=function(t,e,r){return-1!==this.indexOf(t,e,r)},e.prototype.indexOf=function(t,e,r){return g(this,t,e,r,!0)},e.prototype.lastIndexOf=function(t,e,r){return g(this,t,e,r,!1)},e.prototype.write=function(t,e,r,n){if(void 0===e)n=\"utf8\",r=this.length,e=0;else if(void 0===r&&\"string\"==typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n=\"utf8\")):(n=r,r=void 0)}var a=this.length-e;if((void 0===r||r>a)&&(r=a),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var i=!1;;)switch(n){case\"hex\":return m(this,t,e,r);case\"utf8\":case\"utf-8\":return y(this,t,e,r);case\"ascii\":return x(this,t,e,r);case\"latin1\":case\"binary\":return b(this,t,e,r);case\"base64\":return _(this,t,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return w(this,t,e,r);default:if(i)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),i=!0}},e.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function M(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var a=e;a<r;++a)n+=String.fromCharCode(127&t[a]);return n}function S(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var a=e;a<r;++a)n+=String.fromCharCode(t[a]);return n}function E(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var a=\"\",i=e;i<r;++i)a+=R(t[i]);return a}function C(t,e,r){for(var n=t.slice(e,r),a=\"\",i=0;i<n.length;i+=2)a+=String.fromCharCode(n[i]+256*n[i+1]);return a}function L(t,e,r){if(t%1!=0||t<0)throw new RangeError(\"offset is not uint\");if(t+e>r)throw new RangeError(\"Trying to access beyond buffer length\")}function P(t,r,n,a,i,o){if(!e.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(r>i||r<o)throw new RangeError('\"value\" argument is out of bounds');if(n+a>t.length)throw new RangeError(\"Index out of range\")}function O(t,e,r,n,a,i){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function z(t,e,r,n,i){return e=+e,r>>>=0,i||O(t,0,r,4),a.write(t,e,r,n,23,4),r+4}function I(t,e,r,n,i){return e=+e,r>>>=0,i||O(t,0,r,8),a.write(t,e,r,n,52,8),r+8}e.prototype.slice=function(t,r){var n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(r=void 0===r?n:~~r)<0?(r+=n)<0&&(r=0):r>n&&(r=n),r<t&&(r=t);var a=this.subarray(t,r);return Object.setPrototypeOf(a,e.prototype),a},e.prototype.readUIntLE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=this[t],a=1,i=0;++i<e&&(a*=256);)n+=this[t+i]*a;return n},e.prototype.readUIntBE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=this[t+--e],a=1;e>0&&(a*=256);)n+=this[t+--e]*a;return n},e.prototype.readUInt8=function(t,e){return t>>>=0,e||L(t,1,this.length),this[t]},e.prototype.readUInt16LE=function(t,e){return t>>>=0,e||L(t,2,this.length),this[t]|this[t+1]<<8},e.prototype.readUInt16BE=function(t,e){return t>>>=0,e||L(t,2,this.length),this[t]<<8|this[t+1]},e.prototype.readUInt32LE=function(t,e){return t>>>=0,e||L(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},e.prototype.readUInt32BE=function(t,e){return t>>>=0,e||L(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},e.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=this[t],a=1,i=0;++i<e&&(a*=256);)n+=this[t+i]*a;return n>=(a*=128)&&(n-=Math.pow(2,8*e)),n},e.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||L(t,e,this.length);for(var n=e,a=1,i=this[t+--n];n>0&&(a*=256);)i+=this[t+--n]*a;return i>=(a*=128)&&(i-=Math.pow(2,8*e)),i},e.prototype.readInt8=function(t,e){return t>>>=0,e||L(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},e.prototype.readInt16LE=function(t,e){t>>>=0,e||L(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},e.prototype.readInt16BE=function(t,e){t>>>=0,e||L(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},e.prototype.readInt32LE=function(t,e){return t>>>=0,e||L(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},e.prototype.readInt32BE=function(t,e){return t>>>=0,e||L(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},e.prototype.readFloatLE=function(t,e){return t>>>=0,e||L(t,4,this.length),a.read(this,t,!0,23,4)},e.prototype.readFloatBE=function(t,e){return t>>>=0,e||L(t,4,this.length),a.read(this,t,!1,23,4)},e.prototype.readDoubleLE=function(t,e){return t>>>=0,e||L(t,8,this.length),a.read(this,t,!0,52,8)},e.prototype.readDoubleBE=function(t,e){return t>>>=0,e||L(t,8,this.length),a.read(this,t,!1,52,8)},e.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||P(this,t,e,r,Math.pow(2,8*r)-1,0);var a=1,i=0;for(this[e]=255&t;++i<r&&(a*=256);)this[e+i]=t/a&255;return e+r},e.prototype.writeUIntBE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||P(this,t,e,r,Math.pow(2,8*r)-1,0);var a=r-1,i=1;for(this[e+a]=255&t;--a>=0&&(i*=256);)this[e+a]=t/i&255;return e+r},e.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||P(this,t,e,1,255,0),this[e]=255&t,e+1},e.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||P(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},e.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||P(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},e.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||P(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},e.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||P(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},e.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var a=Math.pow(2,8*r-1);P(this,t,e,r,a-1,-a)}var i=0,o=1,s=0;for(this[e]=255&t;++i<r&&(o*=256);)t<0&&0===s&&0!==this[e+i-1]&&(s=1),this[e+i]=(t/o>>0)-s&255;return e+r},e.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var a=Math.pow(2,8*r-1);P(this,t,e,r,a-1,-a)}var i=r-1,o=1,s=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===s&&0!==this[e+i+1]&&(s=1),this[e+i]=(t/o>>0)-s&255;return e+r},e.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||P(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},e.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||P(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},e.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||P(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},e.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||P(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},e.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||P(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},e.prototype.writeFloatLE=function(t,e,r){return z(this,t,e,!0,r)},e.prototype.writeFloatBE=function(t,e,r){return z(this,t,e,!1,r)},e.prototype.writeDoubleLE=function(t,e,r){return I(this,t,e,!0,r)},e.prototype.writeDoubleBE=function(t,e,r){return I(this,t,e,!1,r)},e.prototype.copy=function(t,r,n,a){if(!e.isBuffer(t))throw new TypeError(\"argument should be a Buffer\");if(n||(n=0),a||0===a||(a=this.length),r>=t.length&&(r=t.length),r||(r=0),a>0&&a<n&&(a=n),a===n)return 0;if(0===t.length||0===this.length)return 0;if(r<0)throw new RangeError(\"targetStart out of bounds\");if(n<0||n>=this.length)throw new RangeError(\"Index out of range\");if(a<0)throw new RangeError(\"sourceEnd out of bounds\");a>this.length&&(a=this.length),t.length-r<a-n&&(a=t.length-r+n);var i=a-n;if(this===t&&\"function\"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(r,n,a);else if(this===t&&n<r&&r<a)for(var o=i-1;o>=0;--o)t[o+r]=this[o+n];else Uint8Array.prototype.set.call(t,this.subarray(n,a),r);return i},e.prototype.fill=function(t,r,n,a){if(\"string\"==typeof t){if(\"string\"==typeof r?(a=r,r=0,n=this.length):\"string\"==typeof n&&(a=n,n=this.length),void 0!==a&&\"string\"!=typeof a)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof a&&!e.isEncoding(a))throw new TypeError(\"Unknown encoding: \"+a);if(1===t.length){var i=t.charCodeAt(0);(\"utf8\"===a&&i<128||\"latin1\"===a)&&(t=i)}}else\"number\"==typeof t?t&=255:\"boolean\"==typeof t&&(t=Number(t));if(r<0||this.length<r||this.length<n)throw new RangeError(\"Out of range index\");if(n<=r)return this;var o;if(r>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),\"number\"==typeof t)for(o=r;o<n;++o)this[o]=t;else{var s=e.isBuffer(t)?t:e.from(t,a),l=s.length;if(0===l)throw new TypeError('The value \"'+t+'\" is invalid for argument \"value\"');for(o=0;o<n-r;++o)this[o+r]=s[o%l]}return this};var D=/[^+\\/0-9A-Za-z-_]/g;function R(t){return t<16?\"0\"+t.toString(16):t.toString(16)}function F(t,e){var r;e=e||1/0;for(var n=t.length,a=null,i=[],o=0;o<n;++o){if((r=t.charCodeAt(o))>55295&&r<57344){if(!a){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&i.push(239,191,189);continue}a=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),a=r;continue}r=65536+(a-55296<<10|r-56320)}else a&&(e-=3)>-1&&i.push(239,191,189);if(a=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function B(t){return n.toByteArray(function(t){if((t=(t=t.split(\"=\")[0]).trim().replace(D,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function N(t,e,r,n){for(var a=0;a<n&&!(a+r>=e.length||a>=t.length);++a)e[a+r]=t[a];return a}function j(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function V(t){return t!=t}}).call(this,t(\"buffer\").Buffer)},{\"base64-js\":75,buffer:106,ieee754:413}],107:[function(t,e,r){\"use strict\";var n=t(\"./lib/monotone\"),a=t(\"./lib/triangulation\"),i=t(\"./lib/delaunay\"),o=t(\"./lib/filter\");function s(t){return[Math.min(t[0],t[1]),Math.max(t[0],t[1])]}function l(t,e){return t[0]-e[0]||t[1]-e[1]}function c(t,e,r){return e in t?t[e]:r}e.exports=function(t,e,r){Array.isArray(e)?(r=r||{},e=e||[]):(r=e||{},e=[]);var u=!!c(r,\"delaunay\",!0),h=!!c(r,\"interior\",!0),f=!!c(r,\"exterior\",!0),p=!!c(r,\"infinity\",!1);if(!h&&!f||0===t.length)return[];var d=n(t,e);if(u||h!==f||p){for(var g=a(t.length,function(t){return t.map(s).sort(l)}(e)),v=0;v<d.length;++v){var m=d[v];g.addTriangle(m[0],m[1],m[2])}return u&&i(t,g),f?h?p?o(g,0,p):g.cells():o(g,1,p):o(g,-1)}return d}},{\"./lib/delaunay\":108,\"./lib/filter\":109,\"./lib/monotone\":110,\"./lib/triangulation\":111}],108:[function(t,e,r){\"use strict\";var n=t(\"robust-in-sphere\")[4];t(\"binary-search-bounds\");function a(t,e,r,a,i,o){var s=e.opposite(a,i);if(!(s<0)){if(i<a){var l=a;a=i,i=l,l=o,o=s,s=l}e.isConstraint(a,i)||n(t[a],t[i],t[o],t[s])<0&&r.push(a,i)}}e.exports=function(t,e){for(var r=[],i=t.length,o=e.stars,s=0;s<i;++s)for(var l=o[s],c=1;c<l.length;c+=2){var u=l[c];if(!(u<s)&&!e.isConstraint(s,u)){for(var h=l[c-1],f=-1,p=1;p<l.length;p+=2)if(l[p-1]===u){f=l[p];break}f<0||n(t[s],t[u],t[h],t[f])<0&&r.push(s,u)}}for(;r.length>0;){for(var u=r.pop(),s=r.pop(),h=-1,f=-1,l=o[s],d=1;d<l.length;d+=2){var g=l[d-1],v=l[d];g===u?f=v:v===u&&(h=g)}h<0||f<0||(n(t[s],t[u],t[h],t[f])>=0||(e.flip(s,u),a(t,e,r,h,s,f),a(t,e,r,s,f,h),a(t,e,r,f,u,h),a(t,e,r,u,h,f)))}}},{\"binary-search-bounds\":112,\"robust-in-sphere\":506}],109:[function(t,e,r){\"use strict\";var n,a=t(\"binary-search-bounds\");function i(t,e,r,n,a,i,o){this.cells=t,this.neighbor=e,this.flags=n,this.constraint=r,this.active=a,this.next=i,this.boundary=o}function o(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}e.exports=function(t,e,r){var n=function(t,e){for(var r=t.cells(),n=r.length,a=0;a<n;++a){var s=r[a],l=s[0],c=s[1],u=s[2];c<u?c<l&&(s[0]=c,s[1]=u,s[2]=l):u<l&&(s[0]=u,s[1]=l,s[2]=c)}r.sort(o);for(var h=new Array(n),a=0;a<h.length;++a)h[a]=0;var f=[],p=[],d=new Array(3*n),g=new Array(3*n),v=null;e&&(v=[]);for(var m=new i(r,d,g,h,f,p,v),a=0;a<n;++a)for(var s=r[a],y=0;y<3;++y){var l=s[y],c=s[(y+1)%3],x=d[3*a+y]=m.locate(c,l,t.opposite(c,l)),b=g[3*a+y]=t.isConstraint(l,c);x<0&&(b?p.push(a):(f.push(a),h[a]=1),e&&v.push([c,l,-1]))}return m}(t,r);if(0===e)return r?n.cells.concat(n.boundary):n.cells;var a=1,s=n.active,l=n.next,c=n.flags,u=n.cells,h=n.constraint,f=n.neighbor;for(;s.length>0||l.length>0;){for(;s.length>0;){var p=s.pop();if(c[p]!==-a){c[p]=a;u[p];for(var d=0;d<3;++d){var g=f[3*p+d];g>=0&&0===c[g]&&(h[3*p+d]?l.push(g):(s.push(g),c[g]=a))}}}var v=l;l=s,s=v,l.length=0,a=-a}var m=function(t,e,r){for(var n=0,a=0;a<t.length;++a)e[a]===r&&(t[n++]=t[a]);return t.length=n,t}(u,c,e);if(r)return m.concat(n.boundary);return m},i.prototype.locate=(n=[0,0,0],function(t,e,r){var i=t,s=e,l=r;return e<r?e<t&&(i=e,s=r,l=t):r<t&&(i=r,s=t,l=e),i<0?-1:(n[0]=i,n[1]=s,n[2]=l,a.eq(this.cells,n,o))})},{\"binary-search-bounds\":112}],110:[function(t,e,r){\"use strict\";var n=t(\"binary-search-bounds\"),a=t(\"robust-orientation\")[3],i=0,o=1,s=2;function l(t,e,r,n,a){this.a=t,this.b=e,this.idx=r,this.lowerIds=n,this.upperIds=a}function c(t,e,r,n){this.a=t,this.b=e,this.type=r,this.idx=n}function u(t,e){var r=t.a[0]-e.a[0]||t.a[1]-e.a[1]||t.type-e.type;return r||(t.type!==i&&(r=a(t.a,t.b,e.b))?r:t.idx-e.idx)}function h(t,e){return a(t.a,t.b,e)}function f(t,e,r,i,o){for(var s=n.lt(e,i,h),l=n.gt(e,i,h),c=s;c<l;++c){for(var u=e[c],f=u.lowerIds,p=f.length;p>1&&a(r[f[p-2]],r[f[p-1]],i)>0;)t.push([f[p-1],f[p-2],o]),p-=1;f.length=p,f.push(o);var d=u.upperIds;for(p=d.length;p>1&&a(r[d[p-2]],r[d[p-1]],i)<0;)t.push([d[p-2],d[p-1],o]),p-=1;d.length=p,d.push(o)}}function p(t,e){var r;return(r=t.a[0]<e.a[0]?a(t.a,t.b,e.a):a(e.b,e.a,t.a))?r:(r=e.b[0]<t.b[0]?a(t.a,t.b,e.b):a(e.b,e.a,t.b))||t.idx-e.idx}function d(t,e,r){var a=n.le(t,r,p),i=t[a],o=i.upperIds,s=o[o.length-1];i.upperIds=[s],t.splice(a+1,0,new l(r.a,r.b,r.idx,[s],o))}function g(t,e,r){var a=r.a;r.a=r.b,r.b=a;var i=n.eq(t,r,p),o=t[i];t[i-1].upperIds=o.upperIds,t.splice(i,1)}e.exports=function(t,e){for(var r=t.length,n=e.length,a=[],h=0;h<r;++h)a.push(new c(t[h],null,i,h));for(var h=0;h<n;++h){var p=e[h],v=t[p[0]],m=t[p[1]];v[0]<m[0]?a.push(new c(v,m,s,h),new c(m,v,o,h)):v[0]>m[0]&&a.push(new c(m,v,s,h),new c(v,m,o,h))}a.sort(u);for(var y=a[0].a[0]-(1+Math.abs(a[0].a[0]))*Math.pow(2,-52),x=[new l([y,1],[y,0],-1,[],[],[],[])],b=[],h=0,_=a.length;h<_;++h){var w=a[h],k=w.type;k===i?f(b,x,t,w.a,w.idx):k===s?d(x,t,w):g(x,t,w)}return b}},{\"binary-search-bounds\":112,\"robust-orientation\":508}],111:[function(t,e,r){\"use strict\";var n=t(\"binary-search-bounds\");function a(t,e){this.stars=t,this.edges=e}e.exports=function(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=[];return new a(r,e)};var i=a.prototype;function o(t,e,r){for(var n=1,a=t.length;n<a;n+=2)if(t[n-1]===e&&t[n]===r)return t[n-1]=t[a-2],t[n]=t[a-1],void(t.length=a-2)}i.isConstraint=function(){var t=[0,0];function e(t,e){return t[0]-e[0]||t[1]-e[1]}return function(r,a){return t[0]=Math.min(r,a),t[1]=Math.max(r,a),n.eq(this.edges,t,e)>=0}}(),i.removeTriangle=function(t,e,r){var n=this.stars;o(n[t],e,r),o(n[e],r,t),o(n[r],t,e)},i.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},i.opposite=function(t,e){for(var r=this.stars[e],n=1,a=r.length;n<a;n+=2)if(r[n]===t)return r[n-1];return-1},i.flip=function(t,e){var r=this.opposite(t,e),n=this.opposite(e,t);this.removeTriangle(t,e,r),this.removeTriangle(e,t,n),this.addTriangle(t,n,r),this.addTriangle(e,r,n)},i.edges=function(){for(var t=this.stars,e=[],r=0,n=t.length;r<n;++r)for(var a=t[r],i=0,o=a.length;i<o;i+=2)e.push([a[i],a[i+1]]);return e},i.cells=function(){for(var t=this.stars,e=[],r=0,n=t.length;r<n;++r)for(var a=t[r],i=0,o=a.length;i<o;i+=2){var s=a[i],l=a[i+1];r<Math.min(s,l)&&e.push([r,s,l])}return e}},{\"binary-search-bounds\":112}],112:[function(t,e,r){\"use strict\";function n(t,e,r,n,a){var i=[\"function \",t,\"(a,l,h,\",n.join(\",\"),\"){\",a?\"\":\"var i=\",r?\"l-1\":\"h+1\",\";while(l<=h){var m=(l+h)>>>1,x=a[m]\"];return a?e.indexOf(\"c\")<0?i.push(\";if(x===y){return m}else if(x<=y){\"):i.push(\";var p=c(x,y);if(p===0){return m}else if(p<=0){\"):i.push(\";if(\",e,\"){i=m;\"),r?i.push(\"l=m+1}else{h=m-1}\"):i.push(\"h=m-1}else{l=m+1}\"),i.push(\"}\"),a?i.push(\"return -1};\"):i.push(\"return i};\"),i.join(\"\")}function a(t,e,r,a){return new Function([n(\"A\",\"x\"+t+\"y\",e,[\"y\"],a),n(\"P\",\"c(x,y)\"+t+\"0\",e,[\"y\",\"c\"],a),\"function dispatchBsearch\",r,\"(a,y,c,l,h){if(typeof(c)==='function'){return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)}else{return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)}}return dispatchBsearch\",r].join(\"\"))()}e.exports={ge:a(\">=\",!1,\"GE\"),gt:a(\">\",!1,\"GT\"),lt:a(\"<\",!0,\"LT\"),le:a(\"<=\",!0,\"LE\"),eq:a(\"-\",!0,\"EQ\",!0)}},{}],113:[function(t,e,r){\"use strict\";e.exports=function(t){for(var e=1,r=1;r<t.length;++r)for(var n=0;n<r;++n)if(t[r]<t[n])e=-e;else if(t[n]===t[r])return 0;return e}},{}],114:[function(t,e,r){\"use strict\";var n=t(\"dup\"),a=t(\"robust-linear-solve\");function i(t,e){for(var r=0,n=t.length,a=0;a<n;++a)r+=t[a]*e[a];return r}function o(t){var e=t.length;if(0===e)return[];t[0].length;var r=n([t.length+1,t.length+1],1),o=n([t.length+1],1);r[e][e]=0;for(var s=0;s<e;++s){for(var l=0;l<=s;++l)r[l][s]=r[s][l]=2*i(t[s],t[l]);o[s]=i(t[s],t[s])}var c=a(r,o),u=0,h=c[e+1];for(s=0;s<h.length;++s)u+=h[s];var f=new Array(e);for(s=0;s<e;++s){h=c[s];var p=0;for(l=0;l<h.length;++l)p+=h[l];f[s]=p/u}return f}function s(t){if(0===t.length)return[];for(var e=t[0].length,r=n([e]),a=o(t),i=0;i<t.length;++i)for(var s=0;s<e;++s)r[s]+=t[i][s]*a[i];return r}s.barycenetric=o,e.exports=s},{dup:171,\"robust-linear-solve\":507}],115:[function(t,e,r){e.exports=function(t){for(var e=n(t),r=0,a=0;a<t.length;++a)for(var i=t[a],o=0;o<e.length;++o)r+=Math.pow(i[o]-e[o],2);return Math.sqrt(r/t.length)};var n=t(\"circumcenter\")},{circumcenter:114}],116:[function(t,e,r){e.exports=function(t,e,r){return e<r?t<e?e:t>r?r:t:t<r?r:t>e?e:t}},{}],117:[function(t,e,r){\"use strict\";e.exports=function(t,e,r){var n;if(r){n=e;for(var a=new Array(e.length),i=0;i<e.length;++i){var o=e[i];a[i]=[o[0],o[1],r[i]]}e=a}var s=function(t,e,r){var n=d(t,[],p(t));return m(e,n,r),!!n}(t,e,!!r);for(;y(t,e,!!r);)s=!0;if(r&&s){n.length=0,r.length=0;for(var i=0;i<e.length;++i){var o=e[i];n.push([o[0],o[1]]),r.push(o[2])}}return s};var n=t(\"union-find\"),a=t(\"box-intersect\"),i=t(\"robust-segment-intersect\"),o=t(\"big-rat\"),s=t(\"big-rat/cmp\"),l=t(\"big-rat/to-float\"),c=t(\"rat-vec\"),u=t(\"nextafter\"),h=t(\"./lib/rat-seg-intersect\");function f(t){var e=l(t);return[u(e,-1/0),u(e,1/0)]}function p(t){for(var e=new Array(t.length),r=0;r<t.length;++r){var n=t[r];e[r]=[u(n[0],-1/0),u(n[1],-1/0),u(n[0],1/0),u(n[1],1/0)]}return e}function d(t,e,r){for(var i=e.length,o=new n(i),s=[],l=0;l<e.length;++l){var c=e[l],h=f(c[0]),p=f(c[1]);s.push([u(h[0],-1/0),u(p[0],-1/0),u(h[1],1/0),u(p[1],1/0)])}a(s,function(t,e){o.link(t,e)});var d=!0,g=new Array(i);for(l=0;l<i;++l){(m=o.find(l))!==l&&(d=!1,t[m]=[Math.min(t[l][0],t[m][0]),Math.min(t[l][1],t[m][1])])}if(d)return null;var v=0;for(l=0;l<i;++l){var m;(m=o.find(l))===l?(g[l]=v,t[v++]=t[l]):g[l]=-1}t.length=v;for(l=0;l<i;++l)g[l]<0&&(g[l]=g[o.find(l)]);return g}function g(t,e){return t[0]-e[0]||t[1]-e[1]}function v(t,e){var r=t[0]-e[0]||t[1]-e[1];return r||(t[2]<e[2]?-1:t[2]>e[2]?1:0)}function m(t,e,r){if(0!==t.length){if(e)for(var n=0;n<t.length;++n){var a=e[(o=t[n])[0]],i=e[o[1]];o[0]=Math.min(a,i),o[1]=Math.max(a,i)}else for(n=0;n<t.length;++n){var o;a=(o=t[n])[0],i=o[1];o[0]=Math.min(a,i),o[1]=Math.max(a,i)}r?t.sort(v):t.sort(g);var s=1;for(n=1;n<t.length;++n){var l=t[n-1],c=t[n];(c[0]!==l[0]||c[1]!==l[1]||r&&c[2]!==l[2])&&(t[s++]=c)}t.length=s}}function y(t,e,r){var n=function(t,e){for(var r=new Array(e.length),n=0;n<e.length;++n){var a=e[n],i=t[a[0]],o=t[a[1]];r[n]=[u(Math.min(i[0],o[0]),-1/0),u(Math.min(i[1],o[1]),-1/0),u(Math.max(i[0],o[0]),1/0),u(Math.max(i[1],o[1]),1/0)]}return r}(t,e),f=function(t,e,r){var n=[];return a(r,function(r,a){var o=e[r],s=e[a];if(o[0]!==s[0]&&o[0]!==s[1]&&o[1]!==s[0]&&o[1]!==s[1]){var l=t[o[0]],c=t[o[1]],u=t[s[0]],h=t[s[1]];i(l,c,u,h)&&n.push([r,a])}}),n}(t,e,n),g=p(t),v=function(t,e,r,n){var o=[];return a(r,n,function(r,n){var a=e[r];if(a[0]!==n&&a[1]!==n){var s=t[n],l=t[a[0]],c=t[a[1]];i(l,c,s,s)&&o.push([r,n])}}),o}(t,e,n,g),y=d(t,function(t,e,r,n,a){var i,u,f=t.map(function(t){return[o(t[0]),o(t[1])]});for(i=0;i<r.length;++i){var p=r[i];u=p[0];var d=p[1],g=e[u],v=e[d],m=h(c(t[g[0]]),c(t[g[1]]),c(t[v[0]]),c(t[v[1]]));if(m){var y=t.length;t.push([l(m[0]),l(m[1])]),f.push(m),n.push([u,y],[d,y])}}for(n.sort(function(t,e){if(t[0]!==e[0])return t[0]-e[0];var r=f[t[1]],n=f[e[1]];return s(r[0],n[0])||s(r[1],n[1])}),i=n.length-1;i>=0;--i){var x=e[u=(S=n[i])[0]],b=x[0],_=x[1],w=t[b],k=t[_];if((w[0]-k[0]||w[1]-k[1])<0){var T=b;b=_,_=T}x[0]=b;var A,M=x[1]=S[1];for(a&&(A=x[2]);i>0&&n[i-1][0]===u;){var S,E=(S=n[--i])[1];a?e.push([M,E,A]):e.push([M,E]),M=E}a?e.push([M,_,A]):e.push([M,_])}return f}(t,e,f,v,r));return m(e,y,r),!!y||(f.length>0||v.length>0)}},{\"./lib/rat-seg-intersect\":118,\"big-rat\":79,\"big-rat/cmp\":77,\"big-rat/to-float\":91,\"box-intersect\":97,nextafter:452,\"rat-vec\":487,\"robust-segment-intersect\":511,\"union-find\":544}],118:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,n){var i=s(e,t),h=s(n,r),f=u(i,h);if(0===o(f))return null;var p=s(t,r),d=u(h,p),g=a(d,f),v=c(i,g);return l(t,v)};var n=t(\"big-rat/mul\"),a=t(\"big-rat/div\"),i=t(\"big-rat/sub\"),o=t(\"big-rat/sign\"),s=t(\"rat-vec/sub\"),l=t(\"rat-vec/add\"),c=t(\"rat-vec/muls\");function u(t,e){return i(n(t[0],e[1]),n(t[1],e[0]))}},{\"big-rat/div\":78,\"big-rat/mul\":88,\"big-rat/sign\":89,\"big-rat/sub\":90,\"rat-vec/add\":486,\"rat-vec/muls\":488,\"rat-vec/sub\":489}],119:[function(t,e,r){\"use strict\";var n=t(\"clamp\");function a(t,e){null==e&&(e=!0);var r=t[0],a=t[1],i=t[2],o=t[3];return null==o&&(o=e?1:255),e&&(r*=255,a*=255,i*=255,o*=255),16777216*(r=255&n(r,0,255))+((a=255&n(a,0,255))<<16)+((i=255&n(i,0,255))<<8)+(o=255&n(o,0,255))}e.exports=a,e.exports.to=a,e.exports.from=function(t,e){var r=(t=+t)>>>24,n=(16711680&t)>>>16,a=(65280&t)>>>8,i=255&t;return!1===e?[r,n,a,i]:[r/255,n/255,a/255,i/255]}},{clamp:116}],120:[function(t,e,r){\"use strict\";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],121:[function(t,e,r){\"use strict\";var n=t(\"color-rgba\"),a=t(\"clamp\"),i=t(\"dtype\");e.exports=function(t,e){\"float\"!==e&&e||(e=\"array\"),\"uint\"===e&&(e=\"uint8\"),\"uint_clamped\"===e&&(e=\"uint8_clamped\");var r=new(i(e))(4),o=\"uint8\"!==e&&\"uint8_clamped\"!==e;return t.length&&\"string\"!=typeof t||((t=n(t))[0]/=255,t[1]/=255,t[2]/=255),function(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||!!(Array.isArray(t)&&(t[0]>1||0===t[0])&&(t[1]>1||0===t[1])&&(t[2]>1||0===t[2])&&(!t[3]||t[3]>1))}(t)?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:255,o&&(r[0]/=255,r[1]/=255,r[2]/=255,r[3]/=255),r):(o?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:1):(r[0]=a(Math.floor(255*t[0]),0,255),r[1]=a(Math.floor(255*t[1]),0,255),r[2]=a(Math.floor(255*t[2]),0,255),r[3]=null==t[3]?255:a(Math.floor(255*t[3]),0,255)),r)}},{clamp:116,\"color-rgba\":123,dtype:170}],122:[function(t,e,r){(function(r){\"use strict\";var n=t(\"color-name\"),a=t(\"is-plain-obj\"),i=t(\"defined\");e.exports=function(t){var e,s,l=[],c=1;if(\"string\"==typeof t)if(n[t])l=n[t].slice(),s=\"rgb\";else if(\"transparent\"===t)c=0,s=\"rgb\",l=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var u=t.slice(1),h=u.length,f=h<=4;c=1,f?(l=[parseInt(u[0]+u[0],16),parseInt(u[1]+u[1],16),parseInt(u[2]+u[2],16)],4===h&&(c=parseInt(u[3]+u[3],16)/255)):(l=[parseInt(u[0]+u[1],16),parseInt(u[2]+u[3],16),parseInt(u[4]+u[5],16)],8===h&&(c=parseInt(u[6]+u[7],16)/255)),l[0]||(l[0]=0),l[1]||(l[1]=0),l[2]||(l[2]=0),s=\"rgb\"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\\s*\\(([^\\)]*)\\)/.exec(t)){var p=e[1],d=\"rgb\"===p,u=p.replace(/a$/,\"\");s=u;var h=\"cmyk\"===u?4:\"gray\"===u?1:3;l=e[2].trim().split(/\\s*,\\s*/).map(function(t,e){if(/%$/.test(t))return e===h?parseFloat(t)/100:\"rgb\"===u?255*parseFloat(t)/100:parseFloat(t);if(\"h\"===u[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==o[t])return o[t]}return parseFloat(t)}),p===u&&l.push(1),c=d?1:void 0===l[h]?1:l[h],l=l.slice(0,h)}else t.length>10&&/[0-9](?:\\s|\\/)/.test(t)&&(l=t.match(/([0-9]+)/g).map(function(t){return parseFloat(t)}),s=t.match(/([a-z])/gi).join(\"\").toLowerCase());else if(isNaN(t))if(a(t)){var g=i(t.r,t.red,t.R,null);null!==g?(s=\"rgb\",l=[g,i(t.g,t.green,t.G),i(t.b,t.blue,t.B)]):(s=\"hsl\",l=[i(t.h,t.hue,t.H),i(t.s,t.saturation,t.S),i(t.l,t.lightness,t.L,t.b,t.brightness)]),c=i(t.a,t.alpha,t.opacity,1),null!=t.opacity&&(c/=100)}else(Array.isArray(t)||r.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(t))&&(l=[t[0],t[1],t[2]],s=\"rgb\",c=4===t.length?t[3]:1);else s=\"rgb\",l=[t>>>16,(65280&t)>>>8,255&t];return{space:s,values:l,alpha:c}};var o={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"color-name\":120,defined:165,\"is-plain-obj\":423}],123:[function(t,e,r){\"use strict\";var n=t(\"color-parse\"),a=t(\"color-space/hsl\"),i=t(\"clamp\");e.exports=function(t){var e,r=n(t);return r.space?((e=Array(3))[0]=i(r.values[0],0,255),e[1]=i(r.values[1],0,255),e[2]=i(r.values[2],0,255),\"h\"===r.space[0]&&(e=a.rgb(e)),e.push(i(r.alpha,0,1)),e):[]}},{clamp:116,\"color-parse\":122,\"color-space/hsl\":124}],124:[function(t,e,r){\"use strict\";var n=t(\"./rgb\");e.exports={name:\"hsl\",min:[0,0,0],max:[360,100,100],channel:[\"hue\",\"saturation\",\"lightness\"],alias:[\"HSL\"],rgb:function(t){var e,r,n,a,i,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[i=255*l,i,i];e=2*l-(r=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var c=0;c<3;c++)(n=o+1/3*-(c-1))<0?n++:n>1&&n--,i=6*n<1?e+6*(r-e)*n:2*n<1?r:3*n<2?e+(r-e)*(2/3-n)*6:e,a[c]=255*i;return a}},n.hsl=function(t){var e,r,n=t[0]/255,a=t[1]/255,i=t[2]/255,o=Math.min(n,a,i),s=Math.max(n,a,i),l=s-o;return s===o?e=0:n===s?e=(a-i)/l:a===s?e=2+(i-n)/l:i===s&&(e=4+(n-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),r=(o+s)/2,[e,100*(s===o?0:r<=.5?l/(s+o):l/(2-s-o)),100*r]}},{\"./rgb\":125}],125:[function(t,e,r){\"use strict\";e.exports={name:\"rgb\",min:[0,0,0],max:[255,255,255],channel:[\"red\",\"green\",\"blue\"],alias:[\"RGB\"]}},{}],126:[function(t,e,r){e.exports={jet:[{index:0,rgb:[0,0,131]},{index:.125,rgb:[0,60,170]},{index:.375,rgb:[5,255,255]},{index:.625,rgb:[255,255,0]},{index:.875,rgb:[250,0,0]},{index:1,rgb:[128,0,0]}],hsv:[{index:0,rgb:[255,0,0]},{index:.169,rgb:[253,255,2]},{index:.173,rgb:[247,255,2]},{index:.337,rgb:[0,252,4]},{index:.341,rgb:[0,252,10]},{index:.506,rgb:[1,249,255]},{index:.671,rgb:[2,0,253]},{index:.675,rgb:[8,0,253]},{index:.839,rgb:[255,0,251]},{index:.843,rgb:[255,0,245]},{index:1,rgb:[255,0,6]}],hot:[{index:0,rgb:[0,0,0]},{index:.3,rgb:[230,0,0]},{index:.6,rgb:[255,210,0]},{index:1,rgb:[255,255,255]}],cool:[{index:0,rgb:[0,255,255]},{index:1,rgb:[255,0,255]}],spring:[{index:0,rgb:[255,0,255]},{index:1,rgb:[255,255,0]}],summer:[{index:0,rgb:[0,128,102]},{index:1,rgb:[255,255,102]}],autumn:[{index:0,rgb:[255,0,0]},{index:1,rgb:[255,255,0]}],winter:[{index:0,rgb:[0,0,255]},{index:1,rgb:[0,255,128]}],bone:[{index:0,rgb:[0,0,0]},{index:.376,rgb:[84,84,116]},{index:.753,rgb:[169,200,200]},{index:1,rgb:[255,255,255]}],copper:[{index:0,rgb:[0,0,0]},{index:.804,rgb:[255,160,102]},{index:1,rgb:[255,199,127]}],greys:[{index:0,rgb:[0,0,0]},{index:1,rgb:[255,255,255]}],yignbu:[{index:0,rgb:[8,29,88]},{index:.125,rgb:[37,52,148]},{index:.25,rgb:[34,94,168]},{index:.375,rgb:[29,145,192]},{index:.5,rgb:[65,182,196]},{index:.625,rgb:[127,205,187]},{index:.75,rgb:[199,233,180]},{index:.875,rgb:[237,248,217]},{index:1,rgb:[255,255,217]}],greens:[{index:0,rgb:[0,68,27]},{index:.125,rgb:[0,109,44]},{index:.25,rgb:[35,139,69]},{index:.375,rgb:[65,171,93]},{index:.5,rgb:[116,196,118]},{index:.625,rgb:[161,217,155]},{index:.75,rgb:[199,233,192]},{index:.875,rgb:[229,245,224]},{index:1,rgb:[247,252,245]}],yiorrd:[{index:0,rgb:[128,0,38]},{index:.125,rgb:[189,0,38]},{index:.25,rgb:[227,26,28]},{index:.375,rgb:[252,78,42]},{index:.5,rgb:[253,141,60]},{index:.625,rgb:[254,178,76]},{index:.75,rgb:[254,217,118]},{index:.875,rgb:[255,237,160]},{index:1,rgb:[255,255,204]}],bluered:[{index:0,rgb:[0,0,255]},{index:1,rgb:[255,0,0]}],rdbu:[{index:0,rgb:[5,10,172]},{index:.35,rgb:[106,137,247]},{index:.5,rgb:[190,190,190]},{index:.6,rgb:[220,170,132]},{index:.7,rgb:[230,145,90]},{index:1,rgb:[178,10,28]}],picnic:[{index:0,rgb:[0,0,255]},{index:.1,rgb:[51,153,255]},{index:.2,rgb:[102,204,255]},{index:.3,rgb:[153,204,255]},{index:.4,rgb:[204,204,255]},{index:.5,rgb:[255,255,255]},{index:.6,rgb:[255,204,255]},{index:.7,rgb:[255,153,255]},{index:.8,rgb:[255,102,204]},{index:.9,rgb:[255,102,102]},{index:1,rgb:[255,0,0]}],rainbow:[{index:0,rgb:[150,0,90]},{index:.125,rgb:[0,0,200]},{index:.25,rgb:[0,25,255]},{index:.375,rgb:[0,152,255]},{index:.5,rgb:[44,255,150]},{index:.625,rgb:[151,255,0]},{index:.75,rgb:[255,234,0]},{index:.875,rgb:[255,111,0]},{index:1,rgb:[255,0,0]}],portland:[{index:0,rgb:[12,51,131]},{index:.25,rgb:[10,136,186]},{index:.5,rgb:[242,211,56]},{index:.75,rgb:[242,143,56]},{index:1,rgb:[217,30,30]}],blackbody:[{index:0,rgb:[0,0,0]},{index:.2,rgb:[230,0,0]},{index:.4,rgb:[230,210,0]},{index:.7,rgb:[255,255,255]},{index:1,rgb:[160,200,255]}],earth:[{index:0,rgb:[0,0,130]},{index:.1,rgb:[0,180,180]},{index:.2,rgb:[40,210,40]},{index:.4,rgb:[230,230,50]},{index:.6,rgb:[120,70,20]},{index:1,rgb:[255,255,255]}],electric:[{index:0,rgb:[0,0,0]},{index:.15,rgb:[30,0,100]},{index:.4,rgb:[120,0,100]},{index:.6,rgb:[160,90,0]},{index:.8,rgb:[230,200,0]},{index:1,rgb:[255,250,220]}],alpha:[{index:0,rgb:[255,255,255,0]},{index:1,rgb:[255,255,255,1]}],viridis:[{index:0,rgb:[68,1,84]},{index:.13,rgb:[71,44,122]},{index:.25,rgb:[59,81,139]},{index:.38,rgb:[44,113,142]},{index:.5,rgb:[33,144,141]},{index:.63,rgb:[39,173,129]},{index:.75,rgb:[92,200,99]},{index:.88,rgb:[170,220,50]},{index:1,rgb:[253,231,37]}],inferno:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[31,12,72]},{index:.25,rgb:[85,15,109]},{index:.38,rgb:[136,34,106]},{index:.5,rgb:[186,54,85]},{index:.63,rgb:[227,89,51]},{index:.75,rgb:[249,140,10]},{index:.88,rgb:[249,201,50]},{index:1,rgb:[252,255,164]}],magma:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[28,16,68]},{index:.25,rgb:[79,18,123]},{index:.38,rgb:[129,37,129]},{index:.5,rgb:[181,54,122]},{index:.63,rgb:[229,80,100]},{index:.75,rgb:[251,135,97]},{index:.88,rgb:[254,194,135]},{index:1,rgb:[252,253,191]}],plasma:[{index:0,rgb:[13,8,135]},{index:.13,rgb:[75,3,161]},{index:.25,rgb:[125,3,168]},{index:.38,rgb:[168,34,150]},{index:.5,rgb:[203,70,121]},{index:.63,rgb:[229,107,93]},{index:.75,rgb:[248,148,65]},{index:.88,rgb:[253,195,40]},{index:1,rgb:[240,249,33]}],warm:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[172,0,187]},{index:.25,rgb:[219,0,170]},{index:.38,rgb:[255,0,130]},{index:.5,rgb:[255,63,74]},{index:.63,rgb:[255,123,0]},{index:.75,rgb:[234,176,0]},{index:.88,rgb:[190,228,0]},{index:1,rgb:[147,255,0]}],cool:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[116,0,218]},{index:.25,rgb:[98,74,237]},{index:.38,rgb:[68,146,231]},{index:.5,rgb:[0,204,197]},{index:.63,rgb:[0,247,146]},{index:.75,rgb:[0,255,88]},{index:.88,rgb:[40,255,8]},{index:1,rgb:[147,255,0]}],\"rainbow-soft\":[{index:0,rgb:[125,0,179]},{index:.1,rgb:[199,0,180]},{index:.2,rgb:[255,0,121]},{index:.3,rgb:[255,108,0]},{index:.4,rgb:[222,194,0]},{index:.5,rgb:[150,255,0]},{index:.6,rgb:[0,255,55]},{index:.7,rgb:[0,246,150]},{index:.8,rgb:[50,167,222]},{index:.9,rgb:[103,51,235]},{index:1,rgb:[124,0,186]}],bathymetry:[{index:0,rgb:[40,26,44]},{index:.13,rgb:[59,49,90]},{index:.25,rgb:[64,76,139]},{index:.38,rgb:[63,110,151]},{index:.5,rgb:[72,142,158]},{index:.63,rgb:[85,174,163]},{index:.75,rgb:[120,206,163]},{index:.88,rgb:[187,230,172]},{index:1,rgb:[253,254,204]}],cdom:[{index:0,rgb:[47,15,62]},{index:.13,rgb:[87,23,86]},{index:.25,rgb:[130,28,99]},{index:.38,rgb:[171,41,96]},{index:.5,rgb:[206,67,86]},{index:.63,rgb:[230,106,84]},{index:.75,rgb:[242,149,103]},{index:.88,rgb:[249,193,135]},{index:1,rgb:[254,237,176]}],chlorophyll:[{index:0,rgb:[18,36,20]},{index:.13,rgb:[25,63,41]},{index:.25,rgb:[24,91,59]},{index:.38,rgb:[13,119,72]},{index:.5,rgb:[18,148,80]},{index:.63,rgb:[80,173,89]},{index:.75,rgb:[132,196,122]},{index:.88,rgb:[175,221,162]},{index:1,rgb:[215,249,208]}],density:[{index:0,rgb:[54,14,36]},{index:.13,rgb:[89,23,80]},{index:.25,rgb:[110,45,132]},{index:.38,rgb:[120,77,178]},{index:.5,rgb:[120,113,213]},{index:.63,rgb:[115,151,228]},{index:.75,rgb:[134,185,227]},{index:.88,rgb:[177,214,227]},{index:1,rgb:[230,241,241]}],\"freesurface-blue\":[{index:0,rgb:[30,4,110]},{index:.13,rgb:[47,14,176]},{index:.25,rgb:[41,45,236]},{index:.38,rgb:[25,99,212]},{index:.5,rgb:[68,131,200]},{index:.63,rgb:[114,156,197]},{index:.75,rgb:[157,181,203]},{index:.88,rgb:[200,208,216]},{index:1,rgb:[241,237,236]}],\"freesurface-red\":[{index:0,rgb:[60,9,18]},{index:.13,rgb:[100,17,27]},{index:.25,rgb:[142,20,29]},{index:.38,rgb:[177,43,27]},{index:.5,rgb:[192,87,63]},{index:.63,rgb:[205,125,105]},{index:.75,rgb:[216,162,148]},{index:.88,rgb:[227,199,193]},{index:1,rgb:[241,237,236]}],oxygen:[{index:0,rgb:[64,5,5]},{index:.13,rgb:[106,6,15]},{index:.25,rgb:[144,26,7]},{index:.38,rgb:[168,64,3]},{index:.5,rgb:[188,100,4]},{index:.63,rgb:[206,136,11]},{index:.75,rgb:[220,174,25]},{index:.88,rgb:[231,215,44]},{index:1,rgb:[248,254,105]}],par:[{index:0,rgb:[51,20,24]},{index:.13,rgb:[90,32,35]},{index:.25,rgb:[129,44,34]},{index:.38,rgb:[159,68,25]},{index:.5,rgb:[182,99,19]},{index:.63,rgb:[199,134,22]},{index:.75,rgb:[212,171,35]},{index:.88,rgb:[221,210,54]},{index:1,rgb:[225,253,75]}],phase:[{index:0,rgb:[145,105,18]},{index:.13,rgb:[184,71,38]},{index:.25,rgb:[186,58,115]},{index:.38,rgb:[160,71,185]},{index:.5,rgb:[110,97,218]},{index:.63,rgb:[50,123,164]},{index:.75,rgb:[31,131,110]},{index:.88,rgb:[77,129,34]},{index:1,rgb:[145,105,18]}],salinity:[{index:0,rgb:[42,24,108]},{index:.13,rgb:[33,50,162]},{index:.25,rgb:[15,90,145]},{index:.38,rgb:[40,118,137]},{index:.5,rgb:[59,146,135]},{index:.63,rgb:[79,175,126]},{index:.75,rgb:[120,203,104]},{index:.88,rgb:[193,221,100]},{index:1,rgb:[253,239,154]}],temperature:[{index:0,rgb:[4,35,51]},{index:.13,rgb:[23,51,122]},{index:.25,rgb:[85,59,157]},{index:.38,rgb:[129,79,143]},{index:.5,rgb:[175,95,130]},{index:.63,rgb:[222,112,101]},{index:.75,rgb:[249,146,66]},{index:.88,rgb:[249,196,65]},{index:1,rgb:[232,250,91]}],turbidity:[{index:0,rgb:[34,31,27]},{index:.13,rgb:[65,50,41]},{index:.25,rgb:[98,69,52]},{index:.38,rgb:[131,89,57]},{index:.5,rgb:[161,112,59]},{index:.63,rgb:[185,140,66]},{index:.75,rgb:[202,174,88]},{index:.88,rgb:[216,209,126]},{index:1,rgb:[233,246,171]}],\"velocity-blue\":[{index:0,rgb:[17,32,64]},{index:.13,rgb:[35,52,116]},{index:.25,rgb:[29,81,156]},{index:.38,rgb:[31,113,162]},{index:.5,rgb:[50,144,169]},{index:.63,rgb:[87,173,176]},{index:.75,rgb:[149,196,189]},{index:.88,rgb:[203,221,211]},{index:1,rgb:[254,251,230]}],\"velocity-green\":[{index:0,rgb:[23,35,19]},{index:.13,rgb:[24,64,38]},{index:.25,rgb:[11,95,45]},{index:.38,rgb:[39,123,35]},{index:.5,rgb:[95,146,12]},{index:.63,rgb:[152,165,18]},{index:.75,rgb:[201,186,69]},{index:.88,rgb:[233,216,137]},{index:1,rgb:[255,253,205]}],cubehelix:[{index:0,rgb:[0,0,0]},{index:.07,rgb:[22,5,59]},{index:.13,rgb:[60,4,105]},{index:.2,rgb:[109,1,135]},{index:.27,rgb:[161,0,147]},{index:.33,rgb:[210,2,142]},{index:.4,rgb:[251,11,123]},{index:.47,rgb:[255,29,97]},{index:.53,rgb:[255,54,69]},{index:.6,rgb:[255,85,46]},{index:.67,rgb:[255,120,34]},{index:.73,rgb:[255,157,37]},{index:.8,rgb:[241,191,57]},{index:.87,rgb:[224,220,93]},{index:.93,rgb:[218,241,142]},{index:1,rgb:[227,253,198]}]}},{}],127:[function(t,e,r){\"use strict\";var n=t(\"./colorScale\"),a=t(\"lerp\");function i(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}function o(t){for(var e,r=\"#\",n=0;n<3;++n)r+=(\"00\"+(e=(e=t[n]).toString(16))).substr(e.length);return r}function s(t){return\"rgba(\"+t.join(\",\")+\")\"}e.exports=function(t){var e,r,l,c,u,h,f,p,d,g;t||(t={});p=(t.nshades||72)-1,f=t.format||\"hex\",(h=t.colormap)||(h=\"jet\");if(\"string\"==typeof h){if(h=h.toLowerCase(),!n[h])throw Error(h+\" not a supported colorscale\");u=n[h]}else{if(!Array.isArray(h))throw Error(\"unsupported colormap option\",h);u=h.slice()}if(u.length>p+1)throw new Error(h+\" map requires nshades to be at least size \"+u.length);d=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:t.alpha.slice():\"number\"==typeof t.alpha?[t.alpha,t.alpha]:[1,1];e=u.map(function(t){return Math.round(t.index*p)}),d[0]=Math.min(Math.max(d[0],0),1),d[1]=Math.min(Math.max(d[1],0),1);var v=u.map(function(t,e){var r=u[e].index,n=u[e].rgb.slice();return 4===n.length&&n[3]>=0&&n[3]<=1?n:(n[3]=d[0]+(d[1]-d[0])*r,n)}),m=[];for(g=0;g<e.length-1;++g){c=e[g+1]-e[g],r=v[g],l=v[g+1];for(var y=0;y<c;y++){var x=y/c;m.push([Math.round(a(r[0],l[0],x)),Math.round(a(r[1],l[1],x)),Math.round(a(r[2],l[2],x)),a(r[3],l[3],x)])}}m.push(u[u.length-1].rgb.concat(d[1])),\"hex\"===f?m=m.map(o):\"rgbaString\"===f?m=m.map(s):\"float\"===f&&(m=m.map(i));return m}},{\"./colorScale\":126,lerp:426}],128:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,i){var o=n(e,r,i);if(0===o){var s=a(n(t,e,r)),c=a(n(t,e,i));if(s===c){if(0===s){var u=l(t,e,r),h=l(t,e,i);return u===h?0:u?1:-1}return 0}return 0===c?s>0?-1:l(t,e,i)?-1:1:0===s?c>0?1:l(t,e,r)?1:-1:a(c-s)}var f=n(t,e,r);if(f>0)return o>0&&n(t,e,i)>0?1:-1;if(f<0)return o>0||n(t,e,i)>0?1:-1;var p=n(t,e,i);return p>0?1:l(t,e,r)?1:-1};var n=t(\"robust-orientation\"),a=t(\"signum\"),i=t(\"two-sum\"),o=t(\"robust-product\"),s=t(\"robust-sum\");function l(t,e,r){var n=i(t[0],-e[0]),a=i(t[1],-e[1]),l=i(r[0],-e[0]),c=i(r[1],-e[1]),u=s(o(n,l),o(a,c));return u[u.length-1]>=0}},{\"robust-orientation\":508,\"robust-product\":509,\"robust-sum\":513,signum:514,\"two-sum\":542}],129:[function(t,e,r){e.exports=function(t,e){var r=t.length,i=t.length-e.length;if(i)return i;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return t[0]+t[1]-e[0]-e[1]||n(t[0],t[1])-n(e[0],e[1]);case 3:var o=t[0]+t[1],s=e[0]+e[1];if(i=o+t[2]-(s+e[2]))return i;var l=n(t[0],t[1]),c=n(e[0],e[1]);return n(l,t[2])-n(c,e[2])||n(l+t[2],o)-n(c+e[2],s);case 4:var u=t[0],h=t[1],f=t[2],p=t[3],d=e[0],g=e[1],v=e[2],m=e[3];return u+h+f+p-(d+g+v+m)||n(u,h,f,p)-n(d,g,v,m,d)||n(u+h,u+f,u+p,h+f,h+p,f+p)-n(d+g,d+v,d+m,g+v,g+m,v+m)||n(u+h+f,u+h+p,u+f+p,h+f+p)-n(d+g+v,d+g+m,d+v+m,g+v+m);default:for(var y=t.slice().sort(a),x=e.slice().sort(a),b=0;b<r;++b)if(i=y[b]-x[b])return i;return 0}};var n=Math.min;function a(t,e){return t-e}},{}],130:[function(t,e,r){\"use strict\";var n=t(\"compare-cell\"),a=t(\"cell-orientation\");e.exports=function(t,e){return n(t,e)||a(t)-a(e)}},{\"cell-orientation\":113,\"compare-cell\":129}],131:[function(t,e,r){\"use strict\";var n=t(\"./lib/ch1d\"),a=t(\"./lib/ch2d\"),i=t(\"./lib/chnd\");e.exports=function(t){var e=t.length;if(0===e)return[];if(1===e)return[[0]];var r=t[0].length;if(0===r)return[];if(1===r)return n(t);if(2===r)return a(t);return i(t,r)}},{\"./lib/ch1d\":132,\"./lib/ch2d\":133,\"./lib/chnd\":134}],132:[function(t,e,r){\"use strict\";e.exports=function(t){for(var e=0,r=0,n=1;n<t.length;++n)t[n][0]<t[e][0]&&(e=n),t[n][0]>t[r][0]&&(r=n);return e<r?[[e],[r]]:e>r?[[r],[e]]:[[e]]}},{}],133:[function(t,e,r){\"use strict\";e.exports=function(t){var e=n(t),r=e.length;if(r<=2)return[];for(var a=new Array(r),i=e[r-1],o=0;o<r;++o){var s=e[o];a[o]=[i,s],i=s}return a};var n=t(\"monotone-convex-hull-2d\")},{\"monotone-convex-hull-2d\":435}],134:[function(t,e,r){\"use strict\";e.exports=function(t,e){try{return n(t,!0)}catch(s){var r=a(t);if(r.length<=e)return[];var i=function(t,e){for(var r=t.length,n=new Array(r),a=0;a<e.length;++a)n[a]=t[e[a]];for(var i=e.length,a=0;a<r;++a)e.indexOf(a)<0&&(n[i++]=t[a]);return n}(t,r),o=n(i,!0);return function(t,e){for(var r=t.length,n=e.length,a=0;a<r;++a)for(var i=t[a],o=0;o<i.length;++o){var s=i[o];if(s<n)i[o]=e[s];else{s-=n;for(var l=0;l<n;++l)s>=e[l]&&(s+=1);i[o]=s}}return t}(o,r)}};var n=t(\"incremental-convex-hull\"),a=t(\"affine-hull\")},{\"affine-hull\":64,\"incremental-convex-hull\":414}],135:[function(t,e,r){e.exports={AFG:\"afghan\",ALA:\"\\\\b\\\\wland\",ALB:\"albania\",DZA:\"algeria\",ASM:\"^(?=.*americ).*samoa\",AND:\"andorra\",AGO:\"angola\",AIA:\"anguill?a\",ATA:\"antarctica\",ATG:\"antigua\",ARG:\"argentin\",ARM:\"armenia\",ABW:\"^(?!.*bonaire).*\\\\baruba\",AUS:\"australia\",AUT:\"^(?!.*hungary).*austria|\\\\baustri.*\\\\bemp\",AZE:\"azerbaijan\",BHS:\"bahamas\",BHR:\"bahrain\",BGD:\"bangladesh|^(?=.*east).*paki?stan\",BRB:\"barbados\",BLR:\"belarus|byelo\",BEL:\"^(?!.*luxem).*belgium\",BLZ:\"belize|^(?=.*british).*honduras\",BEN:\"benin|dahome\",BMU:\"bermuda\",BTN:\"bhutan\",BOL:\"bolivia\",BES:\"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\\\bbes.?islands\",BIH:\"herzegovina|bosnia\",BWA:\"botswana|bechuana\",BVT:\"bouvet\",BRA:\"brazil\",IOT:\"british.?indian.?ocean\",BRN:\"brunei\",BGR:\"bulgaria\",BFA:\"burkina|\\\\bfaso|upper.?volta\",BDI:\"burundi\",CPV:\"verde\",KHM:\"cambodia|kampuchea|khmer\",CMR:\"cameroon\",CAN:\"canada\",CYM:\"cayman\",CAF:\"\\\\bcentral.african.republic\",TCD:\"\\\\bchad\",CHL:\"\\\\bchile\",CHN:\"^(?!.*\\\\bmac)(?!.*\\\\bhong)(?!.*\\\\btai)(?!.*\\\\brep).*china|^(?=.*peo)(?=.*rep).*china\",CXR:\"christmas\",CCK:\"\\\\bcocos|keeling\",COL:\"colombia\",COM:\"comoro\",COG:\"^(?!.*\\\\bdem)(?!.*\\\\bd[\\\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\\\bcongo\",COK:\"\\\\bcook\",CRI:\"costa.?rica\",CIV:\"ivoire|ivory\",HRV:\"croatia\",CUB:\"\\\\bcuba\",CUW:\"^(?!.*bonaire).*\\\\bcura(c|\\xe7)ao\",CYP:\"cyprus\",CSK:\"czechoslovakia\",CZE:\"^(?=.*rep).*czech|czechia|bohemia\",COD:\"\\\\bdem.*congo|congo.*\\\\bdem|congo.*\\\\bd[\\\\.]?r|\\\\bd[\\\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc\",DNK:\"denmark\",DJI:\"djibouti\",DMA:\"dominica(?!n)\",DOM:\"dominican.rep\",ECU:\"ecuador\",EGY:\"egypt\",SLV:\"el.?salvador\",GNQ:\"guine.*eq|eq.*guine|^(?=.*span).*guinea\",ERI:\"eritrea\",EST:\"estonia\",ETH:\"ethiopia|abyssinia\",FLK:\"falkland|malvinas\",FRO:\"faroe|faeroe\",FJI:\"fiji\",FIN:\"finland\",FRA:\"^(?!.*\\\\bdep)(?!.*martinique).*france|french.?republic|\\\\bgaul\",GUF:\"^(?=.*french).*guiana\",PYF:\"french.?polynesia|tahiti\",ATF:\"french.?southern\",GAB:\"gabon\",GMB:\"gambia\",GEO:\"^(?!.*south).*georgia\",DDR:\"german.?democratic.?republic|democratic.?republic.*germany|east.germany\",DEU:\"^(?!.*east).*germany|^(?=.*\\\\bfed.*\\\\brep).*german\",GHA:\"ghana|gold.?coast\",GIB:\"gibraltar\",GRC:\"greece|hellenic|hellas\",GRL:\"greenland\",GRD:\"grenada\",GLP:\"guadeloupe\",GUM:\"\\\\bguam\",GTM:\"guatemala\",GGY:\"guernsey\",GIN:\"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea\",GNB:\"bissau|^(?=.*portu).*guinea\",GUY:\"guyana|british.?guiana\",HTI:\"haiti\",HMD:\"heard.*mcdonald\",VAT:\"holy.?see|vatican|papal.?st\",HND:\"^(?!.*brit).*honduras\",HKG:\"hong.?kong\",HUN:\"^(?!.*austr).*hungary\",ISL:\"iceland\",IND:\"india(?!.*ocea)\",IDN:\"indonesia\",IRN:\"\\\\biran|persia\",IRQ:\"\\\\biraq|mesopotamia\",IRL:\"(^ireland)|(^republic.*ireland)\",IMN:\"^(?=.*isle).*\\\\bman\",ISR:\"israel\",ITA:\"italy\",JAM:\"jamaica\",JPN:\"japan\",JEY:\"jersey\",JOR:\"jordan\",KAZ:\"kazak\",KEN:\"kenya|british.?east.?africa|east.?africa.?prot\",KIR:\"kiribati\",PRK:\"^(?=.*democrat|people|north|d.*p.*.r).*\\\\bkorea|dprk|korea.*(d.*p.*r)\",KWT:\"kuwait\",KGZ:\"kyrgyz|kirghiz\",LAO:\"\\\\blaos?\\\\b\",LVA:\"latvia\",LBN:\"lebanon\",LSO:\"lesotho|basuto\",LBR:\"liberia\",LBY:\"libya\",LIE:\"liechtenstein\",LTU:\"lithuania\",LUX:\"^(?!.*belg).*luxem\",MAC:\"maca(o|u)\",MDG:\"madagascar|malagasy\",MWI:\"malawi|nyasa\",MYS:\"malaysia\",MDV:\"maldive\",MLI:\"\\\\bmali\\\\b\",MLT:\"\\\\bmalta\",MHL:\"marshall\",MTQ:\"martinique\",MRT:\"mauritania\",MUS:\"mauritius\",MYT:\"\\\\bmayotte\",MEX:\"\\\\bmexic\",FSM:\"fed.*micronesia|micronesia.*fed\",MCO:\"monaco\",MNG:\"mongolia\",MNE:\"^(?!.*serbia).*montenegro\",MSR:\"montserrat\",MAR:\"morocco|\\\\bmaroc\",MOZ:\"mozambique\",MMR:\"myanmar|burma\",NAM:\"namibia\",NRU:\"nauru\",NPL:\"nepal\",NLD:\"^(?!.*\\\\bant)(?!.*\\\\bcarib).*netherlands\",ANT:\"^(?=.*\\\\bant).*(nether|dutch)\",NCL:\"new.?caledonia\",NZL:\"new.?zealand\",NIC:\"nicaragua\",NER:\"\\\\bniger(?!ia)\",NGA:\"nigeria\",NIU:\"niue\",NFK:\"norfolk\",MNP:\"mariana\",NOR:\"norway\",OMN:\"\\\\boman|trucial\",PAK:\"^(?!.*east).*paki?stan\",PLW:\"palau\",PSE:\"palestin|\\\\bgaza|west.?bank\",PAN:\"panama\",PNG:\"papua|new.?guinea\",PRY:\"paraguay\",PER:\"peru\",PHL:\"philippines\",PCN:\"pitcairn\",POL:\"poland\",PRT:\"portugal\",PRI:\"puerto.?rico\",QAT:\"qatar\",KOR:\"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\\\bkorea(?!.*d.*p.*r)\",MDA:\"moldov|b(a|e)ssarabia\",REU:\"r(e|\\xe9)union\",ROU:\"r(o|u|ou)mania\",RUS:\"\\\\brussia|soviet.?union|u\\\\.?s\\\\.?s\\\\.?r|socialist.?republics\",RWA:\"rwanda\",BLM:\"barth(e|\\xe9)lemy\",SHN:\"helena\",KNA:\"kitts|\\\\bnevis\",LCA:\"\\\\blucia\",MAF:\"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)\",SPM:\"miquelon\",VCT:\"vincent\",WSM:\"^(?!.*amer).*samoa\",SMR:\"san.?marino\",STP:\"\\\\bs(a|\\xe3)o.?tom(e|\\xe9)\",SAU:\"\\\\bsa\\\\w*.?arabia\",SEN:\"senegal\",SRB:\"^(?!.*monte).*serbia\",SYC:\"seychell\",SLE:\"sierra\",SGP:\"singapore\",SXM:\"^(?!.*martin)(?!.*saba).*maarten\",SVK:\"^(?!.*cze).*slovak\",SVN:\"slovenia\",SLB:\"solomon\",SOM:\"somali\",ZAF:\"south.africa|s\\\\\\\\..?africa\",SGS:\"south.?georgia|sandwich\",SSD:\"\\\\bs\\\\w*.?sudan\",ESP:\"spain\",LKA:\"sri.?lanka|ceylon\",SDN:\"^(?!.*\\\\bs(?!u)).*sudan\",SUR:\"surinam|dutch.?guiana\",SJM:\"svalbard\",SWZ:\"swaziland\",SWE:\"sweden\",CHE:\"switz|swiss\",SYR:\"syria\",TWN:\"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china\",TJK:\"tajik\",THA:\"thailand|\\\\bsiam\",MKD:\"macedonia|fyrom\",TLS:\"^(?=.*leste).*timor|^(?=.*east).*timor\",TGO:\"togo\",TKL:\"tokelau\",TON:\"tonga\",TTO:\"trinidad|tobago\",TUN:\"tunisia\",TUR:\"turkey\",TKM:\"turkmen\",TCA:\"turks\",TUV:\"tuvalu\",UGA:\"uganda\",UKR:\"ukrain\",ARE:\"emirates|^u\\\\.?a\\\\.?e\\\\.?$|united.?arab.?em\",GBR:\"united.?kingdom|britain|^u\\\\.?k\\\\.?$\",TZA:\"tanzania\",USA:\"united.?states\\\\b(?!.*islands)|\\\\bu\\\\.?s\\\\.?a\\\\.?\\\\b|^\\\\s*u\\\\.?s\\\\.?\\\\b(?!.*islands)\",UMI:\"minor.?outlying.?is\",URY:\"uruguay\",UZB:\"uzbek\",VUT:\"vanuatu|new.?hebrides\",VEN:\"venezuela\",VNM:\"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam\",VGB:\"^(?=.*\\\\bu\\\\.?\\\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin\",VIR:\"^(?=.*\\\\bu\\\\.?\\\\s?s).*virgin|^(?=.*states).*virgin\",WLF:\"futuna|wallis\",ESH:\"western.sahara\",YEM:\"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\\\bp\\\\.?d\\\\.?r).*yemen\",YMD:\"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\\\bp\\\\.?d\\\\.?r).*yemen\",YUG:\"yugoslavia\",ZMB:\"zambia|northern.?rhodesia\",EAZ:\"zanzibar\",ZWE:\"zimbabwe|^(?!.*northern).*rhodesia\"}},{}],136:[function(t,e,r){e.exports=[\"xx-small\",\"x-small\",\"small\",\"medium\",\"large\",\"x-large\",\"xx-large\",\"larger\",\"smaller\"]},{}],137:[function(t,e,r){e.exports=[\"normal\",\"condensed\",\"semi-condensed\",\"extra-condensed\",\"ultra-condensed\",\"expanded\",\"semi-expanded\",\"extra-expanded\",\"ultra-expanded\"]},{}],138:[function(t,e,r){e.exports=[\"normal\",\"italic\",\"oblique\"]},{}],139:[function(t,e,r){e.exports=[\"normal\",\"bold\",\"bolder\",\"lighter\",\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"]},{}],140:[function(t,e,r){\"use strict\";e.exports={parse:t(\"./parse\"),stringify:t(\"./stringify\")}},{\"./parse\":142,\"./stringify\":143}],141:[function(t,e,r){\"use strict\";var n=t(\"css-font-size-keywords\");e.exports={isSize:function(t){return/^[\\d\\.]/.test(t)||-1!==t.indexOf(\"/\")||-1!==n.indexOf(t)}}},{\"css-font-size-keywords\":136}],142:[function(t,e,r){\"use strict\";var n=t(\"unquote\"),a=t(\"css-global-keywords\"),i=t(\"css-system-font-keywords\"),o=t(\"css-font-weight-keywords\"),s=t(\"css-font-style-keywords\"),l=t(\"css-font-stretch-keywords\"),c=t(\"string-split-by\"),u=t(\"./lib/util\").isSize;e.exports=f;var h=f.cache={};function f(t){if(\"string\"!=typeof t)throw new Error(\"Font argument must be a string.\");if(h[t])return h[t];if(\"\"===t)throw new Error(\"Cannot parse an empty string.\");if(-1!==i.indexOf(t))return h[t]={system:t};for(var e,r={style:\"normal\",variant:\"normal\",weight:\"normal\",stretch:\"normal\",lineHeight:\"normal\",size:\"1rem\",family:[\"serif\"]},f=c(t,/\\s+/);e=f.shift();){if(-1!==a.indexOf(e))return[\"style\",\"variant\",\"weight\",\"stretch\"].forEach(function(t){r[t]=e}),h[t]=r;if(-1===s.indexOf(e))if(\"normal\"!==e&&\"small-caps\"!==e)if(-1===l.indexOf(e)){if(-1===o.indexOf(e)){if(u(e)){var d=c(e,\"/\");if(r.size=d[0],null!=d[1]?r.lineHeight=p(d[1]):\"/\"===f[0]&&(f.shift(),r.lineHeight=p(f.shift())),!f.length)throw new Error(\"Missing required font-family.\");return r.family=c(f.join(\" \"),/\\s*,\\s*/).map(n),h[t]=r}throw new Error(\"Unknown or unsupported font token: \"+e)}r.weight=e}else r.stretch=e;else r.variant=e;else r.style=e}throw new Error(\"Missing required font-size.\")}function p(t){var e=parseFloat(t);return e.toString()===t?e:t}},{\"./lib/util\":141,\"css-font-stretch-keywords\":137,\"css-font-style-keywords\":138,\"css-font-weight-keywords\":139,\"css-global-keywords\":144,\"css-system-font-keywords\":145,\"string-split-by\":527,unquote:546}],143:[function(t,e,r){\"use strict\";var n=t(\"pick-by-alias\"),a=t(\"./lib/util\").isSize,i=g(t(\"css-global-keywords\")),o=g(t(\"css-system-font-keywords\")),s=g(t(\"css-font-weight-keywords\")),l=g(t(\"css-font-style-keywords\")),c=g(t(\"css-font-stretch-keywords\")),u={normal:1,\"small-caps\":1},h={serif:1,\"sans-serif\":1,monospace:1,cursive:1,fantasy:1,\"system-ui\":1},f=\"1rem\",p=\"serif\";function d(t,e){if(t&&!e[t]&&!i[t])throw Error(\"Unknown keyword `\"+t+\"`\");return t}function g(t){for(var e={},r=0;r<t.length;r++)e[t[r]]=1;return e}e.exports=function(t){if((t=n(t,{style:\"style fontstyle fontStyle font-style slope distinction\",variant:\"variant font-variant fontVariant fontvariant var capitalization\",weight:\"weight w font-weight fontWeight fontweight\",stretch:\"stretch font-stretch fontStretch fontstretch width\",size:\"size s font-size fontSize fontsize height em emSize\",lineHeight:\"lh line-height lineHeight lineheight leading\",family:\"font family fontFamily font-family fontfamily type typeface face\",system:\"system reserved default global\"})).system)return t.system&&d(t.system,o),t.system;if(d(t.style,l),d(t.variant,u),d(t.weight,s),d(t.stretch,c),null==t.size&&(t.size=f),\"number\"==typeof t.size&&(t.size+=\"px\"),!a)throw Error(\"Bad size value `\"+t.size+\"`\");t.family||(t.family=p),Array.isArray(t.family)&&(t.family.length||(t.family=[p]),t.family=t.family.map(function(t){return h[t]?t:'\"'+t+'\"'}).join(\", \"));var e=[];return e.push(t.style),t.variant!==t.style&&e.push(t.variant),t.weight!==t.variant&&t.weight!==t.style&&e.push(t.weight),t.stretch!==t.weight&&t.stretch!==t.variant&&t.stretch!==t.style&&e.push(t.stretch),e.push(t.size+(null==t.lineHeight||\"normal\"===t.lineHeight||t.lineHeight+\"\"==\"1\"?\"\":\"/\"+t.lineHeight)),e.push(t.family),e.filter(Boolean).join(\" \")}},{\"./lib/util\":141,\"css-font-stretch-keywords\":137,\"css-font-style-keywords\":138,\"css-font-weight-keywords\":139,\"css-global-keywords\":144,\"css-system-font-keywords\":145,\"pick-by-alias\":466}],144:[function(t,e,r){e.exports=[\"inherit\",\"initial\",\"unset\"]},{}],145:[function(t,e,r){e.exports=[\"caption\",\"icon\",\"menu\",\"message-box\",\"small-caption\",\"status-bar\"]},{}],146:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,n,a,i){var o=a-1,s=a*a,l=o*o,c=(1+2*a)*l,u=a*l,h=s*(3-2*a),f=s*o;if(t.length){i||(i=new Array(t.length));for(var p=t.length-1;p>=0;--p)i[p]=c*t[p]+u*e[p]+h*r[p]+f*n[p];return i}return c*t+u*e+h*r+f*n},e.exports.derivative=function(t,e,r,n,a,i){var o=6*a*a-6*a,s=3*a*a-4*a+1,l=-6*a*a+6*a,c=3*a*a-2*a;if(t.length){i||(i=new Array(t.length));for(var u=t.length-1;u>=0;--u)i[u]=o*t[u]+s*e[u]+l*r[u]+c*n[u];return i}return o*t+s*e+l*r[u]+c*n}},{}],147:[function(t,e,r){\"use strict\";var n=t(\"./lib/thunk.js\");function a(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.arrayBlockIndices=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName=\"\",this.pre=null,this.body=null,this.post=null,this.debug=!1}e.exports=function(t){var e=new a;e.pre=t.pre,e.body=t.body,e.post=t.post;var r=t.args.slice(0);e.argTypes=r;for(var i=0;i<r.length;++i){var o=r[i];if(\"array\"===o||\"object\"==typeof o&&o.blockIndices){if(e.argTypes[i]=\"array\",e.arrayArgs.push(i),e.arrayBlockIndices.push(o.blockIndices?o.blockIndices:0),e.shimArgs.push(\"array\"+i),i<e.pre.args.length&&e.pre.args[i].count>0)throw new Error(\"cwise: pre() block may not reference array args\");if(i<e.post.args.length&&e.post.args[i].count>0)throw new Error(\"cwise: post() block may not reference array args\")}else if(\"scalar\"===o)e.scalarArgs.push(i),e.shimArgs.push(\"scalar\"+i);else if(\"index\"===o){if(e.indexArgs.push(i),i<e.pre.args.length&&e.pre.args[i].count>0)throw new Error(\"cwise: pre() block may not reference array index\");if(i<e.body.args.length&&e.body.args[i].lvalue)throw new Error(\"cwise: body() block may not write to array index\");if(i<e.post.args.length&&e.post.args[i].count>0)throw new Error(\"cwise: post() block may not reference array index\")}else if(\"shape\"===o){if(e.shapeArgs.push(i),i<e.pre.args.length&&e.pre.args[i].lvalue)throw new Error(\"cwise: pre() block may not write to array shape\");if(i<e.body.args.length&&e.body.args[i].lvalue)throw new Error(\"cwise: body() block may not write to array shape\");if(i<e.post.args.length&&e.post.args[i].lvalue)throw new Error(\"cwise: post() block may not write to array shape\")}else{if(\"object\"!=typeof o||!o.offset)throw new Error(\"cwise: Unknown argument type \"+r[i]);e.argTypes[i]=\"offset\",e.offsetArgs.push({array:o.array,offset:o.offset}),e.offsetArgIndex.push(i)}}if(e.arrayArgs.length<=0)throw new Error(\"cwise: No array arguments specified\");if(e.pre.args.length>r.length)throw new Error(\"cwise: Too many arguments in pre() block\");if(e.body.args.length>r.length)throw new Error(\"cwise: Too many arguments in body() block\");if(e.post.args.length>r.length)throw new Error(\"cwise: Too many arguments in post() block\");return e.debug=!!t.printCode||!!t.debug,e.funcName=t.funcName||\"cwise\",e.blockSize=t.blockSize||64,n(e)}},{\"./lib/thunk.js\":149}],148:[function(t,e,r){\"use strict\";var n=t(\"uniq\");function a(t,e,r){var n,a,i=t.length,o=e.arrayArgs.length,s=e.indexArgs.length>0,l=[],c=[],u=0,h=0;for(n=0;n<i;++n)c.push([\"i\",n,\"=0\"].join(\"\"));for(a=0;a<o;++a)for(n=0;n<i;++n)h=u,u=t[n],0===n?c.push([\"d\",a,\"s\",n,\"=t\",a,\"p\",u].join(\"\")):c.push([\"d\",a,\"s\",n,\"=(t\",a,\"p\",u,\"-s\",h,\"*t\",a,\"p\",h,\")\"].join(\"\"));for(c.length>0&&l.push(\"var \"+c.join(\",\")),n=i-1;n>=0;--n)u=t[n],l.push([\"for(i\",n,\"=0;i\",n,\"<s\",u,\";++i\",n,\"){\"].join(\"\"));for(l.push(r),n=0;n<i;++n){for(h=u,u=t[n],a=0;a<o;++a)l.push([\"p\",a,\"+=d\",a,\"s\",n].join(\"\"));s&&(n>0&&l.push([\"index[\",h,\"]-=s\",h].join(\"\")),l.push([\"++index[\",u,\"]\"].join(\"\"))),l.push(\"}\")}return l.join(\"\\n\")}function i(t,e,r){for(var n=t.body,a=[],i=[],o=0;o<t.args.length;++o){var s=t.args[o];if(!(s.count<=0)){var l=new RegExp(s.name,\"g\"),c=\"\",u=e.arrayArgs.indexOf(o);switch(e.argTypes[o]){case\"offset\":var h=e.offsetArgIndex.indexOf(o);u=e.offsetArgs[h].array,c=\"+q\"+h;case\"array\":c=\"p\"+u+c;var f=\"l\"+o,p=\"a\"+u;if(0===e.arrayBlockIndices[u])1===s.count?\"generic\"===r[u]?s.lvalue?(a.push([\"var \",f,\"=\",p,\".get(\",c,\")\"].join(\"\")),n=n.replace(l,f),i.push([p,\".set(\",c,\",\",f,\")\"].join(\"\"))):n=n.replace(l,[p,\".get(\",c,\")\"].join(\"\")):n=n.replace(l,[p,\"[\",c,\"]\"].join(\"\")):\"generic\"===r[u]?(a.push([\"var \",f,\"=\",p,\".get(\",c,\")\"].join(\"\")),n=n.replace(l,f),s.lvalue&&i.push([p,\".set(\",c,\",\",f,\")\"].join(\"\"))):(a.push([\"var \",f,\"=\",p,\"[\",c,\"]\"].join(\"\")),n=n.replace(l,f),s.lvalue&&i.push([p,\"[\",c,\"]=\",f].join(\"\")));else{for(var d=[s.name],g=[c],v=0;v<Math.abs(e.arrayBlockIndices[u]);v++)d.push(\"\\\\s*\\\\[([^\\\\]]+)\\\\]\"),g.push(\"$\"+(v+1)+\"*t\"+u+\"b\"+v);if(l=new RegExp(d.join(\"\"),\"g\"),c=g.join(\"+\"),\"generic\"===r[u])throw new Error(\"cwise: Generic arrays not supported in combination with blocks!\");n=n.replace(l,[p,\"[\",c,\"]\"].join(\"\"))}break;case\"scalar\":n=n.replace(l,\"Y\"+e.scalarArgs.indexOf(o));break;case\"index\":n=n.replace(l,\"index\");break;case\"shape\":n=n.replace(l,\"shape\")}}}return[a.join(\"\\n\"),n,i.join(\"\\n\")].join(\"\\n\").trim()}e.exports=function(t,e){for(var r=e[1].length-Math.abs(t.arrayBlockIndices[0])|0,o=new Array(t.arrayArgs.length),s=new Array(t.arrayArgs.length),l=0;l<t.arrayArgs.length;++l)s[l]=e[2*l],o[l]=e[2*l+1];var c=[],u=[],h=[],f=[],p=[];for(l=0;l<t.arrayArgs.length;++l){t.arrayBlockIndices[l]<0?(h.push(0),f.push(r),c.push(r),u.push(r+t.arrayBlockIndices[l])):(h.push(t.arrayBlockIndices[l]),f.push(t.arrayBlockIndices[l]+r),c.push(0),u.push(t.arrayBlockIndices[l]));for(var d=[],g=0;g<o[l].length;g++)h[l]<=o[l][g]&&o[l][g]<f[l]&&d.push(o[l][g]-h[l]);p.push(d)}var v=[\"SS\"],m=[\"'use strict'\"],y=[];for(g=0;g<r;++g)y.push([\"s\",g,\"=SS[\",g,\"]\"].join(\"\"));for(l=0;l<t.arrayArgs.length;++l){for(v.push(\"a\"+l),v.push(\"t\"+l),v.push(\"p\"+l),g=0;g<r;++g)y.push([\"t\",l,\"p\",g,\"=t\",l,\"[\",h[l]+g,\"]\"].join(\"\"));for(g=0;g<Math.abs(t.arrayBlockIndices[l]);++g)y.push([\"t\",l,\"b\",g,\"=t\",l,\"[\",c[l]+g,\"]\"].join(\"\"))}for(l=0;l<t.scalarArgs.length;++l)v.push(\"Y\"+l);if(t.shapeArgs.length>0&&y.push(\"shape=SS.slice(0)\"),t.indexArgs.length>0){var x=new Array(r);for(l=0;l<r;++l)x[l]=\"0\";y.push([\"index=[\",x.join(\",\"),\"]\"].join(\"\"))}for(l=0;l<t.offsetArgs.length;++l){var b=t.offsetArgs[l],_=[];for(g=0;g<b.offset.length;++g)0!==b.offset[g]&&(1===b.offset[g]?_.push([\"t\",b.array,\"p\",g].join(\"\")):_.push([b.offset[g],\"*t\",b.array,\"p\",g].join(\"\")));0===_.length?y.push(\"q\"+l+\"=0\"):y.push([\"q\",l,\"=\",_.join(\"+\")].join(\"\"))}var w=n([].concat(t.pre.thisVars).concat(t.body.thisVars).concat(t.post.thisVars));for((y=y.concat(w)).length>0&&m.push(\"var \"+y.join(\",\")),l=0;l<t.arrayArgs.length;++l)m.push(\"p\"+l+\"|=0\");t.pre.body.length>3&&m.push(i(t.pre,t,s));var k=i(t.body,t,s),T=function(t){for(var e=0,r=t[0].length;e<r;){for(var n=1;n<t.length;++n)if(t[n][e]!==t[0][e])return e;++e}return e}(p);T<r?m.push(function(t,e,r,n){for(var i=e.length,o=r.arrayArgs.length,s=r.blockSize,l=r.indexArgs.length>0,c=[],u=0;u<o;++u)c.push([\"var offset\",u,\"=p\",u].join(\"\"));for(u=t;u<i;++u)c.push([\"for(var j\"+u+\"=SS[\",e[u],\"]|0;j\",u,\">0;){\"].join(\"\")),c.push([\"if(j\",u,\"<\",s,\"){\"].join(\"\")),c.push([\"s\",e[u],\"=j\",u].join(\"\")),c.push([\"j\",u,\"=0\"].join(\"\")),c.push([\"}else{s\",e[u],\"=\",s].join(\"\")),c.push([\"j\",u,\"-=\",s,\"}\"].join(\"\")),l&&c.push([\"index[\",e[u],\"]=j\",u].join(\"\"));for(u=0;u<o;++u){for(var h=[\"offset\"+u],f=t;f<i;++f)h.push([\"j\",f,\"*t\",u,\"p\",e[f]].join(\"\"));c.push([\"p\",u,\"=(\",h.join(\"+\"),\")\"].join(\"\"))}for(c.push(a(e,r,n)),u=t;u<i;++u)c.push(\"}\");return c.join(\"\\n\")}(T,p[0],t,k)):m.push(a(p[0],t,k)),t.post.body.length>3&&m.push(i(t.post,t,s)),t.debug&&console.log(\"-----Generated cwise routine for \",e,\":\\n\"+m.join(\"\\n\")+\"\\n----------\");var A=[t.funcName||\"unnamed\",\"_cwise_loop_\",o[0].join(\"s\"),\"m\",T,function(t){for(var e=new Array(t.length),r=!0,n=0;n<t.length;++n){var a=t[n],i=a.match(/\\d+/);i=i?i[0]:\"\",0===a.charAt(0)?e[n]=\"u\"+a.charAt(1)+i:e[n]=a.charAt(0)+i,n>0&&(r=r&&e[n]===e[n-1])}return r?e[0]:e.join(\"\")}(s)].join(\"\");return new Function([\"function \",A,\"(\",v.join(\",\"),\"){\",m.join(\"\\n\"),\"} return \",A].join(\"\"))()}},{uniq:545}],149:[function(t,e,r){\"use strict\";var n=t(\"./compile.js\");e.exports=function(t){var e=[\"'use strict'\",\"var CACHED={}\"],r=[],a=t.funcName+\"_cwise_thunk\";e.push([\"return function \",a,\"(\",t.shimArgs.join(\",\"),\"){\"].join(\"\"));for(var i=[],o=[],s=[[\"array\",t.arrayArgs[0],\".shape.slice(\",Math.max(0,t.arrayBlockIndices[0]),t.arrayBlockIndices[0]<0?\",\"+t.arrayBlockIndices[0]+\")\":\")\"].join(\"\")],l=[],c=[],u=0;u<t.arrayArgs.length;++u){var h=t.arrayArgs[u];r.push([\"t\",h,\"=array\",h,\".dtype,\",\"r\",h,\"=array\",h,\".order\"].join(\"\")),i.push(\"t\"+h),i.push(\"r\"+h),o.push(\"t\"+h),o.push(\"r\"+h+\".join()\"),s.push(\"array\"+h+\".data\"),s.push(\"array\"+h+\".stride\"),s.push(\"array\"+h+\".offset|0\"),u>0&&(l.push(\"array\"+t.arrayArgs[0]+\".shape.length===array\"+h+\".shape.length+\"+(Math.abs(t.arrayBlockIndices[0])-Math.abs(t.arrayBlockIndices[u]))),c.push(\"array\"+t.arrayArgs[0]+\".shape[shapeIndex+\"+Math.max(0,t.arrayBlockIndices[0])+\"]===array\"+h+\".shape[shapeIndex+\"+Math.max(0,t.arrayBlockIndices[u])+\"]\"))}for(t.arrayArgs.length>1&&(e.push(\"if (!(\"+l.join(\" && \")+\")) throw new Error('cwise: Arrays do not all have the same dimensionality!')\"),e.push(\"for(var shapeIndex=array\"+t.arrayArgs[0]+\".shape.length-\"+Math.abs(t.arrayBlockIndices[0])+\"; shapeIndex--\\x3e0;) {\"),e.push(\"if (!(\"+c.join(\" && \")+\")) throw new Error('cwise: Arrays do not all have the same shape!')\"),e.push(\"}\")),u=0;u<t.scalarArgs.length;++u)s.push(\"scalar\"+t.scalarArgs[u]);return r.push([\"type=[\",o.join(\",\"),\"].join()\"].join(\"\")),r.push(\"proc=CACHED[type]\"),e.push(\"var \"+r.join(\",\")),e.push([\"if(!proc){\",\"CACHED[type]=proc=compile([\",i.join(\",\"),\"])}\",\"return proc(\",s.join(\",\"),\")}\"].join(\"\")),t.debug&&console.log(\"-----Generated thunk:\\n\"+e.join(\"\\n\")+\"\\n----------\"),new Function(\"compile\",e.join(\"\\n\"))(n.bind(void 0,t))}},{\"./compile.js\":148}],150:[function(t,e,r){e.exports=t(\"cwise-compiler\")},{\"cwise-compiler\":147}],151:[function(t,e,r){\"use strict\";var n,a=t(\"es5-ext/object/copy\"),i=t(\"es5-ext/object/normalize-options\"),o=t(\"es5-ext/object/valid-callable\"),s=t(\"es5-ext/object/map\"),l=t(\"es5-ext/object/valid-callable\"),c=t(\"es5-ext/object/valid-value\"),u=Function.prototype.bind,h=Object.defineProperty,f=Object.prototype.hasOwnProperty;n=function(t,e,r){var n,i=c(e)&&l(e.value);return delete(n=a(e)).writable,delete n.value,n.get=function(){return!r.overwriteDefinition&&f.call(this,t)?i:(e.value=u.call(i,r.resolveContext?r.resolveContext(this):this),h(this,t,e),this[t])},n},e.exports=function(t){var e=i(arguments[1]);return null!=e.resolveContext&&o(e.resolveContext),s(t,function(t,r){return n(r,t,e)})}},{\"es5-ext/object/copy\":191,\"es5-ext/object/map\":200,\"es5-ext/object/normalize-options\":201,\"es5-ext/object/valid-callable\":205,\"es5-ext/object/valid-value\":207}],152:[function(t,e,r){\"use strict\";var n=t(\"es5-ext/object/assign\"),a=t(\"es5-ext/object/normalize-options\"),i=t(\"es5-ext/object/is-callable\"),o=t(\"es5-ext/string/#/contains\");(e.exports=function(t,e){var r,i,s,l,c;return arguments.length<2||\"string\"!=typeof t?(l=e,e=t,t=null):l=arguments[2],null==t?(r=s=!0,i=!1):(r=o.call(t,\"c\"),i=o.call(t,\"e\"),s=o.call(t,\"w\")),c={value:e,configurable:r,enumerable:i,writable:s},l?n(a(l),c):c}).gs=function(t,e,r){var s,l,c,u;return\"string\"!=typeof t?(c=r,r=e,e=t,t=null):c=arguments[3],null==e?e=void 0:i(e)?null==r?r=void 0:i(r)||(c=r,r=void 0):(c=e,e=r=void 0),null==t?(s=!0,l=!1):(s=o.call(t,\"c\"),l=o.call(t,\"e\")),u={get:e,set:r,configurable:s,enumerable:l},c?n(a(c),u):u}},{\"es5-ext/object/assign\":188,\"es5-ext/object/is-callable\":194,\"es5-ext/object/normalize-options\":201,\"es5-ext/string/#/contains\":208}],153:[function(t,e,r){var n;n=this,function(t){\"use strict\";function e(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function r(t){var r;return 1===t.length&&(r=t,t=function(t,n){return e(r(t),n)}),{left:function(e,r,n,a){for(null==n&&(n=0),null==a&&(a=e.length);n<a;){var i=n+a>>>1;t(e[i],r)<0?n=i+1:a=i}return n},right:function(e,r,n,a){for(null==n&&(n=0),null==a&&(a=e.length);n<a;){var i=n+a>>>1;t(e[i],r)>0?a=i:n=i+1}return n}}}var n=r(e),a=n.right,i=n.left;function o(t,e){return[t,e]}function s(t){return null===t?NaN:+t}function l(t,e){var r,n,a=t.length,i=0,o=-1,l=0,c=0;if(null==e)for(;++o<a;)isNaN(r=s(t[o]))||(c+=(n=r-l)*(r-(l+=n/++i)));else for(;++o<a;)isNaN(r=s(e(t[o],o,t)))||(c+=(n=r-l)*(r-(l+=n/++i)));if(i>1)return c/(i-1)}function c(t,e){var r=l(t,e);return r?Math.sqrt(r):r}function u(t,e){var r,n,a,i=t.length,o=-1;if(null==e){for(;++o<i;)if(null!=(r=t[o])&&r>=r)for(n=a=r;++o<i;)null!=(r=t[o])&&(n>r&&(n=r),a<r&&(a=r))}else for(;++o<i;)if(null!=(r=e(t[o],o,t))&&r>=r)for(n=a=r;++o<i;)null!=(r=e(t[o],o,t))&&(n>r&&(n=r),a<r&&(a=r));return[n,a]}var h=Array.prototype,f=h.slice,p=h.map;function d(t){return function(){return t}}function g(t){return t}function v(t,e,r){t=+t,e=+e,r=(a=arguments.length)<2?(e=t,t=0,1):a<3?1:+r;for(var n=-1,a=0|Math.max(0,Math.ceil((e-t)/r)),i=new Array(a);++n<a;)i[n]=t+n*r;return i}var m=Math.sqrt(50),y=Math.sqrt(10),x=Math.sqrt(2);function b(t,e,r){var n=(e-t)/Math.max(0,r),a=Math.floor(Math.log(n)/Math.LN10),i=n/Math.pow(10,a);return a>=0?(i>=m?10:i>=y?5:i>=x?2:1)*Math.pow(10,a):-Math.pow(10,-a)/(i>=m?10:i>=y?5:i>=x?2:1)}function _(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),a=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),i=n/a;return i>=m?a*=10:i>=y?a*=5:i>=x&&(a*=2),e<t?-a:a}function w(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}function k(t,e,r){if(null==r&&(r=s),n=t.length){if((e=+e)<=0||n<2)return+r(t[0],0,t);if(e>=1)return+r(t[n-1],n-1,t);var n,a=(n-1)*e,i=Math.floor(a),o=+r(t[i],i,t);return o+(+r(t[i+1],i+1,t)-o)*(a-i)}}function T(t,e){var r,n,a=t.length,i=-1;if(null==e){for(;++i<a;)if(null!=(r=t[i])&&r>=r)for(n=r;++i<a;)null!=(r=t[i])&&n>r&&(n=r)}else for(;++i<a;)if(null!=(r=e(t[i],i,t))&&r>=r)for(n=r;++i<a;)null!=(r=e(t[i],i,t))&&n>r&&(n=r);return n}function A(t){if(!(a=t.length))return[];for(var e=-1,r=T(t,M),n=new Array(r);++e<r;)for(var a,i=-1,o=n[e]=new Array(a);++i<a;)o[i]=t[i][e];return n}function M(t){return t.length}t.bisect=a,t.bisectRight=a,t.bisectLeft=i,t.ascending=e,t.bisector=r,t.cross=function(t,e,r){var n,a,i,s,l=t.length,c=e.length,u=new Array(l*c);for(null==r&&(r=o),n=i=0;n<l;++n)for(s=t[n],a=0;a<c;++a,++i)u[i]=r(s,e[a]);return u},t.descending=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},t.deviation=c,t.extent=u,t.histogram=function(){var t=g,e=u,r=w;function n(n){var i,o,s=n.length,l=new Array(s);for(i=0;i<s;++i)l[i]=t(n[i],i,n);var c=e(l),u=c[0],h=c[1],f=r(l,u,h);Array.isArray(f)||(f=_(u,h,f),f=v(Math.ceil(u/f)*f,h,f));for(var p=f.length;f[0]<=u;)f.shift(),--p;for(;f[p-1]>h;)f.pop(),--p;var d,g=new Array(p+1);for(i=0;i<=p;++i)(d=g[i]=[]).x0=i>0?f[i-1]:u,d.x1=i<p?f[i]:h;for(i=0;i<s;++i)u<=(o=l[i])&&o<=h&&g[a(f,o,0,p)].push(n[i]);return g}return n.value=function(e){return arguments.length?(t=\"function\"==typeof e?e:d(e),n):t},n.domain=function(t){return arguments.length?(e=\"function\"==typeof t?t:d([t[0],t[1]]),n):e},n.thresholds=function(t){return arguments.length?(r=\"function\"==typeof t?t:Array.isArray(t)?d(f.call(t)):d(t),n):r},n},t.thresholdFreedmanDiaconis=function(t,r,n){return t=p.call(t,s).sort(e),Math.ceil((n-r)/(2*(k(t,.75)-k(t,.25))*Math.pow(t.length,-1/3)))},t.thresholdScott=function(t,e,r){return Math.ceil((r-e)/(3.5*c(t)*Math.pow(t.length,-1/3)))},t.thresholdSturges=w,t.max=function(t,e){var r,n,a=t.length,i=-1;if(null==e){for(;++i<a;)if(null!=(r=t[i])&&r>=r)for(n=r;++i<a;)null!=(r=t[i])&&r>n&&(n=r)}else for(;++i<a;)if(null!=(r=e(t[i],i,t))&&r>=r)for(n=r;++i<a;)null!=(r=e(t[i],i,t))&&r>n&&(n=r);return n},t.mean=function(t,e){var r,n=t.length,a=n,i=-1,o=0;if(null==e)for(;++i<n;)isNaN(r=s(t[i]))?--a:o+=r;else for(;++i<n;)isNaN(r=s(e(t[i],i,t)))?--a:o+=r;if(a)return o/a},t.median=function(t,r){var n,a=t.length,i=-1,o=[];if(null==r)for(;++i<a;)isNaN(n=s(t[i]))||o.push(n);else for(;++i<a;)isNaN(n=s(r(t[i],i,t)))||o.push(n);return k(o.sort(e),.5)},t.merge=function(t){for(var e,r,n,a=t.length,i=-1,o=0;++i<a;)o+=t[i].length;for(r=new Array(o);--a>=0;)for(e=(n=t[a]).length;--e>=0;)r[--o]=n[e];return r},t.min=T,t.pairs=function(t,e){null==e&&(e=o);for(var r=0,n=t.length-1,a=t[0],i=new Array(n<0?0:n);r<n;)i[r]=e(a,a=t[++r]);return i},t.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},t.quantile=k,t.range=v,t.scan=function(t,r){if(n=t.length){var n,a,i=0,o=0,s=t[o];for(null==r&&(r=e);++i<n;)(r(a=t[i],s)<0||0!==r(s,s))&&(s=a,o=i);return 0===r(s,s)?o:void 0}},t.shuffle=function(t,e,r){for(var n,a,i=(null==r?t.length:r)-(e=null==e?0:+e);i;)a=Math.random()*i--|0,n=t[i+e],t[i+e]=t[a+e],t[a+e]=n;return t},t.sum=function(t,e){var r,n=t.length,a=-1,i=0;if(null==e)for(;++a<n;)(r=+t[a])&&(i+=r);else for(;++a<n;)(r=+e(t[a],a,t))&&(i+=r);return i},t.ticks=function(t,e,r){var n,a,i,o,s=-1;if(r=+r,(t=+t)==(e=+e)&&r>0)return[t];if((n=e<t)&&(a=t,t=e,e=a),0===(o=b(t,e,r))||!isFinite(o))return[];if(o>0)for(t=Math.ceil(t/o),e=Math.floor(e/o),i=new Array(a=Math.ceil(e-t+1));++s<a;)i[s]=(t+s)*o;else for(t=Math.floor(t*o),e=Math.ceil(e*o),i=new Array(a=Math.ceil(t-e+1));++s<a;)i[s]=(t-s)/o;return n&&i.reverse(),i},t.tickIncrement=b,t.tickStep=_,t.transpose=A,t.variance=l,t.zip=function(){return A(arguments)},Object.defineProperty(t,\"__esModule\",{value:!0})}(\"object\"==typeof r&&\"undefined\"!=typeof e?r:n.d3=n.d3||{})},{}],154:[function(t,e,r){var n;n=this,function(t){\"use strict\";function e(){}function r(t,r){var n=new e;if(t instanceof e)t.each(function(t,e){n.set(e,t)});else if(Array.isArray(t)){var a,i=-1,o=t.length;if(null==r)for(;++i<o;)n.set(i,t[i]);else for(;++i<o;)n.set(r(a=t[i],i,t),a)}else if(t)for(var s in t)n.set(s,t[s]);return n}e.prototype=r.prototype={constructor:e,has:function(t){return\"$\"+t in this},get:function(t){return this[\"$\"+t]},set:function(t,e){return this[\"$\"+t]=e,this},remove:function(t){var e=\"$\"+t;return e in this&&delete this[e]},clear:function(){for(var t in this)\"$\"===t[0]&&delete this[t]},keys:function(){var t=[];for(var e in this)\"$\"===e[0]&&t.push(e.slice(1));return t},values:function(){var t=[];for(var e in this)\"$\"===e[0]&&t.push(this[e]);return t},entries:function(){var t=[];for(var e in this)\"$\"===e[0]&&t.push({key:e.slice(1),value:this[e]});return t},size:function(){var t=0;for(var e in this)\"$\"===e[0]&&++t;return t},empty:function(){for(var t in this)if(\"$\"===t[0])return!1;return!0},each:function(t){for(var e in this)\"$\"===e[0]&&t(this[e],e.slice(1),this)}};function n(){return{}}function a(t,e,r){t[e]=r}function i(){return r()}function o(t,e,r){t.set(e,r)}function s(){}var l=r.prototype;function c(t,e){var r=new s;if(t instanceof s)t.each(function(t){r.add(t)});else if(t){var n=-1,a=t.length;if(null==e)for(;++n<a;)r.add(t[n]);else for(;++n<a;)r.add(e(t[n],n,t))}return r}s.prototype=c.prototype={constructor:s,has:l.has,add:function(t){return this[\"$\"+(t+=\"\")]=t,this},remove:l.remove,clear:l.clear,values:l.keys,size:l.size,empty:l.empty,each:l.each};t.nest=function(){var t,e,s,l=[],c=[];function u(n,a,i,o){if(a>=l.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var s,c,h,f=-1,p=n.length,d=l[a++],g=r(),v=i();++f<p;)(h=g.get(s=d(c=n[f])+\"\"))?h.push(c):g.set(s,[c]);return g.each(function(t,e){o(v,e,u(t,a,i,o))}),v}return s={object:function(t){return u(t,0,n,a)},map:function(t){return u(t,0,i,o)},entries:function(t){return function t(r,n){if(++n>l.length)return r;var a,i=c[n-1];return null!=e&&n>=l.length?a=r.entries():(a=[],r.each(function(e,r){a.push({key:r,values:t(e,n)})})),null!=i?a.sort(function(t,e){return i(t.key,e.key)}):a}(u(t,0,i,o),0)},key:function(t){return l.push(t),s},sortKeys:function(t){return c[l.length-1]=t,s},sortValues:function(e){return t=e,s},rollup:function(t){return e=t,s}}},t.set=c,t.map=r,t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},Object.defineProperty(t,\"__esModule\",{value:!0})}(\"object\"==typeof r&&\"undefined\"!=typeof e?r:n.d3=n.d3||{})},{}],155:[function(t,e,r){var n;n=this,function(t){\"use strict\";function e(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function r(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function n(){}var a=\"\\\\s*([+-]?\\\\d+)\\\\s*\",i=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",o=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",s=/^#([0-9a-f]{3})$/,l=/^#([0-9a-f]{6})$/,c=new RegExp(\"^rgb\\\\(\"+[a,a,a]+\"\\\\)$\"),u=new RegExp(\"^rgb\\\\(\"+[o,o,o]+\"\\\\)$\"),h=new RegExp(\"^rgba\\\\(\"+[a,a,a,i]+\"\\\\)$\"),f=new RegExp(\"^rgba\\\\(\"+[o,o,o,i]+\"\\\\)$\"),p=new RegExp(\"^hsl\\\\(\"+[i,o,o]+\"\\\\)$\"),d=new RegExp(\"^hsla\\\\(\"+[i,o,o,i]+\"\\\\)$\"),g={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function v(t){var e;return t=(t+\"\").trim().toLowerCase(),(e=s.exec(t))?new _((e=parseInt(e[1],16))>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):(e=l.exec(t))?m(parseInt(e[1],16)):(e=c.exec(t))?new _(e[1],e[2],e[3],1):(e=u.exec(t))?new _(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=h.exec(t))?y(e[1],e[2],e[3],e[4]):(e=f.exec(t))?y(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=p.exec(t))?k(e[1],e[2]/100,e[3]/100,1):(e=d.exec(t))?k(e[1],e[2]/100,e[3]/100,e[4]):g.hasOwnProperty(t)?m(g[t]):\"transparent\"===t?new _(NaN,NaN,NaN,0):null}function m(t){return new _(t>>16&255,t>>8&255,255&t,1)}function y(t,e,r,n){return n<=0&&(t=e=r=NaN),new _(t,e,r,n)}function x(t){return t instanceof n||(t=v(t)),t?new _((t=t.rgb()).r,t.g,t.b,t.opacity):new _}function b(t,e,r,n){return 1===arguments.length?x(t):new _(t,e,r,null==n?1:n)}function _(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function w(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?\"0\":\"\")+t.toString(16)}function k(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new A(t,e,r,n)}function T(t,e,r,a){return 1===arguments.length?function(t){if(t instanceof A)return new A(t.h,t.s,t.l,t.opacity);if(t instanceof n||(t=v(t)),!t)return new A;if(t instanceof A)return t;var e=(t=t.rgb()).r/255,r=t.g/255,a=t.b/255,i=Math.min(e,r,a),o=Math.max(e,r,a),s=NaN,l=o-i,c=(o+i)/2;return l?(s=e===o?(r-a)/l+6*(r<a):r===o?(a-e)/l+2:(e-r)/l+4,l/=c<.5?o+i:2-o-i,s*=60):l=c>0&&c<1?0:s,new A(s,l,c,t.opacity)}(t):new A(t,e,r,null==a?1:a)}function A(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function M(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}e(n,v,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+\"\"}}),e(_,b,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new _(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new _(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return\"#\"+w(this.r)+w(this.g)+w(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?\"rgb(\":\"rgba(\")+Math.max(0,Math.min(255,Math.round(this.r)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.g)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?\")\":\", \"+t+\")\")}})),e(A,T,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new A(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new A(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,a=2*r-n;return new _(M(t>=240?t-240:t+120,a,n),M(t,a,n),M(t<120?t+240:t-120,a,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var S=Math.PI/180,E=180/Math.PI,C=.96422,L=1,P=.82521,O=4/29,z=6/29,I=3*z*z,D=z*z*z;function R(t){if(t instanceof B)return new B(t.l,t.a,t.b,t.opacity);if(t instanceof G){if(isNaN(t.h))return new B(t.l,0,0,t.opacity);var e=t.h*S;return new B(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}t instanceof _||(t=x(t));var r,n,a=U(t.r),i=U(t.g),o=U(t.b),s=N((.2225045*a+.7168786*i+.0606169*o)/L);return a===i&&i===o?r=n=s:(r=N((.4360747*a+.3850649*i+.1430804*o)/C),n=N((.0139322*a+.0971045*i+.7141733*o)/P)),new B(116*s-16,500*(r-s),200*(s-n),t.opacity)}function F(t,e,r,n){return 1===arguments.length?R(t):new B(t,e,r,null==n?1:n)}function B(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function N(t){return t>D?Math.pow(t,1/3):t/I+O}function j(t){return t>z?t*t*t:I*(t-O)}function V(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function U(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function q(t){if(t instanceof G)return new G(t.h,t.c,t.l,t.opacity);if(t instanceof B||(t=R(t)),0===t.a&&0===t.b)return new G(NaN,0,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*E;return new G(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function H(t,e,r,n){return 1===arguments.length?q(t):new G(t,e,r,null==n?1:n)}function G(t,e,r,n){this.h=+t,this.c=+e,this.l=+r,this.opacity=+n}e(B,F,r(n,{brighter:function(t){return new B(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new B(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return new _(V(3.1338561*(e=C*j(e))-1.6168667*(t=L*j(t))-.4906146*(r=P*j(r))),V(-.9787684*e+1.9161415*t+.033454*r),V(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}})),e(G,H,r(n,{brighter:function(t){return new G(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new G(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return R(this).rgb()}}));var Y=-.14861,W=1.78277,X=-.29227,Z=-.90649,J=1.97294,K=J*Z,Q=J*W,$=W*X-Z*Y;function tt(t,e,r,n){return 1===arguments.length?function(t){if(t instanceof et)return new et(t.h,t.s,t.l,t.opacity);t instanceof _||(t=x(t));var e=t.r/255,r=t.g/255,n=t.b/255,a=($*n+K*e-Q*r)/($+K-Q),i=n-a,o=(J*(r-a)-X*i)/Z,s=Math.sqrt(o*o+i*i)/(J*a*(1-a)),l=s?Math.atan2(o,i)*E-120:NaN;return new et(l<0?l+360:l,s,a,t.opacity)}(t):new et(t,e,r,null==n?1:n)}function et(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}e(et,tt,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new et(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new et(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*S,e=+this.l,r=isNaN(this.s)?0:this.s*e*(1-e),n=Math.cos(t),a=Math.sin(t);return new _(255*(e+r*(Y*n+W*a)),255*(e+r*(X*n+Z*a)),255*(e+r*(J*n)),this.opacity)}})),t.color=v,t.rgb=b,t.hsl=T,t.lab=F,t.hcl=H,t.lch=function(t,e,r,n){return 1===arguments.length?q(t):new G(r,e,t,null==n?1:n)},t.gray=function(t,e){return new B(t,0,0,null==e?1:e)},t.cubehelix=tt,Object.defineProperty(t,\"__esModule\",{value:!0})}(\"object\"==typeof r&&\"undefined\"!=typeof e?r:n.d3=n.d3||{})},{}],156:[function(t,e,r){var n;n=this,function(t){\"use strict\";var e={value:function(){}};function r(){for(var t,e=0,r=arguments.length,a={};e<r;++e){if(!(t=arguments[e]+\"\")||t in a)throw new Error(\"illegal type: \"+t);a[t]=[]}return new n(a)}function n(t){this._=t}function a(t,e){for(var r,n=0,a=t.length;n<a;++n)if((r=t[n]).name===e)return r.value}function i(t,r,n){for(var a=0,i=t.length;a<i;++a)if(t[a].name===r){t[a]=e,t=t.slice(0,a).concat(t.slice(a+1));break}return null!=n&&t.push({name:r,value:n}),t}n.prototype=r.prototype={constructor:n,on:function(t,e){var r,n,o=this._,s=(n=o,(t+\"\").trim().split(/^|\\s+/).map(function(t){var e=\"\",r=t.indexOf(\".\");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);return{type:t,name:e}})),l=-1,c=s.length;if(!(arguments.length<2)){if(null!=e&&\"function\"!=typeof e)throw new Error(\"invalid callback: \"+e);for(;++l<c;)if(r=(t=s[l]).type)o[r]=i(o[r],t.name,e);else if(null==e)for(r in o)o[r]=i(o[r],t.name,null);return this}for(;++l<c;)if((r=(t=s[l]).type)&&(r=a(o[r],t.name)))return r},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new n(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var r,n,a=new Array(r),i=0;i<r;++i)a[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(i=0,r=(n=this._[t]).length;i<r;++i)n[i].value.apply(e,a)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(var n=this._[t],a=0,i=n.length;a<i;++a)n[a].value.apply(e,r)}},t.dispatch=r,Object.defineProperty(t,\"__esModule\",{value:!0})}(\"object\"==typeof r&&\"undefined\"!=typeof e?r:n.d3=n.d3||{})},{}],157:[function(t,e,r){var n,a;n=this,a=function(t,e,r,n,a){\"use strict\";var i=function(t){return function(){return t}},o=function(){return 1e-6*(Math.random()-.5)};function s(t){return t.x+t.vx}function l(t){return t.y+t.vy}function c(t){return t.index}function u(t,e){var r=t.get(e);if(!r)throw new Error(\"missing: \"+e);return r}function h(t){return t.x}function f(t){return t.y}var p=10,d=Math.PI*(3-Math.sqrt(5));t.forceCenter=function(t,e){var r;function n(){var n,a,i=r.length,o=0,s=0;for(n=0;n<i;++n)o+=(a=r[n]).x,s+=a.y;for(o=o/i-t,s=s/i-e,n=0;n<i;++n)(a=r[n]).x-=o,a.y-=s}return null==t&&(t=0),null==e&&(e=0),n.initialize=function(t){r=t},n.x=function(e){return arguments.length?(t=+e,n):t},n.y=function(t){return arguments.length?(e=+t,n):e},n},t.forceCollide=function(t){var r,n,a=1,c=1;function u(){for(var t,i,u,f,p,d,g,v=r.length,m=0;m<c;++m)for(i=e.quadtree(r,s,l).visitAfter(h),t=0;t<v;++t)u=r[t],d=n[u.index],g=d*d,f=u.x+u.vx,p=u.y+u.vy,i.visit(y);function y(t,e,r,n,i){var s=t.data,l=t.r,c=d+l;if(!s)return e>f+c||n<f-c||r>p+c||i<p-c;if(s.index>u.index){var h=f-s.x-s.vx,v=p-s.y-s.vy,m=h*h+v*v;m<c*c&&(0===h&&(m+=(h=o())*h),0===v&&(m+=(v=o())*v),m=(c-(m=Math.sqrt(m)))/m*a,u.vx+=(h*=m)*(c=(l*=l)/(g+l)),u.vy+=(v*=m)*c,s.vx-=h*(c=1-c),s.vy-=v*c)}}}function h(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<4;++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function f(){if(r){var e,a,i=r.length;for(n=new Array(i),e=0;e<i;++e)a=r[e],n[a.index]=+t(a,e,r)}}return\"function\"!=typeof t&&(t=i(null==t?1:+t)),u.initialize=function(t){r=t,f()},u.iterations=function(t){return arguments.length?(c=+t,u):c},u.strength=function(t){return arguments.length?(a=+t,u):a},u.radius=function(e){return arguments.length?(t=\"function\"==typeof e?e:i(+e),f(),u):t},u},t.forceLink=function(t){var e,n,a,s,l,h=c,f=function(t){return 1/Math.min(s[t.source.index],s[t.target.index])},p=i(30),d=1;function g(r){for(var a=0,i=t.length;a<d;++a)for(var s,c,u,h,f,p,g,v=0;v<i;++v)c=(s=t[v]).source,h=(u=s.target).x+u.vx-c.x-c.vx||o(),f=u.y+u.vy-c.y-c.vy||o(),h*=p=((p=Math.sqrt(h*h+f*f))-n[v])/p*r*e[v],f*=p,u.vx-=h*(g=l[v]),u.vy-=f*g,c.vx+=h*(g=1-g),c.vy+=f*g}function v(){if(a){var i,o,c=a.length,f=t.length,p=r.map(a,h);for(i=0,s=new Array(c);i<f;++i)(o=t[i]).index=i,\"object\"!=typeof o.source&&(o.source=u(p,o.source)),\"object\"!=typeof o.target&&(o.target=u(p,o.target)),s[o.source.index]=(s[o.source.index]||0)+1,s[o.target.index]=(s[o.target.index]||0)+1;for(i=0,l=new Array(f);i<f;++i)o=t[i],l[i]=s[o.source.index]/(s[o.source.index]+s[o.target.index]);e=new Array(f),m(),n=new Array(f),y()}}function m(){if(a)for(var r=0,n=t.length;r<n;++r)e[r]=+f(t[r],r,t)}function y(){if(a)for(var e=0,r=t.length;e<r;++e)n[e]=+p(t[e],e,t)}return null==t&&(t=[]),g.initialize=function(t){a=t,v()},g.links=function(e){return arguments.length?(t=e,v(),g):t},g.id=function(t){return arguments.length?(h=t,g):h},g.iterations=function(t){return arguments.length?(d=+t,g):d},g.strength=function(t){return arguments.length?(f=\"function\"==typeof t?t:i(+t),m(),g):f},g.distance=function(t){return arguments.length?(p=\"function\"==typeof t?t:i(+t),y(),g):p},g},t.forceManyBody=function(){var t,r,n,a,s=i(-30),l=1,c=1/0,u=.81;function p(a){var i,o=t.length,s=e.quadtree(t,h,f).visitAfter(g);for(n=a,i=0;i<o;++i)r=t[i],s.visit(v)}function d(){if(t){var e,r,n=t.length;for(a=new Array(n),e=0;e<n;++e)r=t[e],a[r.index]=+s(r,e,t)}}function g(t){var e,r,n,i,o,s=0,l=0;if(t.length){for(n=i=o=0;o<4;++o)(e=t[o])&&(r=Math.abs(e.value))&&(s+=e.value,l+=r,n+=r*e.x,i+=r*e.y);t.x=n/l,t.y=i/l}else{(e=t).x=e.data.x,e.y=e.data.y;do{s+=a[e.data.index]}while(e=e.next)}t.value=s}function v(t,e,i,s){if(!t.value)return!0;var h=t.x-r.x,f=t.y-r.y,p=s-e,d=h*h+f*f;if(p*p/u<d)return d<c&&(0===h&&(d+=(h=o())*h),0===f&&(d+=(f=o())*f),d<l&&(d=Math.sqrt(l*d)),r.vx+=h*t.value*n/d,r.vy+=f*t.value*n/d),!0;if(!(t.length||d>=c)){(t.data!==r||t.next)&&(0===h&&(d+=(h=o())*h),0===f&&(d+=(f=o())*f),d<l&&(d=Math.sqrt(l*d)));do{t.data!==r&&(p=a[t.data.index]*n/d,r.vx+=h*p,r.vy+=f*p)}while(t=t.next)}}return p.initialize=function(e){t=e,d()},p.strength=function(t){return arguments.length?(s=\"function\"==typeof t?t:i(+t),d(),p):s},p.distanceMin=function(t){return arguments.length?(l=t*t,p):Math.sqrt(l)},p.distanceMax=function(t){return arguments.length?(c=t*t,p):Math.sqrt(c)},p.theta=function(t){return arguments.length?(u=t*t,p):Math.sqrt(u)},p},t.forceRadial=function(t,e,r){var n,a,o,s=i(.1);function l(t){for(var i=0,s=n.length;i<s;++i){var l=n[i],c=l.x-e||1e-6,u=l.y-r||1e-6,h=Math.sqrt(c*c+u*u),f=(o[i]-h)*a[i]*t/h;l.vx+=c*f,l.vy+=u*f}}function c(){if(n){var e,r=n.length;for(a=new Array(r),o=new Array(r),e=0;e<r;++e)o[e]=+t(n[e],e,n),a[e]=isNaN(o[e])?0:+s(n[e],e,n)}}return\"function\"!=typeof t&&(t=i(+t)),null==e&&(e=0),null==r&&(r=0),l.initialize=function(t){n=t,c()},l.strength=function(t){return arguments.length?(s=\"function\"==typeof t?t:i(+t),c(),l):s},l.radius=function(e){return arguments.length?(t=\"function\"==typeof e?e:i(+e),c(),l):t},l.x=function(t){return arguments.length?(e=+t,l):e},l.y=function(t){return arguments.length?(r=+t,l):r},l},t.forceSimulation=function(t){var e,i=1,o=.001,s=1-Math.pow(o,1/300),l=0,c=.6,u=r.map(),h=a.timer(g),f=n.dispatch(\"tick\",\"end\");function g(){v(),f.call(\"tick\",e),i<o&&(h.stop(),f.call(\"end\",e))}function v(){var e,r,n=t.length;for(i+=(l-i)*s,u.each(function(t){t(i)}),e=0;e<n;++e)null==(r=t[e]).fx?r.x+=r.vx*=c:(r.x=r.fx,r.vx=0),null==r.fy?r.y+=r.vy*=c:(r.y=r.fy,r.vy=0)}function m(){for(var e,r=0,n=t.length;r<n;++r){if((e=t[r]).index=r,isNaN(e.x)||isNaN(e.y)){var a=p*Math.sqrt(r),i=r*d;e.x=a*Math.cos(i),e.y=a*Math.sin(i)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function y(e){return e.initialize&&e.initialize(t),e}return null==t&&(t=[]),m(),e={tick:v,restart:function(){return h.restart(g),e},stop:function(){return h.stop(),e},nodes:function(r){return arguments.length?(t=r,m(),u.each(y),e):t},alpha:function(t){return arguments.length?(i=+t,e):i},alphaMin:function(t){return arguments.length?(o=+t,e):o},alphaDecay:function(t){return arguments.length?(s=+t,e):+s},alphaTarget:function(t){return arguments.length?(l=+t,e):l},velocityDecay:function(t){return arguments.length?(c=1-t,e):1-c},force:function(t,r){return arguments.length>1?(null==r?u.remove(t):u.set(t,y(r)),e):u.get(t)},find:function(e,r,n){var a,i,o,s,l,c=0,u=t.length;for(null==n?n=1/0:n*=n,c=0;c<u;++c)(o=(a=e-(s=t[c]).x)*a+(i=r-s.y)*i)<n&&(l=s,n=o);return l},on:function(t,r){return arguments.length>1?(f.on(t,r),e):f.on(t)}}},t.forceX=function(t){var e,r,n,a=i(.1);function o(t){for(var a,i=0,o=e.length;i<o;++i)(a=e[i]).vx+=(n[i]-a.x)*r[i]*t}function s(){if(e){var i,o=e.length;for(r=new Array(o),n=new Array(o),i=0;i<o;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+a(e[i],i,e)}}return\"function\"!=typeof t&&(t=i(null==t?0:+t)),o.initialize=function(t){e=t,s()},o.strength=function(t){return arguments.length?(a=\"function\"==typeof t?t:i(+t),s(),o):a},o.x=function(e){return arguments.length?(t=\"function\"==typeof e?e:i(+e),s(),o):t},o},t.forceY=function(t){var e,r,n,a=i(.1);function o(t){for(var a,i=0,o=e.length;i<o;++i)(a=e[i]).vy+=(n[i]-a.y)*r[i]*t}function s(){if(e){var i,o=e.length;for(r=new Array(o),n=new Array(o),i=0;i<o;++i)r[i]=isNaN(n[i]=+t(e[i],i,e))?0:+a(e[i],i,e)}}return\"function\"!=typeof t&&(t=i(null==t?0:+t)),o.initialize=function(t){e=t,s()},o.strength=function(t){return arguments.length?(a=\"function\"==typeof t?t:i(+t),s(),o):a},o.y=function(e){return arguments.length?(t=\"function\"==typeof e?e:i(+e),s(),o):t},o},Object.defineProperty(t,\"__esModule\",{value:!0})},\"object\"==typeof r&&\"undefined\"!=typeof e?a(r,t(\"d3-quadtree\"),t(\"d3-collection\"),t(\"d3-dispatch\"),t(\"d3-timer\")):a(n.d3=n.d3||{},n.d3,n.d3,n.d3,n.d3)},{\"d3-collection\":154,\"d3-dispatch\":156,\"d3-quadtree\":161,\"d3-timer\":163}],158:[function(t,e,r){var n;n=this,function(t){\"use strict\";function e(t,e){return t.parent===e.parent?1:2}function r(t,e){return t+e.x}function n(t,e){return Math.max(t,e.y)}function a(t){var e=0,r=t.children,n=r&&r.length;if(n)for(;--n>=0;)e+=r[n].value;else e=1;t.value=e}function i(t,e){var r,n,a,i,s,u=new c(t),h=+t.value&&(u.value=t.value),f=[u];for(null==e&&(e=o);r=f.pop();)if(h&&(r.value=+r.data.value),(a=e(r.data))&&(s=a.length))for(r.children=new Array(s),i=s-1;i>=0;--i)f.push(n=r.children[i]=new c(a[i])),n.parent=r,n.depth=r.depth+1;return u.eachBefore(l)}function o(t){return t.children}function s(t){t.data=t.data.data}function l(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function c(t){this.data=t,this.depth=this.height=0,this.parent=null}c.prototype=i.prototype={constructor:c,count:function(){return this.eachAfter(a)},each:function(t){var e,r,n,a,i=this,o=[i];do{for(e=o.reverse(),o=[];i=e.pop();)if(t(i),r=i.children)for(n=0,a=r.length;n<a;++n)o.push(r[n])}while(o.length);return this},eachAfter:function(t){for(var e,r,n,a=this,i=[a],o=[];a=i.pop();)if(o.push(a),e=a.children)for(r=0,n=e.length;r<n;++r)i.push(e[r]);for(;a=o.pop();)t(a);return this},eachBefore:function(t){for(var e,r,n=this,a=[n];n=a.pop();)if(t(n),e=n.children)for(r=e.length-1;r>=0;--r)a.push(e[r]);return this},sum:function(t){return this.eachAfter(function(e){for(var r=+t(e.data)||0,n=e.children,a=n&&n.length;--a>=0;)r+=n[a].value;e.value=r})},sort:function(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})},path:function(t){for(var e=this,r=function(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),a=null;for(t=r.pop(),e=n.pop();t===e;)a=t,t=r.pop(),e=n.pop();return a}(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var a=n.length;t!==r;)n.splice(a,0,t),t=t.parent;return n},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each(function(e){t.push(e)}),t},leaves:function(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t},links:function(){var t=this,e=[];return t.each(function(r){r!==t&&e.push({source:r.parent,target:r})}),e},copy:function(){return i(this).eachBefore(s)}};var u=Array.prototype.slice;function h(t){for(var e,r,n=0,a=(t=function(t){for(var e,r,n=t.length;n;)r=Math.random()*n--|0,e=t[n],t[n]=t[r],t[r]=e;return t}(u.call(t))).length,i=[];n<a;)e=t[n],r&&d(r,e)?++n:(r=v(i=f(i,e)),n=0);return r}function f(t,e){var r,n;if(g(e,t))return[e];for(r=0;r<t.length;++r)if(p(e,t[r])&&g(m(t[r],e),t))return[t[r],e];for(r=0;r<t.length-1;++r)for(n=r+1;n<t.length;++n)if(p(m(t[r],t[n]),e)&&p(m(t[r],e),t[n])&&p(m(t[n],e),t[r])&&g(y(t[r],t[n],e),t))return[t[r],t[n],e];throw new Error}function p(t,e){var r=t.r-e.r,n=e.x-t.x,a=e.y-t.y;return r<0||r*r<n*n+a*a}function d(t,e){var r=t.r-e.r+1e-6,n=e.x-t.x,a=e.y-t.y;return r>0&&r*r>n*n+a*a}function g(t,e){for(var r=0;r<e.length;++r)if(!d(t,e[r]))return!1;return!0}function v(t){switch(t.length){case 1:return{x:(e=t[0]).x,y:e.y,r:e.r};case 2:return m(t[0],t[1]);case 3:return y(t[0],t[1],t[2])}var e}function m(t,e){var r=t.x,n=t.y,a=t.r,i=e.x,o=e.y,s=e.r,l=i-r,c=o-n,u=s-a,h=Math.sqrt(l*l+c*c);return{x:(r+i+l/h*u)/2,y:(n+o+c/h*u)/2,r:(h+a+s)/2}}function y(t,e,r){var n=t.x,a=t.y,i=t.r,o=e.x,s=e.y,l=e.r,c=r.x,u=r.y,h=r.r,f=n-o,p=n-c,d=a-s,g=a-u,v=l-i,m=h-i,y=n*n+a*a-i*i,x=y-o*o-s*s+l*l,b=y-c*c-u*u+h*h,_=p*d-f*g,w=(d*b-g*x)/(2*_)-n,k=(g*v-d*m)/_,T=(p*x-f*b)/(2*_)-a,A=(f*m-p*v)/_,M=k*k+A*A-1,S=2*(i+w*k+T*A),E=w*w+T*T-i*i,C=-(M?(S+Math.sqrt(S*S-4*M*E))/(2*M):E/S);return{x:n+w+k*C,y:a+T+A*C,r:C}}function x(t,e,r){var n,a,i,o,s=t.x-e.x,l=t.y-e.y,c=s*s+l*l;c?(a=e.r+r.r,a*=a,o=t.r+r.r,a>(o*=o)?(n=(c+o-a)/(2*c),i=Math.sqrt(Math.max(0,o/c-n*n)),r.x=t.x-n*s-i*l,r.y=t.y-n*l+i*s):(n=(c+a-o)/(2*c),i=Math.sqrt(Math.max(0,a/c-n*n)),r.x=e.x+n*s-i*l,r.y=e.y+n*l+i*s)):(r.x=e.x+r.r,r.y=e.y)}function b(t,e){var r=t.r+e.r-1e-6,n=e.x-t.x,a=e.y-t.y;return r>0&&r*r>n*n+a*a}function _(t){var e=t._,r=t.next._,n=e.r+r.r,a=(e.x*r.r+r.x*e.r)/n,i=(e.y*r.r+r.y*e.r)/n;return a*a+i*i}function w(t){this._=t,this.next=null,this.previous=null}function k(t){if(!(a=t.length))return 0;var e,r,n,a,i,o,s,l,c,u,f;if((e=t[0]).x=0,e.y=0,!(a>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(a>2))return e.r+r.r;x(r,e,n=t[2]),e=new w(e),r=new w(r),n=new w(n),e.next=n.previous=r,r.next=e.previous=n,n.next=r.previous=e;t:for(s=3;s<a;++s){x(e._,r._,n=t[s]),n=new w(n),l=r.next,c=e.previous,u=r._.r,f=e._.r;do{if(u<=f){if(b(l._,n._)){r=l,e.next=r,r.previous=e,--s;continue t}u+=l._.r,l=l.next}else{if(b(c._,n._)){(e=c).next=r,r.previous=e,--s;continue t}f+=c._.r,c=c.previous}}while(l!==c.next);for(n.previous=e,n.next=r,e.next=r.previous=r=n,i=_(e);(n=n.next)!==r;)(o=_(n))<i&&(e=n,i=o);r=e.next}for(e=[r._],n=r;(n=n.next)!==r;)e.push(n._);for(n=h(e),s=0;s<a;++s)(e=t[s]).x-=n.x,e.y-=n.y;return n.r}function T(t){if(\"function\"!=typeof t)throw new Error;return t}function A(){return 0}function M(t){return function(){return t}}function S(t){return Math.sqrt(t.value)}function E(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function C(t,e){return function(r){if(n=r.children){var n,a,i,o=n.length,s=t(r)*e||0;if(s)for(a=0;a<o;++a)n[a].r+=s;if(i=k(n),s)for(a=0;a<o;++a)n[a].r-=s;r.r=i+s}}}function L(t){return function(e){var r=e.parent;e.r*=t,r&&(e.x=r.x+t*e.x,e.y=r.y+t*e.y)}}function P(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function O(t,e,r,n,a){for(var i,o=t.children,s=-1,l=o.length,c=t.value&&(n-e)/t.value;++s<l;)(i=o[s]).y0=r,i.y1=a,i.x0=e,i.x1=e+=i.value*c}var z=\"$\",I={depth:-1},D={};function R(t){return t.id}function F(t){return t.parentId}function B(t,e){return t.parent===e.parent?1:2}function N(t){var e=t.children;return e?e[0]:t.t}function j(t){var e=t.children;return e?e[e.length-1]:t.t}function V(t,e,r){var n=r/(e.i-t.i);e.c-=n,e.s+=r,t.c+=n,e.z+=r,e.m+=r}function U(t,e,r){return t.a.parent===e.parent?t.a:r}function q(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}function H(t,e,r,n,a){for(var i,o=t.children,s=-1,l=o.length,c=t.value&&(a-r)/t.value;++s<l;)(i=o[s]).x0=e,i.x1=n,i.y0=r,i.y1=r+=i.value*c}q.prototype=Object.create(c.prototype);var G=(1+Math.sqrt(5))/2;function Y(t,e,r,n,a,i){for(var o,s,l,c,u,h,f,p,d,g,v,m=[],y=e.children,x=0,b=0,_=y.length,w=e.value;x<_;){l=a-r,c=i-n;do{u=y[b++].value}while(!u&&b<_);for(h=f=u,v=u*u*(g=Math.max(c/l,l/c)/(w*t)),d=Math.max(f/v,v/h);b<_;++b){if(u+=s=y[b].value,s<h&&(h=s),s>f&&(f=s),v=u*u*g,(p=Math.max(f/v,v/h))>d){u-=s;break}d=p}m.push(o={value:u,dice:l<c,children:y.slice(x,b)}),o.dice?O(o,r,n,a,w?n+=c*u/w:i):H(o,r,n,w?r+=l*u/w:a,i),w-=u,x=b}return m}var W=function t(e){function r(t,r,n,a,i){Y(e,t,r,n,a,i)}return r.ratio=function(e){return t((e=+e)>1?e:1)},r}(G);var X=function t(e){function r(t,r,n,a,i){if((o=t._squarify)&&o.ratio===e)for(var o,s,l,c,u,h=-1,f=o.length,p=t.value;++h<f;){for(l=(s=o[h]).children,c=s.value=0,u=l.length;c<u;++c)s.value+=l[c].value;s.dice?O(s,r,n,a,n+=(i-n)*s.value/p):H(s,r,n,r+=(a-r)*s.value/p,i),p-=s.value}else t._squarify=o=Y(e,t,r,n,a,i),o.ratio=e}return r.ratio=function(e){return t((e=+e)>1?e:1)},r}(G);t.cluster=function(){var t=e,a=1,i=1,o=!1;function s(e){var s,l=0;e.eachAfter(function(e){var a=e.children;a?(e.x=function(t){return t.reduce(r,0)/t.length}(a),e.y=function(t){return 1+t.reduce(n,0)}(a)):(e.x=s?l+=t(e,s):0,e.y=0,s=e)});var c=function(t){for(var e;e=t.children;)t=e[0];return t}(e),u=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(e),h=c.x-t(c,u)/2,f=u.x+t(u,c)/2;return e.eachAfter(o?function(t){t.x=(t.x-e.x)*a,t.y=(e.y-t.y)*i}:function(t){t.x=(t.x-h)/(f-h)*a,t.y=(1-(e.y?t.y/e.y:1))*i})}return s.separation=function(e){return arguments.length?(t=e,s):t},s.size=function(t){return arguments.length?(o=!1,a=+t[0],i=+t[1],s):o?null:[a,i]},s.nodeSize=function(t){return arguments.length?(o=!0,a=+t[0],i=+t[1],s):o?[a,i]:null},s},t.hierarchy=i,t.pack=function(){var t=null,e=1,r=1,n=A;function a(a){return a.x=e/2,a.y=r/2,t?a.eachBefore(E(t)).eachAfter(C(n,.5)).eachBefore(L(1)):a.eachBefore(E(S)).eachAfter(C(A,1)).eachAfter(C(n,a.r/Math.min(e,r))).eachBefore(L(Math.min(e,r)/(2*a.r))),a}return a.radius=function(e){return arguments.length?(t=null==(r=e)?null:T(r),a):t;var r},a.size=function(t){return arguments.length?(e=+t[0],r=+t[1],a):[e,r]},a.padding=function(t){return arguments.length?(n=\"function\"==typeof t?t:M(+t),a):n},a},t.packSiblings=function(t){return k(t),t},t.packEnclose=h,t.partition=function(){var t=1,e=1,r=0,n=!1;function a(a){var i=a.height+1;return a.x0=a.y0=r,a.x1=t,a.y1=e/i,a.eachBefore(function(t,e){return function(n){n.children&&O(n,n.x0,t*(n.depth+1)/e,n.x1,t*(n.depth+2)/e);var a=n.x0,i=n.y0,o=n.x1-r,s=n.y1-r;o<a&&(a=o=(a+o)/2),s<i&&(i=s=(i+s)/2),n.x0=a,n.y0=i,n.x1=o,n.y1=s}}(e,i)),n&&a.eachBefore(P),a}return a.round=function(t){return arguments.length?(n=!!t,a):n},a.size=function(r){return arguments.length?(t=+r[0],e=+r[1],a):[t,e]},a.padding=function(t){return arguments.length?(r=+t,a):r},a},t.stratify=function(){var t=R,e=F;function r(r){var n,a,i,o,s,u,h,f=r.length,p=new Array(f),d={};for(a=0;a<f;++a)n=r[a],s=p[a]=new c(n),null!=(u=t(n,a,r))&&(u+=\"\")&&(d[h=z+(s.id=u)]=h in d?D:s);for(a=0;a<f;++a)if(s=p[a],null!=(u=e(r[a],a,r))&&(u+=\"\")){if(!(o=d[z+u]))throw new Error(\"missing: \"+u);if(o===D)throw new Error(\"ambiguous: \"+u);o.children?o.children.push(s):o.children=[s],s.parent=o}else{if(i)throw new Error(\"multiple roots\");i=s}if(!i)throw new Error(\"no root\");if(i.parent=I,i.eachBefore(function(t){t.depth=t.parent.depth+1,--f}).eachBefore(l),i.parent=null,f>0)throw new Error(\"cycle\");return i}return r.id=function(e){return arguments.length?(t=T(e),r):t},r.parentId=function(t){return arguments.length?(e=T(t),r):e},r},t.tree=function(){var t=B,e=1,r=1,n=null;function a(a){var l=function(t){for(var e,r,n,a,i,o=new q(t,0),s=[o];e=s.pop();)if(n=e._.children)for(e.children=new Array(i=n.length),a=i-1;a>=0;--a)s.push(r=e.children[a]=new q(n[a],a)),r.parent=e;return(o.parent=new q(null,0)).children=[o],o}(a);if(l.eachAfter(i),l.parent.m=-l.z,l.eachBefore(o),n)a.eachBefore(s);else{var c=a,u=a,h=a;a.eachBefore(function(t){t.x<c.x&&(c=t),t.x>u.x&&(u=t),t.depth>h.depth&&(h=t)});var f=c===u?1:t(c,u)/2,p=f-c.x,d=e/(u.x+f+p),g=r/(h.depth||1);a.eachBefore(function(t){t.x=(t.x+p)*d,t.y=t.depth*g})}return a}function i(e){var r=e.children,n=e.parent.children,a=e.i?n[e.i-1]:null;if(r){!function(t){for(var e,r=0,n=0,a=t.children,i=a.length;--i>=0;)(e=a[i]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(e);var i=(r[0].z+r[r.length-1].z)/2;a?(e.z=a.z+t(e._,a._),e.m=e.z-i):e.z=i}else a&&(e.z=a.z+t(e._,a._));e.parent.A=function(e,r,n){if(r){for(var a,i=e,o=e,s=r,l=i.parent.children[0],c=i.m,u=o.m,h=s.m,f=l.m;s=j(s),i=N(i),s&&i;)l=N(l),(o=j(o)).a=e,(a=s.z+h-i.z-c+t(s._,i._))>0&&(V(U(s,e,n),e,a),c+=a,u+=a),h+=s.m,c+=i.m,f+=l.m,u+=o.m;s&&!j(o)&&(o.t=s,o.m+=h-u),i&&!N(l)&&(l.t=i,l.m+=c-f,n=e)}return n}(e,a,e.parent.A||n[0])}function o(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*r}return a.separation=function(e){return arguments.length?(t=e,a):t},a.size=function(t){return arguments.length?(n=!1,e=+t[0],r=+t[1],a):n?null:[e,r]},a.nodeSize=function(t){return arguments.length?(n=!0,e=+t[0],r=+t[1],a):n?[e,r]:null},a},t.treemap=function(){var t=W,e=!1,r=1,n=1,a=[0],i=A,o=A,s=A,l=A,c=A;function u(t){return t.x0=t.y0=0,t.x1=r,t.y1=n,t.eachBefore(h),a=[0],e&&t.eachBefore(P),t}function h(e){var r=a[e.depth],n=e.x0+r,u=e.y0+r,h=e.x1-r,f=e.y1-r;h<n&&(n=h=(n+h)/2),f<u&&(u=f=(u+f)/2),e.x0=n,e.y0=u,e.x1=h,e.y1=f,e.children&&(r=a[e.depth+1]=i(e)/2,n+=c(e)-r,u+=o(e)-r,(h-=s(e)-r)<n&&(n=h=(n+h)/2),(f-=l(e)-r)<u&&(u=f=(u+f)/2),t(e,n,u,h,f))}return u.round=function(t){return arguments.length?(e=!!t,u):e},u.size=function(t){return arguments.length?(r=+t[0],n=+t[1],u):[r,n]},u.tile=function(e){return arguments.length?(t=T(e),u):t},u.padding=function(t){return arguments.length?u.paddingInner(t).paddingOuter(t):u.paddingInner()},u.paddingInner=function(t){return arguments.length?(i=\"function\"==typeof t?t:M(+t),u):i},u.paddingOuter=function(t){return arguments.length?u.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t):u.paddingTop()},u.paddingTop=function(t){return arguments.length?(o=\"function\"==typeof t?t:M(+t),u):o},u.paddingRight=function(t){return arguments.length?(s=\"function\"==typeof t?t:M(+t),u):s},u.paddingBottom=function(t){return arguments.length?(l=\"function\"==typeof t?t:M(+t),u):l},u.paddingLeft=function(t){return arguments.length?(c=\"function\"==typeof t?t:M(+t),u):c},u},t.treemapBinary=function(t,e,r,n,a){var i,o,s=t.children,l=s.length,c=new Array(l+1);for(c[0]=o=i=0;i<l;++i)c[i+1]=o+=s[i].value;!function t(e,r,n,a,i,o,l){if(e>=r-1){var u=s[e];return u.x0=a,u.y0=i,u.x1=o,void(u.y1=l)}for(var h=c[e],f=n/2+h,p=e+1,d=r-1;p<d;){var g=p+d>>>1;c[g]<f?p=g+1:d=g}f-c[p-1]<c[p]-f&&e+1<p&&--p;var v=c[p]-h,m=n-v;if(o-a>l-i){var y=(a*m+o*v)/n;t(e,p,v,a,i,y,l),t(p,r,m,y,i,o,l)}else{var x=(i*m+l*v)/n;t(e,p,v,a,i,o,x),t(p,r,m,a,x,o,l)}}(0,l,t.value,e,r,n,a)},t.treemapDice=O,t.treemapSlice=H,t.treemapSliceDice=function(t,e,r,n,a){(1&t.depth?H:O)(t,e,r,n,a)},t.treemapSquarify=W,t.treemapResquarify=X,Object.defineProperty(t,\"__esModule\",{value:!0})}(\"object\"==typeof r&&\"undefined\"!=typeof e?r:n.d3=n.d3||{})},{}],159:[function(t,e,r){var n,a;n=this,a=function(t,e){\"use strict\";function r(t,e,r,n,a){var i=t*t,o=i*t;return((1-3*t+3*i-o)*e+(4-6*i+3*o)*r+(1+3*t+3*i-3*o)*n+o*a)/6}function n(t){var e=t.length-1;return function(n){var a=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[a],o=t[a+1],s=a>0?t[a-1]:2*i-o,l=a<e-1?t[a+2]:2*o-i;return r((n-a/e)*e,s,i,o,l)}}function a(t){var e=t.length;return function(n){var a=Math.floor(((n%=1)<0?++n:n)*e),i=t[(a+e-1)%e],o=t[a%e],s=t[(a+1)%e],l=t[(a+2)%e];return r((n-a/e)*e,i,o,s,l)}}function i(t){return function(){return t}}function o(t,e){return function(r){return t+r*e}}function s(t,e){var r=e-t;return r?o(t,r>180||r<-180?r-360*Math.round(r/360):r):i(isNaN(t)?e:t)}function l(t){return 1==(t=+t)?c:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):i(isNaN(e)?r:e)}}function c(t,e){var r=e-t;return r?o(t,r):i(isNaN(t)?e:t)}var u=function t(r){var n=l(r);function a(t,r){var a=n((t=e.rgb(t)).r,(r=e.rgb(r)).r),i=n(t.g,r.g),o=n(t.b,r.b),s=c(t.opacity,r.opacity);return function(e){return t.r=a(e),t.g=i(e),t.b=o(e),t.opacity=s(e),t+\"\"}}return a.gamma=t,a}(1);function h(t){return function(r){var n,a,i=r.length,o=new Array(i),s=new Array(i),l=new Array(i);for(n=0;n<i;++n)a=e.rgb(r[n]),o[n]=a.r||0,s[n]=a.g||0,l[n]=a.b||0;return o=t(o),s=t(s),l=t(l),a.opacity=1,function(t){return a.r=o(t),a.g=s(t),a.b=l(t),a+\"\"}}}var f=h(n),p=h(a);function d(t,e){var r,n=e?e.length:0,a=t?Math.min(n,t.length):0,i=new Array(a),o=new Array(n);for(r=0;r<a;++r)i[r]=_(t[r],e[r]);for(;r<n;++r)o[r]=e[r];return function(t){for(r=0;r<a;++r)o[r]=i[r](t);return o}}function g(t,e){var r=new Date;return e-=t=+t,function(n){return r.setTime(t+e*n),r}}function v(t,e){return e-=t=+t,function(r){return t+e*r}}function m(t,e){var r,n={},a={};for(r in null!==t&&\"object\"==typeof t||(t={}),null!==e&&\"object\"==typeof e||(e={}),e)r in t?n[r]=_(t[r],e[r]):a[r]=e[r];return function(t){for(r in n)a[r]=n[r](t);return a}}var y=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,x=new RegExp(y.source,\"g\");function b(t,e){var r,n,a,i=y.lastIndex=x.lastIndex=0,o=-1,s=[],l=[];for(t+=\"\",e+=\"\";(r=y.exec(t))&&(n=x.exec(e));)(a=n.index)>i&&(a=e.slice(i,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:v(r,n)})),i=x.lastIndex;return i<e.length&&(a=e.slice(i),s[o]?s[o]+=a:s[++o]=a),s.length<2?l[0]?function(t){return function(e){return t(e)+\"\"}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var r,n=0;n<e;++n)s[(r=l[n]).i]=r.x(t);return s.join(\"\")})}function _(t,r){var n,a=typeof r;return null==r||\"boolean\"===a?i(r):(\"number\"===a?v:\"string\"===a?(n=e.color(r))?(r=n,u):b:r instanceof e.color?u:r instanceof Date?g:Array.isArray(r)?d:\"function\"!=typeof r.valueOf&&\"function\"!=typeof r.toString||isNaN(r)?m:v)(t,r)}var w,k,T,A,M=180/Math.PI,S={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function E(t,e,r,n,a,i){var o,s,l;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(l=t*r+e*n)&&(r-=t*l,n-=e*l),(s=Math.sqrt(r*r+n*n))&&(r/=s,n/=s,l/=s),t*n<e*r&&(t=-t,e=-e,l=-l,o=-o),{translateX:a,translateY:i,rotate:Math.atan2(e,t)*M,skewX:Math.atan(l)*M,scaleX:o,scaleY:s}}function C(t,e,r,n){function a(t){return t.length?t.pop()+\" \":\"\"}return function(i,o){var s=[],l=[];return i=t(i),o=t(o),function(t,n,a,i,o,s){if(t!==a||n!==i){var l=o.push(\"translate(\",null,e,null,r);s.push({i:l-4,x:v(t,a)},{i:l-2,x:v(n,i)})}else(a||i)&&o.push(\"translate(\"+a+e+i+r)}(i.translateX,i.translateY,o.translateX,o.translateY,s,l),function(t,e,r,i){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),i.push({i:r.push(a(r)+\"rotate(\",null,n)-2,x:v(t,e)})):e&&r.push(a(r)+\"rotate(\"+e+n)}(i.rotate,o.rotate,s,l),function(t,e,r,i){t!==e?i.push({i:r.push(a(r)+\"skewX(\",null,n)-2,x:v(t,e)}):e&&r.push(a(r)+\"skewX(\"+e+n)}(i.skewX,o.skewX,s,l),function(t,e,r,n,i,o){if(t!==r||e!==n){var s=i.push(a(i)+\"scale(\",null,\",\",null,\")\");o.push({i:s-4,x:v(t,r)},{i:s-2,x:v(e,n)})}else 1===r&&1===n||i.push(a(i)+\"scale(\"+r+\",\"+n+\")\")}(i.scaleX,i.scaleY,o.scaleX,o.scaleY,s,l),i=o=null,function(t){for(var e,r=-1,n=l.length;++r<n;)s[(e=l[r]).i]=e.x(t);return s.join(\"\")}}}var L=C(function(t){return\"none\"===t?S:(w||(w=document.createElement(\"DIV\"),k=document.documentElement,T=document.defaultView),w.style.transform=t,t=T.getComputedStyle(k.appendChild(w),null).getPropertyValue(\"transform\"),k.removeChild(w),E(+(t=t.slice(7,-1).split(\",\"))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},\"px, \",\"px)\",\"deg)\"),P=C(function(t){return null==t?S:(A||(A=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\")),A.setAttribute(\"transform\",t),(t=A.transform.baseVal.consolidate())?E((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):S)},\", \",\")\",\")\"),O=Math.SQRT2,z=2,I=4,D=1e-12;function R(t){return((t=Math.exp(t))+1/t)/2}function F(t){return function(r,n){var a=t((r=e.hsl(r)).h,(n=e.hsl(n)).h),i=c(r.s,n.s),o=c(r.l,n.l),s=c(r.opacity,n.opacity);return function(t){return r.h=a(t),r.s=i(t),r.l=o(t),r.opacity=s(t),r+\"\"}}}var B=F(s),N=F(c);function j(t){return function(r,n){var a=t((r=e.hcl(r)).h,(n=e.hcl(n)).h),i=c(r.c,n.c),o=c(r.l,n.l),s=c(r.opacity,n.opacity);return function(t){return r.h=a(t),r.c=i(t),r.l=o(t),r.opacity=s(t),r+\"\"}}}var V=j(s),U=j(c);function q(t){return function r(n){function a(r,a){var i=t((r=e.cubehelix(r)).h,(a=e.cubehelix(a)).h),o=c(r.s,a.s),s=c(r.l,a.l),l=c(r.opacity,a.opacity);return function(t){return r.h=i(t),r.s=o(t),r.l=s(Math.pow(t,n)),r.opacity=l(t),r+\"\"}}return n=+n,a.gamma=r,a}(1)}var H=q(s),G=q(c);t.interpolate=_,t.interpolateArray=d,t.interpolateBasis=n,t.interpolateBasisClosed=a,t.interpolateDate=g,t.interpolateDiscrete=function(t){var e=t.length;return function(r){return t[Math.max(0,Math.min(e-1,Math.floor(r*e)))]}},t.interpolateHue=function(t,e){var r=s(+t,+e);return function(t){var e=r(t);return e-360*Math.floor(e/360)}},t.interpolateNumber=v,t.interpolateObject=m,t.interpolateRound=function(t,e){return e-=t=+t,function(r){return Math.round(t+e*r)}},t.interpolateString=b,t.interpolateTransformCss=L,t.interpolateTransformSvg=P,t.interpolateZoom=function(t,e){var r,n,a=t[0],i=t[1],o=t[2],s=e[0],l=e[1],c=e[2],u=s-a,h=l-i,f=u*u+h*h;if(f<D)n=Math.log(c/o)/O,r=function(t){return[a+t*u,i+t*h,o*Math.exp(O*t*n)]};else{var p=Math.sqrt(f),d=(c*c-o*o+I*f)/(2*o*z*p),g=(c*c-o*o-I*f)/(2*c*z*p),v=Math.log(Math.sqrt(d*d+1)-d),m=Math.log(Math.sqrt(g*g+1)-g);n=(m-v)/O,r=function(t){var e,r=t*n,s=R(v),l=o/(z*p)*(s*(e=O*r+v,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(v));return[a+l*u,i+l*h,o*s/R(O*r+v)]}}return r.duration=1e3*n,r},t.interpolateRgb=u,t.interpolateRgbBasis=f,t.interpolateRgbBasisClosed=p,t.interpolateHsl=B,t.interpolateHslLong=N,t.interpolateLab=function(t,r){var n=c((t=e.lab(t)).l,(r=e.lab(r)).l),a=c(t.a,r.a),i=c(t.b,r.b),o=c(t.opacity,r.opacity);return function(e){return t.l=n(e),t.a=a(e),t.b=i(e),t.opacity=o(e),t+\"\"}},t.interpolateHcl=V,t.interpolateHclLong=U,t.interpolateCubehelix=H,t.interpolateCubehelixLong=G,t.piecewise=function(t,e){for(var r=0,n=e.length-1,a=e[0],i=new Array(n<0?0:n);r<n;)i[r]=t(a,a=e[++r]);return function(t){var e=Math.max(0,Math.min(n-1,Math.floor(t*=n)));return i[e](t-e)}},t.quantize=function(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t(n/(e-1));return r},Object.defineProperty(t,\"__esModule\",{value:!0})},\"object\"==typeof r&&\"undefined\"!=typeof e?a(r,t(\"d3-color\")):a(n.d3=n.d3||{},n.d3)},{\"d3-color\":155}],160:[function(t,e,r){var n;n=this,function(t){\"use strict\";var e=Math.PI,r=2*e,n=r-1e-6;function a(){this._x0=this._y0=this._x1=this._y1=null,this._=\"\"}function i(){return new a}a.prototype=i.prototype={constructor:a,moveTo:function(t,e){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+=\"Z\")},lineTo:function(t,e){this._+=\"L\"+(this._x1=+t)+\",\"+(this._y1=+e)},quadraticCurveTo:function(t,e,r,n){this._+=\"Q\"+ +t+\",\"+ +e+\",\"+(this._x1=+r)+\",\"+(this._y1=+n)},bezierCurveTo:function(t,e,r,n,a,i){this._+=\"C\"+ +t+\",\"+ +e+\",\"+ +r+\",\"+ +n+\",\"+(this._x1=+a)+\",\"+(this._y1=+i)},arcTo:function(t,r,n,a,i){t=+t,r=+r,n=+n,a=+a,i=+i;var o=this._x1,s=this._y1,l=n-t,c=a-r,u=o-t,h=s-r,f=u*u+h*h;if(i<0)throw new Error(\"negative radius: \"+i);if(null===this._x1)this._+=\"M\"+(this._x1=t)+\",\"+(this._y1=r);else if(f>1e-6)if(Math.abs(h*l-c*u)>1e-6&&i){var p=n-o,d=a-s,g=l*l+c*c,v=p*p+d*d,m=Math.sqrt(g),y=Math.sqrt(f),x=i*Math.tan((e-Math.acos((g+f-v)/(2*m*y)))/2),b=x/y,_=x/m;Math.abs(b-1)>1e-6&&(this._+=\"L\"+(t+b*u)+\",\"+(r+b*h)),this._+=\"A\"+i+\",\"+i+\",0,0,\"+ +(h*p>u*d)+\",\"+(this._x1=t+_*l)+\",\"+(this._y1=r+_*c)}else this._+=\"L\"+(this._x1=t)+\",\"+(this._y1=r);else;},arc:function(t,a,i,o,s,l){t=+t,a=+a;var c=(i=+i)*Math.cos(o),u=i*Math.sin(o),h=t+c,f=a+u,p=1^l,d=l?o-s:s-o;if(i<0)throw new Error(\"negative radius: \"+i);null===this._x1?this._+=\"M\"+h+\",\"+f:(Math.abs(this._x1-h)>1e-6||Math.abs(this._y1-f)>1e-6)&&(this._+=\"L\"+h+\",\"+f),i&&(d<0&&(d=d%r+r),d>n?this._+=\"A\"+i+\",\"+i+\",0,1,\"+p+\",\"+(t-c)+\",\"+(a-u)+\"A\"+i+\",\"+i+\",0,1,\"+p+\",\"+(this._x1=h)+\",\"+(this._y1=f):d>1e-6&&(this._+=\"A\"+i+\",\"+i+\",0,\"+ +(d>=e)+\",\"+p+\",\"+(this._x1=t+i*Math.cos(s))+\",\"+(this._y1=a+i*Math.sin(s))))},rect:function(t,e,r,n){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+e)+\"h\"+ +r+\"v\"+ +n+\"h\"+-r+\"Z\"},toString:function(){return this._}},t.path=i,Object.defineProperty(t,\"__esModule\",{value:!0})}(\"object\"==typeof r&&\"undefined\"!=typeof e?r:n.d3=n.d3||{})},{}],161:[function(t,e,r){var n;n=this,function(t){\"use strict\";function e(t,e,r,n){if(isNaN(e)||isNaN(r))return t;var a,i,o,s,l,c,u,h,f,p=t._root,d={data:n},g=t._x0,v=t._y0,m=t._x1,y=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((c=e>=(i=(g+m)/2))?g=i:m=i,(u=r>=(o=(v+y)/2))?v=o:y=o,a=p,!(p=p[h=u<<1|c]))return a[h]=d,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&r===l)return d.next=p,a?a[h]=d:t._root=d,t;do{a=a?a[h]=new Array(4):t._root=new Array(4),(c=e>=(i=(g+m)/2))?g=i:m=i,(u=r>=(o=(v+y)/2))?v=o:y=o}while((h=u<<1|c)==(f=(l>=o)<<1|s>=i));return a[f]=p,a[h]=d,t}var r=function(t,e,r,n,a){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=a};function n(t){return t[0]}function a(t){return t[1]}function i(t,e,r){var i=new o(null==e?n:e,null==r?a:r,NaN,NaN,NaN,NaN);return null==t?i:i.addAll(t)}function o(t,e,r,n,a,i){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=a,this._y1=i,this._root=void 0}function s(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var l=i.prototype=o.prototype;l.copy=function(){var t,e,r=new o(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=s(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var a=0;a<4;++a)(e=n.source[a])&&(e.length?t.push({source:e,target:n.target[a]=new Array(4)}):n.target[a]=s(e));return r},l.add=function(t){var r=+this._x.call(null,t),n=+this._y.call(null,t);return e(this.cover(r,n),r,n,t)},l.addAll=function(t){var r,n,a,i,o=t.length,s=new Array(o),l=new Array(o),c=1/0,u=1/0,h=-1/0,f=-1/0;for(n=0;n<o;++n)isNaN(a=+this._x.call(null,r=t[n]))||isNaN(i=+this._y.call(null,r))||(s[n]=a,l[n]=i,a<c&&(c=a),a>h&&(h=a),i<u&&(u=i),i>f&&(f=i));for(h<c&&(c=this._x0,h=this._x1),f<u&&(u=this._y0,f=this._y1),this.cover(c,u).cover(h,f),n=0;n<o;++n)e(this,s[n],l[n],t[n]);return this},l.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var r=this._x0,n=this._y0,a=this._x1,i=this._y1;if(isNaN(r))a=(r=Math.floor(t))+1,i=(n=Math.floor(e))+1;else{if(!(r>t||t>a||n>e||e>i))return this;var o,s,l=a-r,c=this._root;switch(s=(e<(n+i)/2)<<1|t<(r+a)/2){case 0:do{(o=new Array(4))[s]=c,c=o}while(i=n+(l*=2),t>(a=r+l)||e>i);break;case 1:do{(o=new Array(4))[s]=c,c=o}while(i=n+(l*=2),(r=a-l)>t||e>i);break;case 2:do{(o=new Array(4))[s]=c,c=o}while(n=i-(l*=2),t>(a=r+l)||n>e);break;case 3:do{(o=new Array(4))[s]=c,c=o}while(n=i-(l*=2),(r=a-l)>t||n>e)}this._root&&this._root.length&&(this._root=c)}return this._x0=r,this._y0=n,this._x1=a,this._y1=i,this},l.data=function(){var t=[];return this.visit(function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}),t},l.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},l.find=function(t,e,n){var a,i,o,s,l,c,u,h=this._x0,f=this._y0,p=this._x1,d=this._y1,g=[],v=this._root;for(v&&g.push(new r(v,h,f,p,d)),null==n?n=1/0:(h=t-n,f=e-n,p=t+n,d=e+n,n*=n);c=g.pop();)if(!(!(v=c.node)||(i=c.x0)>p||(o=c.y0)>d||(s=c.x1)<h||(l=c.y1)<f))if(v.length){var m=(i+s)/2,y=(o+l)/2;g.push(new r(v[3],m,y,s,l),new r(v[2],i,y,m,l),new r(v[1],m,o,s,y),new r(v[0],i,o,m,y)),(u=(e>=y)<<1|t>=m)&&(c=g[g.length-1],g[g.length-1]=g[g.length-1-u],g[g.length-1-u]=c)}else{var x=t-+this._x.call(null,v.data),b=e-+this._y.call(null,v.data),_=x*x+b*b;if(_<n){var w=Math.sqrt(n=_);h=t-w,f=e-w,p=t+w,d=e+w,a=v.data}}return a},l.remove=function(t){if(isNaN(i=+this._x.call(null,t))||isNaN(o=+this._y.call(null,t)))return this;var e,r,n,a,i,o,s,l,c,u,h,f,p=this._root,d=this._x0,g=this._y0,v=this._x1,m=this._y1;if(!p)return this;if(p.length)for(;;){if((c=i>=(s=(d+v)/2))?d=s:v=s,(u=o>=(l=(g+m)/2))?g=l:m=l,e=p,!(p=p[h=u<<1|c]))return this;if(!p.length)break;(e[h+1&3]||e[h+2&3]||e[h+3&3])&&(r=e,f=h)}for(;p.data!==t;)if(n=p,!(p=p.next))return this;return(a=p.next)&&delete p.next,n?(a?n.next=a:delete n.next,this):e?(a?e[h]=a:delete e[h],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(r?r[f]=p:this._root=p),this):(this._root=a,this)},l.removeAll=function(t){for(var e=0,r=t.length;e<r;++e)this.remove(t[e]);return this},l.root=function(){return this._root},l.size=function(){var t=0;return this.visit(function(e){if(!e.length)do{++t}while(e=e.next)}),t},l.visit=function(t){var e,n,a,i,o,s,l=[],c=this._root;for(c&&l.push(new r(c,this._x0,this._y0,this._x1,this._y1));e=l.pop();)if(!t(c=e.node,a=e.x0,i=e.y0,o=e.x1,s=e.y1)&&c.length){var u=(a+o)/2,h=(i+s)/2;(n=c[3])&&l.push(new r(n,u,h,o,s)),(n=c[2])&&l.push(new r(n,a,h,u,s)),(n=c[1])&&l.push(new r(n,u,i,o,h)),(n=c[0])&&l.push(new r(n,a,i,u,h))}return this},l.visitAfter=function(t){var e,n=[],a=[];for(this._root&&n.push(new r(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var i=e.node;if(i.length){var o,s=e.x0,l=e.y0,c=e.x1,u=e.y1,h=(s+c)/2,f=(l+u)/2;(o=i[0])&&n.push(new r(o,s,l,h,f)),(o=i[1])&&n.push(new r(o,h,l,c,f)),(o=i[2])&&n.push(new r(o,s,f,h,u)),(o=i[3])&&n.push(new r(o,h,f,c,u))}a.push(e)}for(;e=a.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},l.x=function(t){return arguments.length?(this._x=t,this):this._x},l.y=function(t){return arguments.length?(this._y=t,this):this._y},t.quadtree=i,Object.defineProperty(t,\"__esModule\",{value:!0})}(\"object\"==typeof r&&\"undefined\"!=typeof e?r:n.d3=n.d3||{})},{}],162:[function(t,e,r){var n,a;n=this,a=function(t,e){\"use strict\";function r(t){return function(){return t}}var n=Math.abs,a=Math.atan2,i=Math.cos,o=Math.max,s=Math.min,l=Math.sin,c=Math.sqrt,u=1e-12,h=Math.PI,f=h/2,p=2*h;function d(t){return t>=1?f:t<=-1?-f:Math.asin(t)}function g(t){return t.innerRadius}function v(t){return t.outerRadius}function m(t){return t.startAngle}function y(t){return t.endAngle}function x(t){return t&&t.padAngle}function b(t,e,r,n,a,i,s){var l=t-r,u=e-n,h=(s?i:-i)/c(l*l+u*u),f=h*u,p=-h*l,d=t+f,g=e+p,v=r+f,m=n+p,y=(d+v)/2,x=(g+m)/2,b=v-d,_=m-g,w=b*b+_*_,k=a-i,T=d*m-v*g,A=(_<0?-1:1)*c(o(0,k*k*w-T*T)),M=(T*_-b*A)/w,S=(-T*b-_*A)/w,E=(T*_+b*A)/w,C=(-T*b+_*A)/w,L=M-y,P=S-x,O=E-y,z=C-x;return L*L+P*P>O*O+z*z&&(M=E,S=C),{cx:M,cy:S,x01:-f,y01:-p,x11:M*(a/k-1),y11:S*(a/k-1)}}function _(t){this._context=t}function w(t){return new _(t)}function k(t){return t[0]}function T(t){return t[1]}function A(){var t=k,n=T,a=r(!0),i=null,o=w,s=null;function l(r){var l,c,u,h=r.length,f=!1;for(null==i&&(s=o(u=e.path())),l=0;l<=h;++l)!(l<h&&a(c=r[l],l,r))===f&&((f=!f)?s.lineStart():s.lineEnd()),f&&s.point(+t(c,l,r),+n(c,l,r));if(u)return s=null,u+\"\"||null}return l.x=function(e){return arguments.length?(t=\"function\"==typeof e?e:r(+e),l):t},l.y=function(t){return arguments.length?(n=\"function\"==typeof t?t:r(+t),l):n},l.defined=function(t){return arguments.length?(a=\"function\"==typeof t?t:r(!!t),l):a},l.curve=function(t){return arguments.length?(o=t,null!=i&&(s=o(i)),l):o},l.context=function(t){return arguments.length?(null==t?i=s=null:s=o(i=t),l):i},l}function M(){var t=k,n=null,a=r(0),i=T,o=r(!0),s=null,l=w,c=null;function u(r){var u,h,f,p,d,g=r.length,v=!1,m=new Array(g),y=new Array(g);for(null==s&&(c=l(d=e.path())),u=0;u<=g;++u){if(!(u<g&&o(p=r[u],u,r))===v)if(v=!v)h=u,c.areaStart(),c.lineStart();else{for(c.lineEnd(),c.lineStart(),f=u-1;f>=h;--f)c.point(m[f],y[f]);c.lineEnd(),c.areaEnd()}v&&(m[u]=+t(p,u,r),y[u]=+a(p,u,r),c.point(n?+n(p,u,r):m[u],i?+i(p,u,r):y[u]))}if(d)return c=null,d+\"\"||null}function h(){return A().defined(o).curve(l).context(s)}return u.x=function(e){return arguments.length?(t=\"function\"==typeof e?e:r(+e),n=null,u):t},u.x0=function(e){return arguments.length?(t=\"function\"==typeof e?e:r(+e),u):t},u.x1=function(t){return arguments.length?(n=null==t?null:\"function\"==typeof t?t:r(+t),u):n},u.y=function(t){return arguments.length?(a=\"function\"==typeof t?t:r(+t),i=null,u):a},u.y0=function(t){return arguments.length?(a=\"function\"==typeof t?t:r(+t),u):a},u.y1=function(t){return arguments.length?(i=null==t?null:\"function\"==typeof t?t:r(+t),u):i},u.lineX0=u.lineY0=function(){return h().x(t).y(a)},u.lineY1=function(){return h().x(t).y(i)},u.lineX1=function(){return h().x(n).y(a)},u.defined=function(t){return arguments.length?(o=\"function\"==typeof t?t:r(!!t),u):o},u.curve=function(t){return arguments.length?(l=t,null!=s&&(c=l(s)),u):l},u.context=function(t){return arguments.length?(null==t?s=c=null:c=l(s=t),u):s},u}function S(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function E(t){return t}_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};var C=P(w);function L(t){this._curve=t}function P(t){function e(e){return new L(t(e))}return e._curve=t,e}function O(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(P(t)):e()._curve},t}function z(){return O(A().curve(C))}function I(){var t=M().curve(C),e=t.curve,r=t.lineX0,n=t.lineX1,a=t.lineY0,i=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return O(r())},delete t.lineX0,t.lineEndAngle=function(){return O(n())},delete t.lineX1,t.lineInnerRadius=function(){return O(a())},delete t.lineY0,t.lineOuterRadius=function(){return O(i())},delete t.lineY1,t.curve=function(t){return arguments.length?e(P(t)):e()._curve},t}function D(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}L.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};var R=Array.prototype.slice;function F(t){return t.source}function B(t){return t.target}function N(t){var n=F,a=B,i=k,o=T,s=null;function l(){var r,l=R.call(arguments),c=n.apply(this,l),u=a.apply(this,l);if(s||(s=r=e.path()),t(s,+i.apply(this,(l[0]=c,l)),+o.apply(this,l),+i.apply(this,(l[0]=u,l)),+o.apply(this,l)),r)return s=null,r+\"\"||null}return l.source=function(t){return arguments.length?(n=t,l):n},l.target=function(t){return arguments.length?(a=t,l):a},l.x=function(t){return arguments.length?(i=\"function\"==typeof t?t:r(+t),l):i},l.y=function(t){return arguments.length?(o=\"function\"==typeof t?t:r(+t),l):o},l.context=function(t){return arguments.length?(s=null==t?null:t,l):s},l}function j(t,e,r,n,a){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,a,n,a)}function V(t,e,r,n,a){t.moveTo(e,r),t.bezierCurveTo(e,r=(r+a)/2,n,r,n,a)}function U(t,e,r,n,a){var i=D(e,r),o=D(e,r=(r+a)/2),s=D(n,r),l=D(n,a);t.moveTo(i[0],i[1]),t.bezierCurveTo(o[0],o[1],s[0],s[1],l[0],l[1])}var q={draw:function(t,e){var r=Math.sqrt(e/h);t.moveTo(r,0),t.arc(0,0,r,0,p)}},H={draw:function(t,e){var r=Math.sqrt(e/5)/2;t.moveTo(-3*r,-r),t.lineTo(-r,-r),t.lineTo(-r,-3*r),t.lineTo(r,-3*r),t.lineTo(r,-r),t.lineTo(3*r,-r),t.lineTo(3*r,r),t.lineTo(r,r),t.lineTo(r,3*r),t.lineTo(-r,3*r),t.lineTo(-r,r),t.lineTo(-3*r,r),t.closePath()}},G=Math.sqrt(1/3),Y=2*G,W={draw:function(t,e){var r=Math.sqrt(e/Y),n=r*G;t.moveTo(0,-r),t.lineTo(n,0),t.lineTo(0,r),t.lineTo(-n,0),t.closePath()}},X=Math.sin(h/10)/Math.sin(7*h/10),Z=Math.sin(p/10)*X,J=-Math.cos(p/10)*X,K={draw:function(t,e){var r=Math.sqrt(.8908130915292852*e),n=Z*r,a=J*r;t.moveTo(0,-r),t.lineTo(n,a);for(var i=1;i<5;++i){var o=p*i/5,s=Math.cos(o),l=Math.sin(o);t.lineTo(l*r,-s*r),t.lineTo(s*n-l*a,l*n+s*a)}t.closePath()}},Q={draw:function(t,e){var r=Math.sqrt(e),n=-r/2;t.rect(n,n,r,r)}},$=Math.sqrt(3),tt={draw:function(t,e){var r=-Math.sqrt(e/(3*$));t.moveTo(0,2*r),t.lineTo(-$*r,-r),t.lineTo($*r,-r),t.closePath()}},et=-.5,rt=Math.sqrt(3)/2,nt=1/Math.sqrt(12),at=3*(nt/2+1),it={draw:function(t,e){var r=Math.sqrt(e/at),n=r/2,a=r*nt,i=n,o=r*nt+r,s=-i,l=o;t.moveTo(n,a),t.lineTo(i,o),t.lineTo(s,l),t.lineTo(et*n-rt*a,rt*n+et*a),t.lineTo(et*i-rt*o,rt*i+et*o),t.lineTo(et*s-rt*l,rt*s+et*l),t.lineTo(et*n+rt*a,et*a-rt*n),t.lineTo(et*i+rt*o,et*o-rt*i),t.lineTo(et*s+rt*l,et*l-rt*s),t.closePath()}},ot=[q,H,W,Q,K,tt,it];function st(){}function lt(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function ct(t){this._context=t}function ut(t){this._context=t}function ht(t){this._context=t}function ft(t,e){this._basis=new ct(t),this._beta=e}ct.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:lt(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:lt(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ut.prototype={areaStart:st,areaEnd:st,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:lt(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ht.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:lt(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ft.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n,a=t[0],i=e[0],o=t[r]-a,s=e[r]-i,l=-1;++l<=r;)n=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(a+n*o),this._beta*e[l]+(1-this._beta)*(i+n*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var pt=function t(e){function r(t){return 1===e?new ct(t):new ft(t,e)}return r.beta=function(e){return t(+e)},r}(.85);function dt(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function gt(t,e){this._context=t,this._k=(1-e)/6}gt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:dt(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:dt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var vt=function t(e){function r(t){return new gt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function mt(t,e){this._context=t,this._k=(1-e)/6}mt.prototype={areaStart:st,areaEnd:st,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:dt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var yt=function t(e){function r(t){return new mt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function xt(t,e){this._context=t,this._k=(1-e)/6}xt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:dt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var bt=function t(e){function r(t){return new xt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function _t(t,e,r){var n=t._x1,a=t._y1,i=t._x2,o=t._y2;if(t._l01_a>u){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,a=(a*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>u){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,h=3*t._l23_a*(t._l23_a+t._l12_a);i=(i*c+t._x1*t._l23_2a-e*t._l12_2a)/h,o=(o*c+t._y1*t._l23_2a-r*t._l12_2a)/h}t._context.bezierCurveTo(n,a,i,o,t._x2,t._y2)}function wt(t,e){this._context=t,this._alpha=e}wt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:_t(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var kt=function t(e){function r(t){return e?new wt(t,e):new gt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Tt(t,e){this._context=t,this._alpha=e}Tt.prototype={areaStart:st,areaEnd:st,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:_t(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var At=function t(e){function r(t){return e?new Tt(t,e):new mt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Mt(t,e){this._context=t,this._alpha=e}Mt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:_t(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var St=function t(e){function r(t){return e?new Mt(t,e):new xt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Et(t){this._context=t}function Ct(t){return t<0?-1:1}function Lt(t,e,r){var n=t._x1-t._x0,a=e-t._x1,i=(t._y1-t._y0)/(n||a<0&&-0),o=(r-t._y1)/(a||n<0&&-0),s=(i*a+o*n)/(n+a);return(Ct(i)+Ct(o))*Math.min(Math.abs(i),Math.abs(o),.5*Math.abs(s))||0}function Pt(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function Ot(t,e,r){var n=t._x0,a=t._y0,i=t._x1,o=t._y1,s=(i-n)/3;t._context.bezierCurveTo(n+s,a+s*e,i-s,o-s*r,i,o)}function zt(t){this._context=t}function It(t){this._context=new Dt(t)}function Dt(t){this._context=t}function Rt(t){this._context=t}function Ft(t){var e,r,n=t.length-1,a=new Array(n),i=new Array(n),o=new Array(n);for(a[0]=0,i[0]=2,o[0]=t[0]+2*t[1],e=1;e<n-1;++e)a[e]=1,i[e]=4,o[e]=4*t[e]+2*t[e+1];for(a[n-1]=2,i[n-1]=7,o[n-1]=8*t[n-1]+t[n],e=1;e<n;++e)r=a[e]/i[e-1],i[e]-=r,o[e]-=r*o[e-1];for(a[n-1]=o[n-1]/i[n-1],e=n-2;e>=0;--e)a[e]=(o[e]-a[e+1])/i[e];for(i[n-1]=(t[n]+a[n-1])/2,e=0;e<n-1;++e)i[e]=2*t[e+1]-a[e+1];return[a,i]}function Bt(t,e){this._context=t,this._t=e}function Nt(t,e){if((a=t.length)>1)for(var r,n,a,i=1,o=t[e[0]],s=o.length;i<a;++i)for(n=o,o=t[e[i]],r=0;r<s;++r)o[r][1]+=o[r][0]=isNaN(n[r][1])?n[r][0]:n[r][1]}function jt(t){for(var e=t.length,r=new Array(e);--e>=0;)r[e]=e;return r}function Vt(t,e){return t[e]}function Ut(t){var e=t.map(qt);return jt(t).sort(function(t,r){return e[t]-e[r]})}function qt(t){for(var e,r=-1,n=0,a=t.length,i=-1/0;++r<a;)(e=+t[r][1])>i&&(i=e,n=r);return n}function Ht(t){var e=t.map(Gt);return jt(t).sort(function(t,r){return e[t]-e[r]})}function Gt(t){for(var e,r=0,n=-1,a=t.length;++n<a;)(e=+t[n][1])&&(r+=e);return r}Et.prototype={areaStart:st,areaEnd:st,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}},zt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Ot(this,this._t0,Pt(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var r=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Ot(this,Pt(this,r=Lt(this,t,e)),r);break;default:Ot(this,this._t0,r=Lt(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}},(It.prototype=Object.create(zt.prototype)).point=function(t,e){zt.prototype.point.call(this,e,t)},Dt.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,n,a,i){this._context.bezierCurveTo(e,t,n,r,i,a)}},Rt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===r)this._context.lineTo(t[1],e[1]);else for(var n=Ft(t),a=Ft(e),i=0,o=1;o<r;++i,++o)this._context.bezierCurveTo(n[0][i],a[0][i],n[1][i],a[1][i],t[o],e[o]);(this._line||0!==this._line&&1===r)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},Bt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}}this._x=t,this._y=e}},t.arc=function(){var t=g,o=v,_=r(0),w=null,k=m,T=y,A=x,M=null;function S(){var r,g,v,m=+t.apply(this,arguments),y=+o.apply(this,arguments),x=k.apply(this,arguments)-f,S=T.apply(this,arguments)-f,E=n(S-x),C=S>x;if(M||(M=r=e.path()),y<m&&(g=y,y=m,m=g),y>u)if(E>p-u)M.moveTo(y*i(x),y*l(x)),M.arc(0,0,y,x,S,!C),m>u&&(M.moveTo(m*i(S),m*l(S)),M.arc(0,0,m,S,x,C));else{var L,P,O=x,z=S,I=x,D=S,R=E,F=E,B=A.apply(this,arguments)/2,N=B>u&&(w?+w.apply(this,arguments):c(m*m+y*y)),j=s(n(y-m)/2,+_.apply(this,arguments)),V=j,U=j;if(N>u){var q=d(N/m*l(B)),H=d(N/y*l(B));(R-=2*q)>u?(I+=q*=C?1:-1,D-=q):(R=0,I=D=(x+S)/2),(F-=2*H)>u?(O+=H*=C?1:-1,z-=H):(F=0,O=z=(x+S)/2)}var G=y*i(O),Y=y*l(O),W=m*i(D),X=m*l(D);if(j>u){var Z,J=y*i(z),K=y*l(z),Q=m*i(I),$=m*l(I);if(E<h&&(Z=function(t,e,r,n,a,i,o,s){var l=r-t,c=n-e,h=o-a,f=s-i,p=f*l-h*c;if(!(p*p<u))return[t+(p=(h*(e-i)-f*(t-a))/p)*l,e+p*c]}(G,Y,Q,$,J,K,W,X))){var tt=G-Z[0],et=Y-Z[1],rt=J-Z[0],nt=K-Z[1],at=1/l(((v=(tt*rt+et*nt)/(c(tt*tt+et*et)*c(rt*rt+nt*nt)))>1?0:v<-1?h:Math.acos(v))/2),it=c(Z[0]*Z[0]+Z[1]*Z[1]);V=s(j,(m-it)/(at-1)),U=s(j,(y-it)/(at+1))}}F>u?U>u?(L=b(Q,$,G,Y,y,U,C),P=b(J,K,W,X,y,U,C),M.moveTo(L.cx+L.x01,L.cy+L.y01),U<j?M.arc(L.cx,L.cy,U,a(L.y01,L.x01),a(P.y01,P.x01),!C):(M.arc(L.cx,L.cy,U,a(L.y01,L.x01),a(L.y11,L.x11),!C),M.arc(0,0,y,a(L.cy+L.y11,L.cx+L.x11),a(P.cy+P.y11,P.cx+P.x11),!C),M.arc(P.cx,P.cy,U,a(P.y11,P.x11),a(P.y01,P.x01),!C))):(M.moveTo(G,Y),M.arc(0,0,y,O,z,!C)):M.moveTo(G,Y),m>u&&R>u?V>u?(L=b(W,X,J,K,m,-V,C),P=b(G,Y,Q,$,m,-V,C),M.lineTo(L.cx+L.x01,L.cy+L.y01),V<j?M.arc(L.cx,L.cy,V,a(L.y01,L.x01),a(P.y01,P.x01),!C):(M.arc(L.cx,L.cy,V,a(L.y01,L.x01),a(L.y11,L.x11),!C),M.arc(0,0,m,a(L.cy+L.y11,L.cx+L.x11),a(P.cy+P.y11,P.cx+P.x11),C),M.arc(P.cx,P.cy,V,a(P.y11,P.x11),a(P.y01,P.x01),!C))):M.arc(0,0,m,D,I,C):M.lineTo(W,X)}else M.moveTo(0,0);if(M.closePath(),r)return M=null,r+\"\"||null}return S.centroid=function(){var e=(+t.apply(this,arguments)+ +o.apply(this,arguments))/2,r=(+k.apply(this,arguments)+ +T.apply(this,arguments))/2-h/2;return[i(r)*e,l(r)*e]},S.innerRadius=function(e){return arguments.length?(t=\"function\"==typeof e?e:r(+e),S):t},S.outerRadius=function(t){return arguments.length?(o=\"function\"==typeof t?t:r(+t),S):o},S.cornerRadius=function(t){return arguments.length?(_=\"function\"==typeof t?t:r(+t),S):_},S.padRadius=function(t){return arguments.length?(w=null==t?null:\"function\"==typeof t?t:r(+t),S):w},S.startAngle=function(t){return arguments.length?(k=\"function\"==typeof t?t:r(+t),S):k},S.endAngle=function(t){return arguments.length?(T=\"function\"==typeof t?t:r(+t),S):T},S.padAngle=function(t){return arguments.length?(A=\"function\"==typeof t?t:r(+t),S):A},S.context=function(t){return arguments.length?(M=null==t?null:t,S):M},S},t.area=M,t.line=A,t.pie=function(){var t=E,e=S,n=null,a=r(0),i=r(p),o=r(0);function s(r){var s,l,c,u,h,f=r.length,d=0,g=new Array(f),v=new Array(f),m=+a.apply(this,arguments),y=Math.min(p,Math.max(-p,i.apply(this,arguments)-m)),x=Math.min(Math.abs(y)/f,o.apply(this,arguments)),b=x*(y<0?-1:1);for(s=0;s<f;++s)(h=v[g[s]=s]=+t(r[s],s,r))>0&&(d+=h);for(null!=e?g.sort(function(t,r){return e(v[t],v[r])}):null!=n&&g.sort(function(t,e){return n(r[t],r[e])}),s=0,c=d?(y-f*b)/d:0;s<f;++s,m=u)l=g[s],u=m+((h=v[l])>0?h*c:0)+b,v[l]={data:r[l],index:s,value:h,startAngle:m,endAngle:u,padAngle:x};return v}return s.value=function(e){return arguments.length?(t=\"function\"==typeof e?e:r(+e),s):t},s.sortValues=function(t){return arguments.length?(e=t,n=null,s):e},s.sort=function(t){return arguments.length?(n=t,e=null,s):n},s.startAngle=function(t){return arguments.length?(a=\"function\"==typeof t?t:r(+t),s):a},s.endAngle=function(t){return arguments.length?(i=\"function\"==typeof t?t:r(+t),s):i},s.padAngle=function(t){return arguments.length?(o=\"function\"==typeof t?t:r(+t),s):o},s},t.areaRadial=I,t.radialArea=I,t.lineRadial=z,t.radialLine=z,t.pointRadial=D,t.linkHorizontal=function(){return N(j)},t.linkVertical=function(){return N(V)},t.linkRadial=function(){var t=N(U);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.symbol=function(){var t=r(q),n=r(64),a=null;function i(){var r;if(a||(a=r=e.path()),t.apply(this,arguments).draw(a,+n.apply(this,arguments)),r)return a=null,r+\"\"||null}return i.type=function(e){return arguments.length?(t=\"function\"==typeof e?e:r(e),i):t},i.size=function(t){return arguments.length?(n=\"function\"==typeof t?t:r(+t),i):n},i.context=function(t){return arguments.length?(a=null==t?null:t,i):a},i},t.symbols=ot,t.symbolCircle=q,t.symbolCross=H,t.symbolDiamond=W,t.symbolSquare=Q,t.symbolStar=K,t.symbolTriangle=tt,t.symbolWye=it,t.curveBasisClosed=function(t){return new ut(t)},t.curveBasisOpen=function(t){return new ht(t)},t.curveBasis=function(t){return new ct(t)},t.curveBundle=pt,t.curveCardinalClosed=yt,t.curveCardinalOpen=bt,t.curveCardinal=vt,t.curveCatmullRomClosed=At,t.curveCatmullRomOpen=St,t.curveCatmullRom=kt,t.curveLinearClosed=function(t){return new Et(t)},t.curveLinear=w,t.curveMonotoneX=function(t){return new zt(t)},t.curveMonotoneY=function(t){return new It(t)},t.curveNatural=function(t){return new Rt(t)},t.curveStep=function(t){return new Bt(t,.5)},t.curveStepAfter=function(t){return new Bt(t,1)},t.curveStepBefore=function(t){return new Bt(t,0)},t.stack=function(){var t=r([]),e=jt,n=Nt,a=Vt;function i(r){var i,o,s=t.apply(this,arguments),l=r.length,c=s.length,u=new Array(c);for(i=0;i<c;++i){for(var h,f=s[i],p=u[i]=new Array(l),d=0;d<l;++d)p[d]=h=[0,+a(r[d],f,d,r)],h.data=r[d];p.key=f}for(i=0,o=e(u);i<c;++i)u[o[i]].index=i;return n(u,o),u}return i.keys=function(e){return arguments.length?(t=\"function\"==typeof e?e:r(R.call(e)),i):t},i.value=function(t){return arguments.length?(a=\"function\"==typeof t?t:r(+t),i):a},i.order=function(t){return arguments.length?(e=null==t?jt:\"function\"==typeof t?t:r(R.call(t)),i):e},i.offset=function(t){return arguments.length?(n=null==t?Nt:t,i):n},i},t.stackOffsetExpand=function(t,e){if((n=t.length)>0){for(var r,n,a,i=0,o=t[0].length;i<o;++i){for(a=r=0;r<n;++r)a+=t[r][i][1]||0;if(a)for(r=0;r<n;++r)t[r][i][1]/=a}Nt(t,e)}},t.stackOffsetDiverging=function(t,e){if((s=t.length)>1)for(var r,n,a,i,o,s,l=0,c=t[e[0]].length;l<c;++l)for(i=o=0,r=0;r<s;++r)(a=(n=t[e[r]][l])[1]-n[0])>=0?(n[0]=i,n[1]=i+=a):a<0?(n[1]=o,n[0]=o+=a):n[0]=i},t.stackOffsetNone=Nt,t.stackOffsetSilhouette=function(t,e){if((r=t.length)>0){for(var r,n=0,a=t[e[0]],i=a.length;n<i;++n){for(var o=0,s=0;o<r;++o)s+=t[o][n][1]||0;a[n][1]+=a[n][0]=-s/2}Nt(t,e)}},t.stackOffsetWiggle=function(t,e){if((a=t.length)>0&&(n=(r=t[e[0]]).length)>0){for(var r,n,a,i=0,o=1;o<n;++o){for(var s=0,l=0,c=0;s<a;++s){for(var u=t[e[s]],h=u[o][1]||0,f=(h-(u[o-1][1]||0))/2,p=0;p<s;++p){var d=t[e[p]];f+=(d[o][1]||0)-(d[o-1][1]||0)}l+=h,c+=f*h}r[o-1][1]+=r[o-1][0]=i,l&&(i-=c/l)}r[o-1][1]+=r[o-1][0]=i,Nt(t,e)}},t.stackOrderAppearance=Ut,t.stackOrderAscending=Ht,t.stackOrderDescending=function(t){return Ht(t).reverse()},t.stackOrderInsideOut=function(t){var e,r,n=t.length,a=t.map(Gt),i=Ut(t),o=0,s=0,l=[],c=[];for(e=0;e<n;++e)r=i[e],o<s?(o+=a[r],l.push(r)):(s+=a[r],c.push(r));return c.reverse().concat(l)},t.stackOrderNone=jt,t.stackOrderReverse=function(t){return jt(t).reverse()},Object.defineProperty(t,\"__esModule\",{value:!0})},\"object\"==typeof r&&\"undefined\"!=typeof e?a(r,t(\"d3-path\")):a(n.d3=n.d3||{},n.d3)},{\"d3-path\":160}],163:[function(t,e,r){var n;n=this,function(t){\"use strict\";var e,r,n=0,a=0,i=0,o=1e3,s=0,l=0,c=0,u=\"object\"==typeof performance&&performance.now?performance:Date,h=\"object\"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function f(){return l||(h(p),l=u.now()+c)}function p(){l=0}function d(){this._call=this._time=this._next=null}function g(t,e,r){var n=new d;return n.restart(t,e,r),n}function v(){f(),++n;for(var t,r=e;r;)(t=l-r._time)>=0&&r._call.call(null,t),r=r._next;--n}function m(){l=(s=u.now())+c,n=a=0;try{v()}finally{n=0,function(){var t,n,a=e,i=1/0;for(;a;)a._call?(i>a._time&&(i=a._time),t=a,a=a._next):(n=a._next,a._next=null,a=t?t._next=n:e=n);r=t,x(i)}(),l=0}}function y(){var t=u.now(),e=t-s;e>o&&(c-=e,s=t)}function x(t){n||(a&&(a=clearTimeout(a)),t-l>24?(t<1/0&&(a=setTimeout(m,t-u.now()-c)),i&&(i=clearInterval(i))):(i||(s=u.now(),i=setInterval(y,o)),n=1,h(m)))}d.prototype=g.prototype={constructor:d,restart:function(t,n,a){if(\"function\"!=typeof t)throw new TypeError(\"callback is not a function\");a=(null==a?f():+a)+(null==n?0:+n),this._next||r===this||(r?r._next=this:e=this,r=this),this._call=t,this._time=a,x()},stop:function(){this._call&&(this._call=null,this._time=1/0,x())}};t.now=f,t.timer=g,t.timerFlush=v,t.timeout=function(t,e,r){var n=new d;return e=null==e?0:+e,n.restart(function(r){n.stop(),t(r+e)},e,r),n},t.interval=function(t,e,r){var n=new d,a=e;return null==e?(n.restart(t,e,r),n):(e=+e,r=null==r?f():+r,n.restart(function i(o){o+=a,n.restart(i,a+=e,r),t(o)},e,r),n)},Object.defineProperty(t,\"__esModule\",{value:!0})}(\"object\"==typeof r&&\"undefined\"!=typeof e?r:n.d3=n.d3||{})},{}],164:[function(t,e,r){!function(){var t={version:\"3.5.17\"},r=[].slice,n=function(t){return r.call(t)},a=this.document;function i(t){return t&&(t.ownerDocument||t.document||t).documentElement}function o(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}if(a)try{n(a.documentElement.childNodes)[0].nodeType}catch(t){n=function(t){for(var e=t.length,r=new Array(e);e--;)r[e]=t[e];return r}}if(Date.now||(Date.now=function(){return+new Date}),a)try{a.createElement(\"DIV\").style.setProperty(\"opacity\",0,\"\")}catch(t){var s=this.Element.prototype,l=s.setAttribute,c=s.setAttributeNS,u=this.CSSStyleDeclaration.prototype,h=u.setProperty;s.setAttribute=function(t,e){l.call(this,t,e+\"\")},s.setAttributeNS=function(t,e,r){c.call(this,t,e,r+\"\")},u.setProperty=function(t,e,r){h.call(this,t,e+\"\",r)}}function f(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function p(t){return null===t?NaN:+t}function d(t){return!isNaN(t)}function g(t){return{left:function(e,r,n,a){for(arguments.length<3&&(n=0),arguments.length<4&&(a=e.length);n<a;){var i=n+a>>>1;t(e[i],r)<0?n=i+1:a=i}return n},right:function(e,r,n,a){for(arguments.length<3&&(n=0),arguments.length<4&&(a=e.length);n<a;){var i=n+a>>>1;t(e[i],r)>0?a=i:n=i+1}return n}}}t.ascending=f,t.descending=function(t,e){return e<t?-1:e>t?1:e>=t?0:NaN},t.min=function(t,e){var r,n,a=-1,i=t.length;if(1===arguments.length){for(;++a<i;)if(null!=(n=t[a])&&n>=n){r=n;break}for(;++a<i;)null!=(n=t[a])&&r>n&&(r=n)}else{for(;++a<i;)if(null!=(n=e.call(t,t[a],a))&&n>=n){r=n;break}for(;++a<i;)null!=(n=e.call(t,t[a],a))&&r>n&&(r=n)}return r},t.max=function(t,e){var r,n,a=-1,i=t.length;if(1===arguments.length){for(;++a<i;)if(null!=(n=t[a])&&n>=n){r=n;break}for(;++a<i;)null!=(n=t[a])&&n>r&&(r=n)}else{for(;++a<i;)if(null!=(n=e.call(t,t[a],a))&&n>=n){r=n;break}for(;++a<i;)null!=(n=e.call(t,t[a],a))&&n>r&&(r=n)}return r},t.extent=function(t,e){var r,n,a,i=-1,o=t.length;if(1===arguments.length){for(;++i<o;)if(null!=(n=t[i])&&n>=n){r=a=n;break}for(;++i<o;)null!=(n=t[i])&&(r>n&&(r=n),a<n&&(a=n))}else{for(;++i<o;)if(null!=(n=e.call(t,t[i],i))&&n>=n){r=a=n;break}for(;++i<o;)null!=(n=e.call(t,t[i],i))&&(r>n&&(r=n),a<n&&(a=n))}return[r,a]},t.sum=function(t,e){var r,n=0,a=t.length,i=-1;if(1===arguments.length)for(;++i<a;)d(r=+t[i])&&(n+=r);else for(;++i<a;)d(r=+e.call(t,t[i],i))&&(n+=r);return n},t.mean=function(t,e){var r,n=0,a=t.length,i=-1,o=a;if(1===arguments.length)for(;++i<a;)d(r=p(t[i]))?n+=r:--o;else for(;++i<a;)d(r=p(e.call(t,t[i],i)))?n+=r:--o;if(o)return n/o},t.quantile=function(t,e){var r=(t.length-1)*e+1,n=Math.floor(r),a=+t[n-1],i=r-n;return i?a+i*(t[n]-a):a},t.median=function(e,r){var n,a=[],i=e.length,o=-1;if(1===arguments.length)for(;++o<i;)d(n=p(e[o]))&&a.push(n);else for(;++o<i;)d(n=p(r.call(e,e[o],o)))&&a.push(n);if(a.length)return t.quantile(a.sort(f),.5)},t.variance=function(t,e){var r,n,a=t.length,i=0,o=0,s=-1,l=0;if(1===arguments.length)for(;++s<a;)d(r=p(t[s]))&&(o+=(n=r-i)*(r-(i+=n/++l)));else for(;++s<a;)d(r=p(e.call(t,t[s],s)))&&(o+=(n=r-i)*(r-(i+=n/++l)));if(l>1)return o/(l-1)},t.deviation=function(){var e=t.variance.apply(this,arguments);return e?Math.sqrt(e):e};var v=g(f);function m(t){return t.length}t.bisectLeft=v.left,t.bisect=t.bisectRight=v.right,t.bisector=function(t){return g(1===t.length?function(e,r){return f(t(e),r)}:t)},t.shuffle=function(t,e,r){(i=arguments.length)<3&&(r=t.length,i<2&&(e=0));for(var n,a,i=r-e;i;)a=Math.random()*i--|0,n=t[i+e],t[i+e]=t[a+e],t[a+e]=n;return t},t.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},t.pairs=function(t){for(var e=0,r=t.length-1,n=t[0],a=new Array(r<0?0:r);e<r;)a[e]=[n,n=t[++e]];return a},t.transpose=function(e){if(!(i=e.length))return[];for(var r=-1,n=t.min(e,m),a=new Array(n);++r<n;)for(var i,o=-1,s=a[r]=new Array(i);++o<i;)s[o]=e[o][r];return a},t.zip=function(){return t.transpose(arguments)},t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},t.merge=function(t){for(var e,r,n,a=t.length,i=-1,o=0;++i<a;)o+=t[i].length;for(r=new Array(o);--a>=0;)for(e=(n=t[a]).length;--e>=0;)r[--o]=n[e];return r};var y=Math.abs;function x(t,e){for(var r in e)Object.defineProperty(t.prototype,r,{value:e[r],enumerable:!1})}function b(){this._=Object.create(null)}t.range=function(t,e,r){if(arguments.length<3&&(r=1,arguments.length<2&&(e=t,t=0)),(e-t)/r==1/0)throw new Error(\"infinite range\");var n,a=[],i=function(t){var e=1;for(;t*e%1;)e*=10;return e}(y(r)),o=-1;if(t*=i,e*=i,(r*=i)<0)for(;(n=t+r*++o)>e;)a.push(n/i);else for(;(n=t+r*++o)<e;)a.push(n/i);return a},t.map=function(t,e){var r=new b;if(t instanceof b)t.forEach(function(t,e){r.set(t,e)});else if(Array.isArray(t)){var n,a=-1,i=t.length;if(1===arguments.length)for(;++a<i;)r.set(a,t[a]);else for(;++a<i;)r.set(e.call(t,n=t[a],a),n)}else for(var o in t)r.set(o,t[o]);return r};var _=\"__proto__\",w=\"\\0\";function k(t){return(t+=\"\")===_||t[0]===w?w+t:t}function T(t){return(t+=\"\")[0]===w?t.slice(1):t}function A(t){return k(t)in this._}function M(t){return(t=k(t))in this._&&delete this._[t]}function S(){var t=[];for(var e in this._)t.push(T(e));return t}function E(){var t=0;for(var e in this._)++t;return t}function C(){for(var t in this._)return!1;return!0}function L(){this._=Object.create(null)}function P(t){return t}function O(t,e,r){return function(){var n=r.apply(e,arguments);return n===e?t:n}}function z(t,e){if(e in t)return e;e=e.charAt(0).toUpperCase()+e.slice(1);for(var r=0,n=I.length;r<n;++r){var a=I[r]+e;if(a in t)return a}}x(b,{has:A,get:function(t){return this._[k(t)]},set:function(t,e){return this._[k(t)]=e},remove:M,keys:S,values:function(){var t=[];for(var e in this._)t.push(this._[e]);return t},entries:function(){var t=[];for(var e in this._)t.push({key:T(e),value:this._[e]});return t},size:E,empty:C,forEach:function(t){for(var e in this._)t.call(this,T(e),this._[e])}}),t.nest=function(){var e,r,n={},a=[],i=[];function o(t,i,s){if(s>=a.length)return r?r.call(n,i):e?i.sort(e):i;for(var l,c,u,h,f=-1,p=i.length,d=a[s++],g=new b;++f<p;)(h=g.get(l=d(c=i[f])))?h.push(c):g.set(l,[c]);return t?(c=t(),u=function(e,r){c.set(e,o(t,r,s))}):(c={},u=function(e,r){c[e]=o(t,r,s)}),g.forEach(u),c}return n.map=function(t,e){return o(e,t,0)},n.entries=function(e){return function t(e,r){if(r>=a.length)return e;var n=[],o=i[r++];return e.forEach(function(e,a){n.push({key:e,values:t(a,r)})}),o?n.sort(function(t,e){return o(t.key,e.key)}):n}(o(t.map,e,0),0)},n.key=function(t){return a.push(t),n},n.sortKeys=function(t){return i[a.length-1]=t,n},n.sortValues=function(t){return e=t,n},n.rollup=function(t){return r=t,n},n},t.set=function(t){var e=new L;if(t)for(var r=0,n=t.length;r<n;++r)e.add(t[r]);return e},x(L,{has:A,add:function(t){return this._[k(t+=\"\")]=!0,t},remove:M,values:S,size:E,empty:C,forEach:function(t){for(var e in this._)t.call(this,T(e))}}),t.behavior={},t.rebind=function(t,e){for(var r,n=1,a=arguments.length;++n<a;)t[r=arguments[n]]=O(t,e,e[r]);return t};var I=[\"webkit\",\"ms\",\"moz\",\"Moz\",\"o\",\"O\"];function D(){}function R(){}function F(t){var e=[],r=new b;function n(){for(var r,n=e,a=-1,i=n.length;++a<i;)(r=n[a].on)&&r.apply(this,arguments);return t}return n.on=function(n,a){var i,o=r.get(n);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,i=e.indexOf(o)).concat(e.slice(i+1)),r.remove(n)),a&&e.push(r.set(n,{on:a})),t)},n}function B(){t.event.preventDefault()}function N(){for(var e,r=t.event;e=r.sourceEvent;)r=e;return r}function j(e){for(var r=new R,n=0,a=arguments.length;++n<a;)r[arguments[n]]=F(r);return r.of=function(n,a){return function(i){try{var o=i.sourceEvent=t.event;i.target=e,t.event=i,r[i.type].apply(n,a)}finally{t.event=o}}},r}t.dispatch=function(){for(var t=new R,e=-1,r=arguments.length;++e<r;)t[arguments[e]]=F(t);return t},R.prototype.on=function(t,e){var r=t.indexOf(\".\"),n=\"\";if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t)return arguments.length<2?this[t].on(n):this[t].on(n,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(n,null);return this}},t.event=null,t.requote=function(t){return t.replace(V,\"\\\\$&\")};var V=/[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g,U={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)t[r]=e[r]};function q(t){return U(t,W),t}var H=function(t,e){return e.querySelector(t)},G=function(t,e){return e.querySelectorAll(t)},Y=function(t,e){var r=t.matches||t[z(t,\"matchesSelector\")];return(Y=function(t,e){return r.call(t,e)})(t,e)};\"function\"==typeof Sizzle&&(H=function(t,e){return Sizzle(t,e)[0]||null},G=Sizzle,Y=Sizzle.matchesSelector),t.selection=function(){return t.select(a.documentElement)};var W=t.selection.prototype=[];function X(t){return\"function\"==typeof t?t:function(){return H(t,this)}}function Z(t){return\"function\"==typeof t?t:function(){return G(t,this)}}W.select=function(t){var e,r,n,a,i=[];t=X(t);for(var o=-1,s=this.length;++o<s;){i.push(e=[]),e.parentNode=(n=this[o]).parentNode;for(var l=-1,c=n.length;++l<c;)(a=n[l])?(e.push(r=t.call(a,a.__data__,l,o)),r&&\"__data__\"in a&&(r.__data__=a.__data__)):e.push(null)}return q(i)},W.selectAll=function(t){var e,r,a=[];t=Z(t);for(var i=-1,o=this.length;++i<o;)for(var s=this[i],l=-1,c=s.length;++l<c;)(r=s[l])&&(a.push(e=n(t.call(r,r.__data__,l,i))),e.parentNode=r);return q(a)};var J=\"http://www.w3.org/1999/xhtml\",K={svg:\"http://www.w3.org/2000/svg\",xhtml:J,xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"};function Q(e,r){return e=t.ns.qualify(e),null==r?e.local?function(){this.removeAttributeNS(e.space,e.local)}:function(){this.removeAttribute(e)}:\"function\"==typeof r?e.local?function(){var t=r.apply(this,arguments);null==t?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,t)}:function(){var t=r.apply(this,arguments);null==t?this.removeAttribute(e):this.setAttribute(e,t)}:e.local?function(){this.setAttributeNS(e.space,e.local,r)}:function(){this.setAttribute(e,r)}}function $(t){return t.trim().replace(/\\s+/g,\" \")}function tt(e){return new RegExp(\"(?:^|\\\\s+)\"+t.requote(e)+\"(?:\\\\s+|$)\",\"g\")}function et(t){return(t+\"\").trim().split(/^|\\s+/)}function rt(t,e){var r=(t=et(t).map(nt)).length;return\"function\"==typeof e?function(){for(var n=-1,a=e.apply(this,arguments);++n<r;)t[n](this,a)}:function(){for(var n=-1;++n<r;)t[n](this,e)}}function nt(t){var e=tt(t);return function(r,n){if(a=r.classList)return n?a.add(t):a.remove(t);var a=r.getAttribute(\"class\")||\"\";n?(e.lastIndex=0,e.test(a)||r.setAttribute(\"class\",$(a+\" \"+t))):r.setAttribute(\"class\",$(a.replace(e,\" \")))}}function at(t,e,r){return null==e?function(){this.style.removeProperty(t)}:\"function\"==typeof e?function(){var n=e.apply(this,arguments);null==n?this.style.removeProperty(t):this.style.setProperty(t,n,r)}:function(){this.style.setProperty(t,e,r)}}function it(t,e){return null==e?function(){delete this[t]}:\"function\"==typeof e?function(){var r=e.apply(this,arguments);null==r?delete this[t]:this[t]=r}:function(){this[t]=e}}function ot(e){return\"function\"==typeof e?e:(e=t.ns.qualify(e)).local?function(){return this.ownerDocument.createElementNS(e.space,e.local)}:function(){var t=this.ownerDocument,r=this.namespaceURI;return r===J&&t.documentElement.namespaceURI===J?t.createElement(e):t.createElementNS(r,e)}}function st(){var t=this.parentNode;t&&t.removeChild(this)}function lt(t){return{__data__:t}}function ct(t){return function(){return Y(this,t)}}function ut(t,e){for(var r=0,n=t.length;r<n;r++)for(var a,i=t[r],o=0,s=i.length;o<s;o++)(a=i[o])&&e(a,o,r);return t}function ht(t){return U(t,ft),t}t.ns={prefix:K,qualify:function(t){var e=t.indexOf(\":\"),r=t;return e>=0&&\"xmlns\"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),K.hasOwnProperty(r)?{space:K[r],local:t}:t}},W.attr=function(e,r){if(arguments.length<2){if(\"string\"==typeof e){var n=this.node();return(e=t.ns.qualify(e)).local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(r in e)this.each(Q(r,e[r]));return this}return this.each(Q(e,r))},W.classed=function(t,e){if(arguments.length<2){if(\"string\"==typeof t){var r=this.node(),n=(t=et(t)).length,a=-1;if(e=r.classList){for(;++a<n;)if(!e.contains(t[a]))return!1}else for(e=r.getAttribute(\"class\");++a<n;)if(!tt(t[a]).test(e))return!1;return!0}for(e in t)this.each(rt(e,t[e]));return this}return this.each(rt(t,e))},W.style=function(t,e,r){var n=arguments.length;if(n<3){if(\"string\"!=typeof t){for(r in n<2&&(e=\"\"),t)this.each(at(r,t[r],e));return this}if(n<2){var a=this.node();return o(a).getComputedStyle(a,null).getPropertyValue(t)}r=\"\"}return this.each(at(t,e,r))},W.property=function(t,e){if(arguments.length<2){if(\"string\"==typeof t)return this.node()[t];for(e in t)this.each(it(e,t[e]));return this}return this.each(it(t,e))},W.text=function(t){return arguments.length?this.each(\"function\"==typeof t?function(){var e=t.apply(this,arguments);this.textContent=null==e?\"\":e}:null==t?function(){this.textContent=\"\"}:function(){this.textContent=t}):this.node().textContent},W.html=function(t){return arguments.length?this.each(\"function\"==typeof t?function(){var e=t.apply(this,arguments);this.innerHTML=null==e?\"\":e}:null==t?function(){this.innerHTML=\"\"}:function(){this.innerHTML=t}):this.node().innerHTML},W.append=function(t){return t=ot(t),this.select(function(){return this.appendChild(t.apply(this,arguments))})},W.insert=function(t,e){return t=ot(t),e=X(e),this.select(function(){return this.insertBefore(t.apply(this,arguments),e.apply(this,arguments)||null)})},W.remove=function(){return this.each(st)},W.data=function(t,e){var r,n,a=-1,i=this.length;if(!arguments.length){for(t=new Array(i=(r=this[0]).length);++a<i;)(n=r[a])&&(t[a]=n.__data__);return t}function o(t,r){var n,a,i,o=t.length,u=r.length,h=Math.min(o,u),f=new Array(u),p=new Array(u),d=new Array(o);if(e){var g,v=new b,m=new Array(o);for(n=-1;++n<o;)(a=t[n])&&(v.has(g=e.call(a,a.__data__,n))?d[n]=a:v.set(g,a),m[n]=g);for(n=-1;++n<u;)(a=v.get(g=e.call(r,i=r[n],n)))?!0!==a&&(f[n]=a,a.__data__=i):p[n]=lt(i),v.set(g,!0);for(n=-1;++n<o;)n in m&&!0!==v.get(m[n])&&(d[n]=t[n])}else{for(n=-1;++n<h;)a=t[n],i=r[n],a?(a.__data__=i,f[n]=a):p[n]=lt(i);for(;n<u;++n)p[n]=lt(r[n]);for(;n<o;++n)d[n]=t[n]}p.update=f,p.parentNode=f.parentNode=d.parentNode=t.parentNode,s.push(p),l.push(f),c.push(d)}var s=ht([]),l=q([]),c=q([]);if(\"function\"==typeof t)for(;++a<i;)o(r=this[a],t.call(r,r.parentNode.__data__,a));else for(;++a<i;)o(r=this[a],t);return l.enter=function(){return s},l.exit=function(){return c},l},W.datum=function(t){return arguments.length?this.property(\"__data__\",t):this.property(\"__data__\")},W.filter=function(t){var e,r,n,a=[];\"function\"!=typeof t&&(t=ct(t));for(var i=0,o=this.length;i<o;i++){a.push(e=[]),e.parentNode=(r=this[i]).parentNode;for(var s=0,l=r.length;s<l;s++)(n=r[s])&&t.call(n,n.__data__,s,i)&&e.push(n)}return q(a)},W.order=function(){for(var t=-1,e=this.length;++t<e;)for(var r,n=this[t],a=n.length-1,i=n[a];--a>=0;)(r=n[a])&&(i&&i!==r.nextSibling&&i.parentNode.insertBefore(r,i),i=r);return this},W.sort=function(t){t=function(t){arguments.length||(t=f);return function(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}}.apply(this,arguments);for(var e=-1,r=this.length;++e<r;)this[e].sort(t);return this.order()},W.each=function(t){return ut(this,function(e,r,n){t.call(e,e.__data__,r,n)})},W.call=function(t){var e=n(arguments);return t.apply(e[0]=this,e),this},W.empty=function(){return!this.node()},W.node=function(){for(var t=0,e=this.length;t<e;t++)for(var r=this[t],n=0,a=r.length;n<a;n++){var i=r[n];if(i)return i}return null},W.size=function(){var t=0;return ut(this,function(){++t}),t};var ft=[];function pt(e,r,a){var i=\"__on\"+e,o=e.indexOf(\".\"),s=gt;o>0&&(e=e.slice(0,o));var l=dt.get(e);function c(){var t=this[i];t&&(this.removeEventListener(e,t,t.$),delete this[i])}return l&&(e=l,s=vt),o?r?function(){var t=s(r,n(arguments));c.call(this),this.addEventListener(e,this[i]=t,t.$=a),t._=r}:c:r?D:function(){var r,n=new RegExp(\"^__on([^.]+)\"+t.requote(e)+\"$\");for(var a in this)if(r=a.match(n)){var i=this[a];this.removeEventListener(r[1],i,i.$),delete this[a]}}}t.selection.enter=ht,t.selection.enter.prototype=ft,ft.append=W.append,ft.empty=W.empty,ft.node=W.node,ft.call=W.call,ft.size=W.size,ft.select=function(t){for(var e,r,n,a,i,o=[],s=-1,l=this.length;++s<l;){n=(a=this[s]).update,o.push(e=[]),e.parentNode=a.parentNode;for(var c=-1,u=a.length;++c<u;)(i=a[c])?(e.push(n[c]=r=t.call(a.parentNode,i.__data__,c,s)),r.__data__=i.__data__):e.push(null)}return q(o)},ft.insert=function(t,e){var r,n,a;return arguments.length<2&&(r=this,e=function(t,e,i){var o,s=r[i].update,l=s.length;for(i!=a&&(a=i,n=0),e>=n&&(n=e+1);!(o=s[n])&&++n<l;);return o}),W.insert.call(this,t,e)},t.select=function(t){var e;return\"string\"==typeof t?(e=[H(t,a)]).parentNode=a.documentElement:(e=[t]).parentNode=i(t),q([e])},t.selectAll=function(t){var e;return\"string\"==typeof t?(e=n(G(t,a))).parentNode=a.documentElement:(e=n(t)).parentNode=null,q([e])},W.on=function(t,e,r){var n=arguments.length;if(n<3){if(\"string\"!=typeof t){for(r in n<2&&(e=!1),t)this.each(pt(r,t[r],e));return this}if(n<2)return(n=this.node()[\"__on\"+t])&&n._;r=!1}return this.each(pt(t,e,r))};var dt=t.map({mouseenter:\"mouseover\",mouseleave:\"mouseout\"});function gt(e,r){return function(n){var a=t.event;t.event=n,r[0]=this.__data__;try{e.apply(this,r)}finally{t.event=a}}}function vt(t,e){var r=gt(t,e);return function(t){var e=t.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||r.call(this,t)}}a&&dt.forEach(function(t){\"on\"+t in a&&dt.remove(t)});var mt,yt=0;function xt(e){var r=\".dragsuppress-\"+ ++yt,n=\"click\"+r,a=t.select(o(e)).on(\"touchmove\"+r,B).on(\"dragstart\"+r,B).on(\"selectstart\"+r,B);if(null==mt&&(mt=!(\"onselectstart\"in e)&&z(e.style,\"userSelect\")),mt){var s=i(e).style,l=s[mt];s[mt]=\"none\"}return function(t){if(a.on(r,null),mt&&(s[mt]=l),t){var e=function(){a.on(n,null)};a.on(n,function(){B(),e()},!0),setTimeout(e,0)}}}t.mouse=function(t){return _t(t,N())};var bt=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function _t(e,r){r.changedTouches&&(r=r.changedTouches[0]);var n=e.ownerSVGElement||e;if(n.createSVGPoint){var a=n.createSVGPoint();if(bt<0){var i=o(e);if(i.scrollX||i.scrollY){var s=(n=t.select(\"body\").append(\"svg\").style({position:\"absolute\",top:0,left:0,margin:0,padding:0,border:\"none\"},\"important\"))[0][0].getScreenCTM();bt=!(s.f||s.e),n.remove()}}return bt?(a.x=r.pageX,a.y=r.pageY):(a.x=r.clientX,a.y=r.clientY),[(a=a.matrixTransform(e.getScreenCTM().inverse())).x,a.y]}var l=e.getBoundingClientRect();return[r.clientX-l.left-e.clientLeft,r.clientY-l.top-e.clientTop]}function wt(){return t.event.changedTouches[0].identifier}t.touch=function(t,e,r){if(arguments.length<3&&(r=e,e=N().changedTouches),e)for(var n,a=0,i=e.length;a<i;++a)if((n=e[a]).identifier===r)return _t(t,n)},t.behavior.drag=function(){var e=j(i,\"drag\",\"dragstart\",\"dragend\"),r=null,n=s(D,t.mouse,o,\"mousemove\",\"mouseup\"),a=s(wt,t.touch,P,\"touchmove\",\"touchend\");function i(){this.on(\"mousedown.drag\",n).on(\"touchstart.drag\",a)}function s(n,a,i,o,s){return function(){var l,c=t.event.target.correspondingElement||t.event.target,u=this.parentNode,h=e.of(this,arguments),f=0,p=n(),d=\".drag\"+(null==p?\"\":\"-\"+p),g=t.select(i(c)).on(o+d,function(){var t,e,r=a(u,p);if(!r)return;t=r[0]-m[0],e=r[1]-m[1],f|=t|e,m=r,h({type:\"drag\",x:r[0]+l[0],y:r[1]+l[1],dx:t,dy:e})}).on(s+d,function(){if(!a(u,p))return;g.on(o+d,null).on(s+d,null),v(f),h({type:\"dragend\"})}),v=xt(c),m=a(u,p);l=r?[(l=r.apply(this,arguments)).x-m[0],l.y-m[1]]:[0,0],h({type:\"dragstart\"})}}return i.origin=function(t){return arguments.length?(r=t,i):r},t.rebind(i,e,\"on\")},t.touches=function(t,e){return arguments.length<2&&(e=N().touches),e?n(e).map(function(e){var r=_t(t,e);return r.identifier=e.identifier,r}):[]};var kt=1e-6,Tt=kt*kt,At=Math.PI,Mt=2*At,St=Mt-kt,Et=At/2,Ct=At/180,Lt=180/At;function Pt(t){return t>0?1:t<0?-1:0}function Ot(t,e,r){return(e[0]-t[0])*(r[1]-t[1])-(e[1]-t[1])*(r[0]-t[0])}function zt(t){return t>1?0:t<-1?At:Math.acos(t)}function It(t){return t>1?Et:t<-1?-Et:Math.asin(t)}function Dt(t){return((t=Math.exp(t))+1/t)/2}function Rt(t){return(t=Math.sin(t/2))*t}var Ft=Math.SQRT2;t.interpolateZoom=function(t,e){var r,n,a=t[0],i=t[1],o=t[2],s=e[0],l=e[1],c=e[2],u=s-a,h=l-i,f=u*u+h*h;if(f<Tt)n=Math.log(c/o)/Ft,r=function(t){return[a+t*u,i+t*h,o*Math.exp(Ft*t*n)]};else{var p=Math.sqrt(f),d=(c*c-o*o+4*f)/(2*o*2*p),g=(c*c-o*o-4*f)/(2*c*2*p),v=Math.log(Math.sqrt(d*d+1)-d),m=Math.log(Math.sqrt(g*g+1)-g);n=(m-v)/Ft,r=function(t){var e,r=t*n,s=Dt(v),l=o/(2*p)*(s*(e=Ft*r+v,((e=Math.exp(2*e))-1)/(e+1))-function(t){return((t=Math.exp(t))-1/t)/2}(v));return[a+l*u,i+l*h,o*s/Dt(Ft*r+v)]}}return r.duration=1e3*n,r},t.behavior.zoom=function(){var e,r,n,i,s,l,c,u,h,f={x:0,y:0,k:1},p=[960,500],d=jt,g=250,v=0,m=\"mousedown.zoom\",y=\"mousemove.zoom\",x=\"mouseup.zoom\",b=\"touchstart.zoom\",_=j(w,\"zoomstart\",\"zoom\",\"zoomend\");function w(t){t.on(m,P).on(Nt+\".zoom\",z).on(\"dblclick.zoom\",I).on(b,O)}function k(t){return[(t[0]-f.x)/f.k,(t[1]-f.y)/f.k]}function T(t){f.k=Math.max(d[0],Math.min(d[1],t))}function A(t,e){e=function(t){return[t[0]*f.k+f.x,t[1]*f.k+f.y]}(e),f.x+=t[0]-e[0],f.y+=t[1]-e[1]}function M(e,n,a,i){e.__chart__={x:f.x,y:f.y,k:f.k},T(Math.pow(2,i)),A(r=n,a),e=t.select(e),g>0&&(e=e.transition().duration(g)),e.call(w.event)}function S(){c&&c.domain(l.range().map(function(t){return(t-f.x)/f.k}).map(l.invert)),h&&h.domain(u.range().map(function(t){return(t-f.y)/f.k}).map(u.invert))}function E(t){v++||t({type:\"zoomstart\"})}function C(t){S(),t({type:\"zoom\",scale:f.k,translate:[f.x,f.y]})}function L(t){--v||(t({type:\"zoomend\"}),r=null)}function P(){var e=this,r=_.of(e,arguments),n=0,a=t.select(o(e)).on(y,function(){n=1,A(t.mouse(e),i),C(r)}).on(x,function(){a.on(y,null).on(x,null),s(n),L(r)}),i=k(t.mouse(e)),s=xt(e);hs.call(e),E(r)}function O(){var e,r=this,n=_.of(r,arguments),a={},i=0,o=\".zoom-\"+t.event.changedTouches[0].identifier,l=\"touchmove\"+o,c=\"touchend\"+o,u=[],h=t.select(r),p=xt(r);function d(){var n=t.touches(r);return e=f.k,n.forEach(function(t){t.identifier in a&&(a[t.identifier]=k(t))}),n}function g(){var e=t.event.target;t.select(e).on(l,v).on(c,y),u.push(e);for(var n=t.event.changedTouches,o=0,h=n.length;o<h;++o)a[n[o].identifier]=null;var p=d(),g=Date.now();if(1===p.length){if(g-s<500){var m=p[0];M(r,m,a[m.identifier],Math.floor(Math.log(f.k)/Math.LN2)+1),B()}s=g}else if(p.length>1){m=p[0];var x=p[1],b=m[0]-x[0],_=m[1]-x[1];i=b*b+_*_}}function v(){var o,l,c,u,h=t.touches(r);hs.call(r);for(var f=0,p=h.length;f<p;++f,u=null)if(c=h[f],u=a[c.identifier]){if(l)break;o=c,l=u}if(u){var d=(d=c[0]-o[0])*d+(d=c[1]-o[1])*d,g=i&&Math.sqrt(d/i);o=[(o[0]+c[0])/2,(o[1]+c[1])/2],l=[(l[0]+u[0])/2,(l[1]+u[1])/2],T(g*e)}s=null,A(o,l),C(n)}function y(){if(t.event.touches.length){for(var e=t.event.changedTouches,r=0,i=e.length;r<i;++r)delete a[e[r].identifier];for(var s in a)return void d()}t.selectAll(u).on(o,null),h.on(m,P).on(b,O),p(),L(n)}g(),E(n),h.on(m,null).on(b,g)}function z(){var a=_.of(this,arguments);i?clearTimeout(i):(hs.call(this),e=k(r=n||t.mouse(this)),E(a)),i=setTimeout(function(){i=null,L(a)},50),B(),T(Math.pow(2,.002*Bt())*f.k),A(r,e),C(a)}function I(){var e=t.mouse(this),r=Math.log(f.k)/Math.LN2;M(this,e,k(e),t.event.shiftKey?Math.ceil(r)-1:Math.floor(r)+1)}return Nt||(Nt=\"onwheel\"in a?(Bt=function(){return-t.event.deltaY*(t.event.deltaMode?120:1)},\"wheel\"):\"onmousewheel\"in a?(Bt=function(){return t.event.wheelDelta},\"mousewheel\"):(Bt=function(){return-t.event.detail},\"MozMousePixelScroll\")),w.event=function(e){e.each(function(){var e=_.of(this,arguments),n=f;ds?t.select(this).transition().each(\"start.zoom\",function(){f=this.__chart__||{x:0,y:0,k:1},E(e)}).tween(\"zoom:zoom\",function(){var a=p[0],i=p[1],o=r?r[0]:a/2,s=r?r[1]:i/2,l=t.interpolateZoom([(o-f.x)/f.k,(s-f.y)/f.k,a/f.k],[(o-n.x)/n.k,(s-n.y)/n.k,a/n.k]);return function(t){var r=l(t),n=a/r[2];this.__chart__=f={x:o-r[0]*n,y:s-r[1]*n,k:n},C(e)}}).each(\"interrupt.zoom\",function(){L(e)}).each(\"end.zoom\",function(){L(e)}):(this.__chart__=f,E(e),C(e),L(e))})},w.translate=function(t){return arguments.length?(f={x:+t[0],y:+t[1],k:f.k},S(),w):[f.x,f.y]},w.scale=function(t){return arguments.length?(f={x:f.x,y:f.y,k:null},T(+t),S(),w):f.k},w.scaleExtent=function(t){return arguments.length?(d=null==t?jt:[+t[0],+t[1]],w):d},w.center=function(t){return arguments.length?(n=t&&[+t[0],+t[1]],w):n},w.size=function(t){return arguments.length?(p=t&&[+t[0],+t[1]],w):p},w.duration=function(t){return arguments.length?(g=+t,w):g},w.x=function(t){return arguments.length?(c=t,l=t.copy(),f={x:0,y:0,k:1},w):c},w.y=function(t){return arguments.length?(h=t,u=t.copy(),f={x:0,y:0,k:1},w):h},t.rebind(w,_,\"on\")};var Bt,Nt,jt=[0,1/0];function Vt(){}function Ut(t,e,r){return this instanceof Ut?(this.h=+t,this.s=+e,void(this.l=+r)):arguments.length<2?t instanceof Ut?new Ut(t.h,t.s,t.l):ue(\"\"+t,he,Ut):new Ut(t,e,r)}t.color=Vt,Vt.prototype.toString=function(){return this.rgb()+\"\"},t.hsl=Ut;var qt=Ut.prototype=new Vt;function Ht(t,e,r){var n,a;function i(t){return Math.round(255*function(t){return t>360?t-=360:t<0&&(t+=360),t<60?n+(a-n)*t/60:t<180?a:t<240?n+(a-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)?0:e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(a=r<=.5?r*(1+e):r+e-r*e),new ie(i(t+120),i(t),i(t-120))}function Gt(e,r,n){return this instanceof Gt?(this.h=+e,this.c=+r,void(this.l=+n)):arguments.length<2?e instanceof Gt?new Gt(e.h,e.c,e.l):ee(e instanceof Xt?e.l:(e=fe((e=t.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new Gt(e,r,n)}qt.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ut(this.h,this.s,this.l/t)},qt.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new Ut(this.h,this.s,t*this.l)},qt.rgb=function(){return Ht(this.h,this.s,this.l)},t.hcl=Gt;var Yt=Gt.prototype=new Vt;function Wt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Xt(r,Math.cos(t*=Ct)*e,Math.sin(t)*e)}function Xt(t,e,r){return this instanceof Xt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Xt?new Xt(t.l,t.a,t.b):t instanceof Gt?Wt(t.h,t.c,t.l):fe((t=ie(t)).r,t.g,t.b):new Xt(t,e,r)}Yt.brighter=function(t){return new Gt(this.h,this.c,Math.min(100,this.l+Zt*(arguments.length?t:1)))},Yt.darker=function(t){return new Gt(this.h,this.c,Math.max(0,this.l-Zt*(arguments.length?t:1)))},Yt.rgb=function(){return Wt(this.h,this.c,this.l).rgb()},t.lab=Xt;var Zt=18,Jt=.95047,Kt=1,Qt=1.08883,$t=Xt.prototype=new Vt;function te(t,e,r){var n=(t+16)/116,a=n+e/500,i=n-r/200;return new ie(ae(3.2404542*(a=re(a)*Jt)-1.5371385*(n=re(n)*Kt)-.4985314*(i=re(i)*Qt)),ae(-.969266*a+1.8760108*n+.041556*i),ae(.0556434*a-.2040259*n+1.0572252*i))}function ee(t,e,r){return t>0?new Gt(Math.atan2(r,e)*Lt,Math.sqrt(e*e+r*r),t):new Gt(NaN,NaN,t)}function re(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ne(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function ae(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ie(t,e,r){return this instanceof ie?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ie?new ie(t.r,t.g,t.b):ue(\"\"+t,ie,Ht):new ie(t,e,r)}function oe(t){return new ie(t>>16,t>>8&255,255&t)}function se(t){return oe(t)+\"\"}$t.brighter=function(t){return new Xt(Math.min(100,this.l+Zt*(arguments.length?t:1)),this.a,this.b)},$t.darker=function(t){return new Xt(Math.max(0,this.l-Zt*(arguments.length?t:1)),this.a,this.b)},$t.rgb=function(){return te(this.l,this.a,this.b)},t.rgb=ie;var le=ie.prototype=new Vt;function ce(t){return t<16?\"0\"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function ue(t,e,r){var n,a,i,o=0,s=0,l=0;if(n=/([a-z]+)\\((.*)\\)/.exec(t=t.toLowerCase()))switch(a=n[2].split(\",\"),n[1]){case\"hsl\":return r(parseFloat(a[0]),parseFloat(a[1])/100,parseFloat(a[2])/100);case\"rgb\":return e(de(a[0]),de(a[1]),de(a[2]))}return(i=ge.get(t))?e(i.r,i.g,i.b):(null==t||\"#\"!==t.charAt(0)||isNaN(i=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&i)>>4,o|=o>>4,s=240&i,s|=s>>4,l=15&i,l|=l<<4):7===t.length&&(o=(16711680&i)>>16,s=(65280&i)>>8,l=255&i)),e(o,s,l))}function he(t,e,r){var n,a,i=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-i,l=(o+i)/2;return s?(a=l<.5?s/(o+i):s/(2-o-i),n=t==o?(e-r)/s+(e<r?6:0):e==o?(r-t)/s+2:(t-e)/s+4,n*=60):(n=NaN,a=l>0&&l<1?0:n),new Ut(n,a,l)}function fe(t,e,r){var n=ne((.4124564*(t=pe(t))+.3575761*(e=pe(e))+.1804375*(r=pe(r)))/Jt),a=ne((.2126729*t+.7151522*e+.072175*r)/Kt);return Xt(116*a-16,500*(n-a),200*(a-ne((.0193339*t+.119192*e+.9503041*r)/Qt)))}function pe(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function de(t){var e=parseFloat(t);return\"%\"===t.charAt(t.length-1)?Math.round(2.55*e):e}le.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,r=this.g,n=this.b,a=30;return e||r||n?(e&&e<a&&(e=a),r&&r<a&&(r=a),n&&n<a&&(n=a),new ie(Math.min(255,e/t),Math.min(255,r/t),Math.min(255,n/t))):new ie(a,a,a)},le.darker=function(t){return new ie((t=Math.pow(.7,arguments.length?t:1))*this.r,t*this.g,t*this.b)},le.hsl=function(){return he(this.r,this.g,this.b)},le.toString=function(){return\"#\"+ce(this.r)+ce(this.g)+ce(this.b)};var ge=t.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});function ve(t){return\"function\"==typeof t?t:function(){return t}}function me(t){return function(e,r,n){return 2===arguments.length&&\"function\"==typeof r&&(n=r,r=null),ye(e,r,t,n)}}function ye(e,r,a,i){var o={},s=t.dispatch(\"beforesend\",\"progress\",\"load\",\"error\"),l={},c=new XMLHttpRequest,u=null;function h(){var t,e=c.status;if(!e&&function(t){var e=t.responseType;return e&&\"text\"!==e?t.response:t.responseText}(c)||e>=200&&e<300||304===e){try{t=a.call(o,c)}catch(t){return void s.error.call(o,t)}s.load.call(o,t)}else s.error.call(o,c)}return!this.XDomainRequest||\"withCredentials\"in c||!/^(http(s)?:)?\\/\\//.test(e)||(c=new XDomainRequest),\"onload\"in c?c.onload=c.onerror=h:c.onreadystatechange=function(){c.readyState>3&&h()},c.onprogress=function(e){var r=t.event;t.event=e;try{s.progress.call(o,c)}finally{t.event=r}},o.header=function(t,e){return t=(t+\"\").toLowerCase(),arguments.length<2?l[t]:(null==e?delete l[t]:l[t]=e+\"\",o)},o.mimeType=function(t){return arguments.length?(r=null==t?null:t+\"\",o):r},o.responseType=function(t){return arguments.length?(u=t,o):u},o.response=function(t){return a=t,o},[\"get\",\"post\"].forEach(function(t){o[t]=function(){return o.send.apply(o,[t].concat(n(arguments)))}}),o.send=function(t,n,a){if(2===arguments.length&&\"function\"==typeof n&&(a=n,n=null),c.open(t,e,!0),null==r||\"accept\"in l||(l.accept=r+\",*/*\"),c.setRequestHeader)for(var i in l)c.setRequestHeader(i,l[i]);return null!=r&&c.overrideMimeType&&c.overrideMimeType(r),null!=u&&(c.responseType=u),null!=a&&o.on(\"error\",a).on(\"load\",function(t){a(null,t)}),s.beforesend.call(o,c),c.send(null==n?null:n),o},o.abort=function(){return c.abort(),o},t.rebind(o,s,\"on\"),null==i?o:o.get(function(t){return 1===t.length?function(e,r){t(null==e?r:null)}:t}(i))}ge.forEach(function(t,e){ge.set(t,oe(e))}),t.functor=ve,t.xhr=me(P),t.dsv=function(t,e){var r=new RegExp('[\"'+t+\"\\n]\"),n=t.charCodeAt(0);function a(t,r,n){arguments.length<3&&(n=r,r=null);var a=ye(t,e,null==r?i:o(r),n);return a.row=function(t){return arguments.length?a.response(null==(r=t)?i:o(t)):r},a}function i(t){return a.parse(t.responseText)}function o(t){return function(e){return a.parse(e.responseText,t)}}function s(e){return e.map(l).join(t)}function l(t){return r.test(t)?'\"'+t.replace(/\\\"/g,'\"\"')+'\"':t}return a.parse=function(t,e){var r;return a.parseRows(t,function(t,n){if(r)return r(t,n-1);var a=new Function(\"d\",\"return {\"+t.map(function(t,e){return JSON.stringify(t)+\": d[\"+e+\"]\"}).join(\",\")+\"}\");r=e?function(t,r){return e(a(t),r)}:a})},a.parseRows=function(t,e){var r,a,i={},o={},s=[],l=t.length,c=0,u=0;function h(){if(c>=l)return o;if(a)return a=!1,i;var e=c;if(34===t.charCodeAt(e)){for(var r=e;r++<l;)if(34===t.charCodeAt(r)){if(34!==t.charCodeAt(r+1))break;++r}return c=r+2,13===(s=t.charCodeAt(r+1))?(a=!0,10===t.charCodeAt(r+2)&&++c):10===s&&(a=!0),t.slice(e+1,r).replace(/\"\"/g,'\"')}for(;c<l;){var s,u=1;if(10===(s=t.charCodeAt(c++)))a=!0;else if(13===s)a=!0,10===t.charCodeAt(c)&&(++c,++u);else if(s!==n)continue;return t.slice(e,c-u)}return t.slice(e)}for(;(r=h())!==o;){for(var f=[];r!==i&&r!==o;)f.push(r),r=h();e&&null==(f=e(f,u++))||s.push(f)}return s},a.format=function(e){if(Array.isArray(e[0]))return a.formatRows(e);var r=new L,n=[];return e.forEach(function(t){for(var e in t)r.has(e)||n.push(r.add(e))}),[n.map(l).join(t)].concat(e.map(function(e){return n.map(function(t){return l(e[t])}).join(t)})).join(\"\\n\")},a.formatRows=function(t){return t.map(s).join(\"\\n\")},a},t.csv=t.dsv(\",\",\"text/csv\"),t.tsv=t.dsv(\"\\t\",\"text/tab-separated-values\");var xe,be,_e,we,ke=this[z(this,\"requestAnimationFrame\")]||function(t){setTimeout(t,17)};function Te(t,e,r){var n=arguments.length;n<2&&(e=0),n<3&&(r=Date.now());var a={c:t,t:r+e,n:null};return be?be.n=a:xe=a,be=a,_e||(we=clearTimeout(we),_e=1,ke(Ae)),a}function Ae(){var t=Me(),e=Se()-t;e>24?(isFinite(e)&&(clearTimeout(we),we=setTimeout(Ae,e)),_e=0):(_e=1,ke(Ae))}function Me(){for(var t=Date.now(),e=xe;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Se(){for(var t,e=xe,r=1/0;e;)e.c?(e.t<r&&(r=e.t),e=(t=e).n):e=t?t.n=e.n:xe=e.n;return be=t,r}function Ee(t,e){return e-(t?Math.ceil(Math.log(t)/Math.LN10):1)}t.timer=function(){Te.apply(this,arguments)},t.timer.flush=function(){Me(),Se()},t.round=function(t,e){return e?Math.round(t*(e=Math.pow(10,e)))/e:Math.round(t)};var Ce=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"\\xb5\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"].map(function(t,e){var r=Math.pow(10,3*y(8-e));return{scale:e>8?function(t){return t/r}:function(t){return t*r},symbol:t}});t.formatPrefix=function(e,r){var n=0;return(e=+e)&&(e<0&&(e*=-1),r&&(e=t.round(e,Ee(e,r))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),Ce[8+n/3]};var Le=/(?:([^{])?([<>=^]))?([+\\- ])?([$#])?(0)?(\\d+)?(,)?(\\.-?\\d+)?([a-z%])?/i,Pe=t.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(e,r){return(e=t.round(e,Ee(e,r))).toFixed(Math.max(0,Math.min(20,Ee(e*(1+1e-15),r))))}});function Oe(t){return t+\"\"}var ze=t.time={},Ie=Date;function De(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}De.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){Re.setUTCDate.apply(this._,arguments)},setDay:function(){Re.setUTCDay.apply(this._,arguments)},setFullYear:function(){Re.setUTCFullYear.apply(this._,arguments)},setHours:function(){Re.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){Re.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){Re.setUTCMinutes.apply(this._,arguments)},setMonth:function(){Re.setUTCMonth.apply(this._,arguments)},setSeconds:function(){Re.setUTCSeconds.apply(this._,arguments)},setTime:function(){Re.setTime.apply(this._,arguments)}};var Re=Date.prototype;function Fe(t,e,r){function n(e){var r=t(e),n=i(r,1);return e-r<n-e?r:n}function a(r){return e(r=t(new Ie(r-1)),1),r}function i(t,r){return e(t=new Ie(+t),r),t}function o(t,n,i){var o=a(t),s=[];if(i>1)for(;o<n;)r(o)%i||s.push(new Date(+o)),e(o,1);else for(;o<n;)s.push(new Date(+o)),e(o,1);return s}t.floor=t,t.round=n,t.ceil=a,t.offset=i,t.range=o;var s=t.utc=Be(t);return s.floor=s,s.round=Be(n),s.ceil=Be(a),s.offset=Be(i),s.range=function(t,e,r){try{Ie=De;var n=new De;return n._=t,o(n,e,r)}finally{Ie=Date}},t}function Be(t){return function(e,r){try{Ie=De;var n=new De;return n._=e,t(n,r)._}finally{Ie=Date}}}ze.year=Fe(function(t){return(t=ze.day(t)).setMonth(0,1),t},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t){return t.getFullYear()}),ze.years=ze.year.range,ze.years.utc=ze.year.utc.range,ze.day=Fe(function(t){var e=new Ie(2e3,0);return e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),e},function(t,e){t.setDate(t.getDate()+e)},function(t){return t.getDate()-1}),ze.days=ze.day.range,ze.days.utc=ze.day.utc.range,ze.dayOfYear=function(t){var e=ze.year(t);return Math.floor((t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5)},[\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"].forEach(function(t,e){e=7-e;var r=ze[t]=Fe(function(t){return(t=ze.day(t)).setDate(t.getDate()-(t.getDay()+e)%7),t},function(t,e){t.setDate(t.getDate()+7*Math.floor(e))},function(t){var r=ze.year(t).getDay();return Math.floor((ze.dayOfYear(t)+(r+e)%7)/7)-(r!==e)});ze[t+\"s\"]=r.range,ze[t+\"s\"].utc=r.utc.range,ze[t+\"OfYear\"]=function(t){var r=ze.year(t).getDay();return Math.floor((ze.dayOfYear(t)+(r+e)%7)/7)}}),ze.week=ze.sunday,ze.weeks=ze.sunday.range,ze.weeks.utc=ze.sunday.utc.range,ze.weekOfYear=ze.sundayOfYear;var Ne={\"-\":\"\",_:\" \",0:\"0\"},je=/^\\s*\\d+/,Ve=/^%/;function Ue(t,e,r){var n=t<0?\"-\":\"\",a=(n?-t:t)+\"\",i=a.length;return n+(i<r?new Array(r-i+1).join(e)+a:a)}function qe(e){return new RegExp(\"^(?:\"+e.map(t.requote).join(\"|\")+\")\",\"i\")}function He(t){for(var e=new b,r=-1,n=t.length;++r<n;)e.set(t[r].toLowerCase(),r);return e}function Ge(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function Ye(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r));return n?(t.U=+n[0],r+n[0].length):-1}function We(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r));return n?(t.W=+n[0],r+n[0].length):-1}function Xe(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function Ze(t,e,r){je.lastIndex=0;var n,a=je.exec(e.slice(r,r+2));return a?(t.y=(n=+a[0])+(n>68?1900:2e3),r+a[0].length):-1}function Je(t,e,r){return/^[+-]\\d{4}$/.test(e=e.slice(r,r+5))?(t.Z=-e,r+5):-1}function Ke(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Qe(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function $e(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.j=+n[0],r+n[0].length):-1}function tr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function er(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function rr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function nr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function ar(t){var e=t.getTimezoneOffset(),r=e>0?\"-\":\"+\",n=y(e)/60|0,a=y(e)%60;return r+Ue(n,\"0\",2)+Ue(a,\"0\",2)}function ir(t,e,r){Ve.lastIndex=0;var n=Ve.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function or(t){for(var e=t.length,r=-1;++r<e;)t[r][0]=this(t[r][0]);return function(e){for(var r=0,n=t[r];!n[1](e);)n=t[++r];return n[0](e)}}t.locale=function(e){return{numberFormat:function(e){var r=e.decimal,n=e.thousands,a=e.grouping,i=e.currency,o=a&&n?function(t,e){for(var r=t.length,i=[],o=0,s=a[0],l=0;r>0&&s>0&&(l+s+1>e&&(s=Math.max(1,e-l)),i.push(t.substring(r-=s,r+s)),!((l+=s+1)>e));)s=a[o=(o+1)%a.length];return i.reverse().join(n)}:P;return function(e){var n=Le.exec(e),a=n[1]||\" \",s=n[2]||\">\",l=n[3]||\"-\",c=n[4]||\"\",u=n[5],h=+n[6],f=n[7],p=n[8],d=n[9],g=1,v=\"\",m=\"\",y=!1,x=!0;switch(p&&(p=+p.substring(1)),(u||\"0\"===a&&\"=\"===s)&&(u=a=\"0\",s=\"=\"),d){case\"n\":f=!0,d=\"g\";break;case\"%\":g=100,m=\"%\",d=\"f\";break;case\"p\":g=100,m=\"%\",d=\"r\";break;case\"b\":case\"o\":case\"x\":case\"X\":\"#\"===c&&(v=\"0\"+d.toLowerCase());case\"c\":x=!1;case\"d\":y=!0,p=0;break;case\"s\":g=-1,d=\"r\"}\"$\"===c&&(v=i[0],m=i[1]),\"r\"!=d||p||(d=\"g\"),null!=p&&(\"g\"==d?p=Math.max(1,Math.min(21,p)):\"e\"!=d&&\"f\"!=d||(p=Math.max(0,Math.min(20,p)))),d=Pe.get(d)||Oe;var b=u&&f;return function(e){var n=m;if(y&&e%1)return\"\";var i=e<0||0===e&&1/e<0?(e=-e,\"-\"):\"-\"===l?\"\":l;if(g<0){var c=t.formatPrefix(e,p);e=c.scale(e),n=c.symbol+m}else e*=g;var _,w,k=(e=d(e,p)).lastIndexOf(\".\");if(k<0){var T=x?e.lastIndexOf(\"e\"):-1;T<0?(_=e,w=\"\"):(_=e.substring(0,T),w=e.substring(T))}else _=e.substring(0,k),w=r+e.substring(k+1);!u&&f&&(_=o(_,1/0));var A=v.length+_.length+w.length+(b?0:i.length),M=A<h?new Array(A=h-A+1).join(a):\"\";return b&&(_=o(M+_,M.length?h-w.length:1/0)),i+=v,e=_+w,(\"<\"===s?i+e+M:\">\"===s?M+i+e:\"^\"===s?M.substring(0,A>>=1)+i+e+M.substring(A):i+(b?e:M+e))+n}}}(e),timeFormat:function(e){var r=e.dateTime,n=e.date,a=e.time,i=e.periods,o=e.days,s=e.shortDays,l=e.months,c=e.shortMonths;function u(t){var e=t.length;function r(r){for(var n,a,i,o=[],s=-1,l=0;++s<e;)37===t.charCodeAt(s)&&(o.push(t.slice(l,s)),null!=(a=Ne[n=t.charAt(++s)])&&(n=t.charAt(++s)),(i=_[n])&&(n=i(r,null==a?\"e\"===n?\" \":\"0\":a)),o.push(n),l=s+1);return o.push(t.slice(l,s)),o.join(\"\")}return r.parse=function(e){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null};if(h(r,t,e,0)!=e.length)return null;\"p\"in r&&(r.H=r.H%12+12*r.p);var n=null!=r.Z&&Ie!==De,a=new(n?De:Ie);return\"j\"in r?a.setFullYear(r.y,0,r.j):\"W\"in r||\"U\"in r?(\"w\"in r||(r.w=\"W\"in r?1:0),a.setFullYear(r.y,0,1),a.setFullYear(r.y,0,\"W\"in r?(r.w+6)%7+7*r.W-(a.getDay()+5)%7:r.w+7*r.U-(a.getDay()+6)%7)):a.setFullYear(r.y,r.m,r.d),a.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),n?a._:a},r.toString=function(){return t},r}function h(t,e,r,n){for(var a,i,o,s=0,l=e.length,c=r.length;s<l;){if(n>=c)return-1;if(37===(a=e.charCodeAt(s++))){if(o=e.charAt(s++),!(i=w[o in Ne?e.charAt(s++):o])||(n=i(t,r,n))<0)return-1}else if(a!=r.charCodeAt(n++))return-1}return n}u.utc=function(t){var e=u(t);function r(t){try{var r=new(Ie=De);return r._=t,e(r)}finally{Ie=Date}}return r.parse=function(t){try{Ie=De;var r=e.parse(t);return r&&r._}finally{Ie=Date}},r.toString=e.toString,r},u.multi=u.utc.multi=or;var f=t.map(),p=qe(o),d=He(o),g=qe(s),v=He(s),m=qe(l),y=He(l),x=qe(c),b=He(c);i.forEach(function(t,e){f.set(t.toLowerCase(),e)});var _={a:function(t){return s[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return l[t.getMonth()]},c:u(r),d:function(t,e){return Ue(t.getDate(),e,2)},e:function(t,e){return Ue(t.getDate(),e,2)},H:function(t,e){return Ue(t.getHours(),e,2)},I:function(t,e){return Ue(t.getHours()%12||12,e,2)},j:function(t,e){return Ue(1+ze.dayOfYear(t),e,3)},L:function(t,e){return Ue(t.getMilliseconds(),e,3)},m:function(t,e){return Ue(t.getMonth()+1,e,2)},M:function(t,e){return Ue(t.getMinutes(),e,2)},p:function(t){return i[+(t.getHours()>=12)]},S:function(t,e){return Ue(t.getSeconds(),e,2)},U:function(t,e){return Ue(ze.sundayOfYear(t),e,2)},w:function(t){return t.getDay()},W:function(t,e){return Ue(ze.mondayOfYear(t),e,2)},x:u(n),X:u(a),y:function(t,e){return Ue(t.getFullYear()%100,e,2)},Y:function(t,e){return Ue(t.getFullYear()%1e4,e,4)},Z:ar,\"%\":function(){return\"%\"}},w={a:function(t,e,r){g.lastIndex=0;var n=g.exec(e.slice(r));return n?(t.w=v.get(n[0].toLowerCase()),r+n[0].length):-1},A:function(t,e,r){p.lastIndex=0;var n=p.exec(e.slice(r));return n?(t.w=d.get(n[0].toLowerCase()),r+n[0].length):-1},b:function(t,e,r){x.lastIndex=0;var n=x.exec(e.slice(r));return n?(t.m=b.get(n[0].toLowerCase()),r+n[0].length):-1},B:function(t,e,r){m.lastIndex=0;var n=m.exec(e.slice(r));return n?(t.m=y.get(n[0].toLowerCase()),r+n[0].length):-1},c:function(t,e,r){return h(t,_.c.toString(),e,r)},d:Qe,e:Qe,H:tr,I:tr,j:$e,L:nr,m:Ke,M:er,p:function(t,e,r){var n=f.get(e.slice(r,r+=2).toLowerCase());return null==n?-1:(t.p=n,r)},S:rr,U:Ye,w:Ge,W:We,x:function(t,e,r){return h(t,_.x.toString(),e,r)},X:function(t,e,r){return h(t,_.X.toString(),e,r)},y:Ze,Y:Xe,Z:Je,\"%\":ir};return u}(e)}};var sr=t.locale({decimal:\".\",thousands:\",\",grouping:[3],currency:[\"$\",\"\"],dateTime:\"%a %b %e %X %Y\",date:\"%m/%d/%Y\",time:\"%H:%M:%S\",periods:[\"AM\",\"PM\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]});function lr(){}t.format=sr.numberFormat,t.geo={},lr.prototype={s:0,t:0,add:function(t){ur(t,this.t,cr),ur(cr.s,this.s,this),this.s?this.t+=cr.t:this.s=cr.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var cr=new lr;function ur(t,e,r){var n=r.s=t+e,a=n-t,i=n-a;r.t=t-i+(e-a)}function hr(t,e){t&&pr.hasOwnProperty(t.type)&&pr[t.type](t,e)}t.geo.stream=function(t,e){t&&fr.hasOwnProperty(t.type)?fr[t.type](t,e):hr(t,e)};var fr={Feature:function(t,e){hr(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,a=r.length;++n<a;)hr(r[n].geometry,e)}},pr={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var r=t.coordinates,n=-1,a=r.length;++n<a;)t=r[n],e.point(t[0],t[1],t[2])},LineString:function(t,e){dr(t.coordinates,e,0)},MultiLineString:function(t,e){for(var r=t.coordinates,n=-1,a=r.length;++n<a;)dr(r[n],e,0)},Polygon:function(t,e){gr(t.coordinates,e)},MultiPolygon:function(t,e){for(var r=t.coordinates,n=-1,a=r.length;++n<a;)gr(r[n],e)},GeometryCollection:function(t,e){for(var r=t.geometries,n=-1,a=r.length;++n<a;)hr(r[n],e)}};function dr(t,e,r){var n,a=-1,i=t.length-r;for(e.lineStart();++a<i;)n=t[a],e.point(n[0],n[1],n[2]);e.lineEnd()}function gr(t,e){var r=-1,n=t.length;for(e.polygonStart();++r<n;)dr(t[r],e,1);e.polygonEnd()}t.geo.area=function(e){return vr=0,t.geo.stream(e,Cr),vr};var vr,mr,yr,xr,br,_r,wr,kr,Tr,Ar,Mr,Sr,Er=new lr,Cr={sphere:function(){vr+=4*At},point:D,lineStart:D,lineEnd:D,polygonStart:function(){Er.reset(),Cr.lineStart=Lr},polygonEnd:function(){var t=2*Er;vr+=t<0?4*At+t:t,Cr.lineStart=Cr.lineEnd=Cr.point=D}};function Lr(){var t,e,r,n,a;function i(t,e){e=e*Ct/2+At/4;var i=(t*=Ct)-r,o=i>=0?1:-1,s=o*i,l=Math.cos(e),c=Math.sin(e),u=a*c,h=n*l+u*Math.cos(s),f=u*o*Math.sin(s);Er.add(Math.atan2(f,h)),r=t,n=l,a=c}Cr.point=function(o,s){Cr.point=i,r=(t=o)*Ct,n=Math.cos(s=(e=s)*Ct/2+At/4),a=Math.sin(s)},Cr.lineEnd=function(){i(t,e)}}function Pr(t){var e=t[0],r=t[1],n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}function Or(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function zr(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Ir(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Dr(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function Rr(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}function Fr(t){return[Math.atan2(t[1],t[0]),It(t[2])]}function Br(t,e){return y(t[0]-e[0])<kt&&y(t[1]-e[1])<kt}t.geo.bounds=function(){var e,r,n,a,i,o,s,l,c,u,h,f={point:p,lineStart:g,lineEnd:v,polygonStart:function(){f.point=m,f.lineStart=x,f.lineEnd=b,c=0,Cr.polygonStart()},polygonEnd:function(){Cr.polygonEnd(),f.point=p,f.lineStart=g,f.lineEnd=v,Er<0?(e=-(n=180),r=-(a=90)):c>kt?a=90:c<-kt&&(r=-90),h[0]=e,h[1]=n}};function p(t,i){u.push(h=[e=t,n=t]),i<r&&(r=i),i>a&&(a=i)}function d(t,o){var s=Pr([t*Ct,o*Ct]);if(l){var c=zr(l,s),u=zr([c[1],-c[0],0],c);Rr(u),u=Fr(u);var h=t-i,f=h>0?1:-1,d=u[0]*Lt*f,g=y(h)>180;if(g^(f*i<d&&d<f*t))(v=u[1]*Lt)>a&&(a=v);else if(g^(f*i<(d=(d+360)%360-180)&&d<f*t)){var v;(v=-u[1]*Lt)<r&&(r=v)}else o<r&&(r=o),o>a&&(a=o);g?t<i?_(e,t)>_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t):n>=e?(t<e&&(e=t),t>n&&(n=t)):t>i?_(e,t)>_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t)}else p(t,o);l=s,i=t}function g(){f.point=d}function v(){h[0]=e,h[1]=n,f.point=p,l=null}function m(t,e){if(l){var r=t-i;c+=y(r)>180?r+(r>0?360:-360):r}else o=t,s=e;Cr.point(t,e),d(t,e)}function x(){Cr.lineStart()}function b(){m(o,s),Cr.lineEnd(),y(c)>kt&&(e=-(n=180)),h[0]=e,h[1]=n,l=null}function _(t,e){return(e-=t)<0?e+360:e}function w(t,e){return t[0]-e[0]}function k(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}return function(i){if(a=n=-(e=r=1/0),u=[],t.geo.stream(i,f),c=u.length){u.sort(w);for(var o=1,s=[g=u[0]];o<c;++o)k((p=u[o])[0],g)||k(p[1],g)?(_(g[0],p[1])>_(g[0],g[1])&&(g[1]=p[1]),_(p[0],g[1])>_(g[0],g[1])&&(g[0]=p[0])):s.push(g=p);for(var l,c,p,d=-1/0,g=(o=0,s[c=s.length-1]);o<=c;g=p,++o)p=s[o],(l=_(g[1],p[0]))>d&&(d=l,e=p[0],n=g[1])}return u=h=null,e===1/0||r===1/0?[[NaN,NaN],[NaN,NaN]]:[[e,r],[n,a]]}}(),t.geo.centroid=function(e){mr=yr=xr=br=_r=wr=kr=Tr=Ar=Mr=Sr=0,t.geo.stream(e,Nr);var r=Ar,n=Mr,a=Sr,i=r*r+n*n+a*a;return i<Tt&&(r=wr,n=kr,a=Tr,yr<kt&&(r=xr,n=br,a=_r),(i=r*r+n*n+a*a)<Tt)?[NaN,NaN]:[Math.atan2(n,r)*Lt,It(a/Math.sqrt(i))*Lt]};var Nr={sphere:D,point:jr,lineStart:Ur,lineEnd:qr,polygonStart:function(){Nr.lineStart=Hr},polygonEnd:function(){Nr.lineStart=Ur}};function jr(t,e){t*=Ct;var r=Math.cos(e*=Ct);Vr(r*Math.cos(t),r*Math.sin(t),Math.sin(e))}function Vr(t,e,r){xr+=(t-xr)/++mr,br+=(e-br)/mr,_r+=(r-_r)/mr}function Ur(){var t,e,r;function n(n,a){n*=Ct;var i=Math.cos(a*=Ct),o=i*Math.cos(n),s=i*Math.sin(n),l=Math.sin(a),c=Math.atan2(Math.sqrt((c=e*l-r*s)*c+(c=r*o-t*l)*c+(c=t*s-e*o)*c),t*o+e*s+r*l);yr+=c,wr+=c*(t+(t=o)),kr+=c*(e+(e=s)),Tr+=c*(r+(r=l)),Vr(t,e,r)}Nr.point=function(a,i){a*=Ct;var o=Math.cos(i*=Ct);t=o*Math.cos(a),e=o*Math.sin(a),r=Math.sin(i),Nr.point=n,Vr(t,e,r)}}function qr(){Nr.point=jr}function Hr(){var t,e,r,n,a;function i(t,e){t*=Ct;var i=Math.cos(e*=Ct),o=i*Math.cos(t),s=i*Math.sin(t),l=Math.sin(e),c=n*l-a*s,u=a*o-r*l,h=r*s-n*o,f=Math.sqrt(c*c+u*u+h*h),p=r*o+n*s+a*l,d=f&&-zt(p)/f,g=Math.atan2(f,p);Ar+=d*c,Mr+=d*u,Sr+=d*h,yr+=g,wr+=g*(r+(r=o)),kr+=g*(n+(n=s)),Tr+=g*(a+(a=l)),Vr(r,n,a)}Nr.point=function(o,s){t=o,e=s,Nr.point=i,o*=Ct;var l=Math.cos(s*=Ct);r=l*Math.cos(o),n=l*Math.sin(o),a=Math.sin(s),Vr(r,n,a)},Nr.lineEnd=function(){i(t,e),Nr.lineEnd=qr,Nr.point=jr}}function Gr(t,e){function r(r,n){return r=t(r,n),e(r[0],r[1])}return t.invert&&e.invert&&(r.invert=function(r,n){return(r=e.invert(r,n))&&t.invert(r[0],r[1])}),r}function Yr(){return!0}function Wr(t,e,r,n,a){var i=[],o=[];if(t.forEach(function(t){if(!((e=t.length-1)<=0)){var e,r=t[0],n=t[e];if(Br(r,n)){a.lineStart();for(var s=0;s<e;++s)a.point((r=t[s])[0],r[1]);a.lineEnd()}else{var l=new Zr(r,t,null,!0),c=new Zr(r,null,l,!1);l.o=c,i.push(l),o.push(c),l=new Zr(n,t,null,!1),c=new Zr(n,null,l,!0),l.o=c,i.push(l),o.push(c)}}}),o.sort(e),Xr(i),Xr(o),i.length){for(var s=0,l=r,c=o.length;s<c;++s)o[s].e=l=!l;for(var u,h,f=i[0];;){for(var p=f,d=!0;p.v;)if((p=p.n)===f)return;u=p.z,a.lineStart();do{if(p.v=p.o.v=!0,p.e){if(d)for(s=0,c=u.length;s<c;++s)a.point((h=u[s])[0],h[1]);else n(p.x,p.n.x,1,a);p=p.n}else{if(d)for(s=(u=p.p.z).length-1;s>=0;--s)a.point((h=u[s])[0],h[1]);else n(p.x,p.p.x,-1,a);p=p.p}u=(p=p.o).z,d=!d}while(!p.v);a.lineEnd()}}}function Xr(t){if(e=t.length){for(var e,r,n=0,a=t[0];++n<e;)a.n=r=t[n],r.p=a,a=r;a.n=r=t[0],r.p=a}}function Zr(t,e,r,n){this.x=t,this.z=e,this.o=r,this.e=n,this.v=!1,this.n=this.p=null}function Jr(e,r,n,a){return function(i,o){var s,l=r(o),c=i.invert(a[0],a[1]),u={point:h,lineStart:p,lineEnd:d,polygonStart:function(){u.point=b,u.lineStart=_,u.lineEnd=w,s=[],g=[]},polygonEnd:function(){u.point=h,u.lineStart=p,u.lineEnd=d,s=t.merge(s);var e=function(t,e){var r=t[0],n=t[1],a=[Math.sin(r),-Math.cos(r),0],i=0,o=0;Er.reset();for(var s=0,l=e.length;s<l;++s){var c=e[s],u=c.length;if(u)for(var h=c[0],f=h[0],p=h[1]/2+At/4,d=Math.sin(p),g=Math.cos(p),v=1;;){v===u&&(v=0);var m=(t=c[v])[0],y=t[1]/2+At/4,x=Math.sin(y),b=Math.cos(y),_=m-f,w=_>=0?1:-1,k=w*_,T=k>At,A=d*x;if(Er.add(Math.atan2(A*w*Math.sin(k),g*b+A*Math.cos(k))),i+=T?_+w*Mt:_,T^f>=r^m>=r){var M=zr(Pr(h),Pr(t));Rr(M);var S=zr(a,M);Rr(S);var E=(T^_>=0?-1:1)*It(S[2]);(n>E||n===E&&(M[0]||M[1]))&&(o+=T^_>=0?1:-1)}if(!v++)break;f=m,d=x,g=b,h=t}}return(i<-kt||i<kt&&Er<-kt)^1&o}(c,g);s.length?(x||(o.polygonStart(),x=!0),Wr(s,$r,e,n,o)):e&&(x||(o.polygonStart(),x=!0),o.lineStart(),n(null,null,1,o),o.lineEnd()),x&&(o.polygonEnd(),x=!1),s=g=null},sphere:function(){o.polygonStart(),o.lineStart(),n(null,null,1,o),o.lineEnd(),o.polygonEnd()}};function h(t,r){var n=i(t,r);e(t=n[0],r=n[1])&&o.point(t,r)}function f(t,e){var r=i(t,e);l.point(r[0],r[1])}function p(){u.point=f,l.lineStart()}function d(){u.point=h,l.lineEnd()}var g,v,m=Qr(),y=r(m),x=!1;function b(t,e){v.push([t,e]);var r=i(t,e);y.point(r[0],r[1])}function _(){y.lineStart(),v=[]}function w(){b(v[0][0],v[0][1]),y.lineEnd();var t,e=y.clean(),r=m.buffer(),n=r.length;if(v.pop(),g.push(v),v=null,n)if(1&e){var a,i=-1;if((n=(t=r[0]).length-1)>0){for(x||(o.polygonStart(),x=!0),o.lineStart();++i<n;)o.point((a=t[i])[0],a[1]);o.lineEnd()}}else n>1&&2&e&&r.push(r.pop().concat(r.shift())),s.push(r.filter(Kr))}return u}}function Kr(t){return t.length>1}function Qr(){var t,e=[];return{lineStart:function(){e.push(t=[])},point:function(e,r){t.push([e,r])},lineEnd:D,buffer:function(){var r=e;return e=[],t=null,r},rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))}}}function $r(t,e){return((t=t.x)[0]<0?t[1]-Et-kt:Et-t[1])-((e=e.x)[0]<0?e[1]-Et-kt:Et-e[1])}var tn=Jr(Yr,function(t){var e,r=NaN,n=NaN,a=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(i,o){var s=i>0?At:-At,l=y(i-r);y(l-At)<kt?(t.point(r,n=(n+o)/2>0?Et:-Et),t.point(a,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(i,n),e=0):a!==s&&l>=At&&(y(r-a)<kt&&(r-=a*kt),y(i-s)<kt&&(i-=s*kt),n=function(t,e,r,n){var a,i,o=Math.sin(t-r);return y(o)>kt?Math.atan((Math.sin(e)*(i=Math.cos(n))*Math.sin(r)-Math.sin(n)*(a=Math.cos(e))*Math.sin(t))/(a*i*o)):(e+n)/2}(r,n,i,o),t.point(a,n),t.lineEnd(),t.lineStart(),t.point(s,n),e=0),t.point(r=i,n=o),a=s},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}},function(t,e,r,n){var a;if(null==t)a=r*Et,n.point(-At,a),n.point(0,a),n.point(At,a),n.point(At,0),n.point(At,-a),n.point(0,-a),n.point(-At,-a),n.point(-At,0),n.point(-At,a);else if(y(t[0]-e[0])>kt){var i=t[0]<e[0]?At:-At;a=r*i/2,n.point(-i,a),n.point(0,a),n.point(i,a)}else n.point(e[0],e[1])},[-At,-At/2]);function en(t,e,r,n){return function(a){var i,o=a.a,s=a.b,l=o.x,c=o.y,u=0,h=1,f=s.x-l,p=s.y-c;if(i=t-l,f||!(i>0)){if(i/=f,f<0){if(i<u)return;i<h&&(h=i)}else if(f>0){if(i>h)return;i>u&&(u=i)}if(i=r-l,f||!(i<0)){if(i/=f,f<0){if(i>h)return;i>u&&(u=i)}else if(f>0){if(i<u)return;i<h&&(h=i)}if(i=e-c,p||!(i>0)){if(i/=p,p<0){if(i<u)return;i<h&&(h=i)}else if(p>0){if(i>h)return;i>u&&(u=i)}if(i=n-c,p||!(i<0)){if(i/=p,p<0){if(i>h)return;i>u&&(u=i)}else if(p>0){if(i<u)return;i<h&&(h=i)}return u>0&&(a.a={x:l+u*f,y:c+u*p}),h<1&&(a.b={x:l+h*f,y:c+h*p}),a}}}}}}var rn=1e9;function nn(e,r,n,a){return function(l){var c,u,h,f,p,d,g,v,m,y,x,b=l,_=Qr(),w=en(e,r,n,a),k={point:M,lineStart:function(){k.point=S,u&&u.push(h=[]);y=!0,m=!1,g=v=NaN},lineEnd:function(){c&&(S(f,p),d&&m&&_.rejoin(),c.push(_.buffer()));k.point=M,m&&l.lineEnd()},polygonStart:function(){l=_,c=[],u=[],x=!0},polygonEnd:function(){l=b,c=t.merge(c);var r=function(t){for(var e=0,r=u.length,n=t[1],a=0;a<r;++a)for(var i,o=1,s=u[a],l=s.length,c=s[0];o<l;++o)i=s[o],c[1]<=n?i[1]>n&&Ot(c,i,t)>0&&++e:i[1]<=n&&Ot(c,i,t)<0&&--e,c=i;return 0!==e}([e,a]),n=x&&r,i=c.length;(n||i)&&(l.polygonStart(),n&&(l.lineStart(),T(null,null,1,l),l.lineEnd()),i&&Wr(c,o,r,T,l),l.polygonEnd()),c=u=h=null}};function T(t,o,l,c){var u=0,h=0;if(null==t||(u=i(t,l))!==(h=i(o,l))||s(t,o)<0^l>0)do{c.point(0===u||3===u?e:n,u>1?a:r)}while((u=(u+l+4)%4)!==h);else c.point(o[0],o[1])}function A(t,i){return e<=t&&t<=n&&r<=i&&i<=a}function M(t,e){A(t,e)&&l.point(t,e)}function S(t,e){var r=A(t=Math.max(-rn,Math.min(rn,t)),e=Math.max(-rn,Math.min(rn,e)));if(u&&h.push([t,e]),y)f=t,p=e,d=r,y=!1,r&&(l.lineStart(),l.point(t,e));else if(r&&m)l.point(t,e);else{var n={a:{x:g,y:v},b:{x:t,y:e}};w(n)?(m||(l.lineStart(),l.point(n.a.x,n.a.y)),l.point(n.b.x,n.b.y),r||l.lineEnd(),x=!1):r&&(l.lineStart(),l.point(t,e),x=!1)}g=t,v=e,m=r}return k};function i(t,a){return y(t[0]-e)<kt?a>0?0:3:y(t[0]-n)<kt?a>0?2:1:y(t[1]-r)<kt?a>0?1:0:a>0?3:2}function o(t,e){return s(t.x,e.x)}function s(t,e){var r=i(t,1),n=i(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}}function an(t){var e=0,r=At/3,n=Cn(t),a=n(e,r);return a.parallels=function(t){return arguments.length?n(e=t[0]*At/180,r=t[1]*At/180):[e/At*180,r/At*180]},a}function on(t,e){var r=Math.sin(t),n=(r+Math.sin(e))/2,a=1+r*(2*n-r),i=Math.sqrt(a)/n;function o(t,e){var r=Math.sqrt(a-2*n*Math.sin(e))/n;return[r*Math.sin(t*=n),i-r*Math.cos(t)]}return o.invert=function(t,e){var r=i-e;return[Math.atan2(t,r)/n,It((a-(t*t+r*r)*n*n)/(2*n))]},o}t.geo.clipExtent=function(){var t,e,r,n,a,i,o={stream:function(t){return a&&(a.valid=!1),(a=i(t)).valid=!0,a},extent:function(s){return arguments.length?(i=nn(t=+s[0][0],e=+s[0][1],r=+s[1][0],n=+s[1][1]),a&&(a.valid=!1,a=null),o):[[t,e],[r,n]]}};return o.extent([[0,0],[960,500]])},(t.geo.conicEqualArea=function(){return an(on)}).raw=on,t.geo.albers=function(){return t.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},t.geo.albersUsa=function(){var e,r,n,a,i=t.geo.albers(),o=t.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=t.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,r){e=[t,r]}};function c(t){var i=t[0],o=t[1];return e=null,r(i,o),e||(n(i,o),e)||a(i,o),e}return c.invert=function(t){var e=i.scale(),r=i.translate(),n=(t[0]-r[0])/e,a=(t[1]-r[1])/e;return(a>=.12&&a<.234&&n>=-.425&&n<-.214?o:a>=.166&&a<.234&&n>=-.214&&n<-.115?s:i).invert(t)},c.stream=function(t){var e=i.stream(t),r=o.stream(t),n=s.stream(t);return{point:function(t,a){e.point(t,a),r.point(t,a),n.point(t,a)},sphere:function(){e.sphere(),r.sphere(),n.sphere()},lineStart:function(){e.lineStart(),r.lineStart(),n.lineStart()},lineEnd:function(){e.lineEnd(),r.lineEnd(),n.lineEnd()},polygonStart:function(){e.polygonStart(),r.polygonStart(),n.polygonStart()},polygonEnd:function(){e.polygonEnd(),r.polygonEnd(),n.polygonEnd()}}},c.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),s.precision(t),c):i.precision()},c.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),s.scale(t),c.translate(i.translate())):i.scale()},c.translate=function(t){if(!arguments.length)return i.translate();var e=i.scale(),u=+t[0],h=+t[1];return r=i.translate(t).clipExtent([[u-.455*e,h-.238*e],[u+.455*e,h+.238*e]]).stream(l).point,n=o.translate([u-.307*e,h+.201*e]).clipExtent([[u-.425*e+kt,h+.12*e+kt],[u-.214*e-kt,h+.234*e-kt]]).stream(l).point,a=s.translate([u-.205*e,h+.212*e]).clipExtent([[u-.214*e+kt,h+.166*e+kt],[u-.115*e-kt,h+.234*e-kt]]).stream(l).point,c},c.scale(1070)};var sn,ln,cn,un,hn,fn,pn={point:D,lineStart:D,lineEnd:D,polygonStart:function(){ln=0,pn.lineStart=dn},polygonEnd:function(){pn.lineStart=pn.lineEnd=pn.point=D,sn+=y(ln/2)}};function dn(){var t,e,r,n;function a(t,e){ln+=n*t-r*e,r=t,n=e}pn.point=function(i,o){pn.point=a,t=r=i,e=n=o},pn.lineEnd=function(){a(t,e)}}var gn={point:function(t,e){t<cn&&(cn=t);t>hn&&(hn=t);e<un&&(un=e);e>fn&&(fn=e)},lineStart:D,lineEnd:D,polygonStart:D,polygonEnd:D};function vn(){var t=mn(4.5),e=[],r={point:n,lineStart:function(){r.point=a},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(e){return t=mn(e),r},result:function(){if(e.length){var t=e.join(\"\");return e=[],t}}};function n(r,n){e.push(\"M\",r,\",\",n,t)}function a(t,n){e.push(\"M\",t,\",\",n),r.point=i}function i(t,r){e.push(\"L\",t,\",\",r)}function o(){r.point=n}function s(){e.push(\"Z\")}return r}function mn(t){return\"m0,\"+t+\"a\"+t+\",\"+t+\" 0 1,1 0,\"+-2*t+\"a\"+t+\",\"+t+\" 0 1,1 0,\"+2*t+\"z\"}var yn,xn={point:bn,lineStart:_n,lineEnd:wn,polygonStart:function(){xn.lineStart=kn},polygonEnd:function(){xn.point=bn,xn.lineStart=_n,xn.lineEnd=wn}};function bn(t,e){xr+=t,br+=e,++_r}function _n(){var t,e;function r(r,n){var a=r-t,i=n-e,o=Math.sqrt(a*a+i*i);wr+=o*(t+r)/2,kr+=o*(e+n)/2,Tr+=o,bn(t=r,e=n)}xn.point=function(n,a){xn.point=r,bn(t=n,e=a)}}function wn(){xn.point=bn}function kn(){var t,e,r,n;function a(t,e){var a=t-r,i=e-n,o=Math.sqrt(a*a+i*i);wr+=o*(r+t)/2,kr+=o*(n+e)/2,Tr+=o,Ar+=(o=n*t-r*e)*(r+t),Mr+=o*(n+e),Sr+=3*o,bn(r=t,n=e)}xn.point=function(i,o){xn.point=a,bn(t=r=i,e=n=o)},xn.lineEnd=function(){a(t,e)}}function Tn(t){var e=4.5,r={point:n,lineStart:function(){r.point=a},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(t){return e=t,r},result:D};function n(r,n){t.moveTo(r+e,n),t.arc(r,n,e,0,Mt)}function a(e,n){t.moveTo(e,n),r.point=i}function i(e,r){t.lineTo(e,r)}function o(){r.point=n}function s(){t.closePath()}return r}function An(t){var e=.5,r=Math.cos(30*Ct),n=16;function a(e){return(n?function(e){var r,a,o,s,l,c,u,h,f,p,d,g,v={point:m,lineStart:y,lineEnd:b,polygonStart:function(){e.polygonStart(),v.lineStart=_},polygonEnd:function(){e.polygonEnd(),v.lineStart=y}};function m(r,n){r=t(r,n),e.point(r[0],r[1])}function y(){h=NaN,v.point=x,e.lineStart()}function x(r,a){var o=Pr([r,a]),s=t(r,a);i(h,f,u,p,d,g,h=s[0],f=s[1],u=r,p=o[0],d=o[1],g=o[2],n,e),e.point(h,f)}function b(){v.point=m,e.lineEnd()}function _(){y(),v.point=w,v.lineEnd=k}function w(t,e){x(r=t,e),a=h,o=f,s=p,l=d,c=g,v.point=x}function k(){i(h,f,u,p,d,g,a,o,r,s,l,c,n,e),v.lineEnd=b,b()}return v}:function(e){return Sn(e,function(r,n){r=t(r,n),e.point(r[0],r[1])})})(e)}function i(n,a,o,s,l,c,u,h,f,p,d,g,v,m){var x=u-n,b=h-a,_=x*x+b*b;if(_>4*e&&v--){var w=s+p,k=l+d,T=c+g,A=Math.sqrt(w*w+k*k+T*T),M=Math.asin(T/=A),S=y(y(T)-1)<kt||y(o-f)<kt?(o+f)/2:Math.atan2(k,w),E=t(S,M),C=E[0],L=E[1],P=C-n,O=L-a,z=b*P-x*O;(z*z/_>e||y((x*P+b*O)/_-.5)>.3||s*p+l*d+c*g<r)&&(i(n,a,o,s,l,c,C,L,S,w/=A,k/=A,T,v,m),m.point(C,L),i(C,L,S,w,k,T,u,h,f,p,d,g,v,m))}}return a.precision=function(t){return arguments.length?(n=(e=t*t)>0&&16,a):Math.sqrt(e)},a}function Mn(t){this.stream=t}function Sn(t,e){return{point:e,sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function En(t){return Cn(function(){return t})()}function Cn(e){var r,n,a,i,o,s,l=An(function(t,e){return[(t=r(t,e))[0]*c+i,o-t[1]*c]}),c=150,u=480,h=250,f=0,p=0,d=0,g=0,v=0,m=tn,x=P,b=null,_=null;function w(t){return[(t=a(t[0]*Ct,t[1]*Ct))[0]*c+i,o-t[1]*c]}function k(t){return(t=a.invert((t[0]-i)/c,(o-t[1])/c))&&[t[0]*Lt,t[1]*Lt]}function T(){a=Gr(n=zn(d,g,v),r);var t=r(f,p);return i=u-t[0]*c,o=h+t[1]*c,A()}function A(){return s&&(s.valid=!1,s=null),w}return w.stream=function(t){return s&&(s.valid=!1),(s=Ln(m(n,l(x(t))))).valid=!0,s},w.clipAngle=function(t){return arguments.length?(m=null==t?(b=t,tn):function(t){var e=Math.cos(t),r=e>0,n=y(e)>kt;return Jr(a,function(t){var e,s,l,c,u;return{lineStart:function(){c=l=!1,u=1},point:function(h,f){var p,d=[h,f],g=a(h,f),v=r?g?0:o(h,f):g?o(h+(h<0?At:-At),f):0;if(!e&&(c=l=g)&&t.lineStart(),g!==l&&(p=i(e,d),(Br(e,p)||Br(d,p))&&(d[0]+=kt,d[1]+=kt,g=a(d[0],d[1]))),g!==l)u=0,g?(t.lineStart(),p=i(d,e),t.point(p[0],p[1])):(p=i(e,d),t.point(p[0],p[1]),t.lineEnd()),e=p;else if(n&&e&&r^g){var m;v&s||!(m=i(d,e,!0))||(u=0,r?(t.lineStart(),t.point(m[0][0],m[0][1]),t.point(m[1][0],m[1][1]),t.lineEnd()):(t.point(m[1][0],m[1][1]),t.lineEnd(),t.lineStart(),t.point(m[0][0],m[0][1])))}!g||e&&Br(e,d)||t.point(d[0],d[1]),e=d,l=g,s=v},lineEnd:function(){l&&t.lineEnd(),e=null},clean:function(){return u|(c&&l)<<1}}},Fn(t,6*Ct),r?[0,-t]:[-At,t-At]);function a(t,r){return Math.cos(t)*Math.cos(r)>e}function i(t,r,n){var a=[1,0,0],i=zr(Pr(t),Pr(r)),o=Or(i,i),s=i[0],l=o-s*s;if(!l)return!n&&t;var c=e*o/l,u=-e*s/l,h=zr(a,i),f=Dr(a,c);Ir(f,Dr(i,u));var p=h,d=Or(f,p),g=Or(p,p),v=d*d-g*(Or(f,f)-1);if(!(v<0)){var m=Math.sqrt(v),x=Dr(p,(-d-m)/g);if(Ir(x,f),x=Fr(x),!n)return x;var b,_=t[0],w=r[0],k=t[1],T=r[1];w<_&&(b=_,_=w,w=b);var A=w-_,M=y(A-At)<kt;if(!M&&T<k&&(b=k,k=T,T=b),M||A<kt?M?k+T>0^x[1]<(y(x[0]-_)<kt?k:T):k<=x[1]&&x[1]<=T:A>At^(_<=x[0]&&x[0]<=w)){var S=Dr(p,(-d+m)/g);return Ir(S,f),[x,Fr(S)]}}}function o(e,n){var a=r?t:At-t,i=0;return e<-a?i|=1:e>a&&(i|=2),n<-a?i|=4:n>a&&(i|=8),i}}((b=+t)*Ct),A()):b},w.clipExtent=function(t){return arguments.length?(_=t,x=t?nn(t[0][0],t[0][1],t[1][0],t[1][1]):P,A()):_},w.scale=function(t){return arguments.length?(c=+t,T()):c},w.translate=function(t){return arguments.length?(u=+t[0],h=+t[1],T()):[u,h]},w.center=function(t){return arguments.length?(f=t[0]%360*Ct,p=t[1]%360*Ct,T()):[f*Lt,p*Lt]},w.rotate=function(t){return arguments.length?(d=t[0]%360*Ct,g=t[1]%360*Ct,v=t.length>2?t[2]%360*Ct:0,T()):[d*Lt,g*Lt,v*Lt]},t.rebind(w,l,\"precision\"),function(){return r=e.apply(this,arguments),w.invert=r.invert&&k,T()}}function Ln(t){return Sn(t,function(e,r){t.point(e*Ct,r*Ct)})}function Pn(t,e){return[t,e]}function On(t,e){return[t>At?t-Mt:t<-At?t+Mt:t,e]}function zn(t,e,r){return t?e||r?Gr(Dn(t),Rn(e,r)):Dn(t):e||r?Rn(e,r):On}function In(t){return function(e,r){return[(e+=t)>At?e-Mt:e<-At?e+Mt:e,r]}}function Dn(t){var e=In(t);return e.invert=In(-t),e}function Rn(t,e){var r=Math.cos(t),n=Math.sin(t),a=Math.cos(e),i=Math.sin(e);function o(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*r+s*n;return[Math.atan2(l*a-u*i,s*r-c*n),It(u*a+l*i)]}return o.invert=function(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*a-l*i;return[Math.atan2(l*a+c*i,s*r+u*n),It(u*r-s*n)]},o}function Fn(t,e){var r=Math.cos(t),n=Math.sin(t);return function(a,i,o,s){var l=o*e;null!=a?(a=Bn(r,a),i=Bn(r,i),(o>0?a<i:a>i)&&(a+=o*Mt)):(a=t+o*Mt,i=t-.5*l);for(var c,u=a;o>0?u>i:u<i;u-=l)s.point((c=Fr([r,-n*Math.cos(u),-n*Math.sin(u)]))[0],c[1])}}function Bn(t,e){var r=Pr(e);r[0]-=t,Rr(r);var n=zt(-r[1]);return((-r[2]<0?-n:n)+2*Math.PI-kt)%(2*Math.PI)}function Nn(e,r,n){var a=t.range(e,r-kt,n).concat(r);return function(t){return a.map(function(e){return[t,e]})}}function jn(e,r,n){var a=t.range(e,r-kt,n).concat(r);return function(t){return a.map(function(e){return[e,t]})}}function Vn(t){return t.source}function Un(t){return t.target}t.geo.path=function(){var e,r,n,a,i,o=4.5;function s(e){return e&&(\"function\"==typeof o&&a.pointRadius(+o.apply(this,arguments)),i&&i.valid||(i=n(a)),t.geo.stream(e,i)),a.result()}function l(){return i=null,s}return s.area=function(e){return sn=0,t.geo.stream(e,n(pn)),sn},s.centroid=function(e){return xr=br=_r=wr=kr=Tr=Ar=Mr=Sr=0,t.geo.stream(e,n(xn)),Sr?[Ar/Sr,Mr/Sr]:Tr?[wr/Tr,kr/Tr]:_r?[xr/_r,br/_r]:[NaN,NaN]},s.bounds=function(e){return hn=fn=-(cn=un=1/0),t.geo.stream(e,n(gn)),[[cn,un],[hn,fn]]},s.projection=function(t){return arguments.length?(n=(e=t)?t.stream||(r=t,a=An(function(t,e){return r([t*Lt,e*Lt])}),function(t){return Ln(a(t))}):P,l()):e;var r,a},s.context=function(t){return arguments.length?(a=null==(r=t)?new vn:new Tn(t),\"function\"!=typeof o&&a.pointRadius(o),l()):r},s.pointRadius=function(t){return arguments.length?(o=\"function\"==typeof t?t:(a.pointRadius(+t),+t),s):o},s.projection(t.geo.albersUsa()).context(null)},t.geo.transform=function(t){return{stream:function(e){var r=new Mn(e);for(var n in t)r[n]=t[n];return r}}},Mn.prototype={point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},t.geo.projection=En,t.geo.projectionMutator=Cn,(t.geo.equirectangular=function(){return En(Pn)}).raw=Pn.invert=Pn,t.geo.rotation=function(t){function e(e){return(e=t(e[0]*Ct,e[1]*Ct))[0]*=Lt,e[1]*=Lt,e}return t=zn(t[0]%360*Ct,t[1]*Ct,t.length>2?t[2]*Ct:0),e.invert=function(e){return(e=t.invert(e[0]*Ct,e[1]*Ct))[0]*=Lt,e[1]*=Lt,e},e},On.invert=Pn,t.geo.circle=function(){var t,e,r=[0,0],n=6;function a(){var t=\"function\"==typeof r?r.apply(this,arguments):r,n=zn(-t[0]*Ct,-t[1]*Ct,0).invert,a=[];return e(null,null,1,{point:function(t,e){a.push(t=n(t,e)),t[0]*=Lt,t[1]*=Lt}}),{type:\"Polygon\",coordinates:[a]}}return a.origin=function(t){return arguments.length?(r=t,a):r},a.angle=function(r){return arguments.length?(e=Fn((t=+r)*Ct,n*Ct),a):t},a.precision=function(r){return arguments.length?(e=Fn(t*Ct,(n=+r)*Ct),a):n},a.angle(90)},t.geo.distance=function(t,e){var r,n=(e[0]-t[0])*Ct,a=t[1]*Ct,i=e[1]*Ct,o=Math.sin(n),s=Math.cos(n),l=Math.sin(a),c=Math.cos(a),u=Math.sin(i),h=Math.cos(i);return Math.atan2(Math.sqrt((r=h*o)*r+(r=c*u-l*h*s)*r),l*u+c*h*s)},t.geo.graticule=function(){var e,r,n,a,i,o,s,l,c,u,h,f,p=10,d=p,g=90,v=360,m=2.5;function x(){return{type:\"MultiLineString\",coordinates:b()}}function b(){return t.range(Math.ceil(a/g)*g,n,g).map(h).concat(t.range(Math.ceil(l/v)*v,s,v).map(f)).concat(t.range(Math.ceil(r/p)*p,e,p).filter(function(t){return y(t%g)>kt}).map(c)).concat(t.range(Math.ceil(o/d)*d,i,d).filter(function(t){return y(t%v)>kt}).map(u))}return x.lines=function(){return b().map(function(t){return{type:\"LineString\",coordinates:t}})},x.outline=function(){return{type:\"Polygon\",coordinates:[h(a).concat(f(s).slice(1),h(n).reverse().slice(1),f(l).reverse().slice(1))]}},x.extent=function(t){return arguments.length?x.majorExtent(t).minorExtent(t):x.minorExtent()},x.majorExtent=function(t){return arguments.length?(a=+t[0][0],n=+t[1][0],l=+t[0][1],s=+t[1][1],a>n&&(t=a,a=n,n=t),l>s&&(t=l,l=s,s=t),x.precision(m)):[[a,l],[n,s]]},x.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],o=+t[0][1],i=+t[1][1],r>e&&(t=r,r=e,e=t),o>i&&(t=o,o=i,i=t),x.precision(m)):[[r,o],[e,i]]},x.step=function(t){return arguments.length?x.majorStep(t).minorStep(t):x.minorStep()},x.majorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],x):[g,v]},x.minorStep=function(t){return arguments.length?(p=+t[0],d=+t[1],x):[p,d]},x.precision=function(t){return arguments.length?(m=+t,c=Nn(o,i,90),u=jn(r,e,m),h=Nn(l,s,90),f=jn(a,n,m),x):m},x.majorExtent([[-180,-90+kt],[180,90-kt]]).minorExtent([[-180,-80-kt],[180,80+kt]])},t.geo.greatArc=function(){var e,r,n=Vn,a=Un;function i(){return{type:\"LineString\",coordinates:[e||n.apply(this,arguments),r||a.apply(this,arguments)]}}return i.distance=function(){return t.geo.distance(e||n.apply(this,arguments),r||a.apply(this,arguments))},i.source=function(t){return arguments.length?(n=t,e=\"function\"==typeof t?null:t,i):n},i.target=function(t){return arguments.length?(a=t,r=\"function\"==typeof t?null:t,i):a},i.precision=function(){return arguments.length?i:0},i},t.geo.interpolate=function(t,e){return r=t[0]*Ct,n=t[1]*Ct,a=e[0]*Ct,i=e[1]*Ct,o=Math.cos(n),s=Math.sin(n),l=Math.cos(i),c=Math.sin(i),u=o*Math.cos(r),h=o*Math.sin(r),f=l*Math.cos(a),p=l*Math.sin(a),d=2*Math.asin(Math.sqrt(Rt(i-n)+o*l*Rt(a-r))),g=1/Math.sin(d),(v=d?function(t){var e=Math.sin(t*=d)*g,r=Math.sin(d-t)*g,n=r*u+e*f,a=r*h+e*p,i=r*s+e*c;return[Math.atan2(a,n)*Lt,Math.atan2(i,Math.sqrt(n*n+a*a))*Lt]}:function(){return[r*Lt,n*Lt]}).distance=d,v;var r,n,a,i,o,s,l,c,u,h,f,p,d,g,v},t.geo.length=function(e){return yn=0,t.geo.stream(e,qn),yn};var qn={sphere:D,point:D,lineStart:function(){var t,e,r;function n(n,a){var i=Math.sin(a*=Ct),o=Math.cos(a),s=y((n*=Ct)-t),l=Math.cos(s);yn+=Math.atan2(Math.sqrt((s=o*Math.sin(s))*s+(s=r*i-e*o*l)*s),e*i+r*o*l),t=n,e=i,r=o}qn.point=function(a,i){t=a*Ct,e=Math.sin(i*=Ct),r=Math.cos(i),qn.point=n},qn.lineEnd=function(){qn.point=qn.lineEnd=D}},lineEnd:D,polygonStart:D,polygonEnd:D};function Hn(t,e){function r(e,r){var n=Math.cos(e),a=Math.cos(r),i=t(n*a);return[i*a*Math.sin(e),i*Math.sin(r)]}return r.invert=function(t,r){var n=Math.sqrt(t*t+r*r),a=e(n),i=Math.sin(a),o=Math.cos(a);return[Math.atan2(t*i,n*o),Math.asin(n&&r*i/n)]},r}var Gn=Hn(function(t){return Math.sqrt(2/(1+t))},function(t){return 2*Math.asin(t/2)});(t.geo.azimuthalEqualArea=function(){return En(Gn)}).raw=Gn;var Yn=Hn(function(t){var e=Math.acos(t);return e&&e/Math.sin(e)},P);function Wn(t,e){var r=Math.cos(t),n=function(t){return Math.tan(At/4+t/2)},a=t===e?Math.sin(t):Math.log(r/Math.cos(e))/Math.log(n(e)/n(t)),i=r*Math.pow(n(t),a)/a;if(!a)return Jn;function o(t,e){i>0?e<-Et+kt&&(e=-Et+kt):e>Et-kt&&(e=Et-kt);var r=i/Math.pow(n(e),a);return[r*Math.sin(a*t),i-r*Math.cos(a*t)]}return o.invert=function(t,e){var r=i-e,n=Pt(a)*Math.sqrt(t*t+r*r);return[Math.atan2(t,r)/a,2*Math.atan(Math.pow(i/n,1/a))-Et]},o}function Xn(t,e){var r=Math.cos(t),n=t===e?Math.sin(t):(r-Math.cos(e))/(e-t),a=r/n+t;if(y(n)<kt)return Pn;function i(t,e){var r=a-e;return[r*Math.sin(n*t),a-r*Math.cos(n*t)]}return i.invert=function(t,e){var r=a-e;return[Math.atan2(t,r)/n,a-Pt(n)*Math.sqrt(t*t+r*r)]},i}(t.geo.azimuthalEquidistant=function(){return En(Yn)}).raw=Yn,(t.geo.conicConformal=function(){return an(Wn)}).raw=Wn,(t.geo.conicEquidistant=function(){return an(Xn)}).raw=Xn;var Zn=Hn(function(t){return 1/t},Math.atan);function Jn(t,e){return[t,Math.log(Math.tan(At/4+e/2))]}function Kn(t){var e,r=En(t),n=r.scale,a=r.translate,i=r.clipExtent;return r.scale=function(){var t=n.apply(r,arguments);return t===r?e?r.clipExtent(null):r:t},r.translate=function(){var t=a.apply(r,arguments);return t===r?e?r.clipExtent(null):r:t},r.clipExtent=function(t){var o=i.apply(r,arguments);if(o===r){if(e=null==t){var s=At*n(),l=a();i([[l[0]-s,l[1]-s],[l[0]+s,l[1]+s]])}}else e&&(o=null);return o},r.clipExtent(null)}(t.geo.gnomonic=function(){return En(Zn)}).raw=Zn,Jn.invert=function(t,e){return[t,2*Math.atan(Math.exp(e))-Et]},(t.geo.mercator=function(){return Kn(Jn)}).raw=Jn;var Qn=Hn(function(){return 1},Math.asin);(t.geo.orthographic=function(){return En(Qn)}).raw=Qn;var $n=Hn(function(t){return 1/(1+t)},function(t){return 2*Math.atan(t)});function ta(t,e){return[Math.log(Math.tan(At/4+e/2)),-t]}function ea(t){return t[0]}function ra(t){return t[1]}function na(t){for(var e=t.length,r=[0,1],n=2,a=2;a<e;a++){for(;n>1&&Ot(t[r[n-2]],t[r[n-1]],t[a])<=0;)--n;r[n++]=a}return r.slice(0,n)}function aa(t,e){return t[0]-e[0]||t[1]-e[1]}(t.geo.stereographic=function(){return En($n)}).raw=$n,ta.invert=function(t,e){return[-e,2*Math.atan(Math.exp(t))-Et]},(t.geo.transverseMercator=function(){var t=Kn(ta),e=t.center,r=t.rotate;return t.center=function(t){return t?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return t?r([t[0],t[1],t.length>2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90])}).raw=ta,t.geom={},t.geom.hull=function(t){var e=ea,r=ra;if(arguments.length)return n(t);function n(t){if(t.length<3)return[];var n,a=ve(e),i=ve(r),o=t.length,s=[],l=[];for(n=0;n<o;n++)s.push([+a.call(this,t[n],n),+i.call(this,t[n],n),n]);for(s.sort(aa),n=0;n<o;n++)l.push([s[n][0],-s[n][1]]);var c=na(s),u=na(l),h=u[0]===c[0],f=u[u.length-1]===c[c.length-1],p=[];for(n=c.length-1;n>=0;--n)p.push(t[s[c[n]][2]]);for(n=+h;n<u.length-f;++n)p.push(t[s[u[n]][2]]);return p}return n.x=function(t){return arguments.length?(e=t,n):e},n.y=function(t){return arguments.length?(r=t,n):r},n},t.geom.polygon=function(t){return U(t,ia),t};var ia=t.geom.polygon.prototype=[];function oa(t,e,r){return(r[0]-e[0])*(t[1]-e[1])<(r[1]-e[1])*(t[0]-e[0])}function sa(t,e,r,n){var a=t[0],i=r[0],o=e[0]-a,s=n[0]-i,l=t[1],c=r[1],u=e[1]-l,h=n[1]-c,f=(s*(l-c)-h*(a-i))/(h*o-s*u);return[a+f*o,l+f*u]}function la(t){var e=t[0],r=t[t.length-1];return!(e[0]-r[0]||e[1]-r[1])}ia.area=function(){for(var t,e=-1,r=this.length,n=this[r-1],a=0;++e<r;)t=n,n=this[e],a+=t[1]*n[0]-t[0]*n[1];return.5*a},ia.centroid=function(t){var e,r,n=-1,a=this.length,i=0,o=0,s=this[a-1];for(arguments.length||(t=-1/(6*this.area()));++n<a;)e=s,s=this[n],r=e[0]*s[1]-s[0]*e[1],i+=(e[0]+s[0])*r,o+=(e[1]+s[1])*r;return[i*t,o*t]},ia.clip=function(t){for(var e,r,n,a,i,o,s=la(t),l=-1,c=this.length-la(this),u=this[c-1];++l<c;){for(e=t.slice(),t.length=0,a=this[l],i=e[(n=e.length-s)-1],r=-1;++r<n;)oa(o=e[r],u,a)?(oa(i,u,a)||t.push(sa(i,o,u,a)),t.push(o)):oa(i,u,a)&&t.push(sa(i,o,u,a)),i=o;s&&t.push(t[0]),u=a}return t};var ca,ua,ha,fa,pa,da=[],ga=[];function va(){Ia(this),this.edge=this.site=this.circle=null}function ma(t){var e=da.pop()||new va;return e.site=t,e}function ya(t){Sa(t),ha.remove(t),da.push(t),Ia(t)}function xa(t){var e=t.circle,r=e.x,n=e.cy,a={x:r,y:n},i=t.P,o=t.N,s=[t];ya(t);for(var l=i;l.circle&&y(r-l.circle.x)<kt&&y(n-l.circle.cy)<kt;)i=l.P,s.unshift(l),ya(l),l=i;s.unshift(l),Sa(l);for(var c=o;c.circle&&y(r-c.circle.x)<kt&&y(n-c.circle.cy)<kt;)o=c.N,s.push(c),ya(c),c=o;s.push(c),Sa(c);var u,h=s.length;for(u=1;u<h;++u)c=s[u],l=s[u-1],Pa(c.edge,l.site,c.site,a);l=s[0],(c=s[h-1]).edge=La(l.site,c.site,null,a),Ma(l),Ma(c)}function ba(t){for(var e,r,n,a,i=t.x,o=t.y,s=ha._;s;)if((n=_a(s,o)-i)>kt)s=s.L;else{if(!((a=i-wa(s,o))>kt)){n>-kt?(e=s.P,r=s):a>-kt?(e=s,r=s.N):e=r=s;break}if(!s.R){e=s;break}s=s.R}var l=ma(t);if(ha.insert(e,l),e||r){if(e===r)return Sa(e),r=ma(e.site),ha.insert(l,r),l.edge=r.edge=La(e.site,l.site),Ma(e),void Ma(r);if(r){Sa(e),Sa(r);var c=e.site,u=c.x,h=c.y,f=t.x-u,p=t.y-h,d=r.site,g=d.x-u,v=d.y-h,m=2*(f*v-p*g),y=f*f+p*p,x=g*g+v*v,b={x:(v*y-p*x)/m+u,y:(f*x-g*y)/m+h};Pa(r.edge,c,d,b),l.edge=La(c,t,null,b),r.edge=La(t,d,null,b),Ma(e),Ma(r)}else l.edge=La(e.site,l.site)}}function _a(t,e){var r=t.site,n=r.x,a=r.y,i=a-e;if(!i)return n;var o=t.P;if(!o)return-1/0;var s=(r=o.site).x,l=r.y,c=l-e;if(!c)return s;var u=s-n,h=1/i-1/c,f=u/c;return h?(-f+Math.sqrt(f*f-2*h*(u*u/(-2*c)-l+c/2+a-i/2)))/h+n:(n+s)/2}function wa(t,e){var r=t.N;if(r)return _a(r,e);var n=t.site;return n.y===e?n.x:1/0}function ka(t){this.site=t,this.edges=[]}function Ta(t,e){return e.angle-t.angle}function Aa(){Ia(this),this.x=this.y=this.arc=this.site=this.cy=null}function Ma(t){var e=t.P,r=t.N;if(e&&r){var n=e.site,a=t.site,i=r.site;if(n!==i){var o=a.x,s=a.y,l=n.x-o,c=n.y-s,u=i.x-o,h=2*(l*(v=i.y-s)-c*u);if(!(h>=-Tt)){var f=l*l+c*c,p=u*u+v*v,d=(v*f-c*p)/h,g=(l*p-u*f)/h,v=g+s,m=ga.pop()||new Aa;m.arc=t,m.site=a,m.x=d+o,m.y=v+Math.sqrt(d*d+g*g),m.cy=v,t.circle=m;for(var y=null,x=pa._;x;)if(m.y<x.y||m.y===x.y&&m.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}pa.insert(y,m),y||(fa=m)}}}}function Sa(t){var e=t.circle;e&&(e.P||(fa=e.N),pa.remove(e),ga.push(e),Ia(e),t.circle=null)}function Ea(t,e){var r=t.b;if(r)return!0;var n,a,i=t.a,o=e[0][0],s=e[1][0],l=e[0][1],c=e[1][1],u=t.l,h=t.r,f=u.x,p=u.y,d=h.x,g=h.y,v=(f+d)/2,m=(p+g)/2;if(g===p){if(v<o||v>=s)return;if(f>d){if(i){if(i.y>=c)return}else i={x:v,y:l};r={x:v,y:c}}else{if(i){if(i.y<l)return}else i={x:v,y:c};r={x:v,y:l}}}else if(a=m-(n=(f-d)/(g-p))*v,n<-1||n>1)if(f>d){if(i){if(i.y>=c)return}else i={x:(l-a)/n,y:l};r={x:(c-a)/n,y:c}}else{if(i){if(i.y<l)return}else i={x:(c-a)/n,y:c};r={x:(l-a)/n,y:l}}else if(p<g){if(i){if(i.x>=s)return}else i={x:o,y:n*o+a};r={x:s,y:n*s+a}}else{if(i){if(i.x<o)return}else i={x:s,y:n*s+a};r={x:o,y:n*o+a}}return t.a=i,t.b=r,!0}function Ca(t,e){this.l=t,this.r=e,this.a=this.b=null}function La(t,e,r,n){var a=new Ca(t,e);return ca.push(a),r&&Pa(a,t,e,r),n&&Pa(a,e,t,n),ua[t.i].edges.push(new Oa(a,t,e)),ua[e.i].edges.push(new Oa(a,e,t)),a}function Pa(t,e,r,n){t.a||t.b?t.l===r?t.b=n:t.a=n:(t.a=n,t.l=e,t.r=r)}function Oa(t,e,r){var n=t.a,a=t.b;this.edge=t,this.site=e,this.angle=r?Math.atan2(r.y-e.y,r.x-e.x):t.l===e?Math.atan2(a.x-n.x,n.y-a.y):Math.atan2(n.x-a.x,a.y-n.y)}function za(){this._=null}function Ia(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function Da(t,e){var r=e,n=e.R,a=r.U;a?a.L===r?a.L=n:a.R=n:t._=n,n.U=a,r.U=n,r.R=n.L,r.R&&(r.R.U=r),n.L=r}function Ra(t,e){var r=e,n=e.L,a=r.U;a?a.L===r?a.L=n:a.R=n:t._=n,n.U=a,r.U=n,r.L=n.R,r.L&&(r.L.U=r),n.R=r}function Fa(t){for(;t.L;)t=t.L;return t}function Ba(t,e){var r,n,a,i=t.sort(Na).pop();for(ca=[],ua=new Array(t.length),ha=new za,pa=new za;;)if(a=fa,i&&(!a||i.y<a.y||i.y===a.y&&i.x<a.x))i.x===r&&i.y===n||(ua[i.i]=new ka(i),ba(i),r=i.x,n=i.y),i=t.pop();else{if(!a)break;xa(a.arc)}e&&(function(t){for(var e,r=ca,n=en(t[0][0],t[0][1],t[1][0],t[1][1]),a=r.length;a--;)(!Ea(e=r[a],t)||!n(e)||y(e.a.x-e.b.x)<kt&&y(e.a.y-e.b.y)<kt)&&(e.a=e.b=null,r.splice(a,1))}(e),function(t){for(var e,r,n,a,i,o,s,l,c,u,h=t[0][0],f=t[1][0],p=t[0][1],d=t[1][1],g=ua,v=g.length;v--;)if((i=g[v])&&i.prepare())for(l=(s=i.edges).length,o=0;o<l;)n=(u=s[o].end()).x,a=u.y,e=(c=s[++o%l].start()).x,r=c.y,(y(n-e)>kt||y(a-r)>kt)&&(s.splice(o,0,new Oa((m=i.site,x=u,b=y(n-h)<kt&&d-a>kt?{x:h,y:y(e-h)<kt?r:d}:y(a-d)<kt&&f-n>kt?{x:y(r-d)<kt?e:f,y:d}:y(n-f)<kt&&a-p>kt?{x:f,y:y(e-f)<kt?r:p}:y(a-p)<kt&&n-h>kt?{x:y(r-p)<kt?e:h,y:p}:null,_=void 0,_=new Ca(m,null),_.a=x,_.b=b,ca.push(_),_),i.site,null)),++l);var m,x,b,_}(e));var o={cells:ua,edges:ca};return ha=pa=ca=ua=null,o}function Na(t,e){return e.y-t.y||e.x-t.x}ka.prototype.prepare=function(){for(var t,e=this.edges,r=e.length;r--;)(t=e[r].edge).b&&t.a||e.splice(r,1);return e.sort(Ta),e.length},Oa.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},za.prototype={insert:function(t,e){var r,n,a;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;r=t}else this._?(t=Fa(this._),e.P=null,e.N=t,t.P=t.L=e,r=t):(e.P=e.N=null,this._=e,r=null);for(e.L=e.R=null,e.U=r,e.C=!0,t=e;r&&r.C;)r===(n=r.U).L?(a=n.R)&&a.C?(r.C=a.C=!1,n.C=!0,t=n):(t===r.R&&(Da(this,r),r=(t=r).U),r.C=!1,n.C=!0,Ra(this,n)):(a=n.L)&&a.C?(r.C=a.C=!1,n.C=!0,t=n):(t===r.L&&(Ra(this,r),r=(t=r).U),r.C=!1,n.C=!0,Da(this,n)),r=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,r,n,a=t.U,i=t.L,o=t.R;if(r=i?o?Fa(o):i:o,a?a.L===t?a.L=r:a.R=r:this._=r,i&&o?(n=r.C,r.C=t.C,r.L=i,i.U=r,r!==o?(a=r.U,r.U=t.U,t=r.R,a.L=t,r.R=o,o.U=r):(r.U=a,a=r,t=r.R)):(n=t.C,t=r),t&&(t.U=a),!n)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===a.L){if((e=a.R).C&&(e.C=!1,a.C=!0,Da(this,a),e=a.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,Ra(this,e),e=a.R),e.C=a.C,a.C=e.R.C=!1,Da(this,a),t=this._;break}}else if((e=a.L).C&&(e.C=!1,a.C=!0,Ra(this,a),e=a.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,Da(this,e),e=a.L),e.C=a.C,a.C=e.L.C=!1,Ra(this,a),t=this._;break}e.C=!0,t=a,a=a.U}while(!t.C);t&&(t.C=!1)}}},t.geom.voronoi=function(t){var e=ea,r=ra,n=e,a=r,i=ja;if(t)return o(t);function o(t){var e=new Array(t.length),r=i[0][0],n=i[0][1],a=i[1][0],o=i[1][1];return Ba(s(t),i).cells.forEach(function(i,s){var l=i.edges,c=i.site;(e[s]=l.length?l.map(function(t){var e=t.start();return[e.x,e.y]}):c.x>=r&&c.x<=a&&c.y>=n&&c.y<=o?[[r,o],[a,o],[a,n],[r,n]]:[]).point=t[s]}),e}function s(t){return t.map(function(t,e){return{x:Math.round(n(t,e)/kt)*kt,y:Math.round(a(t,e)/kt)*kt,i:e}})}return o.links=function(t){return Ba(s(t)).edges.filter(function(t){return t.l&&t.r}).map(function(e){return{source:t[e.l.i],target:t[e.r.i]}})},o.triangles=function(t){var e=[];return Ba(s(t)).cells.forEach(function(r,n){for(var a,i,o,s,l=r.site,c=r.edges.sort(Ta),u=-1,h=c.length,f=c[h-1].edge,p=f.l===l?f.r:f.l;++u<h;)f,a=p,p=(f=c[u].edge).l===l?f.r:f.l,n<a.i&&n<p.i&&(o=a,s=p,((i=l).x-s.x)*(o.y-i.y)-(i.x-o.x)*(s.y-i.y)<0)&&e.push([t[n],t[a.i],t[p.i]])}),e},o.x=function(t){return arguments.length?(n=ve(e=t),o):e},o.y=function(t){return arguments.length?(a=ve(r=t),o):r},o.clipExtent=function(t){return arguments.length?(i=null==t?ja:t,o):i===ja?null:i},o.size=function(t){return arguments.length?o.clipExtent(t&&[[0,0],t]):i===ja?null:i&&i[1]},o};var ja=[[-1e6,-1e6],[1e6,1e6]];function Va(t){return t.x}function Ua(t){return t.y}function qa(e,r){e=t.rgb(e),r=t.rgb(r);var n=e.r,a=e.g,i=e.b,o=r.r-n,s=r.g-a,l=r.b-i;return function(t){return\"#\"+ce(Math.round(n+o*t))+ce(Math.round(a+s*t))+ce(Math.round(i+l*t))}}function Ha(t,e){var r,n={},a={};for(r in t)r in e?n[r]=Za(t[r],e[r]):a[r]=t[r];for(r in e)r in t||(a[r]=e[r]);return function(t){for(r in n)a[r]=n[r](t);return a}}function Ga(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function Ya(t,e){var r,n,a,i=Wa.lastIndex=Xa.lastIndex=0,o=-1,s=[],l=[];for(t+=\"\",e+=\"\";(r=Wa.exec(t))&&(n=Xa.exec(e));)(a=n.index)>i&&(a=e.slice(i,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:Ga(r,n)})),i=Xa.lastIndex;return i<e.length&&(a=e.slice(i),s[o]?s[o]+=a:s[++o]=a),s.length<2?l[0]?(e=l[0].x,function(t){return e(t)+\"\"}):function(){return e}:(e=l.length,function(t){for(var r,n=0;n<e;++n)s[(r=l[n]).i]=r.x(t);return s.join(\"\")})}t.geom.delaunay=function(e){return t.geom.voronoi().triangles(e)},t.geom.quadtree=function(t,e,r,n,a){var i,o=ea,s=ra;if(i=arguments.length)return o=Va,s=Ua,3===i&&(a=r,n=e,r=e=0),l(t);function l(t){var l,c,u,h,f,p,d,g,v,m=ve(o),x=ve(s);if(null!=e)p=e,d=r,g=n,v=a;else if(g=v=-(p=d=1/0),c=[],u=[],f=t.length,i)for(h=0;h<f;++h)(l=t[h]).x<p&&(p=l.x),l.y<d&&(d=l.y),l.x>g&&(g=l.x),l.y>v&&(v=l.y),c.push(l.x),u.push(l.y);else for(h=0;h<f;++h){var b=+m(l=t[h],h),_=+x(l,h);b<p&&(p=b),_<d&&(d=_),b>g&&(g=b),_>v&&(v=_),c.push(b),u.push(_)}var w=g-p,k=v-d;function T(t,e,r,n,a,i,o,s){if(!isNaN(r)&&!isNaN(n))if(t.leaf){var l=t.x,c=t.y;if(null!=l)if(y(l-r)+y(c-n)<.01)A(t,e,r,n,a,i,o,s);else{var u=t.point;t.x=t.y=t.point=null,A(t,u,l,c,a,i,o,s),A(t,e,r,n,a,i,o,s)}else t.x=r,t.y=n,t.point=e}else A(t,e,r,n,a,i,o,s)}function A(t,e,r,n,a,i,o,s){var l=.5*(a+o),c=.5*(i+s),u=r>=l,h=n>=c,f=h<<1|u;t.leaf=!1,u?a=l:o=l,h?i=c:s=c,T(t=t.nodes[f]||(t.nodes[f]={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){T(M,t,+m(t,++h),+x(t,h),p,d,g,v)}}),e,r,n,a,i,o,s)}w>k?v=d+w:g=p+k;var M={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){T(M,t,+m(t,++h),+x(t,h),p,d,g,v)}};if(M.visit=function(t){!function t(e,r,n,a,i,o){if(!e(r,n,a,i,o)){var s=.5*(n+i),l=.5*(a+o),c=r.nodes;c[0]&&t(e,c[0],n,a,s,l),c[1]&&t(e,c[1],s,a,i,l),c[2]&&t(e,c[2],n,l,s,o),c[3]&&t(e,c[3],s,l,i,o)}}(t,M,p,d,g,v)},M.find=function(t){return function(t,e,r,n,a,i,o){var s,l=1/0;return function t(c,u,h,f,p){if(!(u>i||h>o||f<n||p<a)){if(d=c.point){var d,g=e-c.x,v=r-c.y,m=g*g+v*v;if(m<l){var y=Math.sqrt(l=m);n=e-y,a=r-y,i=e+y,o=r+y,s=d}}for(var x=c.nodes,b=.5*(u+f),_=.5*(h+p),w=(r>=_)<<1|e>=b,k=w+4;w<k;++w)if(c=x[3&w])switch(3&w){case 0:t(c,u,h,b,_);break;case 1:t(c,b,h,f,_);break;case 2:t(c,u,_,b,p);break;case 3:t(c,b,_,f,p)}}}(t,n,a,i,o),s}(M,t[0],t[1],p,d,g,v)},h=-1,null==e){for(;++h<f;)T(M,t[h],c[h],u[h],p,d,g,v);--h}else t.forEach(M.add);return c=u=t=l=null,M}return l.x=function(t){return arguments.length?(o=t,l):o},l.y=function(t){return arguments.length?(s=t,l):s},l.extent=function(t){return arguments.length?(null==t?e=r=n=a=null:(e=+t[0][0],r=+t[0][1],n=+t[1][0],a=+t[1][1]),l):null==e?null:[[e,r],[n,a]]},l.size=function(t){return arguments.length?(null==t?e=r=n=a=null:(e=r=0,n=+t[0],a=+t[1]),l):null==e?null:[n-e,a-r]},l},t.interpolateRgb=qa,t.interpolateObject=Ha,t.interpolateNumber=Ga,t.interpolateString=Ya;var Wa=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,Xa=new RegExp(Wa.source,\"g\");function Za(e,r){for(var n,a=t.interpolators.length;--a>=0&&!(n=t.interpolators[a](e,r)););return n}function Ja(t,e){var r,n=[],a=[],i=t.length,o=e.length,s=Math.min(t.length,e.length);for(r=0;r<s;++r)n.push(Za(t[r],e[r]));for(;r<i;++r)a[r]=t[r];for(;r<o;++r)a[r]=e[r];return function(t){for(r=0;r<s;++r)a[r]=n[r](t);return a}}t.interpolate=Za,t.interpolators=[function(t,e){var r=typeof e;return(\"string\"===r?ge.has(e.toLowerCase())||/^(#|rgb\\(|hsl\\()/i.test(e)?qa:Ya:e instanceof Vt?qa:Array.isArray(e)?Ja:\"object\"===r&&isNaN(e)?Ha:Ga)(t,e)}],t.interpolateArray=Ja;var Ka=function(){return P},Qa=t.map({linear:Ka,poly:function(t){return function(e){return Math.pow(e,t)}},quad:function(){return ri},cubic:function(){return ni},sin:function(){return ii},exp:function(){return oi},circle:function(){return si},elastic:function(t,e){var r;arguments.length<2&&(e=.45);arguments.length?r=e/Mt*Math.asin(1/t):(t=1,r=e/4);return function(n){return 1+t*Math.pow(2,-10*n)*Math.sin((n-r)*Mt/e)}},back:function(t){t||(t=1.70158);return function(e){return e*e*((t+1)*e-t)}},bounce:function(){return li}}),$a=t.map({in:P,out:ti,\"in-out\":ei,\"out-in\":function(t){return ei(ti(t))}});function ti(t){return function(e){return 1-t(1-e)}}function ei(t){return function(e){return.5*(e<.5?t(2*e):2-t(2-2*e))}}function ri(t){return t*t}function ni(t){return t*t*t}function ai(t){if(t<=0)return 0;if(t>=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function ii(t){return 1-Math.cos(t*Et)}function oi(t){return Math.pow(2,10*(t-1))}function si(t){return 1-Math.sqrt(1-t*t)}function li(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function ci(t,e){return e-=t,function(r){return Math.round(t+e*r)}}function ui(t){var e,r,n,a=[t.a,t.b],i=[t.c,t.d],o=fi(a),s=hi(a,i),l=fi(((e=i)[0]+=(n=-s)*(r=a)[0],e[1]+=n*r[1],e))||0;a[0]*i[1]<i[0]*a[1]&&(a[0]*=-1,a[1]*=-1,o*=-1,s*=-1),this.rotate=(o?Math.atan2(a[1],a[0]):Math.atan2(-i[0],i[1]))*Lt,this.translate=[t.e,t.f],this.scale=[o,l],this.skew=l?Math.atan2(s,l)*Lt:0}function hi(t,e){return t[0]*e[0]+t[1]*e[1]}function fi(t){var e=Math.sqrt(hi(t,t));return e&&(t[0]/=e,t[1]/=e),e}t.ease=function(t){var e,n=t.indexOf(\"-\"),a=n>=0?t.slice(0,n):t,i=n>=0?t.slice(n+1):\"in\";return a=Qa.get(a)||Ka,i=$a.get(i)||P,e=i(a.apply(null,r.call(arguments,1))),function(t){return t<=0?0:t>=1?1:e(t)}},t.interpolateHcl=function(e,r){e=t.hcl(e),r=t.hcl(r);var n=e.h,a=e.c,i=e.l,o=r.h-n,s=r.c-a,l=r.l-i;isNaN(s)&&(s=0,a=isNaN(a)?r.c:a);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Wt(n+o*t,a+s*t,i+l*t)+\"\"}},t.interpolateHsl=function(e,r){e=t.hsl(e),r=t.hsl(r);var n=e.h,a=e.s,i=e.l,o=r.h-n,s=r.s-a,l=r.l-i;isNaN(s)&&(s=0,a=isNaN(a)?r.s:a);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Ht(n+o*t,a+s*t,i+l*t)+\"\"}},t.interpolateLab=function(e,r){e=t.lab(e),r=t.lab(r);var n=e.l,a=e.a,i=e.b,o=r.l-n,s=r.a-a,l=r.b-i;return function(t){return te(n+o*t,a+s*t,i+l*t)+\"\"}},t.interpolateRound=ci,t.transform=function(e){var r=a.createElementNS(t.ns.prefix.svg,\"g\");return(t.transform=function(t){if(null!=t){r.setAttribute(\"transform\",t);var e=r.transform.baseVal.consolidate()}return new ui(e?e.matrix:pi)})(e)},ui.prototype.toString=function(){return\"translate(\"+this.translate+\")rotate(\"+this.rotate+\")skewX(\"+this.skew+\")scale(\"+this.scale+\")\"};var pi={a:1,b:0,c:0,d:1,e:0,f:0};function di(t){return t.length?t.pop()+\",\":\"\"}function gi(e,r){var n=[],a=[];return e=t.transform(e),r=t.transform(r),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var a=r.push(\"translate(\",null,\",\",null,\")\");n.push({i:a-4,x:Ga(t[0],e[0])},{i:a-2,x:Ga(t[1],e[1])})}else(e[0]||e[1])&&r.push(\"translate(\"+e+\")\")}(e.translate,r.translate,n,a),function(t,e,r,n){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),n.push({i:r.push(di(r)+\"rotate(\",null,\")\")-2,x:Ga(t,e)})):e&&r.push(di(r)+\"rotate(\"+e+\")\")}(e.rotate,r.rotate,n,a),function(t,e,r,n){t!==e?n.push({i:r.push(di(r)+\"skewX(\",null,\")\")-2,x:Ga(t,e)}):e&&r.push(di(r)+\"skewX(\"+e+\")\")}(e.skew,r.skew,n,a),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var a=r.push(di(r)+\"scale(\",null,\",\",null,\")\");n.push({i:a-4,x:Ga(t[0],e[0])},{i:a-2,x:Ga(t[1],e[1])})}else 1===e[0]&&1===e[1]||r.push(di(r)+\"scale(\"+e+\")\")}(e.scale,r.scale,n,a),e=r=null,function(t){for(var e,r=-1,i=a.length;++r<i;)n[(e=a[r]).i]=e.x(t);return n.join(\"\")}}function vi(t,e){return e=(e-=t=+t)||1/e,function(r){return(r-t)/e}}function mi(t,e){return e=(e-=t=+t)||1/e,function(r){return Math.max(0,Math.min(1,(r-t)/e))}}function yi(t){for(var e=t.source,r=t.target,n=function(t,e){if(t===e)return t;var r=xi(t),n=xi(e),a=r.pop(),i=n.pop(),o=null;for(;a===i;)o=a,a=r.pop(),i=n.pop();return o}(e,r),a=[e];e!==n;)e=e.parent,a.push(e);for(var i=a.length;r!==n;)a.splice(i,0,r),r=r.parent;return a}function xi(t){for(var e=[],r=t.parent;null!=r;)e.push(t),t=r,r=r.parent;return e.push(t),e}function bi(t){t.fixed|=2}function _i(t){t.fixed&=-7}function wi(t){t.fixed|=4,t.px=t.x,t.py=t.y}function ki(t){t.fixed&=-5}t.interpolateTransform=gi,t.layout={},t.layout.bundle=function(){return function(t){for(var e=[],r=-1,n=t.length;++r<n;)e.push(yi(t[r]));return e}},t.layout.chord=function(){var e,r,n,a,i,o,s,l={},c=0;function u(){var l,u,f,p,d,g={},v=[],m=t.range(a),y=[];for(e=[],r=[],l=0,p=-1;++p<a;){for(u=0,d=-1;++d<a;)u+=n[p][d];v.push(u),y.push(t.range(a)),l+=u}for(i&&m.sort(function(t,e){return i(v[t],v[e])}),o&&y.forEach(function(t,e){t.sort(function(t,r){return o(n[e][t],n[e][r])})}),l=(Mt-c*a)/l,u=0,p=-1;++p<a;){for(f=u,d=-1;++d<a;){var x=m[p],b=y[x][d],_=n[x][b],w=u,k=u+=_*l;g[x+\"-\"+b]={index:x,subindex:b,startAngle:w,endAngle:k,value:_}}r[x]={index:x,startAngle:f,endAngle:u,value:v[x]},u+=c}for(p=-1;++p<a;)for(d=p-1;++d<a;){var T=g[p+\"-\"+d],A=g[d+\"-\"+p];(T.value||A.value)&&e.push(T.value<A.value?{source:A,target:T}:{source:T,target:A})}s&&h()}function h(){e.sort(function(t,e){return s((t.source.value+t.target.value)/2,(e.source.value+e.target.value)/2)})}return l.matrix=function(t){return arguments.length?(a=(n=t)&&n.length,e=r=null,l):n},l.padding=function(t){return arguments.length?(c=t,e=r=null,l):c},l.sortGroups=function(t){return arguments.length?(i=t,e=r=null,l):i},l.sortSubgroups=function(t){return arguments.length?(o=t,e=null,l):o},l.sortChords=function(t){return arguments.length?(s=t,e&&h(),l):s},l.chords=function(){return e||u(),e},l.groups=function(){return r||u(),r},l},t.layout.force=function(){var e,r,n,a,i,o,s={},l=t.dispatch(\"start\",\"tick\",\"end\"),c=[1,1],u=.9,h=Ti,f=Ai,p=-30,d=Mi,g=.1,v=.64,m=[],y=[];function x(t){return function(e,r,n,a){if(e.point!==t){var i=e.cx-t.x,o=e.cy-t.y,s=a-r,l=i*i+o*o;if(s*s/v<l){if(l<d){var c=e.charge/l;t.px-=i*c,t.py-=o*c}return!0}if(e.point&&l&&l<d){c=e.pointCharge/l;t.px-=i*c,t.py-=o*c}}return!e.charge}}function b(e){e.px=t.event.x,e.py=t.event.y,s.resume()}return s.tick=function(){if((n*=.99)<.005)return e=null,l.end({type:\"end\",alpha:n=0}),!0;var r,s,h,f,d,v,b,_,w,k=m.length,T=y.length;for(s=0;s<T;++s)f=(h=y[s]).source,(v=(_=(d=h.target).x-f.x)*_+(w=d.y-f.y)*w)&&(_*=v=n*i[s]*((v=Math.sqrt(v))-a[s])/v,w*=v,d.x-=_*(b=f.weight+d.weight?f.weight/(f.weight+d.weight):.5),d.y-=w*b,f.x+=_*(b=1-b),f.y+=w*b);if((b=n*g)&&(_=c[0]/2,w=c[1]/2,s=-1,b))for(;++s<k;)(h=m[s]).x+=(_-h.x)*b,h.y+=(w-h.y)*b;if(p)for(!function t(e,r,n){var a=0,i=0;e.charge=0;if(!e.leaf)for(var o,s=e.nodes,l=s.length,c=-1;++c<l;)null!=(o=s[c])&&(t(o,r,n),e.charge+=o.charge,a+=o.charge*o.cx,i+=o.charge*o.cy);if(e.point){e.leaf||(e.point.x+=Math.random()-.5,e.point.y+=Math.random()-.5);var u=r*n[e.point.index];e.charge+=e.pointCharge=u,a+=u*e.point.x,i+=u*e.point.y}e.cx=a/e.charge;e.cy=i/e.charge}(r=t.geom.quadtree(m),n,o),s=-1;++s<k;)(h=m[s]).fixed||r.visit(x(h));for(s=-1;++s<k;)(h=m[s]).fixed?(h.x=h.px,h.y=h.py):(h.x-=(h.px-(h.px=h.x))*u,h.y-=(h.py-(h.py=h.y))*u);l.tick({type:\"tick\",alpha:n})},s.nodes=function(t){return arguments.length?(m=t,s):m},s.links=function(t){return arguments.length?(y=t,s):y},s.size=function(t){return arguments.length?(c=t,s):c},s.linkDistance=function(t){return arguments.length?(h=\"function\"==typeof t?t:+t,s):h},s.distance=s.linkDistance,s.linkStrength=function(t){return arguments.length?(f=\"function\"==typeof t?t:+t,s):f},s.friction=function(t){return arguments.length?(u=+t,s):u},s.charge=function(t){return arguments.length?(p=\"function\"==typeof t?t:+t,s):p},s.chargeDistance=function(t){return arguments.length?(d=t*t,s):Math.sqrt(d)},s.gravity=function(t){return arguments.length?(g=+t,s):g},s.theta=function(t){return arguments.length?(v=t*t,s):Math.sqrt(v)},s.alpha=function(t){return arguments.length?(t=+t,n?t>0?n=t:(e.c=null,e.t=NaN,e=null,l.end({type:\"end\",alpha:n=0})):t>0&&(l.start({type:\"start\",alpha:n=t}),e=Te(s.tick)),s):n},s.start=function(){var t,e,r,n=m.length,l=y.length,u=c[0],d=c[1];for(t=0;t<n;++t)(r=m[t]).index=t,r.weight=0;for(t=0;t<l;++t)\"number\"==typeof(r=y[t]).source&&(r.source=m[r.source]),\"number\"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;t<n;++t)r=m[t],isNaN(r.x)&&(r.x=g(\"x\",u)),isNaN(r.y)&&(r.y=g(\"y\",d)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(a=[],\"function\"==typeof h)for(t=0;t<l;++t)a[t]=+h.call(this,y[t],t);else for(t=0;t<l;++t)a[t]=h;if(i=[],\"function\"==typeof f)for(t=0;t<l;++t)i[t]=+f.call(this,y[t],t);else for(t=0;t<l;++t)i[t]=f;if(o=[],\"function\"==typeof p)for(t=0;t<n;++t)o[t]=+p.call(this,m[t],t);else for(t=0;t<n;++t)o[t]=p;function g(r,a){if(!e){for(e=new Array(n),c=0;c<n;++c)e[c]=[];for(c=0;c<l;++c){var i=y[c];e[i.source.index].push(i.target),e[i.target.index].push(i.source)}}for(var o,s=e[t],c=-1,u=s.length;++c<u;)if(!isNaN(o=s[c][r]))return o;return Math.random()*a}return s.resume()},s.resume=function(){return s.alpha(.1)},s.stop=function(){return s.alpha(0)},s.drag=function(){if(r||(r=t.behavior.drag().origin(P).on(\"dragstart.force\",bi).on(\"drag.force\",b).on(\"dragend.force\",_i)),!arguments.length)return r;this.on(\"mouseover.force\",wi).on(\"mouseout.force\",ki).call(r)},t.rebind(s,l,\"on\")};var Ti=20,Ai=1,Mi=1/0;function Si(e,r){return t.rebind(e,r,\"sort\",\"children\",\"value\"),e.nodes=e,e.links=zi,e}function Ei(t,e){for(var r=[t];null!=(t=r.pop());)if(e(t),(a=t.children)&&(n=a.length))for(var n,a;--n>=0;)r.push(a[n])}function Ci(t,e){for(var r=[t],n=[];null!=(t=r.pop());)if(n.push(t),(i=t.children)&&(a=i.length))for(var a,i,o=-1;++o<a;)r.push(i[o]);for(;null!=(t=n.pop());)e(t)}function Li(t){return t.children}function Pi(t){return t.value}function Oi(t,e){return e.value-t.value}function zi(e){return t.merge(e.map(function(t){return(t.children||[]).map(function(e){return{source:t,target:e}})}))}t.layout.hierarchy=function(){var t=Oi,e=Li,r=Pi;function n(a){var i,o=[a],s=[];for(a.depth=0;null!=(i=o.pop());)if(s.push(i),(c=e.call(n,i,i.depth))&&(l=c.length)){for(var l,c,u;--l>=0;)o.push(u=c[l]),u.parent=i,u.depth=i.depth+1;r&&(i.value=0),i.children=c}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Ci(a,function(e){var n,a;t&&(n=e.children)&&n.sort(t),r&&(a=e.parent)&&(a.value+=e.value)}),s}return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Ei(t,function(t){t.children&&(t.value=0)}),Ci(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},t.layout.partition=function(){var e=t.layout.hierarchy(),r=[1,1];function n(t,n){var a=e.call(this,t,n);return function t(e,r,n,a){var i=e.children;if(e.x=r,e.y=e.depth*a,e.dx=n,e.dy=a,i&&(o=i.length)){var o,s,l,c=-1;for(n=e.value?n/e.value:0;++c<o;)t(s=i[c],r,l=s.value*n,a),r+=l}}(a[0],0,r[0],r[1]/function t(e){var r=e.children,n=0;if(r&&(a=r.length))for(var a,i=-1;++i<a;)n=Math.max(n,t(r[i]));return 1+n}(a[0])),a}return n.size=function(t){return arguments.length?(r=t,n):r},Si(n,e)},t.layout.pie=function(){var e=Number,r=Ii,n=0,a=Mt,i=0;function o(s){var l,c=s.length,u=s.map(function(t,r){return+e.call(o,t,r)}),h=+(\"function\"==typeof n?n.apply(this,arguments):n),f=(\"function\"==typeof a?a.apply(this,arguments):a)-h,p=Math.min(Math.abs(f)/c,+(\"function\"==typeof i?i.apply(this,arguments):i)),d=p*(f<0?-1:1),g=t.sum(u),v=g?(f-c*d)/g:0,m=t.range(c),y=[];return null!=r&&m.sort(r===Ii?function(t,e){return u[e]-u[t]}:function(t,e){return r(s[t],s[e])}),m.forEach(function(t){y[t]={data:s[t],value:l=u[t],startAngle:h,endAngle:h+=l*v+d,padAngle:p}}),y}return o.value=function(t){return arguments.length?(e=t,o):e},o.sort=function(t){return arguments.length?(r=t,o):r},o.startAngle=function(t){return arguments.length?(n=t,o):n},o.endAngle=function(t){return arguments.length?(a=t,o):a},o.padAngle=function(t){return arguments.length?(i=t,o):i},o};var Ii={};function Di(t){return t.x}function Ri(t){return t.y}function Fi(t,e,r){t.y0=e,t.y=r}t.layout.stack=function(){var e=P,r=ji,n=Vi,a=Fi,i=Di,o=Ri;function s(l,c){if(!(p=l.length))return l;var u=l.map(function(t,r){return e.call(s,t,r)}),h=u.map(function(t){return t.map(function(t,e){return[i.call(s,t,e),o.call(s,t,e)]})}),f=r.call(s,h,c);u=t.permute(u,f),h=t.permute(h,f);var p,d,g,v,m=n.call(s,h,c),y=u[0].length;for(g=0;g<y;++g)for(a.call(s,u[0][g],v=m[g],h[0][g][1]),d=1;d<p;++d)a.call(s,u[d][g],v+=h[d-1][g][1],h[d][g][1]);return l}return s.values=function(t){return arguments.length?(e=t,s):e},s.order=function(t){return arguments.length?(r=\"function\"==typeof t?t:Bi.get(t)||ji,s):r},s.offset=function(t){return arguments.length?(n=\"function\"==typeof t?t:Ni.get(t)||Vi,s):n},s.x=function(t){return arguments.length?(i=t,s):i},s.y=function(t){return arguments.length?(o=t,s):o},s.out=function(t){return arguments.length?(a=t,s):a},s};var Bi=t.map({\"inside-out\":function(e){var r,n,a=e.length,i=e.map(Ui),o=e.map(qi),s=t.range(a).sort(function(t,e){return i[t]-i[e]}),l=0,c=0,u=[],h=[];for(r=0;r<a;++r)n=s[r],l<c?(l+=o[n],u.push(n)):(c+=o[n],h.push(n));return h.reverse().concat(u)},reverse:function(e){return t.range(e.length).reverse()},default:ji}),Ni=t.map({silhouette:function(t){var e,r,n,a=t.length,i=t[0].length,o=[],s=0,l=[];for(r=0;r<i;++r){for(e=0,n=0;e<a;e++)n+=t[e][r][1];n>s&&(s=n),o.push(n)}for(r=0;r<i;++r)l[r]=(s-o[r])/2;return l},wiggle:function(t){var e,r,n,a,i,o,s,l,c,u=t.length,h=t[0],f=h.length,p=[];for(p[0]=l=c=0,r=1;r<f;++r){for(e=0,a=0;e<u;++e)a+=t[e][r][1];for(e=0,i=0,s=h[r][0]-h[r-1][0];e<u;++e){for(n=0,o=(t[e][r][1]-t[e][r-1][1])/(2*s);n<e;++n)o+=(t[n][r][1]-t[n][r-1][1])/s;i+=o*t[e][r][1]}p[r]=l-=a?i/a*s:0,l<c&&(c=l)}for(r=0;r<f;++r)p[r]-=c;return p},expand:function(t){var e,r,n,a=t.length,i=t[0].length,o=1/a,s=[];for(r=0;r<i;++r){for(e=0,n=0;e<a;e++)n+=t[e][r][1];if(n)for(e=0;e<a;e++)t[e][r][1]/=n;else for(e=0;e<a;e++)t[e][r][1]=o}for(r=0;r<i;++r)s[r]=0;return s},zero:Vi});function ji(e){return t.range(e.length)}function Vi(t){for(var e=-1,r=t[0].length,n=[];++e<r;)n[e]=0;return n}function Ui(t){for(var e,r=1,n=0,a=t[0][1],i=t.length;r<i;++r)(e=t[r][1])>a&&(n=r,a=e);return n}function qi(t){return t.reduce(Hi,0)}function Hi(t,e){return t+e[1]}function Gi(t,e){return Yi(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Yi(t,e){for(var r=-1,n=+t[0],a=(t[1]-n)/e,i=[];++r<=e;)i[r]=a*r+n;return i}function Wi(e){return[t.min(e),t.max(e)]}function Xi(t,e){return t.value-e.value}function Zi(t,e){var r=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=r,r._pack_prev=e}function Ji(t,e){t._pack_next=e,e._pack_prev=t}function Ki(t,e){var r=e.x-t.x,n=e.y-t.y,a=t.r+e.r;return.999*a*a>r*r+n*n}function Qi(t){if((e=t.children)&&(l=e.length)){var e,r,n,a,i,o,s,l,c=1/0,u=-1/0,h=1/0,f=-1/0;if(e.forEach($i),(r=e[0]).x=-r.r,r.y=0,x(r),l>1&&((n=e[1]).x=n.r,n.y=0,x(n),l>2))for(eo(r,n,a=e[2]),x(a),Zi(r,a),r._pack_prev=a,Zi(a,n),n=r._pack_next,i=3;i<l;i++){eo(r,n,a=e[i]);var p=0,d=1,g=1;for(o=n._pack_next;o!==n;o=o._pack_next,d++)if(Ki(o,a)){p=1;break}if(1==p)for(s=r._pack_prev;s!==o._pack_prev&&!Ki(s,a);s=s._pack_prev,g++);p?(d<g||d==g&&n.r<r.r?Ji(r,n=o):Ji(r=s,n),i--):(Zi(r,a),n=a,x(a))}var v=(c+u)/2,m=(h+f)/2,y=0;for(i=0;i<l;i++)(a=e[i]).x-=v,a.y-=m,y=Math.max(y,a.r+Math.sqrt(a.x*a.x+a.y*a.y));t.r=y,e.forEach(to)}function x(t){c=Math.min(t.x-t.r,c),u=Math.max(t.x+t.r,u),h=Math.min(t.y-t.r,h),f=Math.max(t.y+t.r,f)}}function $i(t){t._pack_next=t._pack_prev=t}function to(t){delete t._pack_next,delete t._pack_prev}function eo(t,e,r){var n=t.r+r.r,a=e.x-t.x,i=e.y-t.y;if(n&&(a||i)){var o=e.r+r.r,s=a*a+i*i,l=.5+((n*=n)-(o*=o))/(2*s),c=Math.sqrt(Math.max(0,2*o*(n+s)-(n-=s)*n-o*o))/(2*s);r.x=t.x+l*a+c*i,r.y=t.y+l*i-c*a}else r.x=t.x+n,r.y=t.y}function ro(t,e){return t.parent==e.parent?1:2}function no(t){var e=t.children;return e.length?e[0]:t.t}function ao(t){var e,r=t.children;return(e=r.length)?r[e-1]:t.t}function io(t,e,r){var n=r/(e.i-t.i);e.c-=n,e.s+=r,t.c+=n,e.z+=r,e.m+=r}function oo(t,e,r){return t.a.parent===e.parent?t.a:r}function so(t){return{x:t.x,y:t.y,dx:t.dx,dy:t.dy}}function lo(t,e){var r=t.x+e[3],n=t.y+e[0],a=t.dx-e[1]-e[3],i=t.dy-e[0]-e[2];return a<0&&(r+=a/2,a=0),i<0&&(n+=i/2,i=0),{x:r,y:n,dx:a,dy:i}}function co(t){var e=t[0],r=t[t.length-1];return e<r?[e,r]:[r,e]}function uo(t){return t.rangeExtent?t.rangeExtent():co(t.range())}function ho(t,e,r,n){var a=r(t[0],t[1]),i=n(e[0],e[1]);return function(t){return i(a(t))}}function fo(t,e){var r,n=0,a=t.length-1,i=t[n],o=t[a];return o<i&&(r=n,n=a,a=r,r=i,i=o,o=r),t[n]=e.floor(i),t[a]=e.ceil(o),t}function po(t){return t?{floor:function(e){return Math.floor(e/t)*t},ceil:function(e){return Math.ceil(e/t)*t}}:go}t.layout.histogram=function(){var e=!0,r=Number,n=Wi,a=Gi;function i(i,o){for(var s,l,c=[],u=i.map(r,this),h=n.call(this,u,o),f=a.call(this,h,u,o),p=(o=-1,u.length),d=f.length-1,g=e?1:1/p;++o<d;)(s=c[o]=[]).dx=f[o+1]-(s.x=f[o]),s.y=0;if(d>0)for(o=-1;++o<p;)(l=u[o])>=h[0]&&l<=h[1]&&((s=c[t.bisect(f,l,1,d)-1]).y+=g,s.push(i[o]));return c}return i.value=function(t){return arguments.length?(r=t,i):r},i.range=function(t){return arguments.length?(n=ve(t),i):n},i.bins=function(t){return arguments.length?(a=\"number\"==typeof t?function(e){return Yi(e,t)}:ve(t),i):a},i.frequency=function(t){return arguments.length?(e=!!t,i):e},i},t.layout.pack=function(){var e,r=t.layout.hierarchy().sort(Xi),n=0,a=[1,1];function i(t,i){var o=r.call(this,t,i),s=o[0],l=a[0],c=a[1],u=null==e?Math.sqrt:\"function\"==typeof e?e:function(){return e};if(s.x=s.y=0,Ci(s,function(t){t.r=+u(t.value)}),Ci(s,Qi),n){var h=n*(e?1:Math.max(2*s.r/l,2*s.r/c))/2;Ci(s,function(t){t.r+=h}),Ci(s,Qi),Ci(s,function(t){t.r-=h})}return function t(e,r,n,a){var i=e.children;e.x=r+=a*e.x;e.y=n+=a*e.y;e.r*=a;if(i)for(var o=-1,s=i.length;++o<s;)t(i[o],r,n,a)}(s,l/2,c/2,e?1:1/Math.max(2*s.r/l,2*s.r/c)),o}return i.size=function(t){return arguments.length?(a=t,i):a},i.radius=function(t){return arguments.length?(e=null==t||\"function\"==typeof t?t:+t,i):e},i.padding=function(t){return arguments.length?(n=+t,i):n},Si(i,r)},t.layout.tree=function(){var e=t.layout.hierarchy().sort(null).value(null),r=ro,n=[1,1],a=null;function i(t,i){var c=e.call(this,t,i),u=c[0],h=function(t){var e,r={A:null,children:[t]},n=[r];for(;null!=(e=n.pop());)for(var a,i=e.children,o=0,s=i.length;o<s;++o)n.push((i[o]=a={_:i[o],parent:e,children:(a=i[o].children)&&a.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=a);return r.children[0]}(u);if(Ci(h,o),h.parent.m=-h.z,Ei(h,s),a)Ei(u,l);else{var f=u,p=u,d=u;Ei(u,function(t){t.x<f.x&&(f=t),t.x>p.x&&(p=t),t.depth>d.depth&&(d=t)});var g=r(f,p)/2-f.x,v=n[0]/(p.x+r(p,f)/2+g),m=n[1]/(d.depth||1);Ei(u,function(t){t.x=(t.x+g)*v,t.y=t.depth*m})}return c}function o(t){var e=t.children,n=t.parent.children,a=t.i?n[t.i-1]:null;if(e.length){!function(t){var e,r=0,n=0,a=t.children,i=a.length;for(;--i>=0;)(e=a[i]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(t);var i=(e[0].z+e[e.length-1].z)/2;a?(t.z=a.z+r(t._,a._),t.m=t.z-i):t.z=i}else a&&(t.z=a.z+r(t._,a._));t.parent.A=function(t,e,n){if(e){for(var a,i=t,o=t,s=e,l=i.parent.children[0],c=i.m,u=o.m,h=s.m,f=l.m;s=ao(s),i=no(i),s&&i;)l=no(l),(o=ao(o)).a=t,(a=s.z+h-i.z-c+r(s._,i._))>0&&(io(oo(s,t,n),t,a),c+=a,u+=a),h+=s.m,c+=i.m,f+=l.m,u+=o.m;s&&!ao(o)&&(o.t=s,o.m+=h-u),i&&!no(l)&&(l.t=i,l.m+=c-f,n=t)}return n}(t,a,t.parent.A||n[0])}function s(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=n[0],t.y=t.depth*n[1]}return i.separation=function(t){return arguments.length?(r=t,i):r},i.size=function(t){return arguments.length?(a=null==(n=t)?l:null,i):a?null:n},i.nodeSize=function(t){return arguments.length?(a=null==(n=t)?null:l,i):a?n:null},Si(i,e)},t.layout.cluster=function(){var e=t.layout.hierarchy().sort(null).value(null),r=ro,n=[1,1],a=!1;function i(i,o){var s,l=e.call(this,i,o),c=l[0],u=0;Ci(c,function(e){var n=e.children;n&&n.length?(e.x=function(t){return t.reduce(function(t,e){return t+e.x},0)/t.length}(n),e.y=function(e){return 1+t.max(e,function(t){return t.y})}(n)):(e.x=s?u+=r(e,s):0,e.y=0,s=e)});var h=function t(e){var r=e.children;return r&&r.length?t(r[0]):e}(c),f=function t(e){var r,n=e.children;return n&&(r=n.length)?t(n[r-1]):e}(c),p=h.x-r(h,f)/2,d=f.x+r(f,h)/2;return Ci(c,a?function(t){t.x=(t.x-c.x)*n[0],t.y=(c.y-t.y)*n[1]}:function(t){t.x=(t.x-p)/(d-p)*n[0],t.y=(1-(c.y?t.y/c.y:1))*n[1]}),l}return i.separation=function(t){return arguments.length?(r=t,i):r},i.size=function(t){return arguments.length?(a=null==(n=t),i):a?null:n},i.nodeSize=function(t){return arguments.length?(a=null!=(n=t),i):a?n:null},Si(i,e)},t.layout.treemap=function(){var e,r=t.layout.hierarchy(),n=Math.round,a=[1,1],i=null,o=so,s=!1,l=\"squarify\",c=.5*(1+Math.sqrt(5));function u(t,e){for(var r,n,a=-1,i=t.length;++a<i;)n=(r=t[a]).value*(e<0?0:e),r.area=isNaN(n)||n<=0?0:n}function h(t){var e=t.children;if(e&&e.length){var r,n,a,i=o(t),s=[],c=e.slice(),f=1/0,g=\"slice\"===l?i.dx:\"dice\"===l?i.dy:\"slice-dice\"===l?1&t.depth?i.dy:i.dx:Math.min(i.dx,i.dy);for(u(c,i.dx*i.dy/t.value),s.area=0;(a=c.length)>0;)s.push(r=c[a-1]),s.area+=r.area,\"squarify\"!==l||(n=p(s,g))<=f?(c.pop(),f=n):(s.area-=s.pop().area,d(s,g,i,!1),g=Math.min(i.dx,i.dy),s.length=s.area=0,f=1/0);s.length&&(d(s,g,i,!0),s.length=s.area=0),e.forEach(h)}}function f(t){var e=t.children;if(e&&e.length){var r,n=o(t),a=e.slice(),i=[];for(u(a,n.dx*n.dy/t.value),i.area=0;r=a.pop();)i.push(r),i.area+=r.area,null!=r.z&&(d(i,r.z?n.dx:n.dy,n,!a.length),i.length=i.area=0);e.forEach(f)}}function p(t,e){for(var r,n=t.area,a=0,i=1/0,o=-1,s=t.length;++o<s;)(r=t[o].area)&&(r<i&&(i=r),r>a&&(a=r));return e*=e,(n*=n)?Math.max(e*a*c/n,n/(e*i*c)):1/0}function d(t,e,r,a){var i,o=-1,s=t.length,l=r.x,c=r.y,u=e?n(t.area/e):0;if(e==r.dx){for((a||u>r.dy)&&(u=r.dy);++o<s;)(i=t[o]).x=l,i.y=c,i.dy=u,l+=i.dx=Math.min(r.x+r.dx-l,u?n(i.area/u):0);i.z=!0,i.dx+=r.x+r.dx-l,r.y+=u,r.dy-=u}else{for((a||u>r.dx)&&(u=r.dx);++o<s;)(i=t[o]).x=l,i.y=c,i.dx=u,c+=i.dy=Math.min(r.y+r.dy-c,u?n(i.area/u):0);i.z=!1,i.dy+=r.y+r.dy-c,r.x+=u,r.dx-=u}}function g(t){var n=e||r(t),i=n[0];return i.x=i.y=0,i.value?(i.dx=a[0],i.dy=a[1]):i.dx=i.dy=0,e&&r.revalue(i),u([i],i.dx*i.dy/i.value),(e?f:h)(i),s&&(e=n),n}return g.size=function(t){return arguments.length?(a=t,g):a},g.padding=function(t){if(!arguments.length)return i;function e(e){return lo(e,t)}var r;return o=null==(i=t)?so:\"function\"==(r=typeof t)?function(e){var r=t.call(g,e,e.depth);return null==r?so(e):lo(e,\"number\"==typeof r?[r,r,r,r]:r)}:\"number\"===r?(t=[t,t,t,t],e):e,g},g.round=function(t){return arguments.length?(n=t?Math.round:Number,g):n!=Number},g.sticky=function(t){return arguments.length?(s=t,e=null,g):s},g.ratio=function(t){return arguments.length?(c=t,g):c},g.mode=function(t){return arguments.length?(l=t+\"\",g):l},Si(g,r)},t.random={normal:function(t,e){var r=arguments.length;return r<2&&(e=1),r<1&&(t=0),function(){var r,n,a;do{a=(r=2*Math.random()-1)*r+(n=2*Math.random()-1)*n}while(!a||a>1);return t+e*r*Math.sqrt(-2*Math.log(a)/a)}},logNormal:function(){var e=t.random.normal.apply(t,arguments);return function(){return Math.exp(e())}},bates:function(e){var r=t.random.irwinHall(e);return function(){return r()/e}},irwinHall:function(t){return function(){for(var e=0,r=0;r<t;r++)e+=Math.random();return e}}},t.scale={};var go={floor:P,ceil:P};function vo(e,r,n,a){var i=[],o=[],s=0,l=Math.min(e.length,r.length)-1;for(e[l]<e[0]&&(e=e.slice().reverse(),r=r.slice().reverse());++s<=l;)i.push(n(e[s-1],e[s])),o.push(a(r[s-1],r[s]));return function(r){var n=t.bisect(e,r,1,l)-1;return o[n](i[n](r))}}function mo(e,r){return t.rebind(e,r,\"range\",\"rangeRound\",\"interpolate\",\"clamp\")}function yo(t,e){return fo(t,po(xo(t,e)[2])),fo(t,po(xo(t,e)[2])),t}function xo(t,e){null==e&&(e=10);var r=co(t),n=r[1]-r[0],a=Math.pow(10,Math.floor(Math.log(n/e)/Math.LN10)),i=e/n*a;return i<=.15?a*=10:i<=.35?a*=5:i<=.75&&(a*=2),r[0]=Math.ceil(r[0]/a)*a,r[1]=Math.floor(r[1]/a)*a+.5*a,r[2]=a,r}function bo(e,r){return t.range.apply(t,xo(e,r))}function _o(e,r,n){var a=xo(e,r);if(n){var i=Le.exec(n);if(i.shift(),\"s\"===i[8]){var o=t.formatPrefix(Math.max(y(a[0]),y(a[1])));return i[7]||(i[7]=\".\"+ko(o.scale(a[2]))),i[8]=\"f\",n=t.format(i.join(\"\")),function(t){return n(o.scale(t))+o.symbol}}i[7]||(i[7]=\".\"+function(t,e){var r=ko(e[2]);return t in wo?Math.abs(r-ko(Math.max(y(e[0]),y(e[1]))))+ +(\"e\"!==t):r-2*(\"%\"===t)}(i[8],a)),n=i.join(\"\")}else n=\",.\"+ko(a[2])+\"f\";return t.format(n)}t.scale.linear=function(){return function t(e,r,n,a){var i,o;function s(){var t=Math.min(e.length,r.length)>2?vo:ho,s=a?mi:vi;return i=t(e,r,s,n),o=t(r,e,s,Za),l}function l(t){return i(t)}l.invert=function(t){return o(t)};l.domain=function(t){return arguments.length?(e=t.map(Number),s()):e};l.range=function(t){return arguments.length?(r=t,s()):r};l.rangeRound=function(t){return l.range(t).interpolate(ci)};l.clamp=function(t){return arguments.length?(a=t,s()):a};l.interpolate=function(t){return arguments.length?(n=t,s()):n};l.ticks=function(t){return bo(e,t)};l.tickFormat=function(t,r){return _o(e,t,r)};l.nice=function(t){return yo(e,t),s()};l.copy=function(){return t(e,r,n,a)};return s()}([0,1],[0,1],Za,!1)};var wo={s:1,g:1,p:1,r:1,e:1};function ko(t){return-Math.floor(Math.log(t)/Math.LN10+.01)}t.scale.log=function(){return function e(r,n,a,i){function o(t){return(a?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(n)}function s(t){return a?Math.pow(n,t):-Math.pow(n,-t)}function l(t){return r(o(t))}l.invert=function(t){return s(r.invert(t))};l.domain=function(t){return arguments.length?(a=t[0]>=0,r.domain((i=t.map(Number)).map(o)),l):i};l.base=function(t){return arguments.length?(n=+t,r.domain(i.map(o)),l):n};l.nice=function(){var t=fo(i.map(o),a?Math:Ao);return r.domain(t),i=t.map(s),l};l.ticks=function(){var t=co(i),e=[],r=t[0],l=t[1],c=Math.floor(o(r)),u=Math.ceil(o(l)),h=n%1?2:n;if(isFinite(u-c)){if(a){for(;c<u;c++)for(var f=1;f<h;f++)e.push(s(c)*f);e.push(s(c))}else for(e.push(s(c));c++<u;)for(var f=h-1;f>0;f--)e.push(s(c)*f);for(c=0;e[c]<r;c++);for(u=e.length;e[u-1]>l;u--);e=e.slice(c,u)}return e};l.tickFormat=function(e,r){if(!arguments.length)return To;arguments.length<2?r=To:\"function\"!=typeof r&&(r=t.format(r));var a=Math.max(1,n*e/l.ticks().length);return function(t){var e=t/s(Math.round(o(t)));return e*n<n-.5&&(e*=n),e<=a?r(t):\"\"}};l.copy=function(){return e(r.copy(),n,a,i)};return mo(l,r)}(t.scale.linear().domain([0,1]),10,!0,[1,10])};var To=t.format(\".0e\"),Ao={floor:function(t){return-Math.ceil(-t)},ceil:function(t){return-Math.floor(-t)}};function Mo(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}t.scale.pow=function(){return function t(e,r,n){var a=Mo(r),i=Mo(1/r);function o(t){return e(a(t))}o.invert=function(t){return i(e.invert(t))};o.domain=function(t){return arguments.length?(e.domain((n=t.map(Number)).map(a)),o):n};o.ticks=function(t){return bo(n,t)};o.tickFormat=function(t,e){return _o(n,t,e)};o.nice=function(t){return o.domain(yo(n,t))};o.exponent=function(t){return arguments.length?(a=Mo(r=t),i=Mo(1/r),e.domain(n.map(a)),o):r};o.copy=function(){return t(e.copy(),r,n)};return mo(o,e)}(t.scale.linear(),1,[0,1])},t.scale.sqrt=function(){return t.scale.pow().exponent(.5)},t.scale.ordinal=function(){return function e(r,n){var a,i,o;function s(t){return i[((a.get(t)||(\"range\"===n.t?a.set(t,r.push(t)):NaN))-1)%i.length]}function l(e,n){return t.range(r.length).map(function(t){return e+n*t})}s.domain=function(t){if(!arguments.length)return r;r=[],a=new b;for(var e,i=-1,o=t.length;++i<o;)a.has(e=t[i])||a.set(e,r.push(e));return s[n.t].apply(s,n.a)};s.range=function(t){return arguments.length?(i=t,o=0,n={t:\"range\",a:arguments},s):i};s.rangePoints=function(t,e){arguments.length<2&&(e=0);var a=t[0],c=t[1],u=r.length<2?(a=(a+c)/2,0):(c-a)/(r.length-1+e);return i=l(a+u*e/2,u),o=0,n={t:\"rangePoints\",a:arguments},s};s.rangeRoundPoints=function(t,e){arguments.length<2&&(e=0);var a=t[0],c=t[1],u=r.length<2?(a=c=Math.round((a+c)/2),0):(c-a)/(r.length-1+e)|0;return i=l(a+Math.round(u*e/2+(c-a-(r.length-1+e)*u)/2),u),o=0,n={t:\"rangeRoundPoints\",a:arguments},s};s.rangeBands=function(t,e,a){arguments.length<2&&(e=0),arguments.length<3&&(a=e);var c=t[1]<t[0],u=t[c-0],h=t[1-c],f=(h-u)/(r.length-e+2*a);return i=l(u+f*a,f),c&&i.reverse(),o=f*(1-e),n={t:\"rangeBands\",a:arguments},s};s.rangeRoundBands=function(t,e,a){arguments.length<2&&(e=0),arguments.length<3&&(a=e);var c=t[1]<t[0],u=t[c-0],h=t[1-c],f=Math.floor((h-u)/(r.length-e+2*a));return i=l(u+Math.round((h-u-(r.length-e)*f)/2),f),c&&i.reverse(),o=Math.round(f*(1-e)),n={t:\"rangeRoundBands\",a:arguments},s};s.rangeBand=function(){return o};s.rangeExtent=function(){return co(n.a[0])};s.copy=function(){return e(r,n)};return s.domain(r)}([],{t:\"range\",a:[[]]})},t.scale.category10=function(){return t.scale.ordinal().range(So)},t.scale.category20=function(){return t.scale.ordinal().range(Eo)},t.scale.category20b=function(){return t.scale.ordinal().range(Co)},t.scale.category20c=function(){return t.scale.ordinal().range(Lo)};var So=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(se),Eo=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(se),Co=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(se),Lo=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(se);function Po(){return 0}t.scale.quantile=function(){return function e(r,n){var a;function i(){var e=0,i=n.length;for(a=[];++e<i;)a[e-1]=t.quantile(r,e/i);return o}function o(e){if(!isNaN(e=+e))return n[t.bisect(a,e)]}o.domain=function(t){return arguments.length?(r=t.map(p).filter(d).sort(f),i()):r};o.range=function(t){return arguments.length?(n=t,i()):n};o.quantiles=function(){return a};o.invertExtent=function(t){return(t=n.indexOf(t))<0?[NaN,NaN]:[t>0?a[t-1]:r[0],t<a.length?a[t]:r[r.length-1]]};o.copy=function(){return e(r,n)};return i()}([],[])},t.scale.quantize=function(){return function t(e,r,n){var a,i;function o(t){return n[Math.max(0,Math.min(i,Math.floor(a*(t-e))))]}function s(){return a=n.length/(r-e),i=n.length-1,o}o.domain=function(t){return arguments.length?(e=+t[0],r=+t[t.length-1],s()):[e,r]};o.range=function(t){return arguments.length?(n=t,s()):n};o.invertExtent=function(t){return[t=(t=n.indexOf(t))<0?NaN:t/a+e,t+1/a]};o.copy=function(){return t(e,r,n)};return s()}(0,1,[0,1])},t.scale.threshold=function(){return function e(r,n){function a(e){if(e<=e)return n[t.bisect(r,e)]}a.domain=function(t){return arguments.length?(r=t,a):r};a.range=function(t){return arguments.length?(n=t,a):n};a.invertExtent=function(t){return t=n.indexOf(t),[r[t-1],r[t]]};a.copy=function(){return e(r,n)};return a}([.5],[0,1])},t.scale.identity=function(){return function t(e){function r(t){return+t}r.invert=r;r.domain=r.range=function(t){return arguments.length?(e=t.map(r),r):e};r.ticks=function(t){return bo(e,t)};r.tickFormat=function(t,r){return _o(e,t,r)};r.copy=function(){return t(e)};return r}([0,1])},t.svg={},t.svg.arc=function(){var t=zo,e=Io,r=Po,n=Oo,a=Do,i=Ro,o=Fo;function s(){var s=Math.max(0,+t.apply(this,arguments)),c=Math.max(0,+e.apply(this,arguments)),u=a.apply(this,arguments)-Et,h=i.apply(this,arguments)-Et,f=Math.abs(h-u),p=u>h?0:1;if(c<s&&(d=c,c=s,s=d),f>=St)return l(c,p)+(s?l(s,1-p):\"\")+\"Z\";var d,g,v,m,y,x,b,_,w,k,T,A,M=0,S=0,E=[];if((m=(+o.apply(this,arguments)||0)/2)&&(v=n===Oo?Math.sqrt(s*s+c*c):+n.apply(this,arguments),p||(S*=-1),c&&(S=It(v/c*Math.sin(m))),s&&(M=It(v/s*Math.sin(m)))),c){y=c*Math.cos(u+S),x=c*Math.sin(u+S),b=c*Math.cos(h-S),_=c*Math.sin(h-S);var C=Math.abs(h-u-2*S)<=At?0:1;if(S&&Bo(y,x,b,_)===p^C){var L=(u+h)/2;y=c*Math.cos(L),x=c*Math.sin(L),b=_=null}}else y=x=0;if(s){w=s*Math.cos(h-M),k=s*Math.sin(h-M),T=s*Math.cos(u+M),A=s*Math.sin(u+M);var P=Math.abs(u-h+2*M)<=At?0:1;if(M&&Bo(w,k,T,A)===1-p^P){var O=(u+h)/2;w=s*Math.cos(O),k=s*Math.sin(O),T=A=null}}else w=k=0;if(f>kt&&(d=Math.min(Math.abs(c-s)/2,+r.apply(this,arguments)))>.001){g=s<c^p?0:1;var z=d,I=d;if(f<At){var D=null==T?[w,k]:null==b?[y,x]:sa([y,x],[T,A],[b,_],[w,k]),R=y-D[0],F=x-D[1],B=b-D[0],N=_-D[1],j=1/Math.sin(Math.acos((R*B+F*N)/(Math.sqrt(R*R+F*F)*Math.sqrt(B*B+N*N)))/2),V=Math.sqrt(D[0]*D[0]+D[1]*D[1]);I=Math.min(d,(s-V)/(j-1)),z=Math.min(d,(c-V)/(j+1))}if(null!=b){var U=No(null==T?[w,k]:[T,A],[y,x],c,z,p),q=No([b,_],[w,k],c,z,p);d===z?E.push(\"M\",U[0],\"A\",z,\",\",z,\" 0 0,\",g,\" \",U[1],\"A\",c,\",\",c,\" 0 \",1-p^Bo(U[1][0],U[1][1],q[1][0],q[1][1]),\",\",p,\" \",q[1],\"A\",z,\",\",z,\" 0 0,\",g,\" \",q[0]):E.push(\"M\",U[0],\"A\",z,\",\",z,\" 0 1,\",g,\" \",q[0])}else E.push(\"M\",y,\",\",x);if(null!=T){var H=No([y,x],[T,A],s,-I,p),G=No([w,k],null==b?[y,x]:[b,_],s,-I,p);d===I?E.push(\"L\",G[0],\"A\",I,\",\",I,\" 0 0,\",g,\" \",G[1],\"A\",s,\",\",s,\" 0 \",p^Bo(G[1][0],G[1][1],H[1][0],H[1][1]),\",\",1-p,\" \",H[1],\"A\",I,\",\",I,\" 0 0,\",g,\" \",H[0]):E.push(\"L\",G[0],\"A\",I,\",\",I,\" 0 0,\",g,\" \",H[0])}else E.push(\"L\",w,\",\",k)}else E.push(\"M\",y,\",\",x),null!=b&&E.push(\"A\",c,\",\",c,\" 0 \",C,\",\",p,\" \",b,\",\",_),E.push(\"L\",w,\",\",k),null!=T&&E.push(\"A\",s,\",\",s,\" 0 \",P,\",\",1-p,\" \",T,\",\",A);return E.push(\"Z\"),E.join(\"\")}function l(t,e){return\"M0,\"+t+\"A\"+t+\",\"+t+\" 0 1,\"+e+\" 0,\"+-t+\"A\"+t+\",\"+t+\" 0 1,\"+e+\" 0,\"+t}return s.innerRadius=function(e){return arguments.length?(t=ve(e),s):t},s.outerRadius=function(t){return arguments.length?(e=ve(t),s):e},s.cornerRadius=function(t){return arguments.length?(r=ve(t),s):r},s.padRadius=function(t){return arguments.length?(n=t==Oo?Oo:ve(t),s):n},s.startAngle=function(t){return arguments.length?(a=ve(t),s):a},s.endAngle=function(t){return arguments.length?(i=ve(t),s):i},s.padAngle=function(t){return arguments.length?(o=ve(t),s):o},s.centroid=function(){var r=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,n=(+a.apply(this,arguments)+ +i.apply(this,arguments))/2-Et;return[Math.cos(n)*r,Math.sin(n)*r]},s};var Oo=\"auto\";function zo(t){return t.innerRadius}function Io(t){return t.outerRadius}function Do(t){return t.startAngle}function Ro(t){return t.endAngle}function Fo(t){return t&&t.padAngle}function Bo(t,e,r,n){return(t-r)*e-(e-n)*t>0?0:1}function No(t,e,r,n,a){var i=t[0]-e[0],o=t[1]-e[1],s=(a?n:-n)/Math.sqrt(i*i+o*o),l=s*o,c=-s*i,u=t[0]+l,h=t[1]+c,f=e[0]+l,p=e[1]+c,d=(u+f)/2,g=(h+p)/2,v=f-u,m=p-h,y=v*v+m*m,x=r-n,b=u*p-f*h,_=(m<0?-1:1)*Math.sqrt(Math.max(0,x*x*y-b*b)),w=(b*m-v*_)/y,k=(-b*v-m*_)/y,T=(b*m+v*_)/y,A=(-b*v+m*_)/y,M=w-d,S=k-g,E=T-d,C=A-g;return M*M+S*S>E*E+C*C&&(w=T,k=A),[[w-l,k-c],[w*r/x,k*r/x]]}function jo(t){var e=ea,r=ra,n=Yr,a=Uo,i=a.key,o=.7;function s(i){var s,l=[],c=[],u=-1,h=i.length,f=ve(e),p=ve(r);function d(){l.push(\"M\",a(t(c),o))}for(;++u<h;)n.call(this,s=i[u],u)?c.push([+f.call(this,s,u),+p.call(this,s,u)]):c.length&&(d(),c=[]);return c.length&&d(),l.length?l.join(\"\"):null}return s.x=function(t){return arguments.length?(e=t,s):e},s.y=function(t){return arguments.length?(r=t,s):r},s.defined=function(t){return arguments.length?(n=t,s):n},s.interpolate=function(t){return arguments.length?(i=\"function\"==typeof t?a=t:(a=Vo.get(t)||Uo).key,s):i},s.tension=function(t){return arguments.length?(o=t,s):o},s}t.svg.line=function(){return jo(P)};var Vo=t.map({linear:Uo,\"linear-closed\":qo,step:function(t){var e=0,r=t.length,n=t[0],a=[n[0],\",\",n[1]];for(;++e<r;)a.push(\"H\",(n[0]+(n=t[e])[0])/2,\"V\",n[1]);r>1&&a.push(\"H\",n[0]);return a.join(\"\")},\"step-before\":Ho,\"step-after\":Go,basis:Xo,\"basis-open\":function(t){if(t.length<4)return Uo(t);var e,r=[],n=-1,a=t.length,i=[0],o=[0];for(;++n<3;)e=t[n],i.push(e[0]),o.push(e[1]);r.push(Zo(Qo,i)+\",\"+Zo(Qo,o)),--n;for(;++n<a;)e=t[n],i.shift(),i.push(e[0]),o.shift(),o.push(e[1]),$o(r,i,o);return r.join(\"\")},\"basis-closed\":function(t){var e,r,n=-1,a=t.length,i=a+4,o=[],s=[];for(;++n<4;)r=t[n%a],o.push(r[0]),s.push(r[1]);e=[Zo(Qo,o),\",\",Zo(Qo,s)],--n;for(;++n<i;)r=t[n%a],o.shift(),o.push(r[0]),s.shift(),s.push(r[1]),$o(e,o,s);return e.join(\"\")},bundle:function(t,e){var r=t.length-1;if(r)for(var n,a,i=t[0][0],o=t[0][1],s=t[r][0]-i,l=t[r][1]-o,c=-1;++c<=r;)n=t[c],a=c/r,n[0]=e*n[0]+(1-e)*(i+a*s),n[1]=e*n[1]+(1-e)*(o+a*l);return Xo(t)},cardinal:function(t,e){return t.length<3?Uo(t):t[0]+Yo(t,Wo(t,e))},\"cardinal-open\":function(t,e){return t.length<4?Uo(t):t[1]+Yo(t.slice(1,-1),Wo(t,e))},\"cardinal-closed\":function(t,e){return t.length<3?qo(t):t[0]+Yo((t.push(t[0]),t),Wo([t[t.length-2]].concat(t,[t[1]]),e))},monotone:function(t){return t.length<3?Uo(t):t[0]+Yo(t,function(t){var e,r,n,a,i=[],o=function(t){var e=0,r=t.length-1,n=[],a=t[0],i=t[1],o=n[0]=ts(a,i);for(;++e<r;)n[e]=(o+(o=ts(a=i,i=t[e+1])))/2;return n[e]=o,n}(t),s=-1,l=t.length-1;for(;++s<l;)e=ts(t[s],t[s+1]),y(e)<kt?o[s]=o[s+1]=0:(r=o[s]/e,n=o[s+1]/e,(a=r*r+n*n)>9&&(a=3*e/Math.sqrt(a),o[s]=a*r,o[s+1]=a*n));s=-1;for(;++s<=l;)a=(t[Math.min(l,s+1)][0]-t[Math.max(0,s-1)][0])/(6*(1+o[s]*o[s])),i.push([a||0,o[s]*a||0]);return i}(t))}});function Uo(t){return t.length>1?t.join(\"L\"):t+\"Z\"}function qo(t){return t.join(\"L\")+\"Z\"}function Ho(t){for(var e=0,r=t.length,n=t[0],a=[n[0],\",\",n[1]];++e<r;)a.push(\"V\",(n=t[e])[1],\"H\",n[0]);return a.join(\"\")}function Go(t){for(var e=0,r=t.length,n=t[0],a=[n[0],\",\",n[1]];++e<r;)a.push(\"H\",(n=t[e])[0],\"V\",n[1]);return a.join(\"\")}function Yo(t,e){if(e.length<1||t.length!=e.length&&t.length!=e.length+2)return Uo(t);var r=t.length!=e.length,n=\"\",a=t[0],i=t[1],o=e[0],s=o,l=1;if(r&&(n+=\"Q\"+(i[0]-2*o[0]/3)+\",\"+(i[1]-2*o[1]/3)+\",\"+i[0]+\",\"+i[1],a=t[1],l=2),e.length>1){s=e[1],i=t[l],l++,n+=\"C\"+(a[0]+o[0])+\",\"+(a[1]+o[1])+\",\"+(i[0]-s[0])+\",\"+(i[1]-s[1])+\",\"+i[0]+\",\"+i[1];for(var c=2;c<e.length;c++,l++)i=t[l],s=e[c],n+=\"S\"+(i[0]-s[0])+\",\"+(i[1]-s[1])+\",\"+i[0]+\",\"+i[1]}if(r){var u=t[l];n+=\"Q\"+(i[0]+2*s[0]/3)+\",\"+(i[1]+2*s[1]/3)+\",\"+u[0]+\",\"+u[1]}return n}function Wo(t,e){for(var r,n=[],a=(1-e)/2,i=t[0],o=t[1],s=1,l=t.length;++s<l;)r=i,i=o,o=t[s],n.push([a*(o[0]-r[0]),a*(o[1]-r[1])]);return n}function Xo(t){if(t.length<3)return Uo(t);var e=1,r=t.length,n=t[0],a=n[0],i=n[1],o=[a,a,a,(n=t[1])[0]],s=[i,i,i,n[1]],l=[a,\",\",i,\"L\",Zo(Qo,o),\",\",Zo(Qo,s)];for(t.push(t[r-1]);++e<=r;)n=t[e],o.shift(),o.push(n[0]),s.shift(),s.push(n[1]),$o(l,o,s);return t.pop(),l.push(\"L\",n),l.join(\"\")}function Zo(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}Vo.forEach(function(t,e){e.key=t,e.closed=/-closed$/.test(t)});var Jo=[0,2/3,1/3,0],Ko=[0,1/3,2/3,0],Qo=[0,1/6,2/3,1/6];function $o(t,e,r){t.push(\"C\",Zo(Jo,e),\",\",Zo(Jo,r),\",\",Zo(Ko,e),\",\",Zo(Ko,r),\",\",Zo(Qo,e),\",\",Zo(Qo,r))}function ts(t,e){return(e[1]-t[1])/(e[0]-t[0])}function es(t){for(var e,r,n,a=-1,i=t.length;++a<i;)r=(e=t[a])[0],n=e[1]-Et,e[0]=r*Math.cos(n),e[1]=r*Math.sin(n);return t}function rs(t){var e=ea,r=ea,n=0,a=ra,i=Yr,o=Uo,s=o.key,l=o,c=\"L\",u=.7;function h(s){var h,f,p,d=[],g=[],v=[],m=-1,y=s.length,x=ve(e),b=ve(n),_=e===r?function(){return f}:ve(r),w=n===a?function(){return p}:ve(a);function k(){d.push(\"M\",o(t(v),u),c,l(t(g.reverse()),u),\"Z\")}for(;++m<y;)i.call(this,h=s[m],m)?(g.push([f=+x.call(this,h,m),p=+b.call(this,h,m)]),v.push([+_.call(this,h,m),+w.call(this,h,m)])):g.length&&(k(),g=[],v=[]);return g.length&&k(),d.length?d.join(\"\"):null}return h.x=function(t){return arguments.length?(e=r=t,h):r},h.x0=function(t){return arguments.length?(e=t,h):e},h.x1=function(t){return arguments.length?(r=t,h):r},h.y=function(t){return arguments.length?(n=a=t,h):a},h.y0=function(t){return arguments.length?(n=t,h):n},h.y1=function(t){return arguments.length?(a=t,h):a},h.defined=function(t){return arguments.length?(i=t,h):i},h.interpolate=function(t){return arguments.length?(s=\"function\"==typeof t?o=t:(o=Vo.get(t)||Uo).key,l=o.reverse||o,c=o.closed?\"M\":\"L\",h):s},h.tension=function(t){return arguments.length?(u=t,h):u},h}function ns(t){return t.radius}function as(t){return[t.x,t.y]}function is(){return 64}function os(){return\"circle\"}function ss(t){var e=Math.sqrt(t/At);return\"M0,\"+e+\"A\"+e+\",\"+e+\" 0 1,1 0,\"+-e+\"A\"+e+\",\"+e+\" 0 1,1 0,\"+e+\"Z\"}t.svg.line.radial=function(){var t=jo(es);return t.radius=t.x,delete t.x,t.angle=t.y,delete t.y,t},Ho.reverse=Go,Go.reverse=Ho,t.svg.area=function(){return rs(P)},t.svg.area.radial=function(){var t=rs(es);return t.radius=t.x,delete t.x,t.innerRadius=t.x0,delete t.x0,t.outerRadius=t.x1,delete t.x1,t.angle=t.y,delete t.y,t.startAngle=t.y0,delete t.y0,t.endAngle=t.y1,delete t.y1,t},t.svg.chord=function(){var t=Vn,e=Un,r=ns,n=Do,a=Ro;function i(r,n){var a,i,c=o(this,t,r,n),u=o(this,e,r,n);return\"M\"+c.p0+s(c.r,c.p1,c.a1-c.a0)+(i=u,(a=c).a0==i.a0&&a.a1==i.a1?l(c.r,c.p1,c.r,c.p0):l(c.r,c.p1,u.r,u.p0)+s(u.r,u.p1,u.a1-u.a0)+l(u.r,u.p1,c.r,c.p0))+\"Z\"}function o(t,e,i,o){var s=e.call(t,i,o),l=r.call(t,s,o),c=n.call(t,s,o)-Et,u=a.call(t,s,o)-Et;return{r:l,a0:c,a1:u,p0:[l*Math.cos(c),l*Math.sin(c)],p1:[l*Math.cos(u),l*Math.sin(u)]}}function s(t,e,r){return\"A\"+t+\",\"+t+\" 0 \"+ +(r>At)+\",1 \"+e}function l(t,e,r,n){return\"Q 0,0 \"+n}return i.radius=function(t){return arguments.length?(r=ve(t),i):r},i.source=function(e){return arguments.length?(t=ve(e),i):t},i.target=function(t){return arguments.length?(e=ve(t),i):e},i.startAngle=function(t){return arguments.length?(n=ve(t),i):n},i.endAngle=function(t){return arguments.length?(a=ve(t),i):a},i},t.svg.diagonal=function(){var t=Vn,e=Un,r=as;function n(n,a){var i=t.call(this,n,a),o=e.call(this,n,a),s=(i.y+o.y)/2,l=[i,{x:i.x,y:s},{x:o.x,y:s},o];return\"M\"+(l=l.map(r))[0]+\"C\"+l[1]+\" \"+l[2]+\" \"+l[3]}return n.source=function(e){return arguments.length?(t=ve(e),n):t},n.target=function(t){return arguments.length?(e=ve(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},t.svg.diagonal.radial=function(){var e=t.svg.diagonal(),r=as,n=e.projection;return e.projection=function(t){return arguments.length?n(function(t){return function(){var e=t.apply(this,arguments),r=e[0],n=e[1]-Et;return[r*Math.cos(n),r*Math.sin(n)]}}(r=t)):r},e},t.svg.symbol=function(){var t=os,e=is;function r(r,n){return(ls.get(t.call(this,r,n))||ss)(e.call(this,r,n))}return r.type=function(e){return arguments.length?(t=ve(e),r):t},r.size=function(t){return arguments.length?(e=ve(t),r):e},r};var ls=t.map({circle:ss,cross:function(t){var e=Math.sqrt(t/5)/2;return\"M\"+-3*e+\",\"+-e+\"H\"+-e+\"V\"+-3*e+\"H\"+e+\"V\"+-e+\"H\"+3*e+\"V\"+e+\"H\"+e+\"V\"+3*e+\"H\"+-e+\"V\"+e+\"H\"+-3*e+\"Z\"},diamond:function(t){var e=Math.sqrt(t/(2*us)),r=e*us;return\"M0,\"+-e+\"L\"+r+\",0 0,\"+e+\" \"+-r+\",0Z\"},square:function(t){var e=Math.sqrt(t)/2;return\"M\"+-e+\",\"+-e+\"L\"+e+\",\"+-e+\" \"+e+\",\"+e+\" \"+-e+\",\"+e+\"Z\"},\"triangle-down\":function(t){var e=Math.sqrt(t/cs),r=e*cs/2;return\"M0,\"+r+\"L\"+e+\",\"+-r+\" \"+-e+\",\"+-r+\"Z\"},\"triangle-up\":function(t){var e=Math.sqrt(t/cs),r=e*cs/2;return\"M0,\"+-r+\"L\"+e+\",\"+r+\" \"+-e+\",\"+r+\"Z\"}});t.svg.symbolTypes=ls.keys();var cs=Math.sqrt(3),us=Math.tan(30*Ct);W.transition=function(t){for(var e,r,n=ds||++ms,a=bs(t),i=[],o=gs||{time:Date.now(),ease:ai,delay:0,duration:250},s=-1,l=this.length;++s<l;){i.push(e=[]);for(var c=this[s],u=-1,h=c.length;++u<h;)(r=c[u])&&_s(r,u,a,n,o),e.push(r)}return ps(i,a,n)},W.interrupt=function(t){return this.each(null==t?hs:fs(bs(t)))};var hs=fs(bs());function fs(t){return function(){var e,r,n;(e=this[t])&&(n=e[r=e.active])&&(n.timer.c=null,n.timer.t=NaN,--e.count?delete e[r]:delete this[t],e.active+=.5,n.event&&n.event.interrupt.call(this,this.__data__,n.index))}}function ps(t,e,r){return U(t,vs),t.namespace=e,t.id=r,t}var ds,gs,vs=[],ms=0;function ys(t,e,r,n){var a=t.id,i=t.namespace;return ut(t,\"function\"==typeof r?function(t,o,s){t[i][a].tween.set(e,n(r.call(t,t.__data__,o,s)))}:(r=n(r),function(t){t[i][a].tween.set(e,r)}))}function xs(t){return null==t&&(t=\"\"),function(){this.textContent=t}}function bs(t){return null==t?\"__transition__\":\"__transition_\"+t+\"__\"}function _s(t,e,r,n,a){var i,o,s,l,c,u=t[r]||(t[r]={active:0,count:0}),h=u[n];function f(r){var a=u.active,f=u[a];for(var d in f&&(f.timer.c=null,f.timer.t=NaN,--u.count,delete u[a],f.event&&f.event.interrupt.call(t,t.__data__,f.index)),u)if(+d<n){var g=u[d];g.timer.c=null,g.timer.t=NaN,--u.count,delete u[d]}o.c=p,Te(function(){return o.c&&p(r||1)&&(o.c=null,o.t=NaN),1},0,i),u.active=n,h.event&&h.event.start.call(t,t.__data__,e),c=[],h.tween.forEach(function(r,n){(n=n.call(t,t.__data__,e))&&c.push(n)}),l=h.ease,s=h.duration}function p(a){for(var i=a/s,o=l(i),f=c.length;f>0;)c[--f].call(t,o);if(i>=1)return h.event&&h.event.end.call(t,t.__data__,e),--u.count?delete u[n]:delete t[r],1}h||(i=a.time,o=Te(function(t){var e=h.delay;if(o.t=e+i,e<=t)return f(t-e);o.c=f},0,i),h=u[n]={tween:new b,time:i,timer:o,delay:a.delay,duration:a.duration,ease:a.ease,index:e},a=null,++u.count)}vs.call=W.call,vs.empty=W.empty,vs.node=W.node,vs.size=W.size,t.transition=function(e,r){return e&&e.transition?ds?e.transition(r):e:t.selection().transition(e)},t.transition.prototype=vs,vs.select=function(t){var e,r,n,a=this.id,i=this.namespace,o=[];t=X(t);for(var s=-1,l=this.length;++s<l;){o.push(e=[]);for(var c=this[s],u=-1,h=c.length;++u<h;)(n=c[u])&&(r=t.call(n,n.__data__,u,s))?(\"__data__\"in n&&(r.__data__=n.__data__),_s(r,u,i,a,n[i][a]),e.push(r)):e.push(null)}return ps(o,i,a)},vs.selectAll=function(t){var e,r,n,a,i,o=this.id,s=this.namespace,l=[];t=Z(t);for(var c=-1,u=this.length;++c<u;)for(var h=this[c],f=-1,p=h.length;++f<p;)if(n=h[f]){i=n[s][o],r=t.call(n,n.__data__,f,c),l.push(e=[]);for(var d=-1,g=r.length;++d<g;)(a=r[d])&&_s(a,d,s,o,i),e.push(a)}return ps(l,s,o)},vs.filter=function(t){var e,r,n=[];\"function\"!=typeof t&&(t=ct(t));for(var a=0,i=this.length;a<i;a++){n.push(e=[]);for(var o,s=0,l=(o=this[a]).length;s<l;s++)(r=o[s])&&t.call(r,r.__data__,s,a)&&e.push(r)}return ps(n,this.namespace,this.id)},vs.tween=function(t,e){var r=this.id,n=this.namespace;return arguments.length<2?this.node()[n][r].tween.get(t):ut(this,null==e?function(e){e[n][r].tween.remove(t)}:function(a){a[n][r].tween.set(t,e)})},vs.attr=function(e,r){if(arguments.length<2){for(r in e)this.attr(r,e[r]);return this}var n=\"transform\"==e?gi:Za,a=t.ns.qualify(e);function i(){this.removeAttribute(a)}function o(){this.removeAttributeNS(a.space,a.local)}return ys(this,\"attr.\"+e,r,a.local?function(t){return null==t?o:(t+=\"\",function(){var e,r=this.getAttributeNS(a.space,a.local);return r!==t&&(e=n(r,t),function(t){this.setAttributeNS(a.space,a.local,e(t))})})}:function(t){return null==t?i:(t+=\"\",function(){var e,r=this.getAttribute(a);return r!==t&&(e=n(r,t),function(t){this.setAttribute(a,e(t))})})})},vs.attrTween=function(e,r){var n=t.ns.qualify(e);return this.tween(\"attr.\"+e,n.local?function(t,e){var a=r.call(this,t,e,this.getAttributeNS(n.space,n.local));return a&&function(t){this.setAttributeNS(n.space,n.local,a(t))}}:function(t,e){var a=r.call(this,t,e,this.getAttribute(n));return a&&function(t){this.setAttribute(n,a(t))}})},vs.style=function(t,e,r){var n=arguments.length;if(n<3){if(\"string\"!=typeof t){for(r in n<2&&(e=\"\"),t)this.style(r,t[r],e);return this}r=\"\"}function a(){this.style.removeProperty(t)}return ys(this,\"style.\"+t,e,function(e){return null==e?a:(e+=\"\",function(){var n,a=o(this).getComputedStyle(this,null).getPropertyValue(t);return a!==e&&(n=Za(a,e),function(e){this.style.setProperty(t,n(e),r)})})})},vs.styleTween=function(t,e,r){return arguments.length<3&&(r=\"\"),this.tween(\"style.\"+t,function(n,a){var i=e.call(this,n,a,o(this).getComputedStyle(this,null).getPropertyValue(t));return i&&function(e){this.style.setProperty(t,i(e),r)}})},vs.text=function(t){return ys(this,\"text\",t,xs)},vs.remove=function(){var t=this.namespace;return this.each(\"end.transition\",function(){var e;this[t].count<2&&(e=this.parentNode)&&e.removeChild(this)})},vs.ease=function(e){var r=this.id,n=this.namespace;return arguments.length<1?this.node()[n][r].ease:(\"function\"!=typeof e&&(e=t.ease.apply(t,arguments)),ut(this,function(t){t[n][r].ease=e}))},vs.delay=function(t){var e=this.id,r=this.namespace;return arguments.length<1?this.node()[r][e].delay:ut(this,\"function\"==typeof t?function(n,a,i){n[r][e].delay=+t.call(n,n.__data__,a,i)}:(t=+t,function(n){n[r][e].delay=t}))},vs.duration=function(t){var e=this.id,r=this.namespace;return arguments.length<1?this.node()[r][e].duration:ut(this,\"function\"==typeof t?function(n,a,i){n[r][e].duration=Math.max(1,t.call(n,n.__data__,a,i))}:(t=Math.max(1,t),function(n){n[r][e].duration=t}))},vs.each=function(e,r){var n=this.id,a=this.namespace;if(arguments.length<2){var i=gs,o=ds;try{ds=n,ut(this,function(t,r,i){gs=t[a][n],e.call(t,t.__data__,r,i)})}finally{gs=i,ds=o}}else ut(this,function(i){var o=i[a][n];(o.event||(o.event=t.dispatch(\"start\",\"end\",\"interrupt\"))).on(e,r)});return this},vs.transition=function(){for(var t,e,r,n=this.id,a=++ms,i=this.namespace,o=[],s=0,l=this.length;s<l;s++){o.push(t=[]);for(var c,u=0,h=(c=this[s]).length;u<h;u++)(e=c[u])&&_s(e,u,i,a,{time:(r=e[i][n]).time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration}),t.push(e)}return ps(o,i,a)},t.svg.axis=function(){var e,r=t.scale.linear(),a=ws,i=6,o=6,s=3,l=[10],c=null;function u(n){n.each(function(){var n,u=t.select(this),h=this.__chart__||r,f=this.__chart__=r.copy(),p=null==c?f.ticks?f.ticks.apply(f,l):f.domain():c,d=null==e?f.tickFormat?f.tickFormat.apply(f,l):P:e,g=u.selectAll(\".tick\").data(p,f),v=g.enter().insert(\"g\",\".domain\").attr(\"class\",\"tick\").style(\"opacity\",kt),m=t.transition(g.exit()).style(\"opacity\",kt).remove(),y=t.transition(g.order()).style(\"opacity\",1),x=Math.max(i,0)+s,b=uo(f),_=u.selectAll(\".domain\").data([0]),w=(_.enter().append(\"path\").attr(\"class\",\"domain\"),t.transition(_));v.append(\"line\"),v.append(\"text\");var k,T,A,M,S=v.select(\"line\"),E=y.select(\"line\"),C=g.select(\"text\").text(d),L=v.select(\"text\"),O=y.select(\"text\"),z=\"top\"===a||\"left\"===a?-1:1;if(\"bottom\"===a||\"top\"===a?(n=Ts,k=\"x\",A=\"y\",T=\"x2\",M=\"y2\",C.attr(\"dy\",z<0?\"0em\":\".71em\").style(\"text-anchor\",\"middle\"),w.attr(\"d\",\"M\"+b[0]+\",\"+z*o+\"V0H\"+b[1]+\"V\"+z*o)):(n=As,k=\"y\",A=\"x\",T=\"y2\",M=\"x2\",C.attr(\"dy\",\".32em\").style(\"text-anchor\",z<0?\"end\":\"start\"),w.attr(\"d\",\"M\"+z*o+\",\"+b[0]+\"H0V\"+b[1]+\"H\"+z*o)),S.attr(M,z*i),L.attr(A,z*x),E.attr(T,0).attr(M,z*i),O.attr(k,0).attr(A,z*x),f.rangeBand){var I=f,D=I.rangeBand()/2;h=f=function(t){return I(t)+D}}else h.rangeBand?h=f:m.call(n,f,h);v.call(n,h,f),y.call(n,f,f)})}return u.scale=function(t){return arguments.length?(r=t,u):r},u.orient=function(t){return arguments.length?(a=t in ks?t+\"\":ws,u):a},u.ticks=function(){return arguments.length?(l=n(arguments),u):l},u.tickValues=function(t){return arguments.length?(c=t,u):c},u.tickFormat=function(t){return arguments.length?(e=t,u):e},u.tickSize=function(t){var e=arguments.length;return e?(i=+t,o=+arguments[e-1],u):i},u.innerTickSize=function(t){return arguments.length?(i=+t,u):i},u.outerTickSize=function(t){return arguments.length?(o=+t,u):o},u.tickPadding=function(t){return arguments.length?(s=+t,u):s},u.tickSubdivide=function(){return arguments.length&&u},u};var ws=\"bottom\",ks={top:1,right:1,bottom:1,left:1};function Ts(t,e,r){t.attr(\"transform\",function(t){var n=e(t);return\"translate(\"+(isFinite(n)?n:r(t))+\",0)\"})}function As(t,e,r){t.attr(\"transform\",function(t){var n=e(t);return\"translate(0,\"+(isFinite(n)?n:r(t))+\")\"})}t.svg.brush=function(){var e,r,n=j(f,\"brushstart\",\"brush\",\"brushend\"),a=null,i=null,s=[0,0],l=[0,0],c=!0,u=!0,h=Ss[0];function f(e){e.each(function(){var e=t.select(this).style(\"pointer-events\",\"all\").style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\").on(\"mousedown.brush\",v).on(\"touchstart.brush\",v),r=e.selectAll(\".background\").data([0]);r.enter().append(\"rect\").attr(\"class\",\"background\").style(\"visibility\",\"hidden\").style(\"cursor\",\"crosshair\"),e.selectAll(\".extent\").data([0]).enter().append(\"rect\").attr(\"class\",\"extent\").style(\"cursor\",\"move\");var n=e.selectAll(\".resize\").data(h,P);n.exit().remove(),n.enter().append(\"g\").attr(\"class\",function(t){return\"resize \"+t}).style(\"cursor\",function(t){return Ms[t]}).append(\"rect\").attr(\"x\",function(t){return/[ew]$/.test(t)?-3:null}).attr(\"y\",function(t){return/^[ns]/.test(t)?-3:null}).attr(\"width\",6).attr(\"height\",6).style(\"visibility\",\"hidden\"),n.style(\"display\",f.empty()?\"none\":null);var o,s=t.transition(e),l=t.transition(r);a&&(o=uo(a),l.attr(\"x\",o[0]).attr(\"width\",o[1]-o[0]),d(s)),i&&(o=uo(i),l.attr(\"y\",o[0]).attr(\"height\",o[1]-o[0]),g(s)),p(s)})}function p(t){t.selectAll(\".resize\").attr(\"transform\",function(t){return\"translate(\"+s[+/e$/.test(t)]+\",\"+l[+/^s/.test(t)]+\")\"})}function d(t){t.select(\".extent\").attr(\"x\",s[0]),t.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\",s[1]-s[0])}function g(t){t.select(\".extent\").attr(\"y\",l[0]),t.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\",l[1]-l[0])}function v(){var h,v,m=this,y=t.select(t.event.target),x=n.of(m,arguments),b=t.select(m),_=y.datum(),w=!/^(n|s)$/.test(_)&&a,k=!/^(e|w)$/.test(_)&&i,T=y.classed(\"extent\"),A=xt(m),M=t.mouse(m),S=t.select(o(m)).on(\"keydown.brush\",function(){32==t.event.keyCode&&(T||(h=null,M[0]-=s[1],M[1]-=l[1],T=2),B())}).on(\"keyup.brush\",function(){32==t.event.keyCode&&2==T&&(M[0]+=s[1],M[1]+=l[1],T=0,B())});if(t.event.changedTouches?S.on(\"touchmove.brush\",L).on(\"touchend.brush\",O):S.on(\"mousemove.brush\",L).on(\"mouseup.brush\",O),b.interrupt().selectAll(\"*\").interrupt(),T)M[0]=s[0]-M[0],M[1]=l[0]-M[1];else if(_){var E=+/w$/.test(_),C=+/^n/.test(_);v=[s[1-E]-M[0],l[1-C]-M[1]],M[0]=s[E],M[1]=l[C]}else t.event.altKey&&(h=M.slice());function L(){var e=t.mouse(m),r=!1;v&&(e[0]+=v[0],e[1]+=v[1]),T||(t.event.altKey?(h||(h=[(s[0]+s[1])/2,(l[0]+l[1])/2]),M[0]=s[+(e[0]<h[0])],M[1]=l[+(e[1]<h[1])]):h=null),w&&P(e,a,0)&&(d(b),r=!0),k&&P(e,i,1)&&(g(b),r=!0),r&&(p(b),x({type:\"brush\",mode:T?\"move\":\"resize\"}))}function P(t,n,a){var i,o,f=uo(n),p=f[0],d=f[1],g=M[a],v=a?l:s,m=v[1]-v[0];if(T&&(p-=g,d-=m+g),i=(a?u:c)?Math.max(p,Math.min(d,t[a])):t[a],T?o=(i+=g)+m:(h&&(g=Math.max(p,Math.min(d,2*h[a]-i))),g<i?(o=i,i=g):o=g),v[0]!=i||v[1]!=o)return a?r=null:e=null,v[0]=i,v[1]=o,!0}function O(){L(),b.style(\"pointer-events\",\"all\").selectAll(\".resize\").style(\"display\",f.empty()?\"none\":null),t.select(\"body\").style(\"cursor\",null),S.on(\"mousemove.brush\",null).on(\"mouseup.brush\",null).on(\"touchmove.brush\",null).on(\"touchend.brush\",null).on(\"keydown.brush\",null).on(\"keyup.brush\",null),A(),x({type:\"brushend\"})}b.style(\"pointer-events\",\"none\").selectAll(\".resize\").style(\"display\",null),t.select(\"body\").style(\"cursor\",y.style(\"cursor\")),x({type:\"brushstart\"}),L()}return f.event=function(a){a.each(function(){var a=n.of(this,arguments),i={x:s,y:l,i:e,j:r},o=this.__chart__||i;this.__chart__=i,ds?t.select(this).transition().each(\"start.brush\",function(){e=o.i,r=o.j,s=o.x,l=o.y,a({type:\"brushstart\"})}).tween(\"brush:brush\",function(){var t=Ja(s,i.x),n=Ja(l,i.y);return e=r=null,function(e){s=i.x=t(e),l=i.y=n(e),a({type:\"brush\",mode:\"resize\"})}}).each(\"end.brush\",function(){e=i.i,r=i.j,a({type:\"brush\",mode:\"resize\"}),a({type:\"brushend\"})}):(a({type:\"brushstart\"}),a({type:\"brush\",mode:\"resize\"}),a({type:\"brushend\"}))})},f.x=function(t){return arguments.length?(h=Ss[!(a=t)<<1|!i],f):a},f.y=function(t){return arguments.length?(h=Ss[!a<<1|!(i=t)],f):i},f.clamp=function(t){return arguments.length?(a&&i?(c=!!t[0],u=!!t[1]):a?c=!!t:i&&(u=!!t),f):a&&i?[c,u]:a?c:i?u:null},f.extent=function(t){var n,o,c,u,h;return arguments.length?(a&&(n=t[0],o=t[1],i&&(n=n[0],o=o[0]),e=[n,o],a.invert&&(n=a(n),o=a(o)),o<n&&(h=n,n=o,o=h),n==s[0]&&o==s[1]||(s=[n,o])),i&&(c=t[0],u=t[1],a&&(c=c[1],u=u[1]),r=[c,u],i.invert&&(c=i(c),u=i(u)),u<c&&(h=c,c=u,u=h),c==l[0]&&u==l[1]||(l=[c,u])),f):(a&&(e?(n=e[0],o=e[1]):(n=s[0],o=s[1],a.invert&&(n=a.invert(n),o=a.invert(o)),o<n&&(h=n,n=o,o=h))),i&&(r?(c=r[0],u=r[1]):(c=l[0],u=l[1],i.invert&&(c=i.invert(c),u=i.invert(u)),u<c&&(h=c,c=u,u=h))),a&&i?[[n,c],[o,u]]:a?[n,o]:i&&[c,u])},f.clear=function(){return f.empty()||(s=[0,0],l=[0,0],e=r=null),f},f.empty=function(){return!!a&&s[0]==s[1]||!!i&&l[0]==l[1]},t.rebind(f,n,\"on\")};var Ms={n:\"ns-resize\",e:\"ew-resize\",s:\"ns-resize\",w:\"ew-resize\",nw:\"nwse-resize\",ne:\"nesw-resize\",se:\"nwse-resize\",sw:\"nesw-resize\"},Ss=[[\"n\",\"e\",\"s\",\"w\",\"nw\",\"ne\",\"se\",\"sw\"],[\"e\",\"w\"],[\"n\",\"s\"],[]],Es=ze.format=sr.timeFormat,Cs=Es.utc,Ls=Cs(\"%Y-%m-%dT%H:%M:%S.%LZ\");function Ps(t){return t.toISOString()}function Os(e,r,n){function a(t){return e(t)}function i(e,n){var a=(e[1]-e[0])/n,i=t.bisect(Is,a);return i==Is.length?[r.year,xo(e.map(function(t){return t/31536e6}),n)[2]]:i?r[a/Is[i-1]<Is[i]/a?i-1:i]:[Fs,xo(e,n)[2]]}return a.invert=function(t){return zs(e.invert(t))},a.domain=function(t){return arguments.length?(e.domain(t),a):e.domain().map(zs)},a.nice=function(t,e){var r=a.domain(),n=co(r),o=null==t?i(n,10):\"number\"==typeof t&&i(n,t);function s(r){return!isNaN(r)&&!t.range(r,zs(+r+1),e).length}return o&&(t=o[0],e=o[1]),a.domain(fo(r,e>1?{floor:function(e){for(;s(e=t.floor(e));)e=zs(e-1);return e},ceil:function(e){for(;s(e=t.ceil(e));)e=zs(+e+1);return e}}:t))},a.ticks=function(t,e){var r=co(a.domain()),n=null==t?i(r,10):\"number\"==typeof t?i(r,t):!t.range&&[{range:t},e];return n&&(t=n[0],e=n[1]),t.range(r[0],zs(+r[1]+1),e<1?1:e)},a.tickFormat=function(){return n},a.copy=function(){return Os(e.copy(),r,n)},mo(a,e)}function zs(t){return new Date(t)}Es.iso=Date.prototype.toISOString&&+new Date(\"2000-01-01T00:00:00.000Z\")?Ps:Ls,Ps.parse=function(t){var e=new Date(t);return isNaN(e)?null:e},Ps.toString=Ls.toString,ze.second=Fe(function(t){return new Ie(1e3*Math.floor(t/1e3))},function(t,e){t.setTime(t.getTime()+1e3*Math.floor(e))},function(t){return t.getSeconds()}),ze.seconds=ze.second.range,ze.seconds.utc=ze.second.utc.range,ze.minute=Fe(function(t){return new Ie(6e4*Math.floor(t/6e4))},function(t,e){t.setTime(t.getTime()+6e4*Math.floor(e))},function(t){return t.getMinutes()}),ze.minutes=ze.minute.range,ze.minutes.utc=ze.minute.utc.range,ze.hour=Fe(function(t){var e=t.getTimezoneOffset()/60;return new Ie(36e5*(Math.floor(t/36e5-e)+e))},function(t,e){t.setTime(t.getTime()+36e5*Math.floor(e))},function(t){return t.getHours()}),ze.hours=ze.hour.range,ze.hours.utc=ze.hour.utc.range,ze.month=Fe(function(t){return(t=ze.day(t)).setDate(1),t},function(t,e){t.setMonth(t.getMonth()+e)},function(t){return t.getMonth()}),ze.months=ze.month.range,ze.months.utc=ze.month.utc.range;var Is=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ds=[[ze.second,1],[ze.second,5],[ze.second,15],[ze.second,30],[ze.minute,1],[ze.minute,5],[ze.minute,15],[ze.minute,30],[ze.hour,1],[ze.hour,3],[ze.hour,6],[ze.hour,12],[ze.day,1],[ze.day,2],[ze.week,1],[ze.month,1],[ze.month,3],[ze.year,1]],Rs=Es.multi([[\".%L\",function(t){return t.getMilliseconds()}],[\":%S\",function(t){return t.getSeconds()}],[\"%I:%M\",function(t){return t.getMinutes()}],[\"%I %p\",function(t){return t.getHours()}],[\"%a %d\",function(t){return t.getDay()&&1!=t.getDate()}],[\"%b %d\",function(t){return 1!=t.getDate()}],[\"%B\",function(t){return t.getMonth()}],[\"%Y\",Yr]]),Fs={range:function(e,r,n){return t.range(Math.ceil(e/n)*n,+r,n).map(zs)},floor:P,ceil:P};Ds.year=ze.year,ze.scale=function(){return Os(t.scale.linear(),Ds,Rs)};var Bs=Ds.map(function(t){return[t[0].utc,t[1]]}),Ns=Cs.multi([[\".%L\",function(t){return t.getUTCMilliseconds()}],[\":%S\",function(t){return t.getUTCSeconds()}],[\"%I:%M\",function(t){return t.getUTCMinutes()}],[\"%I %p\",function(t){return t.getUTCHours()}],[\"%a %d\",function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],[\"%b %d\",function(t){return 1!=t.getUTCDate()}],[\"%B\",function(t){return t.getUTCMonth()}],[\"%Y\",Yr]]);function js(t){return JSON.parse(t.responseText)}function Vs(t){var e=a.createRange();return e.selectNode(a.body),e.createContextualFragment(t.responseText)}Bs.year=ze.year.utc,ze.scale.utc=function(){return Os(t.scale.linear(),Bs,Ns)},t.text=me(function(t){return t.responseText}),t.json=function(t,e){return ye(t,\"application/json\",js,e)},t.html=function(t,e){return ye(t,\"text/html\",Vs,e)},t.xml=me(function(t){return t.responseXML}),\"object\"==typeof e&&e.exports?e.exports=t:this.d3=t}()},{}],165:[function(t,e,r){e.exports=function(){for(var t=0;t<arguments.length;t++)if(void 0!==arguments[t])return arguments[t]}},{}],166:[function(t,e,r){\"use strict\";var n=t(\"incremental-convex-hull\"),a=t(\"uniq\");function i(t,e){this.point=t,this.index=e}function o(t,e){for(var r=t.point,n=e.point,a=r.length,i=0;i<a;++i){var o=n[i]-r[i];if(o)return o}return 0}e.exports=function(t,e){var r=t.length;if(0===r)return[];var s=t[0].length;if(s<1)return[];if(1===s)return function(t,e,r){if(1===t)return r?[[-1,0]]:[];var n=e.map(function(t,e){return[t[0],e]});n.sort(function(t,e){return t[0]-e[0]});for(var a=new Array(t-1),i=1;i<t;++i){var o=n[i-1],s=n[i];a[i-1]=[o[1],s[1]]}r&&a.push([-1,a[0][1]],[a[t-1][1],-1]);return a}(r,t,e);for(var l=new Array(r),c=1,u=0;u<r;++u){for(var h=t[u],f=new Array(s+1),p=0,d=0;d<s;++d){var g=h[d];f[d]=g,p+=g*g}f[s]=p,l[u]=new i(f,u),c=Math.max(p,c)}a(l,o),r=l.length;for(var v=new Array(r+s+1),m=new Array(r+s+1),y=(s+1)*(s+1)*c,x=new Array(s+1),u=0;u<=s;++u)x[u]=0;x[s]=y,v[0]=x.slice(),m[0]=-1;for(var u=0;u<=s;++u){var f=x.slice();f[u]=1,v[u+1]=f,m[u+1]=-1}for(var u=0;u<r;++u){var b=l[u];v[u+s+1]=b.point,m[u+s+1]=b.index}var _=n(v,!1);_=e?_.filter(function(t){for(var e=0,r=0;r<=s;++r){var n=m[t[r]];if(n<0&&++e>=2)return!1;t[r]=n}return!0}):_.filter(function(t){for(var e=0;e<=s;++e){var r=m[t[e]];if(r<0)return!1;t[e]=r}return!0});if(1&s)for(var u=0;u<_.length;++u){var b=_[u],f=b[0];b[0]=b[1],b[1]=f}return _}},{\"incremental-convex-hull\":414,uniq:545}],167:[function(t,e,r){\"use strict\";e.exports=i;var n=(i.canvas=document.createElement(\"canvas\")).getContext(\"2d\"),a=o([32,126]);function i(t,e){Array.isArray(t)&&(t=t.join(\", \"));var r,i={},s=16,l=.05;e&&(2===e.length&&\"number\"==typeof e[0]?r=o(e):Array.isArray(e)?r=e:(e.o?r=o(e.o):e.pairs&&(r=e.pairs),e.fontSize&&(s=e.fontSize),null!=e.threshold&&(l=e.threshold))),r||(r=a),n.font=s+\"px \"+t;for(var c=0;c<r.length;c++){var u=r[c],h=n.measureText(u[0]).width+n.measureText(u[1]).width,f=n.measureText(u).width;if(Math.abs(h-f)>s*l){var p=(f-h)/s;i[u]=1e3*p}}return i}function o(t){for(var e=[],r=t[0];r<=t[1];r++)for(var n=String.fromCharCode(r),a=t[0];a<t[1];a++){var i=n+String.fromCharCode(a);e.push(i)}return e}i.createPairs=o,i.ascii=a},{}],168:[function(t,e,r){(function(t){var r=!1;if(\"undefined\"!=typeof Float64Array){var n=new Float64Array(1),a=new Uint32Array(n.buffer);if(n[0]=1,r=!0,1072693248===a[1]){e.exports=function(t){return n[0]=t,[a[0],a[1]]},e.exports.pack=function(t,e){return a[0]=t,a[1]=e,n[0]},e.exports.lo=function(t){return n[0]=t,a[0]},e.exports.hi=function(t){return n[0]=t,a[1]}}else if(1072693248===a[0]){e.exports=function(t){return n[0]=t,[a[1],a[0]]},e.exports.pack=function(t,e){return a[1]=t,a[0]=e,n[0]},e.exports.lo=function(t){return n[0]=t,a[1]},e.exports.hi=function(t){return n[0]=t,a[0]}}else r=!1}if(!r){var i=new t(8);e.exports=function(t){return i.writeDoubleLE(t,0,!0),[i.readUInt32LE(0,!0),i.readUInt32LE(4,!0)]},e.exports.pack=function(t,e){return i.writeUInt32LE(t,0,!0),i.writeUInt32LE(e,4,!0),i.readDoubleLE(0,!0)},e.exports.lo=function(t){return i.writeDoubleLE(t,0,!0),i.readUInt32LE(0,!0)},e.exports.hi=function(t){return i.writeDoubleLE(t,0,!0),i.readUInt32LE(4,!0)}}e.exports.sign=function(t){return e.exports.hi(t)>>>31},e.exports.exponent=function(t){return(e.exports.hi(t)<<1>>>21)-1023},e.exports.fraction=function(t){var r=e.exports.lo(t),n=e.exports.hi(t),a=1048575&n;return 2146435072&n&&(a+=1<<20),[r,a]},e.exports.denormalized=function(t){return!(2146435072&e.exports.hi(t))}}).call(this,t(\"buffer\").Buffer)},{buffer:106}],169:[function(t,e,r){var n=t(\"abs-svg-path\"),a=t(\"normalize-svg-path\"),i={M:\"moveTo\",C:\"bezierCurveTo\"};e.exports=function(t,e){t.beginPath(),a(n(e)).forEach(function(e){var r=e[0],n=e.slice(1);t[i[r]].apply(t,n)}),t.closePath()}},{\"abs-svg-path\":62,\"normalize-svg-path\":453}],170:[function(t,e,r){e.exports=function(t){switch(t){case\"int8\":return Int8Array;case\"int16\":return Int16Array;case\"int32\":return Int32Array;case\"uint8\":return Uint8Array;case\"uint16\":return Uint16Array;case\"uint32\":return Uint32Array;case\"float32\":return Float32Array;case\"float64\":return Float64Array;case\"array\":return Array;case\"uint8_clamped\":return Uint8ClampedArray}}},{}],171:[function(t,e,r){\"use strict\";e.exports=function(t,e){switch(\"undefined\"==typeof e&&(e=0),typeof t){case\"number\":if(t>0)return function(t,e){var r,n;for(r=new Array(t),n=0;n<t;++n)r[n]=e;return r}(0|t,e);break;case\"object\":if(\"number\"==typeof t.length)return function t(e,r,n){var a=0|e[n];if(a<=0)return[];var i,o=new Array(a);if(n===e.length-1)for(i=0;i<a;++i)o[i]=r;else for(i=0;i<a;++i)o[i]=t(e,r,n+1);return o}(t,e,0)}return[]}},{}],172:[function(t,e,r){\"use strict\";function n(t,e,r){r=r||2;var n,s,l,c,u,p,d,v=e&&e.length,m=v?e[0]*r:t.length,y=a(t,0,m,r,!0),x=[];if(!y||y.next===y.prev)return x;if(v&&(y=function(t,e,r,n){var o,s,l,c,u,p=[];for(o=0,s=e.length;o<s;o++)l=e[o]*n,c=o<s-1?e[o+1]*n:t.length,(u=a(t,l,c,n,!1))===u.next&&(u.steiner=!0),p.push(g(u));for(p.sort(h),o=0;o<p.length;o++)f(p[o],r),r=i(r,r.next);return r}(t,e,y,r)),t.length>80*r){n=l=t[0],s=c=t[1];for(var b=r;b<m;b+=r)(u=t[b])<n&&(n=u),(p=t[b+1])<s&&(s=p),u>l&&(l=u),p>c&&(c=p);d=0!==(d=Math.max(l-n,c-s))?1/d:0}return o(y,x,r,n,s,d),x}function a(t,e,r,n,a){var i,o;if(a===E(t,e,r,n)>0)for(i=e;i<r;i+=n)o=A(i,t[i],t[i+1],o);else for(i=r-n;i>=e;i-=n)o=A(i,t[i],t[i+1],o);return o&&x(o,o.next)&&(M(o),o=o.next),o}function i(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!x(n,n.next)&&0!==y(n.prev,n,n.next))n=n.next;else{if(M(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function o(t,e,r,n,a,h,f){if(t){!f&&h&&function(t,e,r,n){var a=t;do{null===a.z&&(a.z=d(a.x,a.y,e,r,n)),a.prevZ=a.prev,a.nextZ=a.next,a=a.next}while(a!==t);a.prevZ.nextZ=null,a.prevZ=null,function(t){var e,r,n,a,i,o,s,l,c=1;do{for(r=t,t=null,i=null,o=0;r;){for(o++,n=r,s=0,e=0;e<c&&(s++,n=n.nextZ);e++);for(l=c;s>0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(a=r,r=r.nextZ,s--):(a=n,n=n.nextZ,l--),i?i.nextZ=a:t=a,a.prevZ=i,i=a;r=n}i.nextZ=null,c*=2}while(o>1)}(a)}(t,n,a,h);for(var p,g,v=t;t.prev!==t.next;)if(p=t.prev,g=t.next,h?l(t,n,a,h):s(t))e.push(p.i/r),e.push(t.i/r),e.push(g.i/r),M(t),t=g.next,v=g.next;else if((t=g)===v){f?1===f?o(t=c(i(t),e,r),e,r,n,a,h,2):2===f&&u(t,e,r,n,a,h):o(i(t),e,r,n,a,h,1);break}}}function s(t){var e=t.prev,r=t,n=t.next;if(y(e,r,n)>=0)return!1;for(var a=t.next.next;a!==t.prev;){if(v(e.x,e.y,r.x,r.y,n.x,n.y,a.x,a.y)&&y(a.prev,a,a.next)>=0)return!1;a=a.next}return!0}function l(t,e,r,n){var a=t.prev,i=t,o=t.next;if(y(a,i,o)>=0)return!1;for(var s=a.x<i.x?a.x<o.x?a.x:o.x:i.x<o.x?i.x:o.x,l=a.y<i.y?a.y<o.y?a.y:o.y:i.y<o.y?i.y:o.y,c=a.x>i.x?a.x>o.x?a.x:o.x:i.x>o.x?i.x:o.x,u=a.y>i.y?a.y>o.y?a.y:o.y:i.y>o.y?i.y:o.y,h=d(s,l,e,r,n),f=d(c,u,e,r,n),p=t.prevZ,g=t.nextZ;p&&p.z>=h&&g&&g.z<=f;){if(p!==t.prev&&p!==t.next&&v(a.x,a.y,i.x,i.y,o.x,o.y,p.x,p.y)&&y(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,g!==t.prev&&g!==t.next&&v(a.x,a.y,i.x,i.y,o.x,o.y,g.x,g.y)&&y(g.prev,g,g.next)>=0)return!1;g=g.nextZ}for(;p&&p.z>=h;){if(p!==t.prev&&p!==t.next&&v(a.x,a.y,i.x,i.y,o.x,o.y,p.x,p.y)&&y(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;g&&g.z<=f;){if(g!==t.prev&&g!==t.next&&v(a.x,a.y,i.x,i.y,o.x,o.y,g.x,g.y)&&y(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function c(t,e,r){var n=t;do{var a=n.prev,o=n.next.next;!x(a,o)&&b(a,n,n.next,o)&&k(a,o)&&k(o,a)&&(e.push(a.i/r),e.push(n.i/r),e.push(o.i/r),M(n),M(n.next),n=t=o),n=n.next}while(n!==t);return i(n)}function u(t,e,r,n,a,s){var l=t;do{for(var c=l.next.next;c!==l.prev;){if(l.i!==c.i&&m(l,c)){var u=T(l,c);return l=i(l,l.next),u=i(u,u.next),o(l,e,r,n,a,s),void o(u,e,r,n,a,s)}c=c.next}l=l.next}while(l!==t)}function h(t,e){return t.x-e.x}function f(t,e){if(e=function(t,e){var r,n=e,a=t.x,i=t.y,o=-1/0;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){var s=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=a&&s>o){if(o=s,s===a){if(i===n.y)return n;if(i===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!r)return null;if(a===o)return r;var l,c=r,u=r.x,h=r.y,f=1/0;n=r;do{a>=n.x&&n.x>=u&&a!==n.x&&v(i<h?a:o,i,u,h,i<h?o:a,i,n.x,n.y)&&(l=Math.abs(i-n.y)/(a-n.x),k(n,t)&&(l<f||l===f&&(n.x>r.x||n.x===r.x&&p(r,n)))&&(r=n,f=l)),n=n.next}while(n!==c);return r}(t,e)){var r=T(e,t);i(r,r.next)}}function p(t,e){return y(t.prev,t,e.prev)<0&&y(e.next,t,t.next)<0}function d(t,e,r,n,a){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*a)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*a)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function g(t){var e=t,r=t;do{(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next}while(e!==t);return r}function v(t,e,r,n,a,i,o,s){return(a-o)*(e-s)-(t-o)*(i-s)>=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(i-s)-(a-o)*(n-s)>=0}function m(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&b(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(k(t,e)&&k(e,t)&&function(t,e){var r=t,n=!1,a=(t.x+e.x)/2,i=(t.y+e.y)/2;do{r.y>i!=r.next.y>i&&r.next.y!==r.y&&a<(r.next.x-r.x)*(i-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(y(t.prev,t,e.prev)||y(t,e.prev,e))||x(t,e)&&y(t.prev,t,t.next)>0&&y(e.prev,e,e.next)>0)}function y(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function x(t,e){return t.x===e.x&&t.y===e.y}function b(t,e,r,n){var a=w(y(t,e,r)),i=w(y(t,e,n)),o=w(y(r,n,t)),s=w(y(r,n,e));return a!==i&&o!==s||(!(0!==a||!_(t,r,e))||(!(0!==i||!_(t,n,e))||(!(0!==o||!_(r,t,n))||!(0!==s||!_(r,e,n)))))}function _(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function w(t){return t>0?1:t<0?-1:0}function k(t,e){return y(t.prev,t,t.next)<0?y(t,e,t.next)>=0&&y(t,t.prev,e)>=0:y(t,e,t.prev)<0||y(t,t.next,e)<0}function T(t,e){var r=new S(t.i,t.x,t.y),n=new S(e.i,e.x,e.y),a=t.next,i=e.prev;return t.next=e,e.prev=t,r.next=a,a.prev=r,n.next=r,r.prev=n,i.next=n,n.prev=i,n}function A(t,e,r,n){var a=new S(t,e,r);return n?(a.next=n.next,a.prev=n,n.next.prev=a,n.next=a):(a.prev=a,a.next=a),a}function M(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function S(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function E(t,e,r,n){for(var a=0,i=e,o=r-n;i<r;i+=n)a+=(t[o]-t[i])*(t[i+1]+t[o+1]),o=i;return a}e.exports=n,e.exports.default=n,n.deviation=function(t,e,r,n){var a=e&&e.length,i=a?e[0]*r:t.length,o=Math.abs(E(t,0,i,r));if(a)for(var s=0,l=e.length;s<l;s++){var c=e[s]*r,u=s<l-1?e[s+1]*r:t.length;o-=Math.abs(E(t,c,u,r))}var h=0;for(s=0;s<n.length;s+=3){var f=n[s]*r,p=n[s+1]*r,d=n[s+2]*r;h+=Math.abs((t[f]-t[d])*(t[p+1]-t[f+1])-(t[f]-t[p])*(t[d+1]-t[f+1]))}return 0===o&&0===h?0:Math.abs((h-o)/o)},n.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,a=0;a<t.length;a++){for(var i=0;i<t[a].length;i++)for(var o=0;o<e;o++)r.vertices.push(t[a][i][o]);a>0&&(n+=t[a-1].length,r.holes.push(n))}return r}},{}],173:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r=t.length;if(\"number\"!=typeof e){e=0;for(var a=0;a<r;++a){var i=t[a];e=Math.max(e,i[0],i[1])}e=1+(0|e)}e|=0;for(var o=new Array(e),a=0;a<e;++a)o[a]=[];for(var a=0;a<r;++a){var i=t[a];o[i[0]].push(i[1]),o[i[1]].push(i[0])}for(var s=0;s<e;++s)n(o[s],function(t,e){return t-e});return o};var n=t(\"uniq\")},{uniq:545}],174:[function(t,e,r){var n=t(\"strongly-connected-components\");e.exports=function(t){var e,r=[],a=[],i=[],o={},s=[];function l(t){var r,n,u=!1;for(a.push(t),i[t]=!0,r=0;r<s[t].length;r++)(n=s[t][r])===e?(c(e,a),u=!0):i[n]||(u=l(n));if(u)!function t(e){i[e]=!1,o.hasOwnProperty(e)&&Object.keys(o[e]).forEach(function(r){delete o[e][r],i[r]&&t(r)})}(t);else for(r=0;r<s[t].length;r++){n=s[t][r];var h=o[n];h||(h={},o[n]=h),h[n]=!0}return a.pop(),u}function c(t,e){var n=[].concat(e).concat(t);r.push(n)}function u(e){!function(e){for(var r=0;r<t.length;r++)r<e&&(t[r]=[]),t[r]=t[r].filter(function(t){return t>=e})}(e);for(var r,a=n(t).components.filter(function(t){return t.length>1}),i=1/0,o=0;o<a.length;o++)for(var s=0;s<a[o].length;s++)a[o][s]<i&&(i=a[o][s],r=o);var l=a[r];return!!l&&{leastVertex:i,adjList:t.map(function(t,e){return-1===l.indexOf(e)?[]:t.filter(function(t){return-1!==l.indexOf(t)})})}}e=0;for(var h=t.length;e<h;){var f=u(e);if(e=f.leastVertex,s=f.adjList){for(var p=0;p<s.length;p++)for(var d=0;d<s[p].length;d++){var g=s[p][d];i[+g]=!1,o[g]={}}l(e),e+=1}else e=h}return r}},{\"strongly-connected-components\":528}],175:[function(t,e,r){\"use strict\";var n=t(\"../../object/valid-value\");e.exports=function(){return n(this).length=0,this}},{\"../../object/valid-value\":207}],176:[function(t,e,r){\"use strict\";e.exports=t(\"./is-implemented\")()?Array.from:t(\"./shim\")},{\"./is-implemented\":177,\"./shim\":178}],177:[function(t,e,r){\"use strict\";e.exports=function(){var t,e,r=Array.from;return\"function\"==typeof r&&(e=r(t=[\"raz\",\"dwa\"]),Boolean(e&&e!==t&&\"dwa\"===e[1]))}},{}],178:[function(t,e,r){\"use strict\";var n=t(\"es6-symbol\").iterator,a=t(\"../../function/is-arguments\"),i=t(\"../../function/is-function\"),o=t(\"../../number/to-pos-integer\"),s=t(\"../../object/valid-callable\"),l=t(\"../../object/valid-value\"),c=t(\"../../object/is-value\"),u=t(\"../../string/is-string\"),h=Array.isArray,f=Function.prototype.call,p={configurable:!0,enumerable:!0,writable:!0,value:null},d=Object.defineProperty;e.exports=function(t){var e,r,g,v,m,y,x,b,_,w,k=arguments[1],T=arguments[2];if(t=Object(l(t)),c(k)&&s(k),this&&this!==Array&&i(this))e=this;else{if(!k){if(a(t))return 1!==(m=t.length)?Array.apply(null,t):((v=new Array(1))[0]=t[0],v);if(h(t)){for(v=new Array(m=t.length),r=0;r<m;++r)v[r]=t[r];return v}}v=[]}if(!h(t))if(void 0!==(_=t[n])){for(x=s(_).call(t),e&&(v=new e),b=x.next(),r=0;!b.done;)w=k?f.call(k,T,b.value,r):b.value,e?(p.value=w,d(v,r,p)):v[r]=w,b=x.next(),++r;m=r}else if(u(t)){for(m=t.length,e&&(v=new e),r=0,g=0;r<m;++r)w=t[r],r+1<m&&(y=w.charCodeAt(0))>=55296&&y<=56319&&(w+=t[++r]),w=k?f.call(k,T,w,g):w,e?(p.value=w,d(v,g,p)):v[g]=w,++g;m=g}if(void 0===m)for(m=o(t.length),e&&(v=new e(m)),r=0;r<m;++r)w=k?f.call(k,T,t[r],r):t[r],e?(p.value=w,d(v,r,p)):v[r]=w;return e&&(p.value=null,v.length=m),v}},{\"../../function/is-arguments\":179,\"../../function/is-function\":180,\"../../number/to-pos-integer\":186,\"../../object/is-value\":196,\"../../object/valid-callable\":205,\"../../object/valid-value\":207,\"../../string/is-string\":211,\"es6-symbol\":221}],179:[function(t,e,r){\"use strict\";var n=Object.prototype.toString,a=n.call(function(){return arguments}());e.exports=function(t){return n.call(t)===a}},{}],180:[function(t,e,r){\"use strict\";var n=Object.prototype.toString,a=n.call(t(\"./noop\"));e.exports=function(t){return\"function\"==typeof t&&n.call(t)===a}},{\"./noop\":181}],181:[function(t,e,r){\"use strict\";e.exports=function(){}},{}],182:[function(t,e,r){\"use strict\";e.exports=t(\"./is-implemented\")()?Math.sign:t(\"./shim\")},{\"./is-implemented\":183,\"./shim\":184}],183:[function(t,e,r){\"use strict\";e.exports=function(){var t=Math.sign;return\"function\"==typeof t&&(1===t(10)&&-1===t(-20))}},{}],184:[function(t,e,r){\"use strict\";e.exports=function(t){return t=Number(t),isNaN(t)||0===t?t:t>0?1:-1}},{}],185:[function(t,e,r){\"use strict\";var n=t(\"../math/sign\"),a=Math.abs,i=Math.floor;e.exports=function(t){return isNaN(t)?0:0!==(t=Number(t))&&isFinite(t)?n(t)*i(a(t)):t}},{\"../math/sign\":182}],186:[function(t,e,r){\"use strict\";var n=t(\"./to-integer\"),a=Math.max;e.exports=function(t){return a(0,n(t))}},{\"./to-integer\":185}],187:[function(t,e,r){\"use strict\";var n=t(\"./valid-callable\"),a=t(\"./valid-value\"),i=Function.prototype.bind,o=Function.prototype.call,s=Object.keys,l=Object.prototype.propertyIsEnumerable;e.exports=function(t,e){return function(r,c){var u,h=arguments[2],f=arguments[3];return r=Object(a(r)),n(c),u=s(r),f&&u.sort(\"function\"==typeof f?i.call(f,r):void 0),\"function\"!=typeof t&&(t=u[t]),o.call(t,u,function(t,n){return l.call(r,t)?o.call(c,h,r[t],t,r,n):e})}}},{\"./valid-callable\":205,\"./valid-value\":207}],188:[function(t,e,r){\"use strict\";e.exports=t(\"./is-implemented\")()?Object.assign:t(\"./shim\")},{\"./is-implemented\":189,\"./shim\":190}],189:[function(t,e,r){\"use strict\";e.exports=function(){var t,e=Object.assign;return\"function\"==typeof e&&(e(t={foo:\"raz\"},{bar:\"dwa\"},{trzy:\"trzy\"}),t.foo+t.bar+t.trzy===\"razdwatrzy\")}},{}],190:[function(t,e,r){\"use strict\";var n=t(\"../keys\"),a=t(\"../valid-value\"),i=Math.max;e.exports=function(t,e){var r,o,s,l=i(arguments.length,2);for(t=Object(a(t)),s=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},o=1;o<l;++o)e=arguments[o],n(e).forEach(s);if(void 0!==r)throw r;return t}},{\"../keys\":197,\"../valid-value\":207}],191:[function(t,e,r){\"use strict\";var n=t(\"../array/from\"),a=t(\"./assign\"),i=t(\"./valid-value\");e.exports=function(t){var e=Object(i(t)),r=arguments[1],o=Object(arguments[2]);if(e!==t&&!r)return e;var s={};return r?n(r,function(e){(o.ensure||e in t)&&(s[e]=t[e])}):a(s,t),s}},{\"../array/from\":176,\"./assign\":188,\"./valid-value\":207}],192:[function(t,e,r){\"use strict\";var n,a,i,o,s=Object.create;t(\"./set-prototype-of/is-implemented\")()||(n=t(\"./set-prototype-of/shim\")),e.exports=n?1!==n.level?s:(a={},i={},o={configurable:!1,enumerable:!1,writable:!0,value:void 0},Object.getOwnPropertyNames(Object.prototype).forEach(function(t){i[t]=\"__proto__\"!==t?o:{configurable:!0,enumerable:!1,writable:!0,value:void 0}}),Object.defineProperties(a,i),Object.defineProperty(n,\"nullPolyfill\",{configurable:!1,enumerable:!1,writable:!1,value:a}),function(t,e){return s(null===t?a:t,e)}):s},{\"./set-prototype-of/is-implemented\":203,\"./set-prototype-of/shim\":204}],193:[function(t,e,r){\"use strict\";e.exports=t(\"./_iterate\")(\"forEach\")},{\"./_iterate\":187}],194:[function(t,e,r){\"use strict\";e.exports=function(t){return\"function\"==typeof t}},{}],195:[function(t,e,r){\"use strict\";var n=t(\"./is-value\"),a={function:!0,object:!0};e.exports=function(t){return n(t)&&a[typeof t]||!1}},{\"./is-value\":196}],196:[function(t,e,r){\"use strict\";var n=t(\"../function/noop\")();e.exports=function(t){return t!==n&&null!==t}},{\"../function/noop\":181}],197:[function(t,e,r){\"use strict\";e.exports=t(\"./is-implemented\")()?Object.keys:t(\"./shim\")},{\"./is-implemented\":198,\"./shim\":199}],198:[function(t,e,r){\"use strict\";e.exports=function(){try{return Object.keys(\"primitive\"),!0}catch(t){return!1}}},{}],199:[function(t,e,r){\"use strict\";var n=t(\"../is-value\"),a=Object.keys;e.exports=function(t){return a(n(t)?Object(t):t)}},{\"../is-value\":196}],200:[function(t,e,r){\"use strict\";var n=t(\"./valid-callable\"),a=t(\"./for-each\"),i=Function.prototype.call;e.exports=function(t,e){var r={},o=arguments[2];return n(e),a(t,function(t,n,a,s){r[n]=i.call(e,o,t,n,a,s)}),r}},{\"./for-each\":193,\"./valid-callable\":205}],201:[function(t,e,r){\"use strict\";var n=t(\"./is-value\"),a=Array.prototype.forEach,i=Object.create;e.exports=function(t){var e=i(null);return a.call(arguments,function(t){n(t)&&function(t,e){var r;for(r in t)e[r]=t[r]}(Object(t),e)}),e}},{\"./is-value\":196}],202:[function(t,e,r){\"use strict\";e.exports=t(\"./is-implemented\")()?Object.setPrototypeOf:t(\"./shim\")},{\"./is-implemented\":203,\"./shim\":204}],203:[function(t,e,r){\"use strict\";var n=Object.create,a=Object.getPrototypeOf,i={};e.exports=function(){var t=Object.setPrototypeOf,e=arguments[0]||n;return\"function\"==typeof t&&a(t(e(null),i))===i}},{}],204:[function(t,e,r){\"use strict\";var n,a,i,o,s=t(\"../is-object\"),l=t(\"../valid-value\"),c=Object.prototype.isPrototypeOf,u=Object.defineProperty,h={configurable:!0,enumerable:!1,writable:!0,value:void 0};n=function(t,e){if(l(t),null===e||s(e))return t;throw new TypeError(\"Prototype must be null or an object\")},e.exports=(a=function(){var t,e=Object.create(null),r={},n=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\");if(n){try{(t=n.set).call(e,r)}catch(t){}if(Object.getPrototypeOf(e)===r)return{set:t,level:2}}return e.__proto__=r,Object.getPrototypeOf(e)===r?{level:2}:((e={}).__proto__=r,Object.getPrototypeOf(e)===r&&{level:1})}())?(2===a.level?a.set?(o=a.set,i=function(t,e){return o.call(n(t,e),e),t}):i=function(t,e){return n(t,e).__proto__=e,t}:i=function t(e,r){var a;return n(e,r),(a=c.call(t.nullPolyfill,e))&&delete t.nullPolyfill.__proto__,null===r&&(r=t.nullPolyfill),e.__proto__=r,a&&u(t.nullPolyfill,\"__proto__\",h),e},Object.defineProperty(i,\"level\",{configurable:!1,enumerable:!1,writable:!1,value:a.level})):null,t(\"../create\")},{\"../create\":192,\"../is-object\":195,\"../valid-value\":207}],205:[function(t,e,r){\"use strict\";e.exports=function(t){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");return t}},{}],206:[function(t,e,r){\"use strict\";var n=t(\"./is-object\");e.exports=function(t){if(!n(t))throw new TypeError(t+\" is not an Object\");return t}},{\"./is-object\":195}],207:[function(t,e,r){\"use strict\";var n=t(\"./is-value\");e.exports=function(t){if(!n(t))throw new TypeError(\"Cannot use null or undefined\");return t}},{\"./is-value\":196}],208:[function(t,e,r){\"use strict\";e.exports=t(\"./is-implemented\")()?String.prototype.contains:t(\"./shim\")},{\"./is-implemented\":209,\"./shim\":210}],209:[function(t,e,r){\"use strict\";var n=\"razdwatrzy\";e.exports=function(){return\"function\"==typeof n.contains&&(!0===n.contains(\"dwa\")&&!1===n.contains(\"foo\"))}},{}],210:[function(t,e,r){\"use strict\";var n=String.prototype.indexOf;e.exports=function(t){return n.call(this,t,arguments[1])>-1}},{}],211:[function(t,e,r){\"use strict\";var n=Object.prototype.toString,a=n.call(\"\");e.exports=function(t){return\"string\"==typeof t||t&&\"object\"==typeof t&&(t instanceof String||n.call(t)===a)||!1}},{}],212:[function(t,e,r){\"use strict\";var n=Object.create(null),a=Math.random;e.exports=function(){var t;do{t=a().toString(36).slice(2)}while(n[t]);return t}},{}],213:[function(t,e,r){\"use strict\";var n,a=t(\"es5-ext/object/set-prototype-of\"),i=t(\"es5-ext/string/#/contains\"),o=t(\"d\"),s=t(\"es6-symbol\"),l=t(\"./\"),c=Object.defineProperty;n=e.exports=function(t,e){if(!(this instanceof n))throw new TypeError(\"Constructor requires 'new'\");l.call(this,t),e=e?i.call(e,\"key+value\")?\"key+value\":i.call(e,\"key\")?\"key\":\"value\":\"value\",c(this,\"__kind__\",o(\"\",e))},a&&a(n,l),delete n.prototype.constructor,n.prototype=Object.create(l.prototype,{_resolve:o(function(t){return\"value\"===this.__kind__?this.__list__[t]:\"key+value\"===this.__kind__?[t,this.__list__[t]]:t})}),c(n.prototype,s.toStringTag,o(\"c\",\"Array Iterator\"))},{\"./\":216,d:152,\"es5-ext/object/set-prototype-of\":202,\"es5-ext/string/#/contains\":208,\"es6-symbol\":221}],214:[function(t,e,r){\"use strict\";var n=t(\"es5-ext/function/is-arguments\"),a=t(\"es5-ext/object/valid-callable\"),i=t(\"es5-ext/string/is-string\"),o=t(\"./get\"),s=Array.isArray,l=Function.prototype.call,c=Array.prototype.some;e.exports=function(t,e){var r,u,h,f,p,d,g,v,m=arguments[2];if(s(t)||n(t)?r=\"array\":i(t)?r=\"string\":t=o(t),a(e),h=function(){f=!0},\"array\"!==r)if(\"string\"!==r)for(u=t.next();!u.done;){if(l.call(e,m,u.value,h),f)return;u=t.next()}else for(d=t.length,p=0;p<d&&(g=t[p],p+1<d&&(v=g.charCodeAt(0))>=55296&&v<=56319&&(g+=t[++p]),l.call(e,m,g,h),!f);++p);else c.call(t,function(t){return l.call(e,m,t,h),f})}},{\"./get\":215,\"es5-ext/function/is-arguments\":179,\"es5-ext/object/valid-callable\":205,\"es5-ext/string/is-string\":211}],215:[function(t,e,r){\"use strict\";var n=t(\"es5-ext/function/is-arguments\"),a=t(\"es5-ext/string/is-string\"),i=t(\"./array\"),o=t(\"./string\"),s=t(\"./valid-iterable\"),l=t(\"es6-symbol\").iterator;e.exports=function(t){return\"function\"==typeof s(t)[l]?t[l]():n(t)?new i(t):a(t)?new o(t):new i(t)}},{\"./array\":213,\"./string\":218,\"./valid-iterable\":219,\"es5-ext/function/is-arguments\":179,\"es5-ext/string/is-string\":211,\"es6-symbol\":221}],216:[function(t,e,r){\"use strict\";var n,a=t(\"es5-ext/array/#/clear\"),i=t(\"es5-ext/object/assign\"),o=t(\"es5-ext/object/valid-callable\"),s=t(\"es5-ext/object/valid-value\"),l=t(\"d\"),c=t(\"d/auto-bind\"),u=t(\"es6-symbol\"),h=Object.defineProperty,f=Object.defineProperties;e.exports=n=function(t,e){if(!(this instanceof n))throw new TypeError(\"Constructor requires 'new'\");f(this,{__list__:l(\"w\",s(t)),__context__:l(\"w\",e),__nextIndex__:l(\"w\",0)}),e&&(o(e.on),e.on(\"_add\",this._onAdd),e.on(\"_delete\",this._onDelete),e.on(\"_clear\",this._onClear))},delete n.prototype.constructor,f(n.prototype,i({_next:l(function(){var t;if(this.__list__)return this.__redo__&&void 0!==(t=this.__redo__.shift())?t:this.__nextIndex__<this.__list__.length?this.__nextIndex__++:void this._unBind()}),next:l(function(){return this._createResult(this._next())}),_createResult:l(function(t){return void 0===t?{done:!0,value:void 0}:{done:!1,value:this._resolve(t)}}),_resolve:l(function(t){return this.__list__[t]}),_unBind:l(function(){this.__list__=null,delete this.__redo__,this.__context__&&(this.__context__.off(\"_add\",this._onAdd),this.__context__.off(\"_delete\",this._onDelete),this.__context__.off(\"_clear\",this._onClear),this.__context__=null)}),toString:l(function(){return\"[object \"+(this[u.toStringTag]||\"Object\")+\"]\"})},c({_onAdd:l(function(t){t>=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach(function(e,r){e>=t&&(this.__redo__[r]=++e)},this),this.__redo__.push(t)):h(this,\"__redo__\",l(\"c\",[t])))}),_onDelete:l(function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(e=this.__redo__.indexOf(t))&&this.__redo__.splice(e,1),this.__redo__.forEach(function(e,r){e>t&&(this.__redo__[r]=--e)},this)))}),_onClear:l(function(){this.__redo__&&a.call(this.__redo__),this.__nextIndex__=0})}))),h(n.prototype,u.iterator,l(function(){return this}))},{d:152,\"d/auto-bind\":151,\"es5-ext/array/#/clear\":175,\"es5-ext/object/assign\":188,\"es5-ext/object/valid-callable\":205,\"es5-ext/object/valid-value\":207,\"es6-symbol\":221}],217:[function(t,e,r){\"use strict\";var n=t(\"es5-ext/function/is-arguments\"),a=t(\"es5-ext/object/is-value\"),i=t(\"es5-ext/string/is-string\"),o=t(\"es6-symbol\").iterator,s=Array.isArray;e.exports=function(t){return!!a(t)&&(!!s(t)||(!!i(t)||(!!n(t)||\"function\"==typeof t[o])))}},{\"es5-ext/function/is-arguments\":179,\"es5-ext/object/is-value\":196,\"es5-ext/string/is-string\":211,\"es6-symbol\":221}],218:[function(t,e,r){\"use strict\";var n,a=t(\"es5-ext/object/set-prototype-of\"),i=t(\"d\"),o=t(\"es6-symbol\"),s=t(\"./\"),l=Object.defineProperty;n=e.exports=function(t){if(!(this instanceof n))throw new TypeError(\"Constructor requires 'new'\");t=String(t),s.call(this,t),l(this,\"__length__\",i(\"\",t.length))},a&&a(n,s),delete n.prototype.constructor,n.prototype=Object.create(s.prototype,{_next:i(function(){if(this.__list__)return this.__nextIndex__<this.__length__?this.__nextIndex__++:void this._unBind()}),_resolve:i(function(t){var e,r=this.__list__[t];return this.__nextIndex__===this.__length__?r:(e=r.charCodeAt(0))>=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r})}),l(n.prototype,o.toStringTag,i(\"c\",\"String Iterator\"))},{\"./\":216,d:152,\"es5-ext/object/set-prototype-of\":202,\"es6-symbol\":221}],219:[function(t,e,r){\"use strict\";var n=t(\"./is-iterable\");e.exports=function(t){if(!n(t))throw new TypeError(t+\" is not iterable\");return t}},{\"./is-iterable\":217}],220:[function(t,e,r){(function(n,a){!function(t,n){\"object\"==typeof r&&\"undefined\"!=typeof e?e.exports=n():t.ES6Promise=n()}(this,function(){\"use strict\";function e(t){return\"function\"==typeof t}var r=Array.isArray?Array.isArray:function(t){return\"[object Array]\"===Object.prototype.toString.call(t)},i=0,o=void 0,s=void 0,l=function(t,e){g[i]=t,g[i+1]=e,2===(i+=2)&&(s?s(v):_())};var c=\"undefined\"!=typeof window?window:void 0,u=c||{},h=u.MutationObserver||u.WebKitMutationObserver,f=\"undefined\"==typeof self&&\"undefined\"!=typeof n&&\"[object process]\"==={}.toString.call(n),p=\"undefined\"!=typeof Uint8ClampedArray&&\"undefined\"!=typeof importScripts&&\"undefined\"!=typeof MessageChannel;function d(){var t=setTimeout;return function(){return t(v,1)}}var g=new Array(1e3);function v(){for(var t=0;t<i;t+=2){(0,g[t])(g[t+1]),g[t]=void 0,g[t+1]=void 0}i=0}var m,y,x,b,_=void 0;function w(t,e){var r=arguments,n=this,a=new this.constructor(A);void 0===a[T]&&U(a);var i,o=n._state;return o?(i=r[o-1],l(function(){return j(o,a,i,n._result)})):R(n,a,t,e),a}function k(t){if(t&&\"object\"==typeof t&&t.constructor===this)return t;var e=new this(A);return O(e,t),e}f?_=function(){return n.nextTick(v)}:h?(y=0,x=new h(v),b=document.createTextNode(\"\"),x.observe(b,{characterData:!0}),_=function(){b.data=y=++y%2}):p?((m=new MessageChannel).port1.onmessage=v,_=function(){return m.port2.postMessage(0)}):_=void 0===c&&\"function\"==typeof t?function(){try{var e=t(\"vertx\");return o=e.runOnLoop||e.runOnContext,function(){o(v)}}catch(t){return d()}}():d();var T=Math.random().toString(36).substring(16);function A(){}var M=void 0,S=1,E=2,C=new B;function L(t){try{return t.then}catch(t){return C.error=t,C}}function P(t,r,n){r.constructor===t.constructor&&n===w&&r.constructor.resolve===k?function(t,e){e._state===S?I(t,e._result):e._state===E?D(t,e._result):R(e,void 0,function(e){return O(t,e)},function(e){return D(t,e)})}(t,r):n===C?D(t,C.error):void 0===n?I(t,r):e(n)?function(t,e,r){l(function(t){var n=!1,a=function(t,e,r,n){try{t.call(e,r,n)}catch(t){return t}}(r,e,function(r){n||(n=!0,e!==r?O(t,r):I(t,r))},function(e){n||(n=!0,D(t,e))},t._label);!n&&a&&(n=!0,D(t,a))},t)}(t,r,n):I(t,r)}function O(t,e){var r;t===e?D(t,new TypeError(\"You cannot resolve a promise with itself\")):\"function\"==typeof(r=e)||\"object\"==typeof r&&null!==r?P(t,e,L(e)):I(t,e)}function z(t){t._onerror&&t._onerror(t._result),F(t)}function I(t,e){t._state===M&&(t._result=e,t._state=S,0!==t._subscribers.length&&l(F,t))}function D(t,e){t._state===M&&(t._state=E,t._result=e,l(z,t))}function R(t,e,r,n){var a=t._subscribers,i=a.length;t._onerror=null,a[i]=e,a[i+S]=r,a[i+E]=n,0===i&&t._state&&l(F,t)}function F(t){var e=t._subscribers,r=t._state;if(0!==e.length){for(var n=void 0,a=void 0,i=t._result,o=0;o<e.length;o+=3)n=e[o],a=e[o+r],n?j(r,n,a,i):a(i);t._subscribers.length=0}}function B(){this.error=null}var N=new B;function j(t,r,n,a){var i=e(n),o=void 0,s=void 0,l=void 0,c=void 0;if(i){if((o=function(t,e){try{return t(e)}catch(t){return N.error=t,N}}(n,a))===N?(c=!0,s=o.error,o=null):l=!0,r===o)return void D(r,new TypeError(\"A promises callback cannot return that same promise.\"))}else o=a,l=!0;r._state!==M||(i&&l?O(r,o):c?D(r,s):t===S?I(r,o):t===E&&D(r,o))}var V=0;function U(t){t[T]=V++,t._state=void 0,t._result=void 0,t._subscribers=[]}function q(t,e){this._instanceConstructor=t,this.promise=new t(A),this.promise[T]||U(this.promise),r(e)?(this._input=e,this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?I(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&I(this.promise,this._result))):D(this.promise,new Error(\"Array Methods must be provided an Array\"))}function H(t){this[T]=V++,this._result=this._state=void 0,this._subscribers=[],A!==t&&(\"function\"!=typeof t&&function(){throw new TypeError(\"You must pass a resolver function as the first argument to the promise constructor\")}(),this instanceof H?function(t,e){try{e(function(e){O(t,e)},function(e){D(t,e)})}catch(e){D(t,e)}}(this,t):function(){throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\")}())}function G(){var t=void 0;if(\"undefined\"!=typeof a)t=a;else if(\"undefined\"!=typeof self)t=self;else try{t=Function(\"return this\")()}catch(t){throw new Error(\"polyfill failed because global object is unavailable in this environment\")}var e=t.Promise;if(e){var r=null;try{r=Object.prototype.toString.call(e.resolve())}catch(t){}if(\"[object Promise]\"===r&&!e.cast)return}t.Promise=H}return q.prototype._enumerate=function(){for(var t=this.length,e=this._input,r=0;this._state===M&&r<t;r++)this._eachEntry(e[r],r)},q.prototype._eachEntry=function(t,e){var r=this._instanceConstructor,n=r.resolve;if(n===k){var a=L(t);if(a===w&&t._state!==M)this._settledAt(t._state,e,t._result);else if(\"function\"!=typeof a)this._remaining--,this._result[e]=t;else if(r===H){var i=new r(A);P(i,t,a),this._willSettleAt(i,e)}else this._willSettleAt(new r(function(e){return e(t)}),e)}else this._willSettleAt(n(t),e)},q.prototype._settledAt=function(t,e,r){var n=this.promise;n._state===M&&(this._remaining--,t===E?D(n,r):this._result[e]=r),0===this._remaining&&I(n,this._result)},q.prototype._willSettleAt=function(t,e){var r=this;R(t,void 0,function(t){return r._settledAt(S,e,t)},function(t){return r._settledAt(E,e,t)})},H.all=function(t){return new q(this,t).promise},H.race=function(t){var e=this;return r(t)?new e(function(r,n){for(var a=t.length,i=0;i<a;i++)e.resolve(t[i]).then(r,n)}):new e(function(t,e){return e(new TypeError(\"You must pass an array to race.\"))})},H.resolve=k,H.reject=function(t){var e=new this(A);return D(e,t),e},H._setScheduler=function(t){s=t},H._setAsap=function(t){l=t},H._asap=l,H.prototype={constructor:H,then:w,catch:function(t){return this.then(null,t)}},G(),H.polyfill=G,H.Promise=H,H})}).call(this,t(\"_process\"),\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{_process:483}],221:[function(t,e,r){\"use strict\";e.exports=t(\"./is-implemented\")()?Symbol:t(\"./polyfill\")},{\"./is-implemented\":222,\"./polyfill\":224}],222:[function(t,e,r){\"use strict\";var n={object:!0,symbol:!0};e.exports=function(){var t;if(\"function\"!=typeof Symbol)return!1;t=Symbol(\"test symbol\");try{String(t)}catch(t){return!1}return!!n[typeof Symbol.iterator]&&(!!n[typeof Symbol.toPrimitive]&&!!n[typeof Symbol.toStringTag])}},{}],223:[function(t,e,r){\"use strict\";e.exports=function(t){return!!t&&(\"symbol\"==typeof t||!!t.constructor&&(\"Symbol\"===t.constructor.name&&\"Symbol\"===t[t.constructor.toStringTag]))}},{}],224:[function(t,e,r){\"use strict\";var n,a,i,o,s=t(\"d\"),l=t(\"./validate-symbol\"),c=Object.create,u=Object.defineProperties,h=Object.defineProperty,f=Object.prototype,p=c(null);if(\"function\"==typeof Symbol){n=Symbol;try{String(n()),o=!0}catch(t){}}var d,g=(d=c(null),function(t){for(var e,r,n=0;d[t+(n||\"\")];)++n;return d[t+=n||\"\"]=!0,h(f,e=\"@@\"+t,s.gs(null,function(t){r||(r=!0,h(this,e,s(t)),r=!1)})),e});i=function(t){if(this instanceof i)throw new TypeError(\"Symbol is not a constructor\");return a(t)},e.exports=a=function t(e){var r;if(this instanceof t)throw new TypeError(\"Symbol is not a constructor\");return o?n(e):(r=c(i.prototype),e=void 0===e?\"\":String(e),u(r,{__description__:s(\"\",e),__name__:s(\"\",g(e))}))},u(a,{for:s(function(t){return p[t]?p[t]:p[t]=a(String(t))}),keyFor:s(function(t){var e;for(e in l(t),p)if(p[e]===t)return e}),hasInstance:s(\"\",n&&n.hasInstance||a(\"hasInstance\")),isConcatSpreadable:s(\"\",n&&n.isConcatSpreadable||a(\"isConcatSpreadable\")),iterator:s(\"\",n&&n.iterator||a(\"iterator\")),match:s(\"\",n&&n.match||a(\"match\")),replace:s(\"\",n&&n.replace||a(\"replace\")),search:s(\"\",n&&n.search||a(\"search\")),species:s(\"\",n&&n.species||a(\"species\")),split:s(\"\",n&&n.split||a(\"split\")),toPrimitive:s(\"\",n&&n.toPrimitive||a(\"toPrimitive\")),toStringTag:s(\"\",n&&n.toStringTag||a(\"toStringTag\")),unscopables:s(\"\",n&&n.unscopables||a(\"unscopables\"))}),u(i.prototype,{constructor:s(a),toString:s(\"\",function(){return this.__name__})}),u(a.prototype,{toString:s(function(){return\"Symbol (\"+l(this).__description__+\")\"}),valueOf:s(function(){return l(this)})}),h(a.prototype,a.toPrimitive,s(\"\",function(){var t=l(this);return\"symbol\"==typeof t?t:t.toString()})),h(a.prototype,a.toStringTag,s(\"c\",\"Symbol\")),h(i.prototype,a.toStringTag,s(\"c\",a.prototype[a.toStringTag])),h(i.prototype,a.toPrimitive,s(\"c\",a.prototype[a.toPrimitive]))},{\"./validate-symbol\":225,d:152}],225:[function(t,e,r){\"use strict\";var n=t(\"./is-symbol\");e.exports=function(t){if(!n(t))throw new TypeError(t+\" is not a symbol\");return t}},{\"./is-symbol\":223}],226:[function(t,e,r){\"use strict\";e.exports=function(t,e,r){var n=e||0,a=r||1;return[[t[12]+t[0],t[13]+t[1],t[14]+t[2],t[15]+t[3]],[t[12]-t[0],t[13]-t[1],t[14]-t[2],t[15]-t[3]],[t[12]+t[4],t[13]+t[5],t[14]+t[6],t[15]+t[7]],[t[12]-t[4],t[13]-t[5],t[14]-t[6],t[15]-t[7]],[n*t[12]+t[8],n*t[13]+t[9],n*t[14]+t[10],n*t[15]+t[11]],[a*t[12]-t[8],a*t[13]-t[9],a*t[14]-t[10],a*t[15]-t[11]]]}},{}],227:[function(t,e,r){\"use strict\";var n=t(\"is-string-blank\");e.exports=function(t){var e=typeof t;if(\"string\"===e){var r=t;if(0===(t=+t)&&n(r))return!1}else if(\"number\"!==e)return!1;return t-t<1}},{\"is-string-blank\":424}],228:[function(t,e,r){\"use strict\";e.exports=function(t,e,r){switch(arguments.length){case 0:return new o([0],[0],0);case 1:if(\"number\"==typeof t){var n=l(t);return new o(n,n,0)}return new o(t,l(t.length),0);case 2:if(\"number\"==typeof e){var n=l(t.length);return new o(t,n,+e)}r=0;case 3:if(t.length!==e.length)throw new Error(\"state and velocity lengths must match\");return new o(t,e,r)}};var n=t(\"cubic-hermite\"),a=t(\"binary-search-bounds\");function i(t,e,r){return Math.min(e,Math.max(t,r))}function o(t,e,r){this.dimension=t.length,this.bounds=[new Array(this.dimension),new Array(this.dimension)];for(var n=0;n<this.dimension;++n)this.bounds[0][n]=-1/0,this.bounds[1][n]=1/0;this._state=t.slice().reverse(),this._velocity=e.slice().reverse(),this._time=[r],this._scratch=[t.slice(),t.slice(),t.slice(),t.slice(),t.slice()]}var s=o.prototype;function l(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=0;return e}s.flush=function(t){var e=a.gt(this._time,t)-1;e<=0||(this._time.splice(0,e),this._state.splice(0,e*this.dimension),this._velocity.splice(0,e*this.dimension))},s.curve=function(t){var e=this._time,r=e.length,o=a.le(e,t),s=this._scratch[0],l=this._state,c=this._velocity,u=this.dimension,h=this.bounds;if(o<0)for(var f=u-1,p=0;p<u;++p,--f)s[p]=l[f];else if(o>=r-1){f=l.length-1;var d=t-e[r-1];for(p=0;p<u;++p,--f)s[p]=l[f]+d*c[f]}else{f=u*(o+1)-1;var g=e[o],v=e[o+1]-g||1,m=this._scratch[1],y=this._scratch[2],x=this._scratch[3],b=this._scratch[4],_=!0;for(p=0;p<u;++p,--f)m[p]=l[f],x[p]=c[f]*v,y[p]=l[f+u],b[p]=c[f+u]*v,_=_&&m[p]===y[p]&&x[p]===b[p]&&0===x[p];if(_)for(p=0;p<u;++p)s[p]=m[p];else n(m,x,y,b,(t-g)/v,s)}var w=h[0],k=h[1];for(p=0;p<u;++p)s[p]=i(w[p],k[p],s[p]);return s},s.dcurve=function(t){var e=this._time,r=e.length,i=a.le(e,t),o=this._scratch[0],s=this._state,l=this._velocity,c=this.dimension;if(i>=r-1)for(var u=s.length-1,h=(e[r-1],0);h<c;++h,--u)o[h]=l[u];else{u=c*(i+1)-1;var f=e[i],p=e[i+1]-f||1,d=this._scratch[1],g=this._scratch[2],v=this._scratch[3],m=this._scratch[4],y=!0;for(h=0;h<c;++h,--u)d[h]=s[u],v[h]=l[u]*p,g[h]=s[u+c],m[h]=l[u+c]*p,y=y&&d[h]===g[h]&&v[h]===m[h]&&0===v[h];if(y)for(h=0;h<c;++h)o[h]=0;else{n.derivative(d,v,g,m,(t-f)/p,o);for(h=0;h<c;++h)o[h]/=p}}return o},s.lastT=function(){var t=this._time;return t[t.length-1]},s.stable=function(){for(var t=this._velocity,e=t.length,r=this.dimension-1;r>=0;--r)if(t[--e])return!1;return!0},s.jump=function(t){var e=this.lastT(),r=this.dimension;if(!(t<e||arguments.length!==r+1)){var n=this._state,a=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],c=s[1];this._time.push(e,t);for(var u=0;u<2;++u)for(var h=0;h<r;++h)n.push(n[o++]),a.push(0);this._time.push(t);for(h=r;h>0;--h)n.push(i(l[h-1],c[h-1],arguments[h])),a.push(0)}},s.push=function(t){var e=this.lastT(),r=this.dimension;if(!(t<e||arguments.length!==r+1)){var n=this._state,a=this._velocity,o=n.length-this.dimension,s=t-e,l=this.bounds,c=l[0],u=l[1],h=s>1e-6?1/s:0;this._time.push(t);for(var f=r;f>0;--f){var p=i(c[f-1],u[f-1],arguments[f]);n.push(p),a.push((p-n[o++])*h)}}},s.set=function(t){var e=this.dimension;if(!(t<this.lastT()||arguments.length!==e+1)){var r=this._state,n=this._velocity,a=this.bounds,o=a[0],s=a[1];this._time.push(t);for(var l=e;l>0;--l)r.push(i(o[l-1],s[l-1],arguments[l])),n.push(0)}},s.move=function(t){var e=this.lastT(),r=this.dimension;if(!(t<=e||arguments.length!==r+1)){var n=this._state,a=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],c=s[1],u=t-e,h=u>1e-6?1/u:0;this._time.push(t);for(var f=r;f>0;--f){var p=arguments[f];n.push(i(l[f-1],c[f-1],n[o++]+p)),a.push(p*h)}}},s.idle=function(t){var e=this.lastT();if(!(t<e)){var r=this.dimension,n=this._state,a=this._velocity,o=n.length-r,s=this.bounds,l=s[0],c=s[1],u=t-e;this._time.push(t);for(var h=r-1;h>=0;--h)n.push(i(l[h],c[h],n[o]+u*a[o])),a.push(0),o+=1}}},{\"binary-search-bounds\":92,\"cubic-hermite\":146}],229:[function(t,e,r){var n=t(\"dtype\");e.exports=function(t,e,r){if(!t)throw new TypeError(\"must specify data as first parameter\");if(r=0|+(r||0),Array.isArray(t)&&t[0]&&\"number\"==typeof t[0][0]){var a,i,o,s,l=t[0].length,c=t.length*l;e&&\"string\"!=typeof e||(e=new(n(e||\"float32\"))(c+r));var u=e.length-r;if(c!==u)throw new Error(\"source length \"+c+\" (\"+l+\"x\"+t.length+\") does not match destination length \"+u);for(a=0,o=r;a<t.length;a++)for(i=0;i<l;i++)e[o++]=null===t[a][i]?NaN:t[a][i]}else if(e&&\"string\"!=typeof e)e.set(t,r);else{var h=n(e||\"float32\");if(Array.isArray(t)||\"array\"===e)for(e=new h(t.length+r),a=0,o=r,s=e.length;o<s;o++,a++)e[o]=null===t[a]?NaN:t[a];else 0===r?e=new h(t):(e=new h(t.length+r)).set(t,r)}return e}},{dtype:170}],230:[function(t,e,r){\"use strict\";var n=t(\"css-font/stringify\"),a=[32,126];e.exports=function(t){var e=(t=t||{}).shape?t.shape:t.canvas?[t.canvas.width,t.canvas.height]:[512,512],r=t.canvas||document.createElement(\"canvas\"),i=t.font,o=\"number\"==typeof t.step?[t.step,t.step]:t.step||[32,32],s=t.chars||a;i&&\"string\"!=typeof i&&(i=n(i));if(Array.isArray(s)){if(2===s.length&&\"number\"==typeof s[0]&&\"number\"==typeof s[1]){for(var l=[],c=s[0],u=0;c<=s[1];c++)l[u++]=String.fromCharCode(c);s=l}}else s=String(s).split(\"\");e=e.slice(),r.width=e[0],r.height=e[1];var h=r.getContext(\"2d\");h.fillStyle=\"#000\",h.fillRect(0,0,r.width,r.height),h.font=i,h.textAlign=\"center\",h.textBaseline=\"middle\",h.fillStyle=\"#fff\";for(var f=o[0]/2,p=o[1]/2,c=0;c<s.length;c++)h.fillText(s[c],f,p),(f+=o[0])>e[0]-o[0]/2&&(f=o[0]/2,p+=o[1]);return r}},{\"css-font/stringify\":143}],231:[function(t,e,r){\"use strict\";function n(t,e){e||(e={}),(\"string\"==typeof t||Array.isArray(t))&&(e.family=t);var r=Array.isArray(e.family)?e.family.join(\", \"):e.family;if(!r)throw Error(\"`family` must be defined\");var s=e.size||e.fontSize||e.em||48,l=e.weight||e.fontWeight||\"\",c=(t=[e.style||e.fontStyle||\"\",l,s].join(\" \")+\"px \"+r,e.origin||\"top\");if(n.cache[r]&&s<=n.cache[r].em)return a(n.cache[r],c);var u=e.canvas||n.canvas,h=u.getContext(\"2d\"),f={upper:void 0!==e.upper?e.upper:\"H\",lower:void 0!==e.lower?e.lower:\"x\",descent:void 0!==e.descent?e.descent:\"p\",ascent:void 0!==e.ascent?e.ascent:\"h\",tittle:void 0!==e.tittle?e.tittle:\"i\",overshoot:void 0!==e.overshoot?e.overshoot:\"O\"},p=Math.ceil(1.5*s);u.height=p,u.width=.5*p,h.font=t;var d={top:0};h.clearRect(0,0,p,p),h.textBaseline=\"top\",h.fillStyle=\"black\",h.fillText(\"H\",0,0);var g=i(h.getImageData(0,0,p,p));h.clearRect(0,0,p,p),h.textBaseline=\"bottom\",h.fillText(\"H\",0,p);var v=i(h.getImageData(0,0,p,p));d.lineHeight=d.bottom=p-v+g,h.clearRect(0,0,p,p),h.textBaseline=\"alphabetic\",h.fillText(\"H\",0,p);var m=p-i(h.getImageData(0,0,p,p))-1+g;d.baseline=d.alphabetic=m,h.clearRect(0,0,p,p),h.textBaseline=\"middle\",h.fillText(\"H\",0,.5*p);var y=i(h.getImageData(0,0,p,p));d.median=d.middle=p-y-1+g-.5*p,h.clearRect(0,0,p,p),h.textBaseline=\"hanging\",h.fillText(\"H\",0,.5*p);var x=i(h.getImageData(0,0,p,p));d.hanging=p-x-1+g-.5*p,h.clearRect(0,0,p,p),h.textBaseline=\"ideographic\",h.fillText(\"H\",0,p);var b=i(h.getImageData(0,0,p,p));if(d.ideographic=p-b-1+g,f.upper&&(h.clearRect(0,0,p,p),h.textBaseline=\"top\",h.fillText(f.upper,0,0),d.upper=i(h.getImageData(0,0,p,p)),d.capHeight=d.baseline-d.upper),f.lower&&(h.clearRect(0,0,p,p),h.textBaseline=\"top\",h.fillText(f.lower,0,0),d.lower=i(h.getImageData(0,0,p,p)),d.xHeight=d.baseline-d.lower),f.tittle&&(h.clearRect(0,0,p,p),h.textBaseline=\"top\",h.fillText(f.tittle,0,0),d.tittle=i(h.getImageData(0,0,p,p))),f.ascent&&(h.clearRect(0,0,p,p),h.textBaseline=\"top\",h.fillText(f.ascent,0,0),d.ascent=i(h.getImageData(0,0,p,p))),f.descent&&(h.clearRect(0,0,p,p),h.textBaseline=\"top\",h.fillText(f.descent,0,0),d.descent=o(h.getImageData(0,0,p,p))),f.overshoot){h.clearRect(0,0,p,p),h.textBaseline=\"top\",h.fillText(f.overshoot,0,0);var _=o(h.getImageData(0,0,p,p));d.overshoot=_-m}for(var w in d)d[w]/=s;return d.em=s,n.cache[r]=d,a(d,c)}function a(t,e){var r={};for(var n in\"string\"==typeof e&&(e=t[e]),t)\"em\"!==n&&(r[n]=t[n]-e);return r}function i(t){for(var e=t.height,r=t.data,n=3;n<r.length;n+=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}function o(t){for(var e=t.height,r=t.data,n=r.length-1;n>0;n-=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}e.exports=n,n.canvas=document.createElement(\"canvas\"),n.cache={}},{}],232:[function(t,e,r){\"use strict\";e.exports=function(t){return new c(t||d,null)};var n=0,a=1;function i(t,e,r,n,a,i){this._color=t,this.key=e,this.value=r,this.left=n,this.right=a,this._count=i}function o(t){return new i(t._color,t.key,t.value,t.left,t.right,t._count)}function s(t,e){return new i(t,e.key,e.value,e.left,e.right,e._count)}function l(t){t._count=1+(t.left?t.left._count:0)+(t.right?t.right._count:0)}function c(t,e){this._compare=t,this.root=e}var u=c.prototype;function h(t,e){this.tree=t,this._stack=e}Object.defineProperty(u,\"keys\",{get:function(){var t=[];return this.forEach(function(e,r){t.push(e)}),t}}),Object.defineProperty(u,\"values\",{get:function(){var t=[];return this.forEach(function(e,r){t.push(r)}),t}}),Object.defineProperty(u,\"length\",{get:function(){return this.root?this.root._count:0}}),u.insert=function(t,e){for(var r=this._compare,o=this.root,u=[],h=[];o;){var f=r(t,o.key);u.push(o),h.push(f),o=f<=0?o.left:o.right}u.push(new i(n,t,e,null,null,1));for(var p=u.length-2;p>=0;--p){o=u[p];h[p]<=0?u[p]=new i(o._color,o.key,o.value,u[p+1],o.right,o._count+1):u[p]=new i(o._color,o.key,o.value,o.left,u[p+1],o._count+1)}for(p=u.length-1;p>1;--p){var d=u[p-1];o=u[p];if(d._color===a||o._color===a)break;var g=u[p-2];if(g.left===d)if(d.left===o){if(!(v=g.right)||v._color!==n){if(g._color=n,g.left=d.right,d._color=a,d.right=g,u[p-2]=d,u[p-1]=o,l(g),l(d),p>=3)(m=u[p-3]).left===g?m.left=d:m.right=d;break}d._color=a,g.right=s(a,v),g._color=n,p-=1}else{if(!(v=g.right)||v._color!==n){if(d.right=o.left,g._color=n,g.left=o.right,o._color=a,o.left=d,o.right=g,u[p-2]=o,u[p-1]=d,l(g),l(d),l(o),p>=3)(m=u[p-3]).left===g?m.left=o:m.right=o;break}d._color=a,g.right=s(a,v),g._color=n,p-=1}else if(d.right===o){if(!(v=g.left)||v._color!==n){if(g._color=n,g.right=d.left,d._color=a,d.left=g,u[p-2]=d,u[p-1]=o,l(g),l(d),p>=3)(m=u[p-3]).right===g?m.right=d:m.left=d;break}d._color=a,g.left=s(a,v),g._color=n,p-=1}else{var v;if(!(v=g.left)||v._color!==n){var m;if(d.left=o.right,g._color=n,g.right=o.left,o._color=a,o.right=d,o.left=g,u[p-2]=o,u[p-1]=d,l(g),l(d),l(o),p>=3)(m=u[p-3]).right===g?m.right=o:m.left=o;break}d._color=a,g.left=s(a,v),g._color=n,p-=1}}return u[0]._color=a,new c(r,u[0])},u.forEach=function(t,e,r){if(this.root)switch(arguments.length){case 1:return function t(e,r){var n;if(r.left&&(n=t(e,r.left)))return n;return(n=e(r.key,r.value))||(r.right?t(e,r.right):void 0)}(t,this.root);case 2:return function t(e,r,n,a){if(r(e,a.key)<=0){var i;if(a.left&&(i=t(e,r,n,a.left)))return i;if(i=n(a.key,a.value))return i}if(a.right)return t(e,r,n,a.right)}(e,this._compare,t,this.root);case 3:if(this._compare(e,r)>=0)return;return function t(e,r,n,a,i){var o,s=n(e,i.key),l=n(r,i.key);if(s<=0){if(i.left&&(o=t(e,r,n,a,i.left)))return o;if(l>0&&(o=a(i.key,i.value)))return o}if(l>0&&i.right)return t(e,r,n,a,i.right)}(e,r,this._compare,t,this.root)}},Object.defineProperty(u,\"begin\",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.left;return new h(this,t)}}),Object.defineProperty(u,\"end\",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.right;return new h(this,t)}}),u.at=function(t){if(t<0)return new h(this,[]);for(var e=this.root,r=[];;){if(r.push(e),e.left){if(t<e.left._count){e=e.left;continue}t-=e.left._count}if(!t)return new h(this,r);if(t-=1,!e.right)break;if(t>=e.right._count)break;e=e.right}return new h(this,[])},u.ge=function(t){for(var e=this._compare,r=this.root,n=[],a=0;r;){var i=e(t,r.key);n.push(r),i<=0&&(a=n.length),r=i<=0?r.left:r.right}return n.length=a,new h(this,n)},u.gt=function(t){for(var e=this._compare,r=this.root,n=[],a=0;r;){var i=e(t,r.key);n.push(r),i<0&&(a=n.length),r=i<0?r.left:r.right}return n.length=a,new h(this,n)},u.lt=function(t){for(var e=this._compare,r=this.root,n=[],a=0;r;){var i=e(t,r.key);n.push(r),i>0&&(a=n.length),r=i<=0?r.left:r.right}return n.length=a,new h(this,n)},u.le=function(t){for(var e=this._compare,r=this.root,n=[],a=0;r;){var i=e(t,r.key);n.push(r),i>=0&&(a=n.length),r=i<0?r.left:r.right}return n.length=a,new h(this,n)},u.find=function(t){for(var e=this._compare,r=this.root,n=[];r;){var a=e(t,r.key);if(n.push(r),0===a)return new h(this,n);r=a<=0?r.left:r.right}return new h(this,[])},u.remove=function(t){var e=this.find(t);return e?e.remove():this},u.get=function(t){for(var e=this._compare,r=this.root;r;){var n=e(t,r.key);if(0===n)return r.value;r=n<=0?r.left:r.right}};var f=h.prototype;function p(t,e){t.key=e.key,t.value=e.value,t.left=e.left,t.right=e.right,t._color=e._color,t._count=e._count}function d(t,e){return t<e?-1:t>e?1:0}Object.defineProperty(f,\"valid\",{get:function(){return this._stack.length>0}}),Object.defineProperty(f,\"node\",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),f.clone=function(){return new h(this.tree,this._stack.slice())},f.remove=function(){var t=this._stack;if(0===t.length)return this.tree;var e=new Array(t.length),r=t[t.length-1];e[e.length-1]=new i(r._color,r.key,r.value,r.left,r.right,r._count);for(var u=t.length-2;u>=0;--u){(r=t[u]).left===t[u+1]?e[u]=new i(r._color,r.key,r.value,e[u+1],r.right,r._count):e[u]=new i(r._color,r.key,r.value,r.left,e[u+1],r._count)}if((r=e[e.length-1]).left&&r.right){var h=e.length;for(r=r.left;r.right;)e.push(r),r=r.right;var f=e[h-1];e.push(new i(r._color,f.key,f.value,r.left,r.right,r._count)),e[h-1].key=r.key,e[h-1].value=r.value;for(u=e.length-2;u>=h;--u)r=e[u],e[u]=new i(r._color,r.key,r.value,r.left,e[u+1],r._count);e[h-1].left=e[h]}if((r=e[e.length-1])._color===n){var d=e[e.length-2];d.left===r?d.left=null:d.right===r&&(d.right=null),e.pop();for(u=0;u<e.length;++u)e[u]._count--;return new c(this.tree._compare,e[0])}if(r.left||r.right){r.left?p(r,r.left):r.right&&p(r,r.right),r._color=a;for(u=0;u<e.length-1;++u)e[u]._count--;return new c(this.tree._compare,e[0])}if(1===e.length)return new c(this.tree._compare,null);for(u=0;u<e.length;++u)e[u]._count--;var g=e[e.length-2];return function(t){for(var e,r,i,c,u=t.length-1;u>=0;--u){if(e=t[u],0===u)return void(e._color=a);if((r=t[u-1]).left===e){if((i=r.right).right&&i.right._color===n)return c=(i=r.right=o(i)).right=o(i.right),r.right=i.left,i.left=r,i.right=c,i._color=r._color,e._color=a,r._color=a,c._color=a,l(r),l(i),u>1&&((h=t[u-2]).left===r?h.left=i:h.right=i),void(t[u-1]=i);if(i.left&&i.left._color===n)return c=(i=r.right=o(i)).left=o(i.left),r.right=c.left,i.left=c.right,c.left=r,c.right=i,c._color=r._color,r._color=a,i._color=a,e._color=a,l(r),l(i),l(c),u>1&&((h=t[u-2]).left===r?h.left=c:h.right=c),void(t[u-1]=c);if(i._color===a){if(r._color===n)return r._color=a,void(r.right=s(n,i));r.right=s(n,i);continue}i=o(i),r.right=i.left,i.left=r,i._color=r._color,r._color=n,l(r),l(i),u>1&&((h=t[u-2]).left===r?h.left=i:h.right=i),t[u-1]=i,t[u]=r,u+1<t.length?t[u+1]=e:t.push(e),u+=2}else{if((i=r.left).left&&i.left._color===n)return c=(i=r.left=o(i)).left=o(i.left),r.left=i.right,i.right=r,i.left=c,i._color=r._color,e._color=a,r._color=a,c._color=a,l(r),l(i),u>1&&((h=t[u-2]).right===r?h.right=i:h.left=i),void(t[u-1]=i);if(i.right&&i.right._color===n)return c=(i=r.left=o(i)).right=o(i.right),r.left=c.right,i.right=c.left,c.right=r,c.left=i,c._color=r._color,r._color=a,i._color=a,e._color=a,l(r),l(i),l(c),u>1&&((h=t[u-2]).right===r?h.right=c:h.left=c),void(t[u-1]=c);if(i._color===a){if(r._color===n)return r._color=a,void(r.left=s(n,i));r.left=s(n,i);continue}var h;i=o(i),r.left=i.right,i.right=r,i._color=r._color,r._color=n,l(r),l(i),u>1&&((h=t[u-2]).right===r?h.right=i:h.left=i),t[u-1]=i,t[u]=r,u+1<t.length?t[u+1]=e:t.push(e),u+=2}}}(e),g.left===r?g.left=null:g.right=null,new c(this.tree._compare,e[0])},Object.defineProperty(f,\"key\",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(f,\"value\",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(f,\"index\",{get:function(){var t=0,e=this._stack;if(0===e.length){var r=this.tree.root;return r?r._count:0}e[e.length-1].left&&(t=e[e.length-1].left._count);for(var n=e.length-2;n>=0;--n)e[n+1]===e[n].right&&(++t,e[n].left&&(t+=e[n].left._count));return t},enumerable:!0}),f.next=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.right)for(e=e.right;e;)t.push(e),e=e.left;else for(t.pop();t.length>0&&t[t.length-1].right===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(f,\"hasNext\",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].right)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].left===t[e])return!0;return!1}}),f.update=function(t){var e=this._stack;if(0===e.length)throw new Error(\"Can't update empty node!\");var r=new Array(e.length),n=e[e.length-1];r[r.length-1]=new i(n._color,n.key,t,n.left,n.right,n._count);for(var a=e.length-2;a>=0;--a)(n=e[a]).left===e[a+1]?r[a]=new i(n._color,n.key,n.value,r[a+1],n.right,n._count):r[a]=new i(n._color,n.key,n.value,n.left,r[a+1],n._count);return new c(this.tree._compare,r[0])},f.prev=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.left)for(e=e.left;e;)t.push(e),e=e.right;else for(t.pop();t.length>0&&t[t.length-1].left===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(f,\"hasPrev\",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].left)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].right===t[e])return!0;return!1}})},{}],233:[function(t,e,r){var n=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7],a=607/128,i=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];function o(t){if(t<0)return Number(\"0/0\");for(var e=i[0],r=i.length-1;r>0;--r)e+=i[r]/(t+r);var n=t+a+.5;return.5*Math.log(2*Math.PI)+(t+.5)*Math.log(n)-n+Math.log(e)-Math.log(t)}e.exports=function t(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*t(1-e));if(e>100)return Math.exp(o(e));e-=1;for(var r=n[0],a=1;a<9;a++)r+=n[a]/(e+a);var i=e+7+.5;return Math.sqrt(2*Math.PI)*Math.pow(i,e+.5)*Math.exp(-i)*r},e.exports.log=o},{}],234:[function(t,e,r){e.exports=function(t,e){if(\"string\"!=typeof t)throw new TypeError(\"must specify type string\");if(e=e||{},\"undefined\"==typeof document&&!e.canvas)return null;var r=e.canvas||document.createElement(\"canvas\");\"number\"==typeof e.width&&(r.width=e.width);\"number\"==typeof e.height&&(r.height=e.height);var n,a=e;try{var i=[t];0===t.indexOf(\"webgl\")&&i.push(\"experimental-\"+t);for(var o=0;o<i.length;o++)if(n=r.getContext(i[o],a))return n}catch(t){n=null}return n||null}},{}],235:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r=new u(t);return r.update(e),r};var n=t(\"./lib/text.js\"),a=t(\"./lib/lines.js\"),i=t(\"./lib/background.js\"),o=t(\"./lib/cube.js\"),s=t(\"./lib/ticks.js\"),l=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);function c(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function u(t){this.gl=t,this.pixelRatio=1,this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.autoTicks=!0,this.tickSpacing=[1,1,1],this.tickEnable=[!0,!0,!0],this.tickFont=[\"sans-serif\",\"sans-serif\",\"sans-serif\"],this.tickSize=[12,12,12],this.tickAngle=[0,0,0],this.tickAlign=[\"auto\",\"auto\",\"auto\"],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[10,10,10],this.lastCubeProps={cubeEdges:[0,0,0],axis:[0,0,0]},this.labels=[\"x\",\"y\",\"z\"],this.labelEnable=[!0,!0,!0],this.labelFont=\"sans-serif\",this.labelSize=[20,20,20],this.labelAngle=[0,0,0],this.labelAlign=[\"auto\",\"auto\",\"auto\"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[10,10,10],this.lineEnable=[!0,!0,!0],this.lineMirror=[!1,!1,!1],this.lineWidth=[1,1,1],this.lineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.lineTickEnable=[!0,!0,!0],this.lineTickMirror=[!1,!1,!1],this.lineTickLength=[0,0,0],this.lineTickWidth=[1,1,1],this.lineTickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.gridEnable=[!0,!0,!0],this.gridWidth=[1,1,1],this.gridColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroEnable=[!0,!0,!0],this.zeroLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroLineWidth=[2,2,2],this.backgroundEnable=[!1,!1,!1],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._firstInit=!0,this._text=null,this._lines=null,this._background=i(t)}var h=u.prototype;function f(){this.primalOffset=[0,0,0],this.primalMinor=[0,0,0],this.mirrorOffset=[0,0,0],this.mirrorMinor=[0,0,0]}h.update=function(t){function e(e,r,n){if(n in t){var a,i=t[n],o=this[n];(e?Array.isArray(i)&&Array.isArray(i[0]):Array.isArray(i))?this[n]=a=[r(i[0]),r(i[1]),r(i[2])]:this[n]=a=[r(i),r(i),r(i)];for(var s=0;s<3;++s)if(a[s]!==o[s])return!0}return!1}t=t||{};var r,i=e.bind(this,!1,Number),o=e.bind(this,!1,Boolean),l=e.bind(this,!1,String),c=e.bind(this,!0,function(t){if(Array.isArray(t)){if(3===t.length)return[+t[0],+t[1],+t[2],1];if(4===t.length)return[+t[0],+t[1],+t[2],+t[3]]}return[0,0,0,1]}),u=!1,h=!1;if(\"bounds\"in t)for(var f=t.bounds,p=0;p<2;++p)for(var d=0;d<3;++d)f[p][d]!==this.bounds[p][d]&&(h=!0),this.bounds[p][d]=f[p][d];if(\"ticks\"in t){r=t.ticks,u=!0,this.autoTicks=!1;for(p=0;p<3;++p)this.tickSpacing[p]=0}else i(\"tickSpacing\")&&(this.autoTicks=!0,h=!0);if(this._firstInit&&(\"ticks\"in t||\"tickSpacing\"in t||(this.autoTicks=!0),h=!0,u=!0,this._firstInit=!1),h&&this.autoTicks&&(r=s.create(this.bounds,this.tickSpacing),u=!0),u){for(p=0;p<3;++p)r[p].sort(function(t,e){return t.x-e.x});s.equal(r,this.ticks)?u=!1:this.ticks=r}o(\"tickEnable\"),l(\"tickFont\")&&(u=!0),i(\"tickSize\"),i(\"tickAngle\"),i(\"tickPad\"),c(\"tickColor\");var g=l(\"labels\");l(\"labelFont\")&&(g=!0),o(\"labelEnable\"),i(\"labelSize\"),i(\"labelPad\"),c(\"labelColor\"),o(\"lineEnable\"),o(\"lineMirror\"),i(\"lineWidth\"),c(\"lineColor\"),o(\"lineTickEnable\"),o(\"lineTickMirror\"),i(\"lineTickLength\"),i(\"lineTickWidth\"),c(\"lineTickColor\"),o(\"gridEnable\"),i(\"gridWidth\"),c(\"gridColor\"),o(\"zeroEnable\"),c(\"zeroLineColor\"),i(\"zeroLineWidth\"),o(\"backgroundEnable\"),c(\"backgroundColor\"),this._text?this._text&&(g||u)&&this._text.update(this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont):this._text=n(this.gl,this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont),this._lines&&u&&(this._lines.dispose(),this._lines=null),this._lines||(this._lines=a(this.gl,this.bounds,this.ticks))};var p=[new f,new f,new f];function d(t,e,r,n,a){for(var i=t.primalOffset,o=t.primalMinor,s=t.mirrorOffset,l=t.mirrorMinor,c=n[e],u=0;u<3;++u)if(e!==u){var h=i,f=s,p=o,d=l;c&1<<u&&(h=s,f=i,p=l,d=o),h[u]=r[0][u],f[u]=r[1][u],a[u]>0?(p[u]=-1,d[u]=0):(p[u]=0,d[u]=1)}}var g=[0,0,0],v={model:l,view:l,projection:l,_ortho:!1};h.isOpaque=function(){return!0},h.isTransparent=function(){return!1},h.drawTransparent=function(t){};var m=[0,0,0],y=[0,0,0],x=[0,0,0];h.draw=function(t){t=t||v;for(var e=this.gl,r=t.model||l,n=t.view||l,a=t.projection||l,i=this.bounds,s=t._ortho||!1,u=o(r,n,a,i,s),h=u.cubeEdges,f=u.axis,b=n[12],_=n[13],w=n[14],k=n[15],T=(s?2:1)*this.pixelRatio*(a[3]*b+a[7]*_+a[11]*w+a[15]*k)/e.drawingBufferHeight,A=0;A<3;++A)this.lastCubeProps.cubeEdges[A]=h[A],this.lastCubeProps.axis[A]=f[A];var M=p;for(A=0;A<3;++A)d(p[A],A,this.bounds,h,f);e=this.gl;var S,E=g;for(A=0;A<3;++A)this.backgroundEnable[A]?E[A]=f[A]:E[A]=0;this._background.draw(r,n,a,i,E,this.backgroundColor),this._lines.bind(r,n,a,this);for(A=0;A<3;++A){var C=[0,0,0];f[A]>0?C[A]=i[1][A]:C[A]=i[0][A];for(var L=0;L<2;++L){var P=(A+1+L)%3,O=(A+1+(1^L))%3;this.gridEnable[P]&&this._lines.drawGrid(P,O,this.bounds,C,this.gridColor[P],this.gridWidth[P]*this.pixelRatio)}for(L=0;L<2;++L){P=(A+1+L)%3,O=(A+1+(1^L))%3;this.zeroEnable[O]&&Math.min(i[0][O],i[1][O])<=0&&Math.max(i[0][O],i[1][O])>=0&&this._lines.drawZero(P,O,this.bounds,C,this.zeroLineColor[O],this.zeroLineWidth[O]*this.pixelRatio)}}for(A=0;A<3;++A){this.lineEnable[A]&&this._lines.drawAxisLine(A,this.bounds,M[A].primalOffset,this.lineColor[A],this.lineWidth[A]*this.pixelRatio),this.lineMirror[A]&&this._lines.drawAxisLine(A,this.bounds,M[A].mirrorOffset,this.lineColor[A],this.lineWidth[A]*this.pixelRatio);var z=c(m,M[A].primalMinor),I=c(y,M[A].mirrorMinor),D=this.lineTickLength;for(L=0;L<3;++L){var R=T/r[5*L];z[L]*=D[L]*R,I[L]*=D[L]*R}this.lineTickEnable[A]&&this._lines.drawAxisTicks(A,M[A].primalOffset,z,this.lineTickColor[A],this.lineTickWidth[A]*this.pixelRatio),this.lineTickMirror[A]&&this._lines.drawAxisTicks(A,M[A].mirrorOffset,I,this.lineTickColor[A],this.lineTickWidth[A]*this.pixelRatio)}this._lines.unbind(),this._text.bind(r,n,a,this.pixelRatio);var F,B;function N(t){(B=[0,0,0])[t]=1}function j(t,e,r){var n=(t+1)%3,a=(t+2)%3,i=e[n],o=e[a],s=r[n],l=r[a];i>0&&l>0?N(n):i>0&&l<0?N(n):i<0&&l>0?N(n):i<0&&l<0?N(n):o>0&&s>0?N(a):o>0&&s<0?N(a):o<0&&s>0?N(a):o<0&&s<0&&N(a)}for(A=0;A<3;++A){var V=M[A].primalMinor,U=M[A].mirrorMinor,q=c(x,M[A].primalOffset);for(L=0;L<3;++L)this.lineTickEnable[A]&&(q[L]+=T*V[L]*Math.max(this.lineTickLength[L],0)/r[5*L]);var H=[0,0,0];if(H[A]=1,this.tickEnable[A]){-3600===this.tickAngle[A]?(this.tickAngle[A]=0,this.tickAlign[A]=\"auto\"):this.tickAlign[A]=-1,F=1,\"auto\"===(S=[this.tickAlign[A],.5,F])[0]?S[0]=0:S[0]=parseInt(\"\"+S[0]),B=[0,0,0],j(A,V,U);for(L=0;L<3;++L)q[L]+=T*V[L]*this.tickPad[L]/r[5*L];this._text.drawTicks(A,this.tickSize[A],this.tickAngle[A],q,this.tickColor[A],H,B,S)}if(this.labelEnable[A]){F=0,B=[0,0,0],this.labels[A].length>4&&(N(A),F=1),\"auto\"===(S=[this.labelAlign[A],.5,F])[0]?S[0]=0:S[0]=parseInt(\"\"+S[0]);for(L=0;L<3;++L)q[L]+=T*V[L]*this.labelPad[L]/r[5*L];q[A]+=.5*(i[0][A]+i[1][A]),this._text.drawLabel(A,this.labelSize[A],this.labelAngle[A],q,this.labelColor[A],[0,0,0],B,S)}}this._text.unbind()},h.dispose=function(){this._text.dispose(),this._lines.dispose(),this._background.dispose(),this._lines=null,this._text=null,this._background=null,this.gl=null}},{\"./lib/background.js\":236,\"./lib/cube.js\":237,\"./lib/lines.js\":238,\"./lib/text.js\":240,\"./lib/ticks.js\":241}],236:[function(t,e,r){\"use strict\";e.exports=function(t){for(var e=[],r=[],s=0,l=0;l<3;++l)for(var c=(l+1)%3,u=(l+2)%3,h=[0,0,0],f=[0,0,0],p=-1;p<=1;p+=2){r.push(s,s+2,s+1,s+1,s+2,s+3),h[l]=p,f[l]=p;for(var d=-1;d<=1;d+=2){h[c]=d;for(var g=-1;g<=1;g+=2)h[u]=g,e.push(h[0],h[1],h[2],f[0],f[1],f[2]),s+=1}var v=c;c=u,u=v}var m=n(t,new Float32Array(e)),y=n(t,new Uint16Array(r),t.ELEMENT_ARRAY_BUFFER),x=a(t,[{buffer:m,type:t.FLOAT,size:3,offset:0,stride:24},{buffer:m,type:t.FLOAT,size:3,offset:12,stride:24}],y),b=i(t);return b.attributes.position.location=0,b.attributes.normal.location=1,new o(t,m,x,b)};var n=t(\"gl-buffer\"),a=t(\"gl-vao\"),i=t(\"./shaders\").bg;function o(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n}var s=o.prototype;s.draw=function(t,e,r,n,a,i){for(var o=!1,s=0;s<3;++s)o=o||a[s];if(o){var l=this.gl;l.enable(l.POLYGON_OFFSET_FILL),l.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:t,view:e,projection:r,bounds:n,enable:a,colors:i},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),l.disable(l.POLYGON_OFFSET_FILL)}},s.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},{\"./shaders\":239,\"gl-buffer\":243,\"gl-vao\":328}],237:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,i,p){a(s,e,t),a(s,r,s);for(var y=0,x=0;x<2;++x){u[2]=i[x][2];for(var b=0;b<2;++b){u[1]=i[b][1];for(var _=0;_<2;++_)u[0]=i[_][0],f(l[y],u,s),y+=1}}for(var w=-1,x=0;x<8;++x){for(var k=l[x][3],T=0;T<3;++T)c[x][T]=l[x][T]/k;p&&(c[x][2]*=-1),k<0&&(w<0?w=x:c[x][2]<c[w][2]&&(w=x))}if(w<0){w=0;for(var A=0;A<3;++A){for(var M=(A+2)%3,S=(A+1)%3,E=-1,C=-1,L=0;L<2;++L){var P=L<<A,O=P+(L<<M)+(1-L<<S),z=P+(1-L<<M)+(L<<S);o(c[P],c[O],c[z],h)<0||(L?E=1:C=1)}if(E<0||C<0)C>E&&(w|=1<<A);else{for(var L=0;L<2;++L){var P=L<<A,O=P+(L<<M)+(1-L<<S),z=P+(1-L<<M)+(L<<S),I=d([l[P],l[O],l[z],l[P+(1<<M)+(1<<S)]]);L?E=I:C=I}C>E&&(w|=1<<A)}}}for(var D=7^w,R=-1,x=0;x<8;++x)x!==w&&x!==D&&(R<0?R=x:c[R][1]>c[x][1]&&(R=x));for(var F=-1,x=0;x<3;++x){var B=R^1<<x;if(B!==w&&B!==D){F<0&&(F=B);var S=c[B];S[0]<c[F][0]&&(F=B)}}for(var N=-1,x=0;x<3;++x){var B=R^1<<x;if(B!==w&&B!==D&&B!==F){N<0&&(N=B);var S=c[B];S[0]>c[N][0]&&(N=B)}}var j=g;j[0]=j[1]=j[2]=0,j[n.log2(F^R)]=R&F,j[n.log2(R^N)]=R&N;var V=7^N;V===w||V===D?(V=7^F,j[n.log2(N^V)]=V&N):j[n.log2(F^V)]=V&F;for(var U=v,q=w,A=0;A<3;++A)U[A]=q&1<<A?-1:1;return m};var n=t(\"bit-twiddle\"),a=t(\"gl-mat4/multiply\"),i=t(\"split-polygon\"),o=t(\"robust-orientation\"),s=new Array(16),l=new Array(8),c=new Array(8),u=new Array(3),h=[0,0,0];function f(t,e,r){for(var n=0;n<4;++n){t[n]=r[12+n];for(var a=0;a<3;++a)t[n]+=e[a]*r[4*a+n]}}!function(){for(var t=0;t<8;++t)l[t]=[1,1,1,1],c[t]=[1,1,1]}();var p=[[0,0,1,0,0],[0,0,-1,1,0],[0,-1,0,1,0],[0,1,0,1,0],[-1,0,0,1,0],[1,0,0,1,0]];function d(t){for(var e=0;e<p.length;++e)if((t=i.positive(t,p[e])).length<3)return 0;var r=t[0],n=r[0]/r[3],a=r[1]/r[3],o=0;for(e=1;e+1<t.length;++e){var s=t[e],l=t[e+1],c=s[0]/s[3]-n,u=s[1]/s[3]-a,h=l[0]/l[3]-n,f=l[1]/l[3]-a;o+=Math.abs(c*f-u*h)}return o}var g=[1,1,1],v=[0,0,0],m={cubeEdges:g,axis:v}},{\"bit-twiddle\":93,\"gl-mat4/multiply\":269,\"robust-orientation\":508,\"split-polygon\":525}],238:[function(t,e,r){\"use strict\";e.exports=function(t,e,r){var o=[],s=[0,0,0],l=[0,0,0],c=[0,0,0],u=[0,0,0];o.push(0,0,1,0,1,1,0,0,-1,0,0,-1,0,1,1,0,1,-1);for(var h=0;h<3;++h){for(var f=o.length/3|0,d=0;d<r[h].length;++d){var g=+r[h][d].x;o.push(g,0,1,g,1,1,g,0,-1,g,0,-1,g,1,1,g,1,-1)}var v=o.length/3|0;s[h]=f,l[h]=v-f;for(var f=o.length/3|0,m=0;m<r[h].length;++m){var g=+r[h][m].x;o.push(g,0,1,g,1,1,g,0,-1,g,0,-1,g,1,1,g,1,-1)}var v=o.length/3|0;c[h]=f,u[h]=v-f}var y=n(t,new Float32Array(o)),x=a(t,[{buffer:y,type:t.FLOAT,size:3,stride:0,offset:0}]),b=i(t);return b.attributes.position.location=0,new p(t,y,x,b,l,s,u,c)};var n=t(\"gl-buffer\"),a=t(\"gl-vao\"),i=t(\"./shaders\").line,o=[0,0,0],s=[0,0,0],l=[0,0,0],c=[0,0,0],u=[1,1];function h(t){return t[0]=t[1]=t[2]=0,t}function f(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function p(t,e,r,n,a,i,o,s){this.gl=t,this.vertBuffer=e,this.vao=r,this.shader=n,this.tickCount=a,this.tickOffset=i,this.gridCount=o,this.gridOffset=s}var d=p.prototype;d.bind=function(t,e,r){this.shader.bind(),this.shader.uniforms.model=t,this.shader.uniforms.view=e,this.shader.uniforms.projection=r,u[0]=this.gl.drawingBufferWidth,u[1]=this.gl.drawingBufferHeight,this.shader.uniforms.screenShape=u,this.vao.bind()},d.unbind=function(){this.vao.unbind()},d.drawAxisLine=function(t,e,r,n,a){var i=h(s);this.shader.uniforms.majorAxis=s,i[t]=e[1][t]-e[0][t],this.shader.uniforms.minorAxis=i;var o,u=f(c,r);u[t]+=e[0][t],this.shader.uniforms.offset=u,this.shader.uniforms.lineWidth=a,this.shader.uniforms.color=n,(o=h(l))[(t+2)%3]=1,this.shader.uniforms.screenAxis=o,this.vao.draw(this.gl.TRIANGLES,6),(o=h(l))[(t+1)%3]=1,this.shader.uniforms.screenAxis=o,this.vao.draw(this.gl.TRIANGLES,6)},d.drawAxisTicks=function(t,e,r,n,a){if(this.tickCount[t]){var i=h(o);i[t]=1,this.shader.uniforms.majorAxis=i,this.shader.uniforms.offset=e,this.shader.uniforms.minorAxis=r,this.shader.uniforms.color=n,this.shader.uniforms.lineWidth=a;var s=h(l);s[t]=1,this.shader.uniforms.screenAxis=s,this.vao.draw(this.gl.TRIANGLES,this.tickCount[t],this.tickOffset[t])}},d.drawGrid=function(t,e,r,n,a,i){if(this.gridCount[t]){var u=h(s);u[e]=r[1][e]-r[0][e],this.shader.uniforms.minorAxis=u;var p=f(c,n);p[e]+=r[0][e],this.shader.uniforms.offset=p;var d=h(o);d[t]=1,this.shader.uniforms.majorAxis=d;var g=h(l);g[t]=1,this.shader.uniforms.screenAxis=g,this.shader.uniforms.lineWidth=i,this.shader.uniforms.color=a,this.vao.draw(this.gl.TRIANGLES,this.gridCount[t],this.gridOffset[t])}},d.drawZero=function(t,e,r,n,a,i){var o=h(s);this.shader.uniforms.majorAxis=o,o[t]=r[1][t]-r[0][t],this.shader.uniforms.minorAxis=o;var u=f(c,n);u[t]+=r[0][t],this.shader.uniforms.offset=u;var p=h(l);p[e]=1,this.shader.uniforms.screenAxis=p,this.shader.uniforms.lineWidth=i,this.shader.uniforms.color=a,this.vao.draw(this.gl.TRIANGLES,6)},d.dispose=function(){this.vao.dispose(),this.vertBuffer.dispose(),this.shader.dispose()}},{\"./shaders\":239,\"gl-buffer\":243,\"gl-vao\":328}],239:[function(t,e,r){\"use strict\";var n=t(\"glslify\"),a=t(\"gl-shader\"),i=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 offset, majorAxis, minorAxis, screenAxis;\\nuniform float lineWidth;\\nuniform vec2 screenShape;\\n\\nvec3 project(vec3 p) {\\n vec4 pp = projection * view * model * vec4(p, 1.0);\\n return pp.xyz / max(pp.w, 0.0001);\\n}\\n\\nvoid main() {\\n vec3 major = position.x * majorAxis;\\n vec3 minor = position.y * minorAxis;\\n\\n vec3 vPosition = major + minor + offset;\\n vec3 pPosition = project(vPosition);\\n vec3 offset = project(vPosition + screenAxis * position.z);\\n\\n vec2 screen = normalize((offset - pPosition).xy * screenShape) / screenShape;\\n\\n gl_Position = vec4(pPosition + vec3(0.5 * screen * lineWidth, 0), 1.0);\\n}\\n\"]),o=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec4 color;\\nvoid main() {\\n gl_FragColor = color;\\n}\"]);r.line=function(t){return a(t,i,o,null,[{name:\"position\",type:\"vec3\"}])};var s=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 offset, axis, alignDir, alignOpt;\\nuniform float scale, angle, pixelScale;\\nuniform vec2 resolution;\\n\\nvec3 project(vec3 p) {\\n vec4 pp = projection * view * model * vec4(p, 1.0);\\n return pp.xyz / max(pp.w, 0.0001);\\n}\\n\\nfloat computeViewAngle(vec3 a, vec3 b) {\\n vec3 A = project(a);\\n vec3 B = project(b);\\n\\n return atan(\\n (B.y - A.y) * resolution.y,\\n (B.x - A.x) * resolution.x\\n );\\n}\\n\\nconst float PI = 3.141592;\\nconst float TWO_PI = 2.0 * PI;\\nconst float HALF_PI = 0.5 * PI;\\nconst float ONE_AND_HALF_PI = 1.5 * PI;\\n\\nint option = int(floor(alignOpt.x + 0.001));\\nfloat hv_ratio = alignOpt.y;\\nbool enableAlign = (alignOpt.z != 0.0);\\n\\nfloat mod_angle(float a) {\\n return mod(a, PI);\\n}\\n\\nfloat positive_angle(float a) {\\n return mod_angle((a < 0.0) ?\\n a + TWO_PI :\\n a\\n );\\n}\\n\\nfloat look_upwards(float a) {\\n float b = positive_angle(a);\\n return ((b > HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\\n b - PI :\\n b;\\n}\\n\\nfloat look_horizontal_or_vertical(float a, float ratio) {\\n // ratio controls the ratio between being horizontal to (vertical + horizontal)\\n // if ratio is set to 0.5 then it is 50%, 50%.\\n // when using a higher ratio e.g. 0.75 the result would\\n // likely be more horizontal than vertical.\\n\\n float b = positive_angle(a);\\n\\n return\\n (b < ( ratio) * HALF_PI) ? 0.0 :\\n (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\\n (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\\n (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\\n 0.0;\\n}\\n\\nfloat roundTo(float a, float b) {\\n return float(b * floor((a + 0.5 * b) / b));\\n}\\n\\nfloat look_round_n_directions(float a, int n) {\\n float b = positive_angle(a);\\n float div = TWO_PI / float(n);\\n float c = roundTo(b, div);\\n return look_upwards(c);\\n}\\n\\nfloat applyAlignOption(float rawAngle, float delta) {\\n return\\n (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions\\n (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\\n (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis\\n (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\\n (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal\\n rawAngle; // otherwise return back raw input angle\\n}\\n\\nbool isAxisTitle = (axis.x == 0.0) &&\\n (axis.y == 0.0) &&\\n (axis.z == 0.0);\\n\\nvoid main() {\\n //Compute world offset\\n float axisDistance = position.z;\\n vec3 dataPosition = axisDistance * axis + offset;\\n\\n float beta = angle; // i.e. user defined attributes for each tick\\n\\n float axisAngle;\\n float clipAngle;\\n float flip;\\n\\n if (enableAlign) {\\n axisAngle = (isAxisTitle) ? HALF_PI :\\n computeViewAngle(dataPosition, dataPosition + axis);\\n clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\\n\\n axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\\n clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\\n\\n flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\\n vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\\n\\n beta += applyAlignOption(clipAngle, flip * PI);\\n }\\n\\n //Compute plane offset\\n vec2 planeCoord = position.xy * pixelScale;\\n\\n mat2 planeXform = scale * mat2(\\n cos(beta), sin(beta),\\n -sin(beta), cos(beta)\\n );\\n\\n vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\\n\\n //Compute clip position\\n vec3 clipPosition = project(dataPosition);\\n\\n //Apply text offset in clip coordinates\\n clipPosition += vec3(viewOffset, 0.0);\\n\\n //Done\\n gl_Position = vec4(clipPosition, 1.0);\\n}\"]),l=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec4 color;\\nvoid main() {\\n gl_FragColor = color;\\n}\"]);r.text=function(t){return a(t,s,l,null,[{name:\"position\",type:\"vec3\"}])};var c=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec3 normal;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 enable;\\nuniform vec3 bounds[2];\\n\\nvarying vec3 colorChannel;\\n\\nvoid main() {\\n\\n vec3 signAxis = sign(bounds[1] - bounds[0]);\\n\\n vec3 realNormal = signAxis * normal;\\n\\n if(dot(realNormal, enable) > 0.0) {\\n vec3 minRange = min(bounds[0], bounds[1]);\\n vec3 maxRange = max(bounds[0], bounds[1]);\\n vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\\n gl_Position = projection * view * model * vec4(nPosition, 1.0);\\n } else {\\n gl_Position = vec4(0,0,0,0);\\n }\\n\\n colorChannel = abs(realNormal);\\n}\"]),u=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec4 colors[3];\\n\\nvarying vec3 colorChannel;\\n\\nvoid main() {\\n gl_FragColor = colorChannel.x * colors[0] +\\n colorChannel.y * colors[1] +\\n colorChannel.z * colors[2];\\n}\"]);r.bg=function(t){return a(t,c,u,null,[{name:\"position\",type:\"vec3\"},{name:\"normal\",type:\"vec3\"}])}},{\"gl-shader\":303,glslify:410}],240:[function(t,e,r){(function(r){\"use strict\";e.exports=function(t,e,r,i,s,l){var u=n(t),h=a(t,[{buffer:u,size:3}]),f=o(t);f.attributes.position.location=0;var p=new c(t,f,u,h);return p.update(e,r,i,s,l),p};var n=t(\"gl-buffer\"),a=t(\"gl-vao\"),i=t(\"vectorize-text\"),o=t(\"./shaders\").text,s=window||r.global||{},l=s.__TEXT_CACHE||{};s.__TEXT_CACHE={};function c(t,e,r,n){this.gl=t,this.shader=e,this.buffer=r,this.vao=n,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}var u=c.prototype,h=[0,0];u.bind=function(t,e,r,n){this.vao.bind(),this.shader.bind();var a=this.shader.uniforms;a.model=t,a.view=e,a.projection=r,a.pixelScale=n,h[0]=this.gl.drawingBufferWidth,h[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=h},u.unbind=function(){this.vao.unbind()},u.update=function(t,e,r,n,a){var o=[];function s(t,e,r,n,a,s){var c=l[r];c||(c=l[r]={});var u=c[e];u||(u=c[e]=function(t,e){try{return i(t,e)}catch(e){return console.warn('error vectorizing text:\"'+t+'\" error:',e),{cells:[],positions:[]}}}(e,{triangles:!0,font:r,textAlign:\"center\",textBaseline:\"middle\",lineSpacing:a,styletags:s}));for(var h=(n||12)/12,f=u.positions,p=u.cells,d=0,g=p.length;d<g;++d)for(var v=p[d],m=2;m>=0;--m){var y=f[v[m]];o.push(h*y[0],-h*y[1],t)}}for(var c=[0,0,0],u=[0,0,0],h=[0,0,0],f=[0,0,0],p={breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},d=0;d<3;++d){h[d]=o.length/3|0,s(.5*(t[0][d]+t[1][d]),e[d],r[d],12,1.25,p),f[d]=(o.length/3|0)-h[d],c[d]=o.length/3|0;for(var g=0;g<n[d].length;++g)n[d][g].text&&s(n[d][g].x,n[d][g].text,n[d][g].font||a,n[d][g].fontSize||12,1.25,p);u[d]=(o.length/3|0)-c[d]}this.buffer.update(o),this.tickOffset=c,this.tickCount=u,this.labelOffset=h,this.labelCount=f},u.drawTicks=function(t,e,r,n,a,i,o,s){this.tickCount[t]&&(this.shader.uniforms.axis=i,this.shader.uniforms.color=a,this.shader.uniforms.angle=r,this.shader.uniforms.scale=e,this.shader.uniforms.offset=n,this.shader.uniforms.alignDir=o,this.shader.uniforms.alignOpt=s,this.vao.draw(this.gl.TRIANGLES,this.tickCount[t],this.tickOffset[t]))},u.drawLabel=function(t,e,r,n,a,i,o,s){this.labelCount[t]&&(this.shader.uniforms.axis=i,this.shader.uniforms.color=a,this.shader.uniforms.angle=r,this.shader.uniforms.scale=e,this.shader.uniforms.offset=n,this.shader.uniforms.alignDir=o,this.shader.uniforms.alignOpt=s,this.vao.draw(this.gl.TRIANGLES,this.labelCount[t],this.labelOffset[t]))},u.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()}}).call(this,t(\"_process\"))},{\"./shaders\":239,_process:483,\"gl-buffer\":243,\"gl-vao\":328,\"vectorize-text\":548}],241:[function(t,e,r){\"use strict\";function n(t,e){var r=t+\"\",n=r.indexOf(\".\"),a=0;n>=0&&(a=r.length-n-1);var i=Math.pow(10,a),o=Math.round(t*e*i),s=o+\"\";if(s.indexOf(\"e\")>=0)return s;var l=o/i,c=o%i;o<0?(l=0|-Math.ceil(l),c=0|-c):(l=0|Math.floor(l),c|=0);var u=\"\"+l;if(o<0&&(u=\"-\"+u),a){for(var h=\"\"+c;h.length<a;)h=\"0\"+h;return u+\".\"+h}return u}r.create=function(t,e){for(var r=[],a=0;a<3;++a){for(var i=[],o=(t[0][a],t[1][a],0);o*e[a]<=t[1][a];++o)i.push({x:o*e[a],text:n(e[a],o)});for(var o=-1;o*e[a]>=t[0][a];--o)i.push({x:o*e[a],text:n(e[a],o)});r.push(i)}return r},r.equal=function(t,e){for(var r=0;r<3;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;n<t[r].length;++n){var a=t[r][n],i=e[r][n];if(a.x!==i.x||a.text!==i.text||a.font!==i.font||a.fontColor!==i.fontColor||a.fontSize!==i.fontSize||a.dx!==i.dx||a.dy!==i.dy)return!1}}return!0}},{}],242:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,l,h){var f=e.model||c,p=e.view||c,m=e.projection||c,y=e._ortho||!1,x=t.bounds,b=(h=h||i(f,p,m,x,y)).axis;o(u,p,f),o(u,m,u);for(var _=g,w=0;w<3;++w)_[w].lo=1/0,_[w].hi=-1/0,_[w].pixelsPerDataUnit=1/0;var k=n(s(u,u));s(u,u);for(var T=0;T<3;++T){var A=(T+1)%3,M=(T+2)%3,S=v;t:for(var w=0;w<2;++w){var E=[];if(b[T]<0!=!!w){S[T]=x[w][T];for(var C=0;C<2;++C){S[A]=x[C^w][A];for(var L=0;L<2;++L)S[M]=x[L^C^w][M],E.push(S.slice())}for(var P=y?5:4,C=P;C===P;++C){if(0===E.length)continue t;E=a.positive(E,k[C])}for(var C=0;C<E.length;++C)for(var M=E[C],O=d(v,u,M,r,l),L=0;L<3;++L)_[L].lo=Math.min(_[L].lo,M[L]),_[L].hi=Math.max(_[L].hi,M[L]),L!==T&&(_[L].pixelsPerDataUnit=Math.min(_[L].pixelsPerDataUnit,Math.abs(O[L])))}}}return _};var n=t(\"extract-frustum-planes\"),a=t(\"split-polygon\"),i=t(\"./lib/cube.js\"),o=t(\"gl-mat4/multiply\"),s=t(\"gl-mat4/transpose\"),l=t(\"gl-vec4/transformMat4\"),c=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),u=new Float32Array(16);function h(t,e,r){this.lo=t,this.hi=e,this.pixelsPerDataUnit=r}var f=[0,0,0,1],p=[0,0,0,1];function d(t,e,r,n,a){for(var i=0;i<3;++i){for(var o=f,s=p,c=0;c<3;++c)s[c]=o[c]=r[c];s[3]=o[3]=1,s[i]+=1,l(s,s,e),s[3]<0&&(t[i]=1/0),o[i]-=1,l(o,o,e),o[3]<0&&(t[i]=1/0);var u=(o[0]/o[3]-s[0]/s[3])*n,h=(o[1]/o[3]-s[1]/s[3])*a;t[i]=.25*Math.sqrt(u*u+h*h)}return t}var g=[new h(1/0,-1/0,1/0),new h(1/0,-1/0,1/0),new h(1/0,-1/0,1/0)],v=[0,0,0]},{\"./lib/cube.js\":237,\"extract-frustum-planes\":226,\"gl-mat4/multiply\":269,\"gl-mat4/transpose\":278,\"gl-vec4/transformMat4\":399,\"split-polygon\":525}],243:[function(t,e,r){\"use strict\";var n=t(\"typedarray-pool\"),a=t(\"ndarray-ops\"),i=t(\"ndarray\"),o=[\"uint8\",\"uint8_clamped\",\"uint16\",\"uint32\",\"int8\",\"int16\",\"int32\",\"float32\"];function s(t,e,r,n,a){this.gl=t,this.type=e,this.handle=r,this.length=n,this.usage=a}var l=s.prototype;function c(t,e,r,n,a,i){var o=a.length*a.BYTES_PER_ELEMENT;if(i<0)return t.bufferData(e,a,n),o;if(o+i>r)throw new Error(\"gl-buffer: If resizing buffer, must not specify offset\");return t.bufferSubData(e,i,a),r}function u(t,e){for(var r=n.malloc(t.length,e),a=t.length,i=0;i<a;++i)r[i]=t[i];return r}l.bind=function(){this.gl.bindBuffer(this.type,this.handle)},l.unbind=function(){this.gl.bindBuffer(this.type,null)},l.dispose=function(){this.gl.deleteBuffer(this.handle)},l.update=function(t,e){if(\"number\"!=typeof e&&(e=-1),this.bind(),\"object\"==typeof t&&\"undefined\"!=typeof t.shape){var r=t.dtype;if(o.indexOf(r)<0&&(r=\"float32\"),this.type===this.gl.ELEMENT_ARRAY_BUFFER)r=gl.getExtension(\"OES_element_index_uint\")&&\"uint16\"!==r?\"uint32\":\"uint16\";if(r===t.dtype&&function(t,e){for(var r=1,n=e.length-1;n>=0;--n){if(e[n]!==r)return!1;r*=t[n]}return!0}(t.shape,t.stride))0===t.offset&&t.data.length===t.shape[0]?this.length=c(this.gl,this.type,this.length,this.usage,t.data,e):this.length=c(this.gl,this.type,this.length,this.usage,t.data.subarray(t.offset,t.shape[0]),e);else{var s=n.malloc(t.size,r),l=i(s,t.shape);a.assign(l,t),this.length=c(this.gl,this.type,this.length,this.usage,e<0?s:s.subarray(0,t.size),e),n.free(s)}}else if(Array.isArray(t)){var h;h=this.type===this.gl.ELEMENT_ARRAY_BUFFER?u(t,\"uint16\"):u(t,\"float32\"),this.length=c(this.gl,this.type,this.length,this.usage,e<0?h:h.subarray(0,t.length),e),n.free(h)}else if(\"object\"==typeof t&&\"number\"==typeof t.length)this.length=c(this.gl,this.type,this.length,this.usage,t,e);else{if(\"number\"!=typeof t&&void 0!==t)throw new Error(\"gl-buffer: Invalid data type\");if(e>=0)throw new Error(\"gl-buffer: Cannot specify offset when resizing buffer\");(t|=0)<=0&&(t=1),this.gl.bufferData(this.type,0|t,this.usage),this.length=t}},e.exports=function(t,e,r,n){if(r=r||t.ARRAY_BUFFER,n=n||t.DYNAMIC_DRAW,r!==t.ARRAY_BUFFER&&r!==t.ELEMENT_ARRAY_BUFFER)throw new Error(\"gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER\");if(n!==t.DYNAMIC_DRAW&&n!==t.STATIC_DRAW&&n!==t.STREAM_DRAW)throw new Error(\"gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW\");var a=t.createBuffer(),i=new s(t,r,a,0,n);return i.update(e),i}},{ndarray:451,\"ndarray-ops\":445,\"typedarray-pool\":543}],244:[function(t,e,r){\"use strict\";var n=t(\"gl-vec3\");e.exports=function(t,e){var r=t.positions,a=t.vectors,i={positions:[],vertexIntensity:[],vertexIntensityBounds:t.vertexIntensityBounds,vectors:[],cells:[],coneOffset:t.coneOffset,colormap:t.colormap};if(0===t.positions.length)return e&&(e[0]=[0,0,0],e[1]=[0,0,0]),i;for(var o=0,s=1/0,l=-1/0,c=1/0,u=-1/0,h=1/0,f=-1/0,p=null,d=null,g=[],v=1/0,m=!1,y=0;y<r.length;y++){var x=r[y];s=Math.min(x[0],s),l=Math.max(x[0],l),c=Math.min(x[1],c),u=Math.max(x[1],u),h=Math.min(x[2],h),f=Math.max(x[2],f);var b=a[y];if(n.length(b)>o&&(o=n.length(b)),y){var _=2*n.distance(p,x)/(n.length(d)+n.length(b));_?(v=Math.min(v,_),m=!1):m=!0}m||(p=x,d=b),g.push(b)}var w=[s,c,h],k=[l,u,f];e&&(e[0]=w,e[1]=k),0===o&&(o=1);var T=1/o;isFinite(v)||(v=1),i.vectorScale=v;var A=t.coneSize||.5;t.absoluteConeSize&&(A=t.absoluteConeSize*T),i.coneScale=A;y=0;for(var M=0;y<r.length;y++)for(var S=(x=r[y])[0],E=x[1],C=x[2],L=g[y],P=n.length(L)*T,O=0;O<8;O++){i.positions.push([S,E,C,M++]),i.positions.push([S,E,C,M++]),i.positions.push([S,E,C,M++]),i.positions.push([S,E,C,M++]),i.positions.push([S,E,C,M++]),i.positions.push([S,E,C,M++]),i.vectors.push(L),i.vectors.push(L),i.vectors.push(L),i.vectors.push(L),i.vectors.push(L),i.vectors.push(L),i.vertexIntensity.push(P,P,P),i.vertexIntensity.push(P,P,P);var z=i.positions.length;i.cells.push([z-6,z-5,z-4],[z-3,z-2,z-1])}return i};var a=t(\"./lib/shaders\");e.exports.createMesh=t(\"./create_mesh\"),e.exports.createConeMesh=function(t,r){return e.exports.createMesh(t,r,{shaders:a,traceType:\"cone\"})}},{\"./create_mesh\":245,\"./lib/shaders\":246,\"gl-vec3\":347}],245:[function(t,e,r){\"use strict\";var n=t(\"gl-shader\"),a=t(\"gl-buffer\"),i=t(\"gl-vao\"),o=t(\"gl-texture2d\"),s=t(\"gl-mat4/multiply\"),l=t(\"gl-mat4/invert\"),c=t(\"ndarray\"),u=t(\"colormap\"),h=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function f(t,e,r,n,a,i,o,s,l,c,u){this.gl=t,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.pickShader=n,this.trianglePositions=a,this.triangleVectors=i,this.triangleColors=s,this.triangleUVs=l,this.triangleIds=o,this.triangleVAO=c,this.triangleCount=0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.traceType=u,this.tubeScale=1,this.coneScale=2,this.vectorScale=1,this.coneOffset=.25,this._model=h,this._view=h,this._projection=h,this._resolution=[1,1]}var p=f.prototype;p.isOpaque=function(){return this.opacity>=1},p.isTransparent=function(){return this.opacity<1},p.pickSlots=1,p.setPickBase=function(t){this.pickId=t},p.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,\"lightPosition\"in t&&(this.lightPosition=t.lightPosition),\"opacity\"in t&&(this.opacity=t.opacity),\"ambient\"in t&&(this.ambientLight=t.ambient),\"diffuse\"in t&&(this.diffuseLight=t.diffuse),\"specular\"in t&&(this.specularLight=t.specular),\"roughness\"in t&&(this.roughness=t.roughness),\"fresnel\"in t&&(this.fresnel=t.fresnel),void 0!==t.tubeScale&&(this.tubeScale=t.tubeScale),void 0!==t.vectorScale&&(this.vectorScale=t.vectorScale),void 0!==t.coneScale&&(this.coneScale=t.coneScale),void 0!==t.coneOffset&&(this.coneOffset=t.coneOffset),t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=u({colormap:t,nshades:256,format:\"rgba\"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var a=e[n],i=0;i<3;++i)r[4*n+i]=a[i];r[4*n+3]=255*a[3]}return c(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,a=t.vectors;if(n&&r&&a){var i=[],o=[],s=[],l=[],h=[];this.cells=r,this.positions=n,this.vectors=a;var f=t.meshColor||[1,1,1,1],p=t.vertexIntensity,d=1/0,g=-1/0;if(p)if(t.vertexIntensityBounds)d=+t.vertexIntensityBounds[0],g=+t.vertexIntensityBounds[1];else for(var v=0;v<p.length;++v){var m=p[v];d=Math.min(d,m),g=Math.max(g,m)}else for(v=0;v<n.length;++v){m=n[v][2];d=Math.min(d,m),g=Math.max(g,m)}this.intensity=p||function(t){for(var e=t.length,r=new Array(e),n=0;n<e;++n)r[n]=t[n][2];return r}(n),this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(v=0;v<n.length;++v)for(var y=n[v],x=0;x<3;++x)!isNaN(y[x])&&isFinite(y[x])&&(this.bounds[0][x]=Math.min(this.bounds[0][x],y[x]),this.bounds[1][x]=Math.max(this.bounds[1][x],y[x]));var b=0;t:for(v=0;v<r.length;++v){var _=r[v];switch(_.length){case 3:for(x=0;x<3;++x){y=n[k=_[x]];for(var w=0;w<3;++w)if(isNaN(y[w])||!isFinite(y[w]))continue t}for(x=0;x<3;++x){var k;y=n[k=_[2-x]];i.push(y[0],y[1],y[2],y[3]);var T=a[k];o.push(T[0],T[1],T[2],T[3]||0);var A,M=f;3===M.length?s.push(M[0],M[1],M[2],1):s.push(M[0],M[1],M[2],M[3]),A=p?[(p[k]-d)/(g-d),0]:[(y[2]-d)/(g-d),0],l.push(A[0],A[1]),h.push(v)}b+=1}}this.triangleCount=b,this.trianglePositions.update(i),this.triangleVectors.update(o),this.triangleColors.update(s),this.triangleUVs.update(l),this.triangleIds.update(new Uint32Array(h))}},p.drawTransparent=p.draw=function(t){t=t||{};for(var e=this.gl,r=t.model||h,n=t.view||h,a=t.projection||h,i=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)i[0][o]=Math.max(i[0][o],this.clipBounds[0][o]),i[1][o]=Math.min(i[1][o],this.clipBounds[1][o]);var c={model:r,view:n,projection:a,inverseModel:h.slice(),clipBounds:i,kambient:this.ambientLight,kdiffuse:this.diffuseLight,kspecular:this.specularLight,roughness:this.roughness,fresnel:this.fresnel,eyePosition:[0,0,0],lightPosition:[0,0,0],opacity:this.opacity,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,texture:0};c.inverseModel=l(c.inverseModel,c.model),e.disable(e.CULL_FACE),this.texture.bind(0);var u=new Array(16);s(u,c.view,c.model),s(u,c.projection,u),l(u,u);for(o=0;o<3;++o)c.eyePosition[o]=u[12+o]/u[15];var f=u[15];for(o=0;o<3;++o)f+=this.lightPosition[o]*u[4*o+3];for(o=0;o<3;++o){for(var p=u[12+o],d=0;d<3;++d)p+=u[4*d+o]*this.lightPosition[d];c.lightPosition[o]=p/f}if(this.triangleCount>0){var g=this.triShader;g.bind(),g.uniforms=c,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()}},p.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||h,n=t.view||h,a=t.projection||h,i=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)i[0][o]=Math.max(i[0][o],this.clipBounds[0][o]),i[1][o]=Math.min(i[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(a),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s={model:r,view:n,projection:a,clipBounds:i,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255},l=this.pickShader;l.bind(),l.uniforms=s,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind())},p.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3),a={position:n,dataCoordinate:n,index:Math.floor(r[1]/48)};return\"cone\"===this.traceType?a.index=Math.floor(r[1]/48):\"streamtube\"===this.traceType&&(a.intensity=this.intensity[r[1]],a.velocity=this.vectors[r[1]].slice(0,3),a.divergence=this.vectors[r[1]][3],a.index=e),a},p.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.pickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleVectors.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleIds.dispose()},e.exports=function(t,e,r){var s=r.shaders;1===arguments.length&&(t=(e=t).gl);var l=function(t,e){var r=n(t,e.meshShader.vertex,e.meshShader.fragment,null,e.meshShader.attributes);return r.attributes.position.location=0,r.attributes.color.location=2,r.attributes.uv.location=3,r.attributes.vector.location=4,r}(t,s),u=function(t,e){var r=n(t,e.pickShader.vertex,e.pickShader.fragment,null,e.pickShader.attributes);return r.attributes.position.location=0,r.attributes.id.location=1,r.attributes.vector.location=4,r}(t,s),h=o(t,c(new Uint8Array([255,255,255,255]),[1,1,4]));h.generateMipmap(),h.minFilter=t.LINEAR_MIPMAP_LINEAR,h.magFilter=t.LINEAR;var p=a(t),d=a(t),g=a(t),v=a(t),m=a(t),y=new f(t,h,l,u,p,d,m,g,v,i(t,[{buffer:p,type:t.FLOAT,size:4},{buffer:m,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:g,type:t.FLOAT,size:4},{buffer:v,type:t.FLOAT,size:2},{buffer:d,type:t.FLOAT,size:4}]),r.traceType||\"cone\");return y.update(e),y}},{colormap:127,\"gl-buffer\":243,\"gl-mat4/invert\":267,\"gl-mat4/multiply\":269,\"gl-shader\":303,\"gl-texture2d\":323,\"gl-vao\":328,ndarray:451}],246:[function(t,e,r){var n=t(\"glslify\"),a=n([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the cone vertex and normal at the given index.\\n//\\n// The returned vertex is for a cone with its top at origin and height of 1.0,\\n// pointing in the direction of the vector attribute.\\n//\\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\\n// These vertices are used to make up the triangles of the cone by the following:\\n// segment + 0 top vertex\\n// segment + 1 perimeter vertex a+1\\n// segment + 2 perimeter vertex a\\n// segment + 3 center base vertex\\n// segment + 4 perimeter vertex a\\n// segment + 5 perimeter vertex a+1\\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\\n// To go from index to segment, floor(index / 6)\\n// To go from segment to angle, 2*pi * (segment/segmentCount)\\n// To go from index to segment index, index - (segment*6)\\n//\\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\\n\\n const float segmentCount = 8.0;\\n\\n float index = rawIndex - floor(rawIndex /\\n (segmentCount * 6.0)) *\\n (segmentCount * 6.0);\\n\\n float segment = floor(0.001 + index/6.0);\\n float segmentIndex = index - (segment*6.0);\\n\\n normal = -normalize(d);\\n\\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\\n return mix(vec3(0.0), -d, coneOffset);\\n }\\n\\n float nextAngle = (\\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\\n (segmentIndex > 4.99 && segmentIndex < 5.01)\\n ) ? 1.0 : 0.0;\\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\\n\\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\\n vec3 v2 = v1 - d;\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d)*0.25;\\n vec3 y = v * sin(angle) * length(d)*0.25;\\n vec3 v3 = v2 + x + y;\\n if (segmentIndex < 3.0) {\\n vec3 tx = u * sin(angle);\\n vec3 ty = v * -cos(angle);\\n vec3 tangent = tx + ty;\\n normal = normalize(cross(v3 - v1, tangent));\\n }\\n\\n if (segmentIndex == 0.0) {\\n return mix(d, vec3(0.0), coneOffset);\\n }\\n return v3;\\n}\\n\\nattribute vec3 vector;\\nattribute vec4 color, position;\\nattribute vec2 uv;\\n\\nuniform float vectorScale, coneScale, coneOffset;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 eyePosition, lightPosition;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n // Scale the vector magnitude to stay constant with\\n // model & view changes.\\n vec3 normal;\\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * conePosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n // vec4 m_position = model * vec4(conePosition, 1.0);\\n vec4 t_position = view * conePosition;\\n gl_Position = projection * t_position;\\n\\n f_color = color;\\n f_data = conePosition.xyz;\\n f_position = position.xyz;\\n f_uv = uv;\\n}\\n\"]),i=n([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * opacity;\\n}\\n\"]),o=n([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the cone vertex and normal at the given index.\\n//\\n// The returned vertex is for a cone with its top at origin and height of 1.0,\\n// pointing in the direction of the vector attribute.\\n//\\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\\n// These vertices are used to make up the triangles of the cone by the following:\\n// segment + 0 top vertex\\n// segment + 1 perimeter vertex a+1\\n// segment + 2 perimeter vertex a\\n// segment + 3 center base vertex\\n// segment + 4 perimeter vertex a\\n// segment + 5 perimeter vertex a+1\\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\\n// To go from index to segment, floor(index / 6)\\n// To go from segment to angle, 2*pi * (segment/segmentCount)\\n// To go from index to segment index, index - (segment*6)\\n//\\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\\n\\n const float segmentCount = 8.0;\\n\\n float index = rawIndex - floor(rawIndex /\\n (segmentCount * 6.0)) *\\n (segmentCount * 6.0);\\n\\n float segment = floor(0.001 + index/6.0);\\n float segmentIndex = index - (segment*6.0);\\n\\n normal = -normalize(d);\\n\\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\\n return mix(vec3(0.0), -d, coneOffset);\\n }\\n\\n float nextAngle = (\\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\\n (segmentIndex > 4.99 && segmentIndex < 5.01)\\n ) ? 1.0 : 0.0;\\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\\n\\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\\n vec3 v2 = v1 - d;\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d)*0.25;\\n vec3 y = v * sin(angle) * length(d)*0.25;\\n vec3 v3 = v2 + x + y;\\n if (segmentIndex < 3.0) {\\n vec3 tx = u * sin(angle);\\n vec3 ty = v * -cos(angle);\\n vec3 tangent = tx + ty;\\n normal = normalize(cross(v3 - v1, tangent));\\n }\\n\\n if (segmentIndex == 0.0) {\\n return mix(d, vec3(0.0), coneOffset);\\n }\\n return v3;\\n}\\n\\nattribute vec4 vector;\\nattribute vec4 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform float vectorScale, coneScale, coneOffset;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n vec3 normal;\\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal);\\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n gl_Position = projection * view * conePosition;\\n f_id = id;\\n f_position = position.xyz;\\n}\\n\"]),s=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"]);r.meshShader={vertex:a,fragment:i,attributes:[{name:\"position\",type:\"vec4\"},{name:\"color\",type:\"vec4\"},{name:\"uv\",type:\"vec2\"},{name:\"vector\",type:\"vec3\"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:\"position\",type:\"vec4\"},{name:\"id\",type:\"vec4\"},{name:\"vector\",type:\"vec3\"}]}},{glslify:410}],247:[function(t,e,r){e.exports={0:\"NONE\",1:\"ONE\",2:\"LINE_LOOP\",3:\"LINE_STRIP\",4:\"TRIANGLES\",5:\"TRIANGLE_STRIP\",6:\"TRIANGLE_FAN\",256:\"DEPTH_BUFFER_BIT\",512:\"NEVER\",513:\"LESS\",514:\"EQUAL\",515:\"LEQUAL\",516:\"GREATER\",517:\"NOTEQUAL\",518:\"GEQUAL\",519:\"ALWAYS\",768:\"SRC_COLOR\",769:\"ONE_MINUS_SRC_COLOR\",770:\"SRC_ALPHA\",771:\"ONE_MINUS_SRC_ALPHA\",772:\"DST_ALPHA\",773:\"ONE_MINUS_DST_ALPHA\",774:\"DST_COLOR\",775:\"ONE_MINUS_DST_COLOR\",776:\"SRC_ALPHA_SATURATE\",1024:\"STENCIL_BUFFER_BIT\",1028:\"FRONT\",1029:\"BACK\",1032:\"FRONT_AND_BACK\",1280:\"INVALID_ENUM\",1281:\"INVALID_VALUE\",1282:\"INVALID_OPERATION\",1285:\"OUT_OF_MEMORY\",1286:\"INVALID_FRAMEBUFFER_OPERATION\",2304:\"CW\",2305:\"CCW\",2849:\"LINE_WIDTH\",2884:\"CULL_FACE\",2885:\"CULL_FACE_MODE\",2886:\"FRONT_FACE\",2928:\"DEPTH_RANGE\",2929:\"DEPTH_TEST\",2930:\"DEPTH_WRITEMASK\",2931:\"DEPTH_CLEAR_VALUE\",2932:\"DEPTH_FUNC\",2960:\"STENCIL_TEST\",2961:\"STENCIL_CLEAR_VALUE\",2962:\"STENCIL_FUNC\",2963:\"STENCIL_VALUE_MASK\",2964:\"STENCIL_FAIL\",2965:\"STENCIL_PASS_DEPTH_FAIL\",2966:\"STENCIL_PASS_DEPTH_PASS\",2967:\"STENCIL_REF\",2968:\"STENCIL_WRITEMASK\",2978:\"VIEWPORT\",3024:\"DITHER\",3042:\"BLEND\",3088:\"SCISSOR_BOX\",3089:\"SCISSOR_TEST\",3106:\"COLOR_CLEAR_VALUE\",3107:\"COLOR_WRITEMASK\",3317:\"UNPACK_ALIGNMENT\",3333:\"PACK_ALIGNMENT\",3379:\"MAX_TEXTURE_SIZE\",3386:\"MAX_VIEWPORT_DIMS\",3408:\"SUBPIXEL_BITS\",3410:\"RED_BITS\",3411:\"GREEN_BITS\",3412:\"BLUE_BITS\",3413:\"ALPHA_BITS\",3414:\"DEPTH_BITS\",3415:\"STENCIL_BITS\",3553:\"TEXTURE_2D\",4352:\"DONT_CARE\",4353:\"FASTEST\",4354:\"NICEST\",5120:\"BYTE\",5121:\"UNSIGNED_BYTE\",5122:\"SHORT\",5123:\"UNSIGNED_SHORT\",5124:\"INT\",5125:\"UNSIGNED_INT\",5126:\"FLOAT\",5386:\"INVERT\",5890:\"TEXTURE\",6401:\"STENCIL_INDEX\",6402:\"DEPTH_COMPONENT\",6406:\"ALPHA\",6407:\"RGB\",6408:\"RGBA\",6409:\"LUMINANCE\",6410:\"LUMINANCE_ALPHA\",7680:\"KEEP\",7681:\"REPLACE\",7682:\"INCR\",7683:\"DECR\",7936:\"VENDOR\",7937:\"RENDERER\",7938:\"VERSION\",9728:\"NEAREST\",9729:\"LINEAR\",9984:\"NEAREST_MIPMAP_NEAREST\",9985:\"LINEAR_MIPMAP_NEAREST\",9986:\"NEAREST_MIPMAP_LINEAR\",9987:\"LINEAR_MIPMAP_LINEAR\",10240:\"TEXTURE_MAG_FILTER\",10241:\"TEXTURE_MIN_FILTER\",10242:\"TEXTURE_WRAP_S\",10243:\"TEXTURE_WRAP_T\",10497:\"REPEAT\",10752:\"POLYGON_OFFSET_UNITS\",16384:\"COLOR_BUFFER_BIT\",32769:\"CONSTANT_COLOR\",32770:\"ONE_MINUS_CONSTANT_COLOR\",32771:\"CONSTANT_ALPHA\",32772:\"ONE_MINUS_CONSTANT_ALPHA\",32773:\"BLEND_COLOR\",32774:\"FUNC_ADD\",32777:\"BLEND_EQUATION_RGB\",32778:\"FUNC_SUBTRACT\",32779:\"FUNC_REVERSE_SUBTRACT\",32819:\"UNSIGNED_SHORT_4_4_4_4\",32820:\"UNSIGNED_SHORT_5_5_5_1\",32823:\"POLYGON_OFFSET_FILL\",32824:\"POLYGON_OFFSET_FACTOR\",32854:\"RGBA4\",32855:\"RGB5_A1\",32873:\"TEXTURE_BINDING_2D\",32926:\"SAMPLE_ALPHA_TO_COVERAGE\",32928:\"SAMPLE_COVERAGE\",32936:\"SAMPLE_BUFFERS\",32937:\"SAMPLES\",32938:\"SAMPLE_COVERAGE_VALUE\",32939:\"SAMPLE_COVERAGE_INVERT\",32968:\"BLEND_DST_RGB\",32969:\"BLEND_SRC_RGB\",32970:\"BLEND_DST_ALPHA\",32971:\"BLEND_SRC_ALPHA\",33071:\"CLAMP_TO_EDGE\",33170:\"GENERATE_MIPMAP_HINT\",33189:\"DEPTH_COMPONENT16\",33306:\"DEPTH_STENCIL_ATTACHMENT\",33635:\"UNSIGNED_SHORT_5_6_5\",33648:\"MIRRORED_REPEAT\",33901:\"ALIASED_POINT_SIZE_RANGE\",33902:\"ALIASED_LINE_WIDTH_RANGE\",33984:\"TEXTURE0\",33985:\"TEXTURE1\",33986:\"TEXTURE2\",33987:\"TEXTURE3\",33988:\"TEXTURE4\",33989:\"TEXTURE5\",33990:\"TEXTURE6\",33991:\"TEXTURE7\",33992:\"TEXTURE8\",33993:\"TEXTURE9\",33994:\"TEXTURE10\",33995:\"TEXTURE11\",33996:\"TEXTURE12\",33997:\"TEXTURE13\",33998:\"TEXTURE14\",33999:\"TEXTURE15\",34000:\"TEXTURE16\",34001:\"TEXTURE17\",34002:\"TEXTURE18\",34003:\"TEXTURE19\",34004:\"TEXTURE20\",34005:\"TEXTURE21\",34006:\"TEXTURE22\",34007:\"TEXTURE23\",34008:\"TEXTURE24\",34009:\"TEXTURE25\",34010:\"TEXTURE26\",34011:\"TEXTURE27\",34012:\"TEXTURE28\",34013:\"TEXTURE29\",34014:\"TEXTURE30\",34015:\"TEXTURE31\",34016:\"ACTIVE_TEXTURE\",34024:\"MAX_RENDERBUFFER_SIZE\",34041:\"DEPTH_STENCIL\",34055:\"INCR_WRAP\",34056:\"DECR_WRAP\",34067:\"TEXTURE_CUBE_MAP\",34068:\"TEXTURE_BINDING_CUBE_MAP\",34069:\"TEXTURE_CUBE_MAP_POSITIVE_X\",34070:\"TEXTURE_CUBE_MAP_NEGATIVE_X\",34071:\"TEXTURE_CUBE_MAP_POSITIVE_Y\",34072:\"TEXTURE_CUBE_MAP_NEGATIVE_Y\",34073:\"TEXTURE_CUBE_MAP_POSITIVE_Z\",34074:\"TEXTURE_CUBE_MAP_NEGATIVE_Z\",34076:\"MAX_CUBE_MAP_TEXTURE_SIZE\",34338:\"VERTEX_ATTRIB_ARRAY_ENABLED\",34339:\"VERTEX_ATTRIB_ARRAY_SIZE\",34340:\"VERTEX_ATTRIB_ARRAY_STRIDE\",34341:\"VERTEX_ATTRIB_ARRAY_TYPE\",34342:\"CURRENT_VERTEX_ATTRIB\",34373:\"VERTEX_ATTRIB_ARRAY_POINTER\",34466:\"NUM_COMPRESSED_TEXTURE_FORMATS\",34467:\"COMPRESSED_TEXTURE_FORMATS\",34660:\"BUFFER_SIZE\",34661:\"BUFFER_USAGE\",34816:\"STENCIL_BACK_FUNC\",34817:\"STENCIL_BACK_FAIL\",34818:\"STENCIL_BACK_PASS_DEPTH_FAIL\",34819:\"STENCIL_BACK_PASS_DEPTH_PASS\",34877:\"BLEND_EQUATION_ALPHA\",34921:\"MAX_VERTEX_ATTRIBS\",34922:\"VERTEX_ATTRIB_ARRAY_NORMALIZED\",34930:\"MAX_TEXTURE_IMAGE_UNITS\",34962:\"ARRAY_BUFFER\",34963:\"ELEMENT_ARRAY_BUFFER\",34964:\"ARRAY_BUFFER_BINDING\",34965:\"ELEMENT_ARRAY_BUFFER_BINDING\",34975:\"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING\",35040:\"STREAM_DRAW\",35044:\"STATIC_DRAW\",35048:\"DYNAMIC_DRAW\",35632:\"FRAGMENT_SHADER\",35633:\"VERTEX_SHADER\",35660:\"MAX_VERTEX_TEXTURE_IMAGE_UNITS\",35661:\"MAX_COMBINED_TEXTURE_IMAGE_UNITS\",35663:\"SHADER_TYPE\",35664:\"FLOAT_VEC2\",35665:\"FLOAT_VEC3\",35666:\"FLOAT_VEC4\",35667:\"INT_VEC2\",35668:\"INT_VEC3\",35669:\"INT_VEC4\",35670:\"BOOL\",35671:\"BOOL_VEC2\",35672:\"BOOL_VEC3\",35673:\"BOOL_VEC4\",35674:\"FLOAT_MAT2\",35675:\"FLOAT_MAT3\",35676:\"FLOAT_MAT4\",35678:\"SAMPLER_2D\",35680:\"SAMPLER_CUBE\",35712:\"DELETE_STATUS\",35713:\"COMPILE_STATUS\",35714:\"LINK_STATUS\",35715:\"VALIDATE_STATUS\",35716:\"INFO_LOG_LENGTH\",35717:\"ATTACHED_SHADERS\",35718:\"ACTIVE_UNIFORMS\",35719:\"ACTIVE_UNIFORM_MAX_LENGTH\",35720:\"SHADER_SOURCE_LENGTH\",35721:\"ACTIVE_ATTRIBUTES\",35722:\"ACTIVE_ATTRIBUTE_MAX_LENGTH\",35724:\"SHADING_LANGUAGE_VERSION\",35725:\"CURRENT_PROGRAM\",36003:\"STENCIL_BACK_REF\",36004:\"STENCIL_BACK_VALUE_MASK\",36005:\"STENCIL_BACK_WRITEMASK\",36006:\"FRAMEBUFFER_BINDING\",36007:\"RENDERBUFFER_BINDING\",36048:\"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE\",36049:\"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME\",36050:\"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL\",36051:\"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE\",36053:\"FRAMEBUFFER_COMPLETE\",36054:\"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\",36055:\"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\",36057:\"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\",36061:\"FRAMEBUFFER_UNSUPPORTED\",36064:\"COLOR_ATTACHMENT0\",36096:\"DEPTH_ATTACHMENT\",36128:\"STENCIL_ATTACHMENT\",36160:\"FRAMEBUFFER\",36161:\"RENDERBUFFER\",36162:\"RENDERBUFFER_WIDTH\",36163:\"RENDERBUFFER_HEIGHT\",36164:\"RENDERBUFFER_INTERNAL_FORMAT\",36168:\"STENCIL_INDEX8\",36176:\"RENDERBUFFER_RED_SIZE\",36177:\"RENDERBUFFER_GREEN_SIZE\",36178:\"RENDERBUFFER_BLUE_SIZE\",36179:\"RENDERBUFFER_ALPHA_SIZE\",36180:\"RENDERBUFFER_DEPTH_SIZE\",36181:\"RENDERBUFFER_STENCIL_SIZE\",36194:\"RGB565\",36336:\"LOW_FLOAT\",36337:\"MEDIUM_FLOAT\",36338:\"HIGH_FLOAT\",36339:\"LOW_INT\",36340:\"MEDIUM_INT\",36341:\"HIGH_INT\",36346:\"SHADER_COMPILER\",36347:\"MAX_VERTEX_UNIFORM_VECTORS\",36348:\"MAX_VARYING_VECTORS\",36349:\"MAX_FRAGMENT_UNIFORM_VECTORS\",37440:\"UNPACK_FLIP_Y_WEBGL\",37441:\"UNPACK_PREMULTIPLY_ALPHA_WEBGL\",37442:\"CONTEXT_LOST_WEBGL\",37443:\"UNPACK_COLORSPACE_CONVERSION_WEBGL\",37444:\"BROWSER_DEFAULT_WEBGL\"}},{}],248:[function(t,e,r){var n=t(\"./1.0/numbers\");e.exports=function(t){return n[t]}},{\"./1.0/numbers\":247}],249:[function(t,e,r){\"use strict\";e.exports=function(t){var e=t.gl,r=n(e),o=a(e,[{buffer:r,type:e.FLOAT,size:3,offset:0,stride:40},{buffer:r,type:e.FLOAT,size:4,offset:12,stride:40},{buffer:r,type:e.FLOAT,size:3,offset:28,stride:40}]),l=i(e);l.attributes.position.location=0,l.attributes.color.location=1,l.attributes.offset.location=2;var c=new s(e,r,o,l);return c.update(t),c};var n=t(\"gl-buffer\"),a=t(\"gl-vao\"),i=t(\"./shaders/index\"),o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.shader=n,this.buffer=e,this.vao=r,this.pixelRatio=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lineWidth=[1,1,1],this.capSize=[10,10,10],this.lineCount=[0,0,0],this.lineOffset=[0,0,0],this.opacity=1,this.hasAlpha=!1}var l=s.prototype;function c(t,e){for(var r=0;r<3;++r)t[0][r]=Math.min(t[0][r],e[r]),t[1][r]=Math.max(t[1][r],e[r])}l.isOpaque=function(){return!this.hasAlpha},l.isTransparent=function(){return this.hasAlpha},l.drawTransparent=l.draw=function(t){var e=this.gl,r=this.shader.uniforms;this.shader.bind();var n=r.view=t.view||o,a=r.projection=t.projection||o;r.model=t.model||o,r.clipBounds=this.clipBounds,r.opacity=this.opacity;var i=n[12],s=n[13],l=n[14],c=n[15],u=(t._ortho||!1?2:1)*this.pixelRatio*(a[3]*i+a[7]*s+a[11]*l+a[15]*c)/e.drawingBufferHeight;this.vao.bind();for(var h=0;h<3;++h)e.lineWidth(this.lineWidth[h]*this.pixelRatio),r.capSize=this.capSize[h]*u,this.lineCount[h]&&e.drawArrays(e.LINES,this.lineOffset[h],this.lineCount[h]);this.vao.unbind()};var u=function(){for(var t=new Array(3),e=0;e<3;++e){for(var r=[],n=1;n<=2;++n)for(var a=-1;a<=1;a+=2){var i=[0,0,0];i[(n+e)%3]=a,r.push(i)}t[e]=r}return t}();function h(t,e,r,n){for(var a=u[n],i=0;i<a.length;++i){var o=a[i];t.push(e[0],e[1],e[2],r[0],r[1],r[2],r[3],o[0],o[1],o[2])}return a.length}l.update=function(t){\"lineWidth\"in(t=t||{})&&(this.lineWidth=t.lineWidth,Array.isArray(this.lineWidth)||(this.lineWidth=[this.lineWidth,this.lineWidth,this.lineWidth])),\"capSize\"in t&&(this.capSize=t.capSize,Array.isArray(this.capSize)||(this.capSize=[this.capSize,this.capSize,this.capSize])),this.hasAlpha=!1,\"opacity\"in t&&(this.opacity=+t.opacity,this.opacity<1&&(this.hasAlpha=!0));var e=t.color||[[0,0,0],[0,0,0],[0,0,0]],r=t.position,n=t.error;if(Array.isArray(e[0])||(e=[e,e,e]),r&&n){var a=[],i=r.length,o=0;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.lineCount=[0,0,0];for(var s=0;s<3;++s){this.lineOffset[s]=o;t:for(var l=0;l<i;++l){for(var u=r[l],f=0;f<3;++f)if(isNaN(u[f])||!isFinite(u[f]))continue t;var p=n[l],d=e[s];if(Array.isArray(d[0])&&(d=e[l]),3===d.length?d=[d[0],d[1],d[2],1]:4===d.length&&(d=[d[0],d[1],d[2],d[3]],!this.hasAlpha&&d[3]<1&&(this.hasAlpha=!0)),!isNaN(p[0][s])&&!isNaN(p[1][s])){var g;if(p[0][s]<0)(g=u.slice())[s]+=p[0][s],a.push(u[0],u[1],u[2],d[0],d[1],d[2],d[3],0,0,0,g[0],g[1],g[2],d[0],d[1],d[2],d[3],0,0,0),c(this.bounds,g),o+=2+h(a,g,d,s);if(p[1][s]>0)(g=u.slice())[s]+=p[1][s],a.push(u[0],u[1],u[2],d[0],d[1],d[2],d[3],0,0,0,g[0],g[1],g[2],d[0],d[1],d[2],d[3],0,0,0),c(this.bounds,g),o+=2+h(a,g,d,s)}}this.lineCount[s]=o-this.lineOffset[s]}this.buffer.update(a)}},l.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()}},{\"./shaders/index\":250,\"gl-buffer\":243,\"gl-vao\":328}],250:[function(t,e,r){\"use strict\";var n=t(\"glslify\"),a=t(\"gl-shader\"),i=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, offset;\\nattribute vec4 color;\\nuniform mat4 model, view, projection;\\nuniform float capSize;\\nvarying vec4 fragColor;\\nvarying vec3 fragPosition;\\n\\nvoid main() {\\n vec4 worldPosition = model * vec4(position, 1.0);\\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\\n gl_Position = projection * view * worldPosition;\\n fragColor = color;\\n fragPosition = position;\\n}\"]),o=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float opacity;\\nvarying vec3 fragPosition;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (\\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\\n fragColor.a * opacity == 0.\\n ) discard;\\n\\n gl_FragColor = opacity * fragColor;\\n}\"]);e.exports=function(t){return a(t,i,o,null,[{name:\"position\",type:\"vec3\"},{name:\"color\",type:\"vec4\"},{name:\"offset\",type:\"vec3\"}])}},{\"gl-shader\":303,glslify:410}],251:[function(t,e,r){\"use strict\";var n=t(\"gl-texture2d\");e.exports=function(t,e,r,n){a||(a=t.FRAMEBUFFER_UNSUPPORTED,i=t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,o=t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,s=t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var c=t.getExtension(\"WEBGL_draw_buffers\");!l&&c&&function(t,e){var r=t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL);l=new Array(r+1);for(var n=0;n<=r;++n){for(var a=new Array(r),i=0;i<n;++i)a[i]=t.COLOR_ATTACHMENT0+i;for(var i=n;i<r;++i)a[i]=t.NONE;l[n]=a}}(t,c);Array.isArray(e)&&(n=r,r=0|e[1],e=0|e[0]);if(\"number\"!=typeof e)throw new Error(\"gl-fbo: Missing shape parameter\");var u=t.getParameter(t.MAX_RENDERBUFFER_SIZE);if(e<0||e>u||r<0||r>u)throw new Error(\"gl-fbo: Parameters are too large for FBO\");var h=1;if(\"color\"in(n=n||{})){if((h=Math.max(0|n.color,0))<0)throw new Error(\"gl-fbo: Must specify a nonnegative number of colors\");if(h>1){if(!c)throw new Error(\"gl-fbo: Multiple draw buffer extension not supported\");if(h>t.getParameter(c.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error(\"gl-fbo: Context does not support \"+h+\" draw buffers\")}}var f=t.UNSIGNED_BYTE,p=t.getExtension(\"OES_texture_float\");if(n.float&&h>0){if(!p)throw new Error(\"gl-fbo: Context does not support floating point textures\");f=t.FLOAT}else n.preferFloat&&h>0&&p&&(f=t.FLOAT);var g=!0;\"depth\"in n&&(g=!!n.depth);var v=!1;\"stencil\"in n&&(v=!!n.stencil);return new d(t,e,r,f,h,g,v,c)};var a,i,o,s,l=null;function c(t){return[t.getParameter(t.FRAMEBUFFER_BINDING),t.getParameter(t.RENDERBUFFER_BINDING),t.getParameter(t.TEXTURE_BINDING_2D)]}function u(t,e){t.bindFramebuffer(t.FRAMEBUFFER,e[0]),t.bindRenderbuffer(t.RENDERBUFFER,e[1]),t.bindTexture(t.TEXTURE_2D,e[2])}function h(t){switch(t){case a:throw new Error(\"gl-fbo: Framebuffer unsupported\");case i:throw new Error(\"gl-fbo: Framebuffer incomplete attachment\");case o:throw new Error(\"gl-fbo: Framebuffer incomplete dimensions\");case s:throw new Error(\"gl-fbo: Framebuffer incomplete missing attachment\");default:throw new Error(\"gl-fbo: Framebuffer failed for unspecified reason\")}}function f(t,e,r,a,i,o){if(!a)return null;var s=n(t,e,r,i,a);return s.magFilter=t.NEAREST,s.minFilter=t.NEAREST,s.mipSamples=1,s.bind(),t.framebufferTexture2D(t.FRAMEBUFFER,o,t.TEXTURE_2D,s.handle,0),s}function p(t,e,r,n,a){var i=t.createRenderbuffer();return t.bindRenderbuffer(t.RENDERBUFFER,i),t.renderbufferStorage(t.RENDERBUFFER,n,e,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,a,t.RENDERBUFFER,i),i}function d(t,e,r,n,a,i,o,s){this.gl=t,this._shape=[0|e,0|r],this._destroyed=!1,this._ext=s,this.color=new Array(a);for(var d=0;d<a;++d)this.color[d]=null;this._color_rb=null,this.depth=null,this._depth_rb=null,this._colorType=n,this._useDepth=i,this._useStencil=o;var g=this,v=[0|e,0|r];Object.defineProperties(v,{0:{get:function(){return g._shape[0]},set:function(t){return g.width=t}},1:{get:function(){return g._shape[1]},set:function(t){return g.height=t}}}),this._shapeVector=v,function(t){var e=c(t.gl),r=t.gl,n=t.handle=r.createFramebuffer(),a=t._shape[0],i=t._shape[1],o=t.color.length,s=t._ext,d=t._useStencil,g=t._useDepth,v=t._colorType;r.bindFramebuffer(r.FRAMEBUFFER,n);for(var m=0;m<o;++m)t.color[m]=f(r,a,i,v,r.RGBA,r.COLOR_ATTACHMENT0+m);0===o?(t._color_rb=p(r,a,i,r.RGBA4,r.COLOR_ATTACHMENT0),s&&s.drawBuffersWEBGL(l[0])):o>1&&s.drawBuffersWEBGL(l[o]);var y=r.getExtension(\"WEBGL_depth_texture\");y?d?t.depth=f(r,a,i,y.UNSIGNED_INT_24_8_WEBGL,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):g&&(t.depth=f(r,a,i,r.UNSIGNED_SHORT,r.DEPTH_COMPONENT,r.DEPTH_ATTACHMENT)):g&&d?t._depth_rb=p(r,a,i,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):g?t._depth_rb=p(r,a,i,r.DEPTH_COMPONENT16,r.DEPTH_ATTACHMENT):d&&(t._depth_rb=p(r,a,i,r.STENCIL_INDEX,r.STENCIL_ATTACHMENT));var x=r.checkFramebufferStatus(r.FRAMEBUFFER);if(x!==r.FRAMEBUFFER_COMPLETE){for(t._destroyed=!0,r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteFramebuffer(t.handle),t.handle=null,t.depth&&(t.depth.dispose(),t.depth=null),t._depth_rb&&(r.deleteRenderbuffer(t._depth_rb),t._depth_rb=null),m=0;m<t.color.length;++m)t.color[m].dispose(),t.color[m]=null;t._color_rb&&(r.deleteRenderbuffer(t._color_rb),t._color_rb=null),u(r,e),h(x)}u(r,e)}(this)}var g=d.prototype;function v(t,e,r){if(t._destroyed)throw new Error(\"gl-fbo: Can't resize destroyed FBO\");if(t._shape[0]!==e||t._shape[1]!==r){var n=t.gl,a=n.getParameter(n.MAX_RENDERBUFFER_SIZE);if(e<0||e>a||r<0||r>a)throw new Error(\"gl-fbo: Can't resize FBO, invalid dimensions\");t._shape[0]=e,t._shape[1]=r;for(var i=c(n),o=0;o<t.color.length;++o)t.color[o].shape=t._shape;t._color_rb&&(n.bindRenderbuffer(n.RENDERBUFFER,t._color_rb),n.renderbufferStorage(n.RENDERBUFFER,n.RGBA4,t._shape[0],t._shape[1])),t.depth&&(t.depth.shape=t._shape),t._depth_rb&&(n.bindRenderbuffer(n.RENDERBUFFER,t._depth_rb),t._useDepth&&t._useStencil?n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,t._shape[0],t._shape[1]):t._useDepth?n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t._shape[0],t._shape[1]):t._useStencil&&n.renderbufferStorage(n.RENDERBUFFER,n.STENCIL_INDEX,t._shape[0],t._shape[1])),n.bindFramebuffer(n.FRAMEBUFFER,t.handle);var s=n.checkFramebufferStatus(n.FRAMEBUFFER);s!==n.FRAMEBUFFER_COMPLETE&&(t.dispose(),u(n,i),h(s)),u(n,i)}}Object.defineProperties(g,{shape:{get:function(){return this._destroyed?[0,0]:this._shapeVector},set:function(t){if(Array.isArray(t)||(t=[0|t,0|t]),2!==t.length)throw new Error(\"gl-fbo: Shape vector must be length 2\");var e=0|t[0],r=0|t[1];return v(this,e,r),[e,r]},enumerable:!1},width:{get:function(){return this._destroyed?0:this._shape[0]},set:function(t){return v(this,t|=0,this._shape[1]),t},enumerable:!1},height:{get:function(){return this._destroyed?0:this._shape[1]},set:function(t){return t|=0,v(this,this._shape[0],t),t},enumerable:!1}}),g.bind=function(){if(!this._destroyed){var t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this.handle),t.viewport(0,0,this._shape[0],this._shape[1])}},g.dispose=function(){if(!this._destroyed){this._destroyed=!0;var t=this.gl;t.deleteFramebuffer(this.handle),this.handle=null,this.depth&&(this.depth.dispose(),this.depth=null),this._depth_rb&&(t.deleteRenderbuffer(this._depth_rb),this._depth_rb=null);for(var e=0;e<this.color.length;++e)this.color[e].dispose(),this.color[e]=null;this._color_rb&&(t.deleteRenderbuffer(this._color_rb),this._color_rb=null)}}},{\"gl-texture2d\":323}],252:[function(t,e,r){var n=t(\"sprintf-js\").sprintf,a=t(\"gl-constants/lookup\"),i=t(\"glsl-shader-name\"),o=t(\"add-line-numbers\");e.exports=function(t,e,r){\"use strict\";var s=i(e)||\"of unknown name (see npm glsl-shader-name)\",l=\"unknown type\";void 0!==r&&(l=r===a.FRAGMENT_SHADER?\"fragment\":\"vertex\");for(var c=n(\"Error compiling %s shader %s:\\n\",l,s),u=n(\"%s%s\",c,t),h=t.split(\"\\n\"),f={},p=0;p<h.length;p++){var d=h[p];if(\"\"!==d&&\"\\0\"!==d){var g=parseInt(d.split(\":\")[2]);if(isNaN(g))throw new Error(n(\"Could not parse error: %s\",d));f[g]=d}}for(var v=o(e).split(\"\\n\"),p=0;p<v.length;p++)if(f[p+3]||f[p+2]||f[p+1]){var m=v[p];if(c+=m+\"\\n\",f[p+1]){var y=f[p+1];y=y.substr(y.split(\":\",3).join(\":\").length+1).trim(),c+=n(\"^^^ %s\\n\\n\",y)}}return{long:c.trim(),short:u.trim()}}},{\"add-line-numbers\":63,\"gl-constants/lookup\":248,\"glsl-shader-name\":402,\"sprintf-js\":526}],253:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r=t.gl,n=o(r,l.vertex,l.fragment),a=o(r,l.pickVertex,l.pickFragment),i=s(r),u=s(r),h=s(r),f=s(r),p=new c(t,n,a,i,u,h,f);return p.update(e),t.addObject(p),p};var n=t(\"binary-search-bounds\"),a=t(\"iota-array\"),i=t(\"typedarray-pool\"),o=t(\"gl-shader\"),s=t(\"gl-buffer\"),l=t(\"./lib/shaders\");function c(t,e,r,n,a,i,o){this.plot=t,this.shader=e,this.pickShader=r,this.positionBuffer=n,this.weightBuffer=a,this.colorBuffer=i,this.idBuffer=o,this.xData=[],this.yData=[],this.shape=[0,0],this.bounds=[1/0,1/0,-1/0,-1/0],this.pickOffset=0}var u,h=c.prototype,f=[0,0,1,0,0,1,1,0,1,1,0,1];h.draw=(u=[1,0,0,0,1,0,0,0,1],function(){var t=this.plot,e=this.shader,r=this.bounds,n=this.numVertices;if(!(n<=0)){var a=t.gl,i=t.dataBox,o=r[2]-r[0],s=r[3]-r[1],l=i[2]-i[0],c=i[3]-i[1];u[0]=2*o/l,u[4]=2*s/c,u[6]=2*(r[0]-i[0])/l-1,u[7]=2*(r[1]-i[1])/c-1,e.bind();var h=e.uniforms;h.viewTransform=u,h.shape=this.shape;var f=e.attributes;this.positionBuffer.bind(),f.position.pointer(),this.weightBuffer.bind(),f.weight.pointer(a.UNSIGNED_BYTE,!1),this.colorBuffer.bind(),f.color.pointer(a.UNSIGNED_BYTE,!0),a.drawArrays(a.TRIANGLES,0,n)}}),h.drawPick=function(){var t=[1,0,0,0,1,0,0,0,1],e=[0,0,0,0];return function(r){var n=this.plot,a=this.pickShader,i=this.bounds,o=this.numVertices;if(!(o<=0)){var s=n.gl,l=n.dataBox,c=i[2]-i[0],u=i[3]-i[1],h=l[2]-l[0],f=l[3]-l[1];t[0]=2*c/h,t[4]=2*u/f,t[6]=2*(i[0]-l[0])/h-1,t[7]=2*(i[1]-l[1])/f-1;for(var p=0;p<4;++p)e[p]=r>>8*p&255;this.pickOffset=r,a.bind();var d=a.uniforms;d.viewTransform=t,d.pickOffset=e,d.shape=this.shape;var g=a.attributes;return this.positionBuffer.bind(),g.position.pointer(),this.weightBuffer.bind(),g.weight.pointer(s.UNSIGNED_BYTE,!1),this.idBuffer.bind(),g.pickId.pointer(s.UNSIGNED_BYTE,!1),s.drawArrays(s.TRIANGLES,0,o),r+this.shape[0]*this.shape[1]}}}(),h.pick=function(t,e,r){var n=this.pickOffset,a=this.shape[0]*this.shape[1];if(r<n||r>=n+a)return null;var i=r-n,o=this.xData,s=this.yData;return{object:this,pointId:i,dataCoord:[o[i%this.shape[0]],s[i/this.shape[0]|0]]}},h.update=function(t){var e=(t=t||{}).shape||[0,0],r=t.x||a(e[0]),o=t.y||a(e[1]),s=t.z||new Float32Array(e[0]*e[1]);this.xData=r,this.yData=o;var l=t.colorLevels||[0],c=t.colorValues||[0,0,0,1],u=l.length,h=this.bounds,p=h[0]=r[0],d=h[1]=o[0],g=1/((h[2]=r[r.length-1])-p),v=1/((h[3]=o[o.length-1])-d),m=e[0],y=e[1];this.shape=[m,y];var x=(m-1)*(y-1)*(f.length>>>1);this.numVertices=x;for(var b=i.mallocUint8(4*x),_=i.mallocFloat32(2*x),w=i.mallocUint8(2*x),k=i.mallocUint32(x),T=0,A=0;A<y-1;++A)for(var M=v*(o[A]-d),S=v*(o[A+1]-d),E=0;E<m-1;++E)for(var C=g*(r[E]-p),L=g*(r[E+1]-p),P=0;P<f.length;P+=2){var O,z,I,D,R=f[P],F=f[P+1],B=s[(A+F)*m+(E+R)],N=n.le(l,B);if(N<0)O=c[0],z=c[1],I=c[2],D=c[3];else if(N===u-1)O=c[4*u-4],z=c[4*u-3],I=c[4*u-2],D=c[4*u-1];else{var j=(B-l[N])/(l[N+1]-l[N]),V=1-j,U=4*N,q=4*(N+1);O=V*c[U]+j*c[q],z=V*c[U+1]+j*c[q+1],I=V*c[U+2]+j*c[q+2],D=V*c[U+3]+j*c[q+3]}b[4*T]=255*O,b[4*T+1]=255*z,b[4*T+2]=255*I,b[4*T+3]=255*D,_[2*T]=.5*C+.5*L,_[2*T+1]=.5*M+.5*S,w[2*T]=R,w[2*T+1]=F,k[T]=A*m+E,T+=1}this.positionBuffer.update(_),this.weightBuffer.update(w),this.colorBuffer.update(b),this.idBuffer.update(k),i.free(_),i.free(b),i.free(w),i.free(k)},h.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.positionBuffer.dispose(),this.weightBuffer.dispose(),this.colorBuffer.dispose(),this.idBuffer.dispose(),this.plot.removeObject(this)}},{\"./lib/shaders\":254,\"binary-search-bounds\":255,\"gl-buffer\":243,\"gl-shader\":303,\"iota-array\":417,\"typedarray-pool\":543}],254:[function(t,e,r){\"use strict\";var n=t(\"glslify\");e.exports={fragment:n([\"precision lowp float;\\n#define GLSLIFY 1\\nvarying vec4 fragColor;\\nvoid main() {\\n gl_FragColor = vec4(fragColor.rgb * fragColor.a, fragColor.a);\\n}\\n\"]),vertex:n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 position;\\nattribute vec4 color;\\nattribute vec2 weight;\\n\\nuniform vec2 shape;\\nuniform mat3 viewTransform;\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\n fragColor = color;\\n gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\n}\\n\"]),pickFragment:n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragId;\\nvarying vec2 vWeight;\\n\\nuniform vec2 shape;\\nuniform vec4 pickOffset;\\n\\nvoid main() {\\n vec2 d = step(.5, vWeight);\\n vec4 id = fragId + pickOffset;\\n id.x += d.x + d.y*shape.x;\\n\\n id.y += floor(id.x / 256.0);\\n id.x -= floor(id.x / 256.0) * 256.0;\\n\\n id.z += floor(id.y / 256.0);\\n id.y -= floor(id.y / 256.0) * 256.0;\\n\\n id.w += floor(id.z / 256.0);\\n id.z -= floor(id.z / 256.0) * 256.0;\\n\\n gl_FragColor = id/255.;\\n}\\n\"]),pickVertex:n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 position;\\nattribute vec4 pickId;\\nattribute vec2 weight;\\n\\nuniform vec2 shape;\\nuniform mat3 viewTransform;\\n\\nvarying vec4 fragId;\\nvarying vec2 vWeight;\\n\\nvoid main() {\\n vWeight = weight;\\n\\n fragId = pickId;\\n\\n vec3 vPosition = viewTransform * vec3( position + (weight-.5)/(shape-1.) , 1.0);\\n gl_Position = vec4(vPosition.xy, 0, vPosition.z);\\n}\\n\"])}},{glslify:410}],255:[function(t,e,r){arguments[4][112][0].apply(r,arguments)},{dup:112}],256:[function(t,e,r){var n=t(\"glslify\"),a=t(\"gl-shader\"),i=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, nextPosition;\\nattribute float arcLength, lineWidth;\\nattribute vec4 color;\\n\\nuniform vec2 screenShape;\\nuniform float pixelRatio;\\nuniform mat4 model, view, projection;\\n\\nvarying vec4 fragColor;\\nvarying vec3 worldPosition;\\nvarying float pixelArcLength;\\n\\nvec4 project(vec3 p) {\\n return projection * view * model * vec4(p, 1.0);\\n}\\n\\nvoid main() {\\n vec4 startPoint = project(position);\\n vec4 endPoint = project(nextPosition);\\n\\n vec2 A = startPoint.xy / startPoint.w;\\n vec2 B = endPoint.xy / endPoint.w;\\n\\n float clipAngle = atan(\\n (B.y - A.y) * screenShape.y,\\n (B.x - A.x) * screenShape.x\\n );\\n\\n vec2 offset = 0.5 * pixelRatio * lineWidth * vec2(\\n sin(clipAngle),\\n -cos(clipAngle)\\n ) / screenShape;\\n\\n gl_Position = vec4(startPoint.xy + startPoint.w * offset, startPoint.zw);\\n\\n worldPosition = position;\\n pixelArcLength = arcLength;\\n fragColor = color;\\n}\\n\"]),o=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform sampler2D dashTexture;\\nuniform float dashScale;\\nuniform float opacity;\\n\\nvarying vec3 worldPosition;\\nvarying float pixelArcLength;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (\\n outOfRange(clipBounds[0], clipBounds[1], worldPosition) ||\\n fragColor.a * opacity == 0.\\n ) discard;\\n\\n float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\\n if(dashWeight < 0.5) {\\n discard;\\n }\\n gl_FragColor = fragColor * opacity;\\n}\\n\"]),s=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\n#define FLOAT_MAX 1.70141184e38\\n#define FLOAT_MIN 1.17549435e-38\\n\\nlowp vec4 encode_float_1540259130(highp float v) {\\n highp float av = abs(v);\\n\\n //Handle special cases\\n if(av < FLOAT_MIN) {\\n return vec4(0.0, 0.0, 0.0, 0.0);\\n } else if(v > FLOAT_MAX) {\\n return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\\n } else if(v < -FLOAT_MAX) {\\n return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\\n }\\n\\n highp vec4 c = vec4(0,0,0,0);\\n\\n //Compute exponent and mantissa\\n highp float e = floor(log2(av));\\n highp float m = av * pow(2.0, -e) - 1.0;\\n \\n //Unpack mantissa\\n c[1] = floor(128.0 * m);\\n m -= c[1] / 128.0;\\n c[2] = floor(32768.0 * m);\\n m -= c[2] / 32768.0;\\n c[3] = floor(8388608.0 * m);\\n \\n //Unpack exponent\\n highp float ebias = e + 127.0;\\n c[0] = floor(ebias / 2.0);\\n ebias -= c[0] * 2.0;\\n c[1] += floor(ebias) * 128.0; \\n\\n //Unpack sign bit\\n c[0] += 128.0 * step(0.0, -v);\\n\\n //Scale back to range\\n return c / 255.0;\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform float pickId;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec3 worldPosition;\\nvarying float pixelArcLength;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\\n\\n gl_FragColor = vec4(pickId/255.0, encode_float_1540259130(pixelArcLength).xyz);\\n}\"]),l=[{name:\"position\",type:\"vec3\"},{name:\"nextPosition\",type:\"vec3\"},{name:\"arcLength\",type:\"float\"},{name:\"lineWidth\",type:\"float\"},{name:\"color\",type:\"vec4\"}];r.createShader=function(t){return a(t,i,o,null,l)},r.createPickShader=function(t){return a(t,i,s,null,l)}},{\"gl-shader\":303,glslify:410}],257:[function(t,e,r){\"use strict\";e.exports=function(t){var e=t.gl||t.scene&&t.scene.gl,r=u(e);r.attributes.position.location=0,r.attributes.nextPosition.location=1,r.attributes.arcLength.location=2,r.attributes.lineWidth.location=3,r.attributes.color.location=4;var o=h(e);o.attributes.position.location=0,o.attributes.nextPosition.location=1,o.attributes.arcLength.location=2,o.attributes.lineWidth.location=3,o.attributes.color.location=4;for(var s=n(e),c=a(e,[{buffer:s,size:3,offset:0,stride:48},{buffer:s,size:3,offset:12,stride:48},{buffer:s,size:1,offset:24,stride:48},{buffer:s,size:1,offset:28,stride:48},{buffer:s,size:4,offset:32,stride:48}]),f=l(new Array(1024),[256,1,4]),p=0;p<1024;++p)f.data[p]=255;var d=i(e,f);d.wrap=e.REPEAT;var g=new v(e,r,o,s,c,d);return g.update(t),g};var n=t(\"gl-buffer\"),a=t(\"gl-vao\"),i=t(\"gl-texture2d\"),o=t(\"glsl-read-float\"),s=t(\"binary-search-bounds\"),l=t(\"ndarray\"),c=t(\"./lib/shaders\"),u=c.createShader,h=c.createPickShader,f=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function p(t,e){for(var r=0,n=0;n<3;++n){var a=t[n]-e[n];r+=a*a}return Math.sqrt(r)}function d(t){for(var e=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],r=0;r<3;++r)e[0][r]=Math.max(t[0][r],e[0][r]),e[1][r]=Math.min(t[1][r],e[1][r]);return e}function g(t,e,r,n){this.arcLength=t,this.position=e,this.index=r,this.dataCoordinate=n}function v(t,e,r,n,a,i){this.gl=t,this.shader=e,this.pickShader=r,this.buffer=n,this.vao=a,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.points=[],this.arcLength=[],this.vertexCount=0,this.bounds=[[0,0,0],[0,0,0]],this.pickId=0,this.lineWidth=1,this.texture=i,this.dashScale=1,this.opacity=1,this.hasAlpha=!1,this.dirty=!0,this.pixelRatio=1}var m=v.prototype;m.isTransparent=function(){return this.hasAlpha},m.isOpaque=function(){return!this.hasAlpha},m.pickSlots=1,m.setPickBase=function(t){this.pickId=t},m.drawTransparent=m.draw=function(t){if(this.vertexCount){var e=this.gl,r=this.shader,n=this.vao;r.bind(),r.uniforms={model:t.model||f,view:t.view||f,projection:t.projection||f,clipBounds:d(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.drawPick=function(t){if(this.vertexCount){var e=this.gl,r=this.pickShader,n=this.vao;r.bind(),r.uniforms={model:t.model||f,view:t.view||f,projection:t.projection||f,pickId:this.pickId,clipBounds:d(this.clipBounds),screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},m.update=function(t){var e,r;this.dirty=!0;var n=!!t.connectGaps;\"dashScale\"in t&&(this.dashScale=t.dashScale),this.hasAlpha=!1,\"opacity\"in t&&(this.opacity=+t.opacity,this.opacity<1&&(this.hasAlpha=!0));var a=[],i=[],o=[],c=0,u=0,h=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],f=t.position||t.positions;if(f){var d=t.color||t.colors||[0,0,0,1],g=t.lineWidth||1,v=!1;t:for(e=1;e<f.length;++e){var m,y,x,b=f[e-1],_=f[e];for(i.push(c),o.push(b.slice()),r=0;r<3;++r){if(isNaN(b[r])||isNaN(_[r])||!isFinite(b[r])||!isFinite(_[r])){if(!n&&a.length>0){for(var w=0;w<24;++w)a.push(a[a.length-12]);u+=2,v=!0}continue t}h[0][r]=Math.min(h[0][r],b[r],_[r]),h[1][r]=Math.max(h[1][r],b[r],_[r])}Array.isArray(d[0])?(m=d.length>e-1?d[e-1]:d.length>0?d[d.length-1]:[0,0,0,1],y=d.length>e?d[e]:d.length>0?d[d.length-1]:[0,0,0,1]):m=y=d,3===m.length&&(m=[m[0],m[1],m[2],1]),3===y.length&&(y=[y[0],y[1],y[2],1]),!this.hasAlpha&&m[3]<1&&(this.hasAlpha=!0),x=Array.isArray(g)?g.length>e-1?g[e-1]:g.length>0?g[g.length-1]:[0,0,0,1]:g;var k=c;if(c+=p(b,_),v){for(r=0;r<2;++r)a.push(b[0],b[1],b[2],_[0],_[1],_[2],k,x,m[0],m[1],m[2],m[3]);u+=2,v=!1}a.push(b[0],b[1],b[2],_[0],_[1],_[2],k,x,m[0],m[1],m[2],m[3],b[0],b[1],b[2],_[0],_[1],_[2],k,-x,m[0],m[1],m[2],m[3],_[0],_[1],_[2],b[0],b[1],b[2],c,-x,y[0],y[1],y[2],y[3],_[0],_[1],_[2],b[0],b[1],b[2],c,x,y[0],y[1],y[2],y[3]),u+=4}}if(this.buffer.update(a),i.push(c),o.push(f[f.length-1].slice()),this.bounds=h,this.vertexCount=u,this.points=o,this.arcLength=i,\"dashes\"in t){var T=t.dashes.slice();for(T.unshift(0),e=1;e<T.length;++e)T[e]=T[e-1]+T[e];var A=l(new Array(1024),[256,1,4]);for(e=0;e<256;++e){for(r=0;r<4;++r)A.set(e,0,r,0);1&s.le(T,T[T.length-1]*e/255)?A.set(e,0,0,0):A.set(e,0,0,255)}this.texture.setPixels(A)}},m.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()},m.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=o(t.value[0],t.value[1],t.value[2],0),r=s.le(this.arcLength,e);if(r<0)return null;if(r===this.arcLength.length-1)return new g(this.arcLength[this.arcLength.length-1],this.points[this.points.length-1].slice(),r);for(var n=this.points[r],a=this.points[Math.min(r+1,this.points.length-1)],i=(e-this.arcLength[r])/(this.arcLength[r+1]-this.arcLength[r]),l=1-i,c=[0,0,0],u=0;u<3;++u)c[u]=l*n[u]+i*a[u];var h=Math.min(i<.5?r:r+1,this.points.length-1);return new g(e,c,h,this.points[h])}},{\"./lib/shaders\":256,\"binary-search-bounds\":258,\"gl-buffer\":243,\"gl-texture2d\":323,\"gl-vao\":328,\"glsl-read-float\":401,ndarray:451}],258:[function(t,e,r){arguments[4][112][0].apply(r,arguments)},{dup:112}],259:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],a=e[2],i=e[3],o=r*i-a*n;return o?(o=1/o,t[0]=i*o,t[1]=-n*o,t[2]=-a*o,t[3]=r*o,t):null}},{}],260:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],a=e[2],i=e[3],o=e[4],s=e[5],l=e[6],c=e[7],u=e[8],h=u*o-s*c,f=-u*i+s*l,p=c*i-o*l,d=r*h+n*f+a*p;return d?(d=1/d,t[0]=h*d,t[1]=(-u*n+a*c)*d,t[2]=(s*n-a*o)*d,t[3]=f*d,t[4]=(u*r-a*l)*d,t[5]=(-s*r+a*i)*d,t[6]=p*d,t[7]=(-c*r+n*l)*d,t[8]=(o*r-n*i)*d,t):null}},{}],261:[function(t,e,r){e.exports=function(t){var e=new Float32Array(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},{}],262:[function(t,e,r){e.exports=function(){var t=new Float32Array(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{}],263:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],a=t[3],i=t[4],o=t[5],s=t[6],l=t[7],c=t[8],u=t[9],h=t[10],f=t[11],p=t[12],d=t[13],g=t[14],v=t[15];return(e*o-r*i)*(h*v-f*g)-(e*s-n*i)*(u*v-f*d)+(e*l-a*i)*(u*g-h*d)+(r*s-n*o)*(c*v-f*p)-(r*l-a*o)*(c*g-h*p)+(n*l-a*s)*(c*d-u*p)}},{}],264:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],a=e[2],i=e[3],o=r+r,s=n+n,l=a+a,c=r*o,u=n*o,h=n*s,f=a*o,p=a*s,d=a*l,g=i*o,v=i*s,m=i*l;return t[0]=1-h-d,t[1]=u+m,t[2]=f-v,t[3]=0,t[4]=u-m,t[5]=1-c-d,t[6]=p+g,t[7]=0,t[8]=f+v,t[9]=p-g,t[10]=1-c-h,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{}],265:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],a=e[1],i=e[2],o=e[3],s=n+n,l=a+a,c=i+i,u=n*s,h=n*l,f=n*c,p=a*l,d=a*c,g=i*c,v=o*s,m=o*l,y=o*c;return t[0]=1-(p+g),t[1]=h+y,t[2]=f-m,t[3]=0,t[4]=h-y,t[5]=1-(u+g),t[6]=d+v,t[7]=0,t[8]=f+m,t[9]=d-v,t[10]=1-(u+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}},{}],266:[function(t,e,r){e.exports=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},{}],267:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],a=e[2],i=e[3],o=e[4],s=e[5],l=e[6],c=e[7],u=e[8],h=e[9],f=e[10],p=e[11],d=e[12],g=e[13],v=e[14],m=e[15],y=r*s-n*o,x=r*l-a*o,b=r*c-i*o,_=n*l-a*s,w=n*c-i*s,k=a*c-i*l,T=u*g-h*d,A=u*v-f*d,M=u*m-p*d,S=h*v-f*g,E=h*m-p*g,C=f*m-p*v,L=y*C-x*E+b*S+_*M-w*A+k*T;if(!L)return null;return L=1/L,t[0]=(s*C-l*E+c*S)*L,t[1]=(a*E-n*C-i*S)*L,t[2]=(g*k-v*w+m*_)*L,t[3]=(f*w-h*k-p*_)*L,t[4]=(l*M-o*C-c*A)*L,t[5]=(r*C-a*M+i*A)*L,t[6]=(v*b-d*k-m*x)*L,t[7]=(u*k-f*b+p*x)*L,t[8]=(o*E-s*M+c*T)*L,t[9]=(n*M-r*E-i*T)*L,t[10]=(d*w-g*b+m*y)*L,t[11]=(h*b-u*w-p*y)*L,t[12]=(s*A-o*S-l*T)*L,t[13]=(r*S-n*A+a*T)*L,t[14]=(g*x-d*_-v*y)*L,t[15]=(u*_-h*x+f*y)*L,t}},{}],268:[function(t,e,r){var n=t(\"./identity\");e.exports=function(t,e,r,a){var i,o,s,l,c,u,h,f,p,d,g=e[0],v=e[1],m=e[2],y=a[0],x=a[1],b=a[2],_=r[0],w=r[1],k=r[2];if(Math.abs(g-_)<1e-6&&Math.abs(v-w)<1e-6&&Math.abs(m-k)<1e-6)return n(t);h=g-_,f=v-w,p=m-k,d=1/Math.sqrt(h*h+f*f+p*p),i=x*(p*=d)-b*(f*=d),o=b*(h*=d)-y*p,s=y*f-x*h,(d=Math.sqrt(i*i+o*o+s*s))?(i*=d=1/d,o*=d,s*=d):(i=0,o=0,s=0);l=f*s-p*o,c=p*i-h*s,u=h*o-f*i,(d=Math.sqrt(l*l+c*c+u*u))?(l*=d=1/d,c*=d,u*=d):(l=0,c=0,u=0);return t[0]=i,t[1]=l,t[2]=h,t[3]=0,t[4]=o,t[5]=c,t[6]=f,t[7]=0,t[8]=s,t[9]=u,t[10]=p,t[11]=0,t[12]=-(i*g+o*v+s*m),t[13]=-(l*g+c*v+u*m),t[14]=-(h*g+f*v+p*m),t[15]=1,t}},{\"./identity\":266}],269:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],a=e[1],i=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],h=e[8],f=e[9],p=e[10],d=e[11],g=e[12],v=e[13],m=e[14],y=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*h+w*g,t[1]=x*a+b*l+_*f+w*v,t[2]=x*i+b*c+_*p+w*m,t[3]=x*o+b*u+_*d+w*y,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*h+w*g,t[5]=x*a+b*l+_*f+w*v,t[6]=x*i+b*c+_*p+w*m,t[7]=x*o+b*u+_*d+w*y,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*h+w*g,t[9]=x*a+b*l+_*f+w*v,t[10]=x*i+b*c+_*p+w*m,t[11]=x*o+b*u+_*d+w*y,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*h+w*g,t[13]=x*a+b*l+_*f+w*v,t[14]=x*i+b*c+_*p+w*m,t[15]=x*o+b*u+_*d+w*y,t}},{}],270:[function(t,e,r){e.exports=function(t,e,r,n,a,i,o){var s=1/(e-r),l=1/(n-a),c=1/(i-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(e+r)*s,t[13]=(a+n)*l,t[14]=(o+i)*c,t[15]=1,t}},{}],271:[function(t,e,r){e.exports=function(t,e,r,n,a){var i=1/Math.tan(e/2),o=1/(n-a);return t[0]=i/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(a+n)*o,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*a*n*o,t[15]=0,t}},{}],272:[function(t,e,r){e.exports=function(t,e,r,n){var a,i,o,s,l,c,u,h,f,p,d,g,v,m,y,x,b,_,w,k,T,A,M,S,E=n[0],C=n[1],L=n[2],P=Math.sqrt(E*E+C*C+L*L);if(Math.abs(P)<1e-6)return null;E*=P=1/P,C*=P,L*=P,a=Math.sin(r),i=Math.cos(r),o=1-i,s=e[0],l=e[1],c=e[2],u=e[3],h=e[4],f=e[5],p=e[6],d=e[7],g=e[8],v=e[9],m=e[10],y=e[11],x=E*E*o+i,b=C*E*o+L*a,_=L*E*o-C*a,w=E*C*o-L*a,k=C*C*o+i,T=L*C*o+E*a,A=E*L*o+C*a,M=C*L*o-E*a,S=L*L*o+i,t[0]=s*x+h*b+g*_,t[1]=l*x+f*b+v*_,t[2]=c*x+p*b+m*_,t[3]=u*x+d*b+y*_,t[4]=s*w+h*k+g*T,t[5]=l*w+f*k+v*T,t[6]=c*w+p*k+m*T,t[7]=u*w+d*k+y*T,t[8]=s*A+h*M+g*S,t[9]=l*A+f*M+v*S,t[10]=c*A+p*M+m*S,t[11]=u*A+d*M+y*S,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t}},{}],273:[function(t,e,r){e.exports=function(t,e,r){var n=Math.sin(r),a=Math.cos(r),i=e[4],o=e[5],s=e[6],l=e[7],c=e[8],u=e[9],h=e[10],f=e[11];e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t[4]=i*a+c*n,t[5]=o*a+u*n,t[6]=s*a+h*n,t[7]=l*a+f*n,t[8]=c*a-i*n,t[9]=u*a-o*n,t[10]=h*a-s*n,t[11]=f*a-l*n,t}},{}],274:[function(t,e,r){e.exports=function(t,e,r){var n=Math.sin(r),a=Math.cos(r),i=e[0],o=e[1],s=e[2],l=e[3],c=e[8],u=e[9],h=e[10],f=e[11];e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t[0]=i*a-c*n,t[1]=o*a-u*n,t[2]=s*a-h*n,t[3]=l*a-f*n,t[8]=i*n+c*a,t[9]=o*n+u*a,t[10]=s*n+h*a,t[11]=l*n+f*a,t}},{}],275:[function(t,e,r){e.exports=function(t,e,r){var n=Math.sin(r),a=Math.cos(r),i=e[0],o=e[1],s=e[2],l=e[3],c=e[4],u=e[5],h=e[6],f=e[7];e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t[0]=i*a+c*n,t[1]=o*a+u*n,t[2]=s*a+h*n,t[3]=l*a+f*n,t[4]=c*a-i*n,t[5]=u*a-o*n,t[6]=h*a-s*n,t[7]=f*a-l*n,t}},{}],276:[function(t,e,r){e.exports=function(t,e,r){var n=r[0],a=r[1],i=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*a,t[5]=e[5]*a,t[6]=e[6]*a,t[7]=e[7]*a,t[8]=e[8]*i,t[9]=e[9]*i,t[10]=e[10]*i,t[11]=e[11]*i,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},{}],277:[function(t,e,r){e.exports=function(t,e,r){var n,a,i,o,s,l,c,u,h,f,p,d,g=r[0],v=r[1],m=r[2];e===t?(t[12]=e[0]*g+e[4]*v+e[8]*m+e[12],t[13]=e[1]*g+e[5]*v+e[9]*m+e[13],t[14]=e[2]*g+e[6]*v+e[10]*m+e[14],t[15]=e[3]*g+e[7]*v+e[11]*m+e[15]):(n=e[0],a=e[1],i=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],h=e[8],f=e[9],p=e[10],d=e[11],t[0]=n,t[1]=a,t[2]=i,t[3]=o,t[4]=s,t[5]=l,t[6]=c,t[7]=u,t[8]=h,t[9]=f,t[10]=p,t[11]=d,t[12]=n*g+s*v+h*m+e[12],t[13]=a*g+l*v+f*m+e[13],t[14]=i*g+c*v+p*m+e[14],t[15]=o*g+u*v+d*m+e[15]);return t}},{}],278:[function(t,e,r){e.exports=function(t,e){if(t===e){var r=e[1],n=e[2],a=e[3],i=e[6],o=e[7],s=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=i,t[11]=e[14],t[12]=a,t[13]=o,t[14]=s}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}},{}],279:[function(t,e,r){\"use strict\";e.exports=function(t,e){switch(e.length){case 0:break;case 1:t[0]=1/e[0];break;case 4:n(t,e);break;case 9:a(t,e);break;case 16:i(t,e);break;default:throw new Error(\"currently supports matrices up to 4x4\")}return t};var n=t(\"gl-mat2/invert\"),a=t(\"gl-mat3/invert\"),i=t(\"gl-mat4/invert\")},{\"gl-mat2/invert\":259,\"gl-mat3/invert\":260,\"gl-mat4/invert\":267}],280:[function(t,e,r){\"use strict\";var n=t(\"barycentric\"),a=t(\"polytope-closest-point/lib/closest_point_2d.js\");function i(t,e){for(var r=[0,0,0,0],n=0;n<4;++n)for(var a=0;a<4;++a)r[a]+=t[4*n+a]*e[n];return r}function o(t,e,r,n,a){for(var o=i(n,i(r,i(e,[t[0],t[1],t[2],1]))),s=0;s<3;++s)o[s]/=o[3];return[.5*a[0]*(1+o[0]),.5*a[1]*(1-o[1])]}e.exports=function(t,e,r,i,s,l){if(1===t.length)return[0,t[0].slice()];for(var c=new Array(t.length),u=0;u<t.length;++u)c[u]=o(t[u],r,i,s,l);for(var h=0,f=1/0,u=0;u<c.length;++u){for(var p=0,d=0;d<2;++d)p+=Math.pow(c[u][d]-e[d],2);p<f&&(f=p,h=u)}for(var g=function(t,e){if(2===t.length){for(var r=0,i=0,o=0;o<2;++o)r+=Math.pow(e[o]-t[0][o],2),i+=Math.pow(e[o]-t[1][o],2);return r=Math.sqrt(r),i=Math.sqrt(i),r+i<1e-6?[1,0]:[i/(r+i),r/(i+r)]}if(3===t.length){var s=[0,0];return a(t[0],t[1],t[2],e,s),n(t,s)}return[]}(c,e),v=0,u=0;u<3;++u){if(g[u]<-.001||g[u]>1.0001)return null;v+=g[u]}if(Math.abs(v-1)>.001)return null;return[h,function(t,e){for(var r=[0,0,0],n=0;n<t.length;++n)for(var a=t[n],i=e[n],o=0;o<3;++o)r[o]+=i*a[o];return r}(t,g),g]}},{barycentric:74,\"polytope-closest-point/lib/closest_point_2d.js\":482}],281:[function(t,e,r){var n=t(\"glslify\"),a=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, normal;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model\\n , view\\n , projection\\n , inverseModel;\\nuniform vec3 eyePosition\\n , lightPosition;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvec4 project(vec3 p) {\\n return projection * view * model * vec4(p, 1.0);\\n}\\n\\nvoid main() {\\n gl_Position = project(position);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * vec4(position , 1.0);\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\\n\"]),i=n([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness\\n , fresnel\\n , kambient\\n , kdiffuse\\n , kspecular;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (f_color.a == 0.0 ||\\n outOfRange(clipBounds[0], clipBounds[1], f_data)\\n ) discard;\\n\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\\n\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * f_color.a;\\n}\\n\"]),o=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\"]),s=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\\n\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"]),l=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\nattribute float pointSize;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\\n } else {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n }\\n gl_PointSize = pointSize;\\n f_color = color;\\n f_uv = uv;\\n}\"]),c=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\\n if(dot(pointR, pointR) > 0.25) {\\n discard;\\n }\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"]),u=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n f_id = id;\\n f_position = position;\\n}\"]),h=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"]),f=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute float pointSize;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\\n } else {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n gl_PointSize = pointSize;\\n }\\n f_id = id;\\n f_position = position;\\n}\"]),p=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\n\\nvoid main() {\\n gl_Position = projection * view * model * vec4(position, 1.0);\\n}\"]),d=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec3 contourColor;\\n\\nvoid main() {\\n gl_FragColor = vec4(contourColor, 1.0);\\n}\\n\"]);r.meshShader={vertex:a,fragment:i,attributes:[{name:\"position\",type:\"vec3\"},{name:\"normal\",type:\"vec3\"},{name:\"color\",type:\"vec4\"},{name:\"uv\",type:\"vec2\"}]},r.wireShader={vertex:o,fragment:s,attributes:[{name:\"position\",type:\"vec3\"},{name:\"color\",type:\"vec4\"},{name:\"uv\",type:\"vec2\"}]},r.pointShader={vertex:l,fragment:c,attributes:[{name:\"position\",type:\"vec3\"},{name:\"color\",type:\"vec4\"},{name:\"uv\",type:\"vec2\"},{name:\"pointSize\",type:\"float\"}]},r.pickShader={vertex:u,fragment:h,attributes:[{name:\"position\",type:\"vec3\"},{name:\"id\",type:\"vec4\"}]},r.pointPickShader={vertex:f,fragment:h,attributes:[{name:\"position\",type:\"vec3\"},{name:\"pointSize\",type:\"float\"},{name:\"id\",type:\"vec4\"}]},r.contourShader={vertex:p,fragment:d,attributes:[{name:\"position\",type:\"vec3\"}]}},{glslify:410}],282:[function(t,e,r){\"use strict\";var n=t(\"gl-shader\"),a=t(\"gl-buffer\"),i=t(\"gl-vao\"),o=t(\"gl-texture2d\"),s=t(\"normals\"),l=t(\"gl-mat4/multiply\"),c=t(\"gl-mat4/invert\"),u=t(\"ndarray\"),h=t(\"colormap\"),f=t(\"simplicial-complex-contour\"),p=t(\"typedarray-pool\"),d=t(\"./lib/shaders\"),g=t(\"./lib/closest-point\"),v=d.meshShader,m=d.wireShader,y=d.pointShader,x=d.pickShader,b=d.pointPickShader,_=d.contourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function k(t,e,r,n,a,i,o,s,l,c,u,h,f,p,d,g,v,m,y,x,b,_,k,T,A,M,S){this.gl=t,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=a,this.pickShader=i,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleColors=u,this.triangleNormals=f,this.triangleUVs=h,this.triangleIds=c,this.triangleVAO=p,this.triangleCount=0,this.lineWidth=1,this.edgePositions=d,this.edgeColors=v,this.edgeUVs=m,this.edgeIds=g,this.edgeVAO=y,this.edgeCount=0,this.pointPositions=x,this.pointColors=_,this.pointUVs=k,this.pointSizes=T,this.pointIds=b,this.pointVAO=A,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=M,this.contourVAO=S,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.hasAlpha=!1,this.opacityscale=!1,this._model=w,this._view=w,this._projection=w,this._resolution=[1,1]}var T=k.prototype;function A(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;r<e.length;++r){if(e.length<2)return 1;if(e[r][0]===t)return e[r][1];if(e[r][0]>t&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}function M(t){var e=n(t,y.vertex,y.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.pointSize.location=4,e}function S(t){var e=n(t,x.vertex,x.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e}function E(t){var e=n(t,b.vertex,b.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.pointSize.location=4,e}function C(t){var e=n(t,_.vertex,_.fragment);return e.attributes.position.location=0,e}T.isOpaque=function(){return!this.hasAlpha},T.isTransparent=function(){return this.hasAlpha},T.pickSlots=1,T.setPickBase=function(t){this.pickId=t},T.highlight=function(t){if(t&&this.contourEnable){for(var e=f(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,a=e.vertexWeights,i=r.length,o=p.mallocFloat32(6*i),s=0,l=0;l<i;++l)for(var c=r[l],u=0;u<2;++u){var h=c[0];2===c.length&&(h=c[u]);for(var d=n[h][0],g=n[h][1],v=a[h],m=1-v,y=this.positions[d],x=this.positions[g],b=0;b<3;++b)o[s++]=v*y[b]+m*x[b]}this.contourCount=s/3|0,this.contourPositions.update(o.subarray(0,s)),p.free(o)}else this.contourCount=0},T.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,\"contourEnable\"in t&&(this.contourEnable=t.contourEnable),\"contourColor\"in t&&(this.contourColor=t.contourColor),\"lineWidth\"in t&&(this.lineWidth=t.lineWidth),\"lightPosition\"in t&&(this.lightPosition=t.lightPosition),this.hasAlpha=!1,\"opacity\"in t&&(this.opacity=t.opacity,this.opacity<1&&(this.hasAlpha=!0)),\"opacityscale\"in t&&(this.opacityscale=t.opacityscale,this.hasAlpha=!0),\"ambient\"in t&&(this.ambientLight=t.ambient),\"diffuse\"in t&&(this.diffuseLight=t.diffuse),\"specular\"in t&&(this.specularLight=t.specular),\"roughness\"in t&&(this.roughness=t.roughness),\"fresnel\"in t&&(this.fresnel=t.fresnel),t.texture?(this.texture.dispose(),this.texture=o(e,t.texture)):t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t,e){for(var r=h({colormap:t,nshades:256,format:\"rgba\"}),n=new Uint8Array(1024),a=0;a<256;++a){for(var i=r[a],o=0;o<3;++o)n[4*a+o]=i[o];n[4*a+3]=e?255*A(a/255,e):255*i[3]}return u(n,[256,256,4],[4,0,1])}(t.colormap,this.opacityscale)),this.texture.generateMipmap());var r=t.cells,n=t.positions;if(n&&r){var a=[],i=[],l=[],c=[],f=[],p=[],d=[],g=[],v=[],m=[],y=[],x=[],b=[],_=[];this.cells=r,this.positions=n;var w=t.vertexNormals,k=t.cellNormals,T=void 0===t.vertexNormalsEpsilon?1e-6:t.vertexNormalsEpsilon,M=void 0===t.faceNormalsEpsilon?1e-6:t.faceNormalsEpsilon;t.useFacetNormals&&!k&&(k=s.faceNormals(r,n,M)),k||w||(w=s.vertexNormals(r,n,T));var S=t.vertexColors,E=t.cellColors,C=t.meshColor||[1,1,1,1],L=t.vertexUVs,P=t.vertexIntensity,O=t.cellUVs,z=t.cellIntensity,I=1/0,D=-1/0;if(!L&&!O)if(P)if(t.vertexIntensityBounds)I=+t.vertexIntensityBounds[0],D=+t.vertexIntensityBounds[1];else for(var R=0;R<P.length;++R){var F=P[R];I=Math.min(I,F),D=Math.max(D,F)}else if(z)for(R=0;R<z.length;++R){F=z[R];I=Math.min(I,F),D=Math.max(D,F)}else for(R=0;R<n.length;++R){F=n[R][2];I=Math.min(I,F),D=Math.max(D,F)}this.intensity=P||(z?function(t,e,r){for(var n=new Array(e),a=0;a<e;++a)n[a]=0;var i=t.length;for(a=0;a<i;++a)for(var o=t[a],s=0;s<o.length;++s)n[o[s]]=r[a];return n}(r,n.length,z):function(t){for(var e=t.length,r=new Array(e),n=0;n<e;++n)r[n]=t[n][2];return r}(n));var B=t.pointSizes,N=t.pointSize||1;this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];for(R=0;R<n.length;++R)for(var j=n[R],V=0;V<3;++V)!isNaN(j[V])&&isFinite(j[V])&&(this.bounds[0][V]=Math.min(this.bounds[0][V],j[V]),this.bounds[1][V]=Math.max(this.bounds[1][V],j[V]));var U=0,q=0,H=0;t:for(R=0;R<r.length;++R){var G=r[R];switch(G.length){case 1:for(j=n[W=G[0]],V=0;V<3;++V)if(isNaN(j[V])||!isFinite(j[V]))continue t;m.push(j[0],j[1],j[2]),X=S?S[W]:E?E[R]:C,this.opacityscale&&P?i.push(X[0],X[1],X[2],this.opacity*A((P[W]-I)/(D-I),this.opacityscale)):3===X.length?y.push(X[0],X[1],X[2],this.opacity):(y.push(X[0],X[1],X[2],X[3]*this.opacity),!this.hasAlpha&&X[3]<1&&(this.hasAlpha=!0)),Z=L?L[W]:P?[(P[W]-I)/(D-I),0]:O?O[R]:z?[(z[R]-I)/(D-I),0]:[(j[2]-I)/(D-I),0],x.push(Z[0],Z[1]),B?b.push(B[W]):b.push(N),_.push(R),H+=1;break;case 2:for(V=0;V<2;++V){j=n[W=G[V]];for(var Y=0;Y<3;++Y)if(isNaN(j[Y])||!isFinite(j[Y]))continue t}for(V=0;V<2;++V){j=n[W=G[V]];p.push(j[0],j[1],j[2]),X=S?S[W]:E?E[R]:C,this.opacityscale&&P?i.push(X[0],X[1],X[2],this.opacity*A((P[W]-I)/(D-I),this.opacityscale)):3===X.length?d.push(X[0],X[1],X[2],this.opacity):(d.push(X[0],X[1],X[2],X[3]*this.opacity),!this.hasAlpha&&X[3]<1&&(this.hasAlpha=!0)),Z=L?L[W]:P?[(P[W]-I)/(D-I),0]:O?O[R]:z?[(z[R]-I)/(D-I),0]:[(j[2]-I)/(D-I),0],g.push(Z[0],Z[1]),v.push(R)}q+=1;break;case 3:for(V=0;V<3;++V)for(j=n[W=G[V]],Y=0;Y<3;++Y)if(isNaN(j[Y])||!isFinite(j[Y]))continue t;for(V=0;V<3;++V){var W,X,Z,J;j=n[W=G[2-V]];a.push(j[0],j[1],j[2]),X=S?S[W]:E?E[R]:C,this.opacityscale&&P?i.push(X[0],X[1],X[2],this.opacity*A((P[W]-I)/(D-I),this.opacityscale)):3===X.length?i.push(X[0],X[1],X[2],this.opacity):(i.push(X[0],X[1],X[2],X[3]*this.opacity),!this.hasAlpha&&X[3]<1&&(this.hasAlpha=!0)),Z=L?L[W]:P?[(P[W]-I)/(D-I),0]:O?O[R]:z?[(z[R]-I)/(D-I),0]:[(j[2]-I)/(D-I),0],c.push(Z[0],Z[1]),J=w?w[W]:k[R],l.push(J[0],J[1],J[2]),f.push(R)}U+=1}}this.pointCount=H,this.edgeCount=q,this.triangleCount=U,this.pointPositions.update(m),this.pointColors.update(y),this.pointUVs.update(x),this.pointSizes.update(b),this.pointIds.update(new Uint32Array(_)),this.edgePositions.update(p),this.edgeColors.update(d),this.edgeUVs.update(g),this.edgeIds.update(new Uint32Array(v)),this.trianglePositions.update(a),this.triangleColors.update(i),this.triangleUVs.update(c),this.triangleNormals.update(l),this.triangleIds.update(new Uint32Array(f))}},T.drawTransparent=T.draw=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,a=t.projection||w,i=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)i[0][o]=Math.max(i[0][o],this.clipBounds[0][o]),i[1][o]=Math.min(i[1][o],this.clipBounds[1][o]);var s={model:r,view:n,projection:a,inverseModel:w.slice(),clipBounds:i,kambient:this.ambientLight,kdiffuse:this.diffuseLight,kspecular:this.specularLight,roughness:this.roughness,fresnel:this.fresnel,eyePosition:[0,0,0],lightPosition:[0,0,0],contourColor:this.contourColor,texture:0};s.inverseModel=c(s.inverseModel,s.model),e.disable(e.CULL_FACE),this.texture.bind(0);var u=new Array(16);l(u,s.view,s.model),l(u,s.projection,u),c(u,u);for(o=0;o<3;++o)s.eyePosition[o]=u[12+o]/u[15];var h,f=u[15];for(o=0;o<3;++o)f+=this.lightPosition[o]*u[4*o+3];for(o=0;o<3;++o){for(var p=u[12+o],d=0;d<3;++d)p+=u[4*d+o]*this.lightPosition[d];s.lightPosition[o]=p/f}this.triangleCount>0&&((h=this.triShader).bind(),h.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((h=this.lineShader).bind(),h.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((h=this.pointShader).bind(),h.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((h=this.contourShader).bind(),h.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},T.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,a=t.projection||w,i=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)i[0][o]=Math.max(i[0][o],this.clipBounds[0][o]),i[1][o]=Math.min(i[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(a),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:a,clipBounds:i,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},T.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;for(var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions,a=new Array(r.length),i=0;i<r.length;++i)a[i]=n[r[i]];var o=g(a,[t.coord[0],this._resolution[1]-t.coord[1]],this._model,this._view,this._projection,this._resolution);if(!o)return null;var s=o[2],l=0;for(i=0;i<r.length;++i)l+=s[i]*this.intensity[r[i]];return{position:o[1],index:r[o[0]],cell:r,cellId:e,intensity:l,dataCoordinate:this.positions[r[o[0]]]}},T.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.lineShader.dispose(),this.pointShader.dispose(),this.pickShader.dispose(),this.pointPickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleNormals.dispose(),this.triangleIds.dispose(),this.edgeVAO.dispose(),this.edgePositions.dispose(),this.edgeColors.dispose(),this.edgeUVs.dispose(),this.edgeIds.dispose(),this.pointVAO.dispose(),this.pointPositions.dispose(),this.pointColors.dispose(),this.pointUVs.dispose(),this.pointSizes.dispose(),this.pointIds.dispose(),this.contourVAO.dispose(),this.contourPositions.dispose(),this.contourShader.dispose()},e.exports=function(t,e){if(1===arguments.length&&(t=(e=t).gl),!(t.getExtension(\"OES_standard_derivatives\")||t.getExtension(\"MOZ_OES_standard_derivatives\")||t.getExtension(\"WEBKIT_OES_standard_derivatives\")))throw new Error(\"derivatives not supported\");var r=function(t){var e=n(t,v.vertex,v.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.normal.location=4,e}(t),s=function(t){var e=n(t,m.vertex,m.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e}(t),l=M(t),c=S(t),h=E(t),f=C(t),p=o(t,u(new Uint8Array([255,255,255,255]),[1,1,4]));p.generateMipmap(),p.minFilter=t.LINEAR_MIPMAP_LINEAR,p.magFilter=t.LINEAR;var d=a(t),g=a(t),y=a(t),x=a(t),b=a(t),_=i(t,[{buffer:d,type:t.FLOAT,size:3},{buffer:b,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:g,type:t.FLOAT,size:4},{buffer:y,type:t.FLOAT,size:2},{buffer:x,type:t.FLOAT,size:3}]),w=a(t),T=a(t),A=a(t),L=a(t),P=i(t,[{buffer:w,type:t.FLOAT,size:3},{buffer:L,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:T,type:t.FLOAT,size:4},{buffer:A,type:t.FLOAT,size:2}]),O=a(t),z=a(t),I=a(t),D=a(t),R=a(t),F=i(t,[{buffer:O,type:t.FLOAT,size:3},{buffer:R,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:z,type:t.FLOAT,size:4},{buffer:I,type:t.FLOAT,size:2},{buffer:D,type:t.FLOAT,size:1}]),B=a(t),N=new k(t,p,r,s,l,c,h,f,d,b,g,y,x,_,w,L,T,A,P,O,R,z,I,D,F,B,i(t,[{buffer:B,type:t.FLOAT,size:3}]));return N.update(e),N}},{\"./lib/closest-point\":280,\"./lib/shaders\":281,colormap:127,\"gl-buffer\":243,\"gl-mat4/invert\":267,\"gl-mat4/multiply\":269,\"gl-shader\":303,\"gl-texture2d\":323,\"gl-vao\":328,ndarray:451,normals:454,\"simplicial-complex-contour\":516,\"typedarray-pool\":543}],283:[function(t,e,r){\"use strict\";e.exports=function(t){var e=t.gl,r=n(e,[0,0,0,1,1,0,1,1]),s=a(e,i.boxVert,i.lineFrag);return new o(t,r,s)};var n=t(\"gl-buffer\"),a=t(\"gl-shader\"),i=t(\"./shaders\");function o(t,e,r){this.plot=t,this.vbo=e,this.shader=r}var s,l,c=o.prototype;c.bind=function(){var t=this.shader;this.vbo.bind(),this.shader.bind(),t.attributes.coord.pointer(),t.uniforms.screenBox=this.plot.screenBox},c.drawBox=(s=[0,0],l=[0,0],function(t,e,r,n,a){var i=this.plot,o=this.shader,c=i.gl;s[0]=t,s[1]=e,l[0]=r,l[1]=n,o.uniforms.lo=s,o.uniforms.hi=l,o.uniforms.color=a,c.drawArrays(c.TRIANGLE_STRIP,0,4)}),c.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},{\"./shaders\":286,\"gl-buffer\":243,\"gl-shader\":303}],284:[function(t,e,r){\"use strict\";e.exports=function(t){var e=t.gl,r=n(e),i=a(e,o.gridVert,o.gridFrag),l=a(e,o.tickVert,o.gridFrag);return new s(t,r,i,l)};var n=t(\"gl-buffer\"),a=t(\"gl-shader\"),i=t(\"binary-search-bounds\"),o=t(\"./shaders\");function s(t,e,r,n){this.plot=t,this.vbo=e,this.shader=r,this.tickShader=n,this.ticks=[[],[]]}function l(t,e){return t-e}var c,u,h,f,p,d=s.prototype;d.draw=(c=[0,0],u=[0,0],h=[0,0],function(){for(var t=this.plot,e=this.vbo,r=this.shader,n=this.ticks,a=t.gl,i=t._tickBounds,o=t.dataBox,s=t.viewBox,l=t.gridLineWidth,f=t.gridLineColor,p=t.gridLineEnable,d=t.pixelRatio,g=0;g<2;++g){var v=i[g],m=i[g+2]-v,y=.5*(o[g+2]+o[g]),x=o[g+2]-o[g];u[g]=2*m/x,c[g]=2*(v-y)/x}r.bind(),e.bind(),r.attributes.dataCoord.pointer(),r.uniforms.dataShift=c,r.uniforms.dataScale=u;var b=0;for(g=0;g<2;++g){h[0]=h[1]=0,h[g]=1,r.uniforms.dataAxis=h,r.uniforms.lineWidth=l[g]/(s[g+2]-s[g])*d,r.uniforms.color=f[g];var _=6*n[g].length;p[g]&&_&&a.drawArrays(a.TRIANGLES,b,_),b+=_}}),d.drawTickMarks=function(){var t=[0,0],e=[0,0],r=[1,0],n=[0,1],a=[0,0],o=[0,0];return function(){for(var s=this.plot,c=this.vbo,u=this.tickShader,h=this.ticks,f=s.gl,p=s._tickBounds,d=s.dataBox,g=s.viewBox,v=s.pixelRatio,m=s.screenBox,y=m[2]-m[0],x=m[3]-m[1],b=g[2]-g[0],_=g[3]-g[1],w=0;w<2;++w){var k=p[w],T=p[w+2]-k,A=.5*(d[w+2]+d[w]),M=d[w+2]-d[w];e[w]=2*T/M,t[w]=2*(k-A)/M}e[0]*=b/y,t[0]*=b/y,e[1]*=_/x,t[1]*=_/x,u.bind(),c.bind(),u.attributes.dataCoord.pointer();var S=u.uniforms;S.dataShift=t,S.dataScale=e;var E=s.tickMarkLength,C=s.tickMarkWidth,L=s.tickMarkColor,P=6*h[0].length,O=Math.min(i.ge(h[0],(d[0]-p[0])/(p[2]-p[0]),l),h[0].length),z=Math.min(i.gt(h[0],(d[2]-p[0])/(p[2]-p[0]),l),h[0].length),I=0+6*O,D=6*Math.max(0,z-O),R=Math.min(i.ge(h[1],(d[1]-p[1])/(p[3]-p[1]),l),h[1].length),F=Math.min(i.gt(h[1],(d[3]-p[1])/(p[3]-p[1]),l),h[1].length),B=P+6*R,N=6*Math.max(0,F-R);a[0]=2*(g[0]-E[1])/y-1,a[1]=(g[3]+g[1])/x-1,o[0]=E[1]*v/y,o[1]=C[1]*v/x,N&&(S.color=L[1],S.tickScale=o,S.dataAxis=n,S.screenOffset=a,f.drawArrays(f.TRIANGLES,B,N)),a[0]=(g[2]+g[0])/y-1,a[1]=2*(g[1]-E[0])/x-1,o[0]=C[0]*v/y,o[1]=E[0]*v/x,D&&(S.color=L[0],S.tickScale=o,S.dataAxis=r,S.screenOffset=a,f.drawArrays(f.TRIANGLES,I,D)),a[0]=2*(g[2]+E[3])/y-1,a[1]=(g[3]+g[1])/x-1,o[0]=E[3]*v/y,o[1]=C[3]*v/x,N&&(S.color=L[3],S.tickScale=o,S.dataAxis=n,S.screenOffset=a,f.drawArrays(f.TRIANGLES,B,N)),a[0]=(g[2]+g[0])/y-1,a[1]=2*(g[3]+E[2])/x-1,o[0]=C[2]*v/y,o[1]=E[2]*v/x,D&&(S.color=L[2],S.tickScale=o,S.dataAxis=r,S.screenOffset=a,f.drawArrays(f.TRIANGLES,I,D))}}(),d.update=(f=[1,1,-1,-1,1,-1],p=[1,-1,1,1,-1,-1],function(t){for(var e=t.ticks,r=t.bounds,n=new Float32Array(18*(e[0].length+e[1].length)),a=(this.plot.zeroLineEnable,0),i=[[],[]],o=0;o<2;++o)for(var s=i[o],l=e[o],c=r[o],u=r[o+2],h=0;h<l.length;++h){var d=(l[h].x-c)/(u-c);s.push(d);for(var g=0;g<6;++g)n[a++]=d,n[a++]=f[g],n[a++]=p[g]}this.ticks=i,this.vbo.update(n)}),d.dispose=function(){this.vbo.dispose(),this.shader.dispose(),this.tickShader.dispose()}},{\"./shaders\":286,\"binary-search-bounds\":288,\"gl-buffer\":243,\"gl-shader\":303}],285:[function(t,e,r){\"use strict\";e.exports=function(t){var e=t.gl,r=n(e,[-1,-1,-1,1,1,-1,1,1]),s=a(e,i.lineVert,i.lineFrag);return new o(t,r,s)};var n=t(\"gl-buffer\"),a=t(\"gl-shader\"),i=t(\"./shaders\");function o(t,e,r){this.plot=t,this.vbo=e,this.shader=r}var s,l,c=o.prototype;c.bind=function(){var t=this.shader;this.vbo.bind(),this.shader.bind(),t.attributes.coord.pointer(),t.uniforms.screenBox=this.plot.screenBox},c.drawLine=(s=[0,0],l=[0,0],function(t,e,r,n,a,i){var o=this.plot,c=this.shader,u=o.gl;s[0]=t,s[1]=e,l[0]=r,l[1]=n,c.uniforms.start=s,c.uniforms.end=l,c.uniforms.width=a*o.pixelRatio,c.uniforms.color=i,u.drawArrays(u.TRIANGLE_STRIP,0,4)}),c.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},{\"./shaders\":286,\"gl-buffer\":243,\"gl-shader\":303}],286:[function(t,e,r){\"use strict\";var n=t(\"glslify\"),a=n([\"precision lowp float;\\n#define GLSLIFY 1\\nuniform vec4 color;\\nvoid main() {\\n gl_FragColor = vec4(color.xyz * color.w, color.w);\\n}\\n\"]);e.exports={lineVert:n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 coord;\\n\\nuniform vec4 screenBox;\\nuniform vec2 start, end;\\nuniform float width;\\n\\nvec2 perp(vec2 v) {\\n return vec2(v.y, -v.x);\\n}\\n\\nvec2 screen(vec2 v) {\\n return 2.0 * (v - screenBox.xy) / (screenBox.zw - screenBox.xy) - 1.0;\\n}\\n\\nvoid main() {\\n vec2 delta = normalize(perp(start - end));\\n vec2 offset = mix(start, end, 0.5 * (coord.y+1.0));\\n gl_Position = vec4(screen(offset + 0.5 * width * delta * coord.x), 0, 1);\\n}\\n\"]),lineFrag:a,textVert:n([\"#define GLSLIFY 1\\nattribute vec3 textCoordinate;\\n\\nuniform vec2 dataScale, dataShift, dataAxis, screenOffset, textScale;\\nuniform float angle;\\n\\nvoid main() {\\n float dataOffset = textCoordinate.z;\\n vec2 glyphOffset = textCoordinate.xy;\\n mat2 glyphMatrix = mat2(cos(angle), sin(angle), -sin(angle), cos(angle));\\n vec2 screenCoordinate = dataAxis * (dataScale * dataOffset + dataShift) +\\n glyphMatrix * glyphOffset * textScale + screenOffset;\\n gl_Position = vec4(screenCoordinate, 0, 1);\\n}\\n\"]),textFrag:a,gridVert:n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec3 dataCoord;\\n\\nuniform vec2 dataAxis, dataShift, dataScale;\\nuniform float lineWidth;\\n\\nvoid main() {\\n vec2 pos = dataAxis * (dataScale * dataCoord.x + dataShift);\\n pos += 10.0 * dataCoord.y * vec2(dataAxis.y, -dataAxis.x) + dataCoord.z * lineWidth;\\n gl_Position = vec4(pos, 0, 1);\\n}\\n\"]),gridFrag:a,boxVert:n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 coord;\\n\\nuniform vec4 screenBox;\\nuniform vec2 lo, hi;\\n\\nvec2 screen(vec2 v) {\\n return 2.0 * (v - screenBox.xy) / (screenBox.zw - screenBox.xy) - 1.0;\\n}\\n\\nvoid main() {\\n gl_Position = vec4(screen(mix(lo, hi, coord)), 0, 1);\\n}\\n\"]),tickVert:n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec3 dataCoord;\\n\\nuniform vec2 dataAxis, dataShift, dataScale, screenOffset, tickScale;\\n\\nvoid main() {\\n vec2 pos = dataAxis * (dataScale * dataCoord.x + dataShift);\\n gl_Position = vec4(pos + tickScale*dataCoord.yz + screenOffset, 0, 1);\\n}\\n\"])}},{glslify:410}],287:[function(t,e,r){\"use strict\";e.exports=function(t){var e=t.gl,r=n(e),i=a(e,s.textVert,s.textFrag);return new l(t,r,i)};var n=t(\"gl-buffer\"),a=t(\"gl-shader\"),i=t(\"text-cache\"),o=t(\"binary-search-bounds\"),s=t(\"./shaders\");function l(t,e,r){this.plot=t,this.vbo=e,this.shader=r,this.tickOffset=[[],[]],this.tickX=[[],[]],this.labelOffset=[0,0],this.labelCount=[0,0]}var c,u,h,f,p,d,g=l.prototype;g.drawTicks=(c=[0,0],u=[0,0],h=[0,0],function(t){var e=this.plot,r=this.shader,n=this.tickX[t],a=this.tickOffset[t],i=e.gl,s=e.viewBox,l=e.dataBox,f=e.screenBox,p=e.pixelRatio,d=e.tickEnable,g=e.tickPad,v=e.tickColor,m=e.tickAngle,y=e.labelEnable,x=e.labelPad,b=e.labelColor,_=e.labelAngle,w=this.labelOffset[t],k=this.labelCount[t],T=o.lt(n,l[t]),A=o.le(n,l[t+2]);c[0]=c[1]=0,c[t]=1,u[t]=(s[2+t]+s[t])/(f[2+t]-f[t])-1;var M=2/f[2+(1^t)]-f[1^t];u[1^t]=M*s[1^t]-1,d[t]&&(u[1^t]-=M*p*g[t],T<A&&a[A]>a[T]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=v[t],r.uniforms.angle=m[t],i.drawArrays(i.TRIANGLES,a[T],a[A]-a[T]))),y[t]&&k&&(u[1^t]-=M*p*x[t],r.uniforms.dataAxis=h,r.uniforms.screenOffset=u,r.uniforms.color=b[t],r.uniforms.angle=_[t],i.drawArrays(i.TRIANGLES,w,k)),u[1^t]=M*s[2+(1^t)]-1,d[t+2]&&(u[1^t]+=M*p*g[t+2],T<A&&a[A]>a[T]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=v[t+2],r.uniforms.angle=m[t+2],i.drawArrays(i.TRIANGLES,a[T],a[A]-a[T]))),y[t+2]&&k&&(u[1^t]+=M*p*x[t+2],r.uniforms.dataAxis=h,r.uniforms.screenOffset=u,r.uniforms.color=b[t+2],r.uniforms.angle=_[t+2],i.drawArrays(i.TRIANGLES,w,k))}),g.drawTitle=function(){var t=[0,0],e=[0,0];return function(){var r=this.plot,n=this.shader,a=r.gl,i=r.screenBox,o=r.titleCenter,s=r.titleAngle,l=r.titleColor,c=r.pixelRatio;if(this.titleCount){for(var u=0;u<2;++u)e[u]=2*(o[u]*c-i[u])/(i[2+u]-i[u])-1;n.bind(),n.uniforms.dataAxis=t,n.uniforms.screenOffset=e,n.uniforms.angle=s,n.uniforms.color=l,a.drawArrays(a.TRIANGLES,this.titleOffset,this.titleCount)}}}(),g.bind=(f=[0,0],p=[0,0],d=[0,0],function(){var t=this.plot,e=this.shader,r=t._tickBounds,n=t.dataBox,a=t.screenBox,i=t.viewBox;e.bind();for(var o=0;o<2;++o){var s=r[o],l=r[o+2]-s,c=.5*(n[o+2]+n[o]),u=n[o+2]-n[o],h=i[o],g=i[o+2]-h,v=a[o],m=a[o+2]-v;p[o]=2*l/u*g/m,f[o]=2*(s-c)/u*g/m}d[1]=2*t.pixelRatio/(a[3]-a[1]),d[0]=d[1]*(a[3]-a[1])/(a[2]-a[0]),e.uniforms.dataScale=p,e.uniforms.dataShift=f,e.uniforms.textScale=d,this.vbo.bind(),e.attributes.textCoordinate.pointer()}),g.update=function(t){var e,r,n,a,o,s=[],l=t.ticks,c=t.bounds;for(o=0;o<2;++o){var u=[Math.floor(s.length/3)],h=[-1/0],f=l[o];for(e=0;e<f.length;++e){var p=f[e],d=p.x,g=p.text,v=p.font||\"sans-serif\";a=p.fontSize||12;for(var m=1/(c[o+2]-c[o]),y=c[o],x=g.split(\"\\n\"),b=0;b<x.length;b++)for(n=i(v,x[b]).data,r=0;r<n.length;r+=2)s.push(n[r]*a,-n[r+1]*a-b*a*1.2,(d-y)*m);u.push(Math.floor(s.length/3)),h.push(d)}this.tickOffset[o]=u,this.tickX[o]=h}for(o=0;o<2;++o){for(this.labelOffset[o]=Math.floor(s.length/3),n=i(t.labelFont[o],t.labels[o],{textAlign:\"center\"}).data,a=t.labelSize[o],e=0;e<n.length;e+=2)s.push(n[e]*a,-n[e+1]*a,0);this.labelCount[o]=Math.floor(s.length/3)-this.labelOffset[o]}for(this.titleOffset=Math.floor(s.length/3),n=i(t.titleFont,t.title).data,a=t.titleSize,e=0;e<n.length;e+=2)s.push(n[e]*a,-n[e+1]*a,0);this.titleCount=Math.floor(s.length/3)-this.titleOffset,this.vbo.update(s)},g.dispose=function(){this.vbo.dispose(),this.shader.dispose()}},{\"./shaders\":286,\"binary-search-bounds\":288,\"gl-buffer\":243,\"gl-shader\":303,\"text-cache\":534}],288:[function(t,e,r){arguments[4][112][0].apply(r,arguments)},{dup:112}],289:[function(t,e,r){\"use strict\";e.exports=function(t){var e=t.gl,r=n(e,[e.drawingBufferWidth,e.drawingBufferHeight]),c=new l(e,r);return c.grid=a(c),c.text=i(c),c.line=o(c),c.box=s(c),c.update(t),c};var n=t(\"gl-select-static\"),a=t(\"./lib/grid\"),i=t(\"./lib/text\"),o=t(\"./lib/line\"),s=t(\"./lib/box\");function l(t,e){this.gl=t,this.pickBuffer=e,this.screenBox=[0,0,t.drawingBufferWidth,t.drawingBufferHeight],this.viewBox=[0,0,0,0],this.dataBox=[-10,-10,10,10],this.gridLineEnable=[!0,!0],this.gridLineWidth=[1,1],this.gridLineColor=[[0,0,0,1],[0,0,0,1]],this.pixelRatio=1,this.tickMarkLength=[0,0,0,0],this.tickMarkWidth=[0,0,0,0],this.tickMarkColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[15,15,15,15],this.tickAngle=[0,0,0,0],this.tickEnable=[!0,!0,!0,!0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[15,15,15,15],this.labelAngle=[0,Math.PI/2,0,3*Math.PI/2],this.labelEnable=[!0,!0,!0,!0],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.titleCenter=[0,0],this.titleEnable=!0,this.titleAngle=0,this.titleColor=[0,0,0,1],this.borderColor=[0,0,0,0],this.backgroundColor=[0,0,0,0],this.zeroLineEnable=[!0,!0],this.zeroLineWidth=[4,4],this.zeroLineColor=[[0,0,0,1],[0,0,0,1]],this.borderLineEnable=[!0,!0,!0,!0],this.borderLineWidth=[2,2,2,2],this.borderLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.grid=null,this.text=null,this.line=null,this.box=null,this.objects=[],this.overlays=[],this._tickBounds=[1/0,1/0,-1/0,-1/0],this.static=!1,this.dirty=!1,this.pickDirty=!1,this.pickDelay=120,this.pickRadius=10,this._pickTimeout=null,this._drawPick=this.drawPick.bind(this),this._depthCounter=0}var c=l.prototype;function u(t){for(var e=t.slice(),r=0;r<e.length;++r)e[r]=e[r].slice();return e}function h(t,e){return t.x-e.x}c.setDirty=function(){this.dirty=this.pickDirty=!0},c.setOverlayDirty=function(){this.dirty=!0},c.nextDepthValue=function(){return this._depthCounter++/65536},c.draw=function(){var t=this.gl,e=this.screenBox,r=this.viewBox,n=this.dataBox,a=this.pixelRatio,i=this.grid,o=this.line,s=this.text,l=this.objects;if(this._depthCounter=0,this.pickDirty&&(this._pickTimeout&&clearTimeout(this._pickTimeout),this.pickDirty=!1,this._pickTimeout=setTimeout(this._drawPick,this.pickDelay)),this.dirty){if(this.dirty=!1,t.bindFramebuffer(t.FRAMEBUFFER,null),t.enable(t.SCISSOR_TEST),t.disable(t.DEPTH_TEST),t.depthFunc(t.LESS),t.depthMask(!1),t.enable(t.BLEND),t.blendEquation(t.FUNC_ADD,t.FUNC_ADD),t.blendFunc(t.ONE,t.ONE_MINUS_SRC_ALPHA),this.borderColor){t.scissor(e[0],e[1],e[2]-e[0],e[3]-e[1]);var c=this.borderColor;t.clearColor(c[0]*c[3],c[1]*c[3],c[2]*c[3],c[3]),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}t.scissor(r[0],r[1],r[2]-r[0],r[3]-r[1]),t.viewport(r[0],r[1],r[2]-r[0],r[3]-r[1]);var u=this.backgroundColor;t.clearColor(u[0]*u[3],u[1]*u[3],u[2]*u[3],u[3]),t.clear(t.COLOR_BUFFER_BIT),i.draw();var h=this.zeroLineEnable,f=this.zeroLineColor,p=this.zeroLineWidth;if(h[0]||h[1]){o.bind();for(var d=0;d<2;++d)if(h[d]&&n[d]<=0&&n[d+2]>=0){var g=e[d]-n[d]*(e[d+2]-e[d])/(n[d+2]-n[d]);0===d?o.drawLine(g,e[1],g,e[3],p[d],f[d]):o.drawLine(e[0],g,e[2],g,p[d],f[d])}}for(d=0;d<l.length;++d)l[d].draw();t.viewport(e[0],e[1],e[2]-e[0],e[3]-e[1]),t.scissor(e[0],e[1],e[2]-e[0],e[3]-e[1]),this.grid.drawTickMarks(),o.bind();var v=this.borderLineEnable,m=this.borderLineWidth,y=this.borderLineColor;for(v[1]&&o.drawLine(r[0],r[1]-.5*m[1]*a,r[0],r[3]+.5*m[3]*a,m[1],y[1]),v[0]&&o.drawLine(r[0]-.5*m[0]*a,r[1],r[2]+.5*m[2]*a,r[1],m[0],y[0]),v[3]&&o.drawLine(r[2],r[1]-.5*m[1]*a,r[2],r[3]+.5*m[3]*a,m[3],y[3]),v[2]&&o.drawLine(r[0]-.5*m[0]*a,r[3],r[2]+.5*m[2]*a,r[3],m[2],y[2]),s.bind(),d=0;d<2;++d)s.drawTicks(d);this.titleEnable&&s.drawTitle();var x=this.overlays;for(d=0;d<x.length;++d)x[d].draw();t.disable(t.SCISSOR_TEST),t.disable(t.BLEND),t.depthMask(!0)}},c.drawPick=function(){if(!this.static){var t=this.pickBuffer;this.gl;this._pickTimeout=null,t.begin();for(var e=1,r=this.objects,n=0;n<r.length;++n)e=r[n].drawPick(e);t.end()}},c.pick=function(t,e){if(!this.static){var r=this.pixelRatio,n=this.pickPixelRatio,a=this.viewBox,i=0|Math.round((t-a[0]/r)*n),o=0|Math.round((e-a[1]/r)*n),s=this.pickBuffer.query(i,o,this.pickRadius);if(!s)return null;for(var l=s.id+(s.value[0]<<8)+(s.value[1]<<16)+(s.value[2]<<24),c=this.objects,u=0;u<c.length;++u){var h=c[u].pick(i,o,l);if(h)return h}return null}},c.setScreenBox=function(t){var e=this.screenBox,r=this.pixelRatio;e[0]=0|Math.round(t[0]*r),e[1]=0|Math.round(t[1]*r),e[2]=0|Math.round(t[2]*r),e[3]=0|Math.round(t[3]*r),this.setDirty()},c.setDataBox=function(t){var e=this.dataBox;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3])&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],this.setDirty())},c.setViewBox=function(t){var e=this.pixelRatio,r=this.viewBox;r[0]=0|Math.round(t[0]*e),r[1]=0|Math.round(t[1]*e),r[2]=0|Math.round(t[2]*e),r[3]=0|Math.round(t[3]*e);var n=this.pickPixelRatio;this.pickBuffer.shape=[0|Math.round((t[2]-t[0])*n),0|Math.round((t[3]-t[1])*n)],this.setDirty()},c.update=function(t){t=t||{};var e=this.gl;this.pixelRatio=t.pixelRatio||1;var r=this.pixelRatio;this.pickPixelRatio=Math.max(r,1),this.setScreenBox(t.screenBox||[0,0,e.drawingBufferWidth/r,e.drawingBufferHeight/r]);this.screenBox;this.setViewBox(t.viewBox||[.125*(this.screenBox[2]-this.screenBox[0])/r,.125*(this.screenBox[3]-this.screenBox[1])/r,.875*(this.screenBox[2]-this.screenBox[0])/r,.875*(this.screenBox[3]-this.screenBox[1])/r]);var n=this.viewBox,a=(n[2]-n[0])/(n[3]-n[1]);this.setDataBox(t.dataBox||[-10,-10/a,10,10/a]),this.borderColor=!1!==t.borderColor&&(t.borderColor||[0,0,0,0]).slice(),this.backgroundColor=(t.backgroundColor||[0,0,0,0]).slice(),this.gridLineEnable=(t.gridLineEnable||[!0,!0]).slice(),this.gridLineWidth=(t.gridLineWidth||[1,1]).slice(),this.gridLineColor=u(t.gridLineColor||[[.5,.5,.5,1],[.5,.5,.5,1]]),this.zeroLineEnable=(t.zeroLineEnable||[!0,!0]).slice(),this.zeroLineWidth=(t.zeroLineWidth||[4,4]).slice(),this.zeroLineColor=u(t.zeroLineColor||[[0,0,0,1],[0,0,0,1]]),this.tickMarkLength=(t.tickMarkLength||[0,0,0,0]).slice(),this.tickMarkWidth=(t.tickMarkWidth||[0,0,0,0]).slice(),this.tickMarkColor=u(t.tickMarkColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.titleCenter=(t.titleCenter||[.5*(n[0]+n[2])/r,(n[3]+120)/r]).slice(),this.titleEnable=!(\"titleEnable\"in t&&!t.titleEnable),this.titleAngle=t.titleAngle||0,this.titleColor=(t.titleColor||[0,0,0,1]).slice(),this.labelPad=(t.labelPad||[15,15,15,15]).slice(),this.labelAngle=(t.labelAngle||[0,Math.PI/2,0,3*Math.PI/2]).slice(),this.labelEnable=(t.labelEnable||[!0,!0,!0,!0]).slice(),this.labelColor=u(t.labelColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.tickPad=(t.tickPad||[15,15,15,15]).slice(),this.tickAngle=(t.tickAngle||[0,0,0,0]).slice(),this.tickEnable=(t.tickEnable||[!0,!0,!0,!0]).slice(),this.tickColor=u(t.tickColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]),this.borderLineEnable=(t.borderLineEnable||[!0,!0,!0,!0]).slice(),this.borderLineWidth=(t.borderLineWidth||[2,2,2,2]).slice(),this.borderLineColor=u(t.borderLineColor||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]);var i=t.ticks||[[],[]],o=this._tickBounds;o[0]=o[1]=1/0,o[2]=o[3]=-1/0;for(var s=0;s<2;++s){var l=i[s].slice(0);0!==l.length&&(l.sort(h),o[s]=Math.min(o[s],l[0].x),o[s+2]=Math.max(o[s+2],l[l.length-1].x))}this.grid.update({bounds:o,ticks:i}),this.text.update({bounds:o,ticks:i,labels:t.labels||[\"x\",\"y\"],labelSize:t.labelSize||[12,12],labelFont:t.labelFont||[\"sans-serif\",\"sans-serif\"],title:t.title||\"\",titleSize:t.titleSize||18,titleFont:t.titleFont||\"sans-serif\"}),this.static=!!t.static,this.setDirty()},c.dispose=function(){this.box.dispose(),this.grid.dispose(),this.text.dispose(),this.line.dispose();for(var t=this.objects.length-1;t>=0;--t)this.objects[t].dispose();this.objects.length=0;for(t=this.overlays.length-1;t>=0;--t)this.overlays[t].dispose();this.overlays.length=0,this.gl=null},c.addObject=function(t){this.objects.indexOf(t)<0&&(this.objects.push(t),this.setDirty())},c.removeObject=function(t){for(var e=this.objects,r=0;r<e.length;++r)if(e[r]===t){e.splice(r,1),this.setDirty();break}},c.addOverlay=function(t){this.overlays.indexOf(t)<0&&(this.overlays.push(t),this.setOverlayDirty())},c.removeOverlay=function(t){for(var e=this.overlays,r=0;r<e.length;++r)if(e[r]===t){e.splice(r,1),this.setOverlayDirty();break}}},{\"./lib/box\":283,\"./lib/grid\":284,\"./lib/line\":285,\"./lib/text\":287,\"gl-select-static\":302}],290:[function(t,e,r){\"use strict\";e.exports=function(t,e){t=t||document.body,e=e||{};var r=[.01,1/0];\"distanceLimits\"in e&&(r[0]=e.distanceLimits[0],r[1]=e.distanceLimits[1]);\"zoomMin\"in e&&(r[0]=e.zoomMin);\"zoomMax\"in e&&(r[1]=e.zoomMax);var c=a({center:e.center||[0,0,0],up:e.up||[0,1,0],eye:e.eye||[0,0,10],mode:e.mode||\"orbit\",distanceLimits:r}),u=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],h=0,f=t.clientWidth,p=t.clientHeight,d={keyBindingMode:\"rotate\",enableWheel:!0,view:c,element:t,delay:e.delay||16,rotateSpeed:e.rotateSpeed||1,zoomSpeed:e.zoomSpeed||1,translateSpeed:e.translateSpeed||1,flipX:!!e.flipX,flipY:!!e.flipY,modes:c.modes,_ortho:e._ortho||e.projection&&\"orthographic\"===e.projection.type||!1,tick:function(){var e=n(),r=this.delay,a=e-2*r;c.idle(e-r),c.recalcMatrix(a),c.flush(e-(100+2*r));for(var i=!0,o=c.computedMatrix,s=0;s<16;++s)i=i&&u[s]===o[s],u[s]=o[s];var l=t.clientWidth===f&&t.clientHeight===p;return f=t.clientWidth,p=t.clientHeight,i?!l:(h=Math.exp(c.computedRadius[0]),!0)},lookAt:function(t,e,r){c.lookAt(c.lastT(),t,e,r)},rotate:function(t,e,r){c.rotate(c.lastT(),t,e,r)},pan:function(t,e,r){c.pan(c.lastT(),t,e,r)},translate:function(t,e,r){c.translate(c.lastT(),t,e,r)}};return Object.defineProperties(d,{matrix:{get:function(){return c.computedMatrix},set:function(t){return c.setMatrix(c.lastT(),t),c.computedMatrix},enumerable:!0},mode:{get:function(){return c.getMode()},set:function(t){var e=c.computedUp.slice(),r=c.computedEye.slice(),a=c.computedCenter.slice();if(c.setMode(t),\"turntable\"===t){var i=n();c._active.lookAt(i,r,a,e),c._active.lookAt(i+500,r,a,[0,0,1]),c._active.flush(i)}return c.getMode()},enumerable:!0},center:{get:function(){return c.computedCenter},set:function(t){return c.lookAt(c.lastT(),null,t),c.computedCenter},enumerable:!0},eye:{get:function(){return c.computedEye},set:function(t){return c.lookAt(c.lastT(),t),c.computedEye},enumerable:!0},up:{get:function(){return c.computedUp},set:function(t){return c.lookAt(c.lastT(),null,null,t),c.computedUp},enumerable:!0},distance:{get:function(){return h},set:function(t){return c.setDistance(c.lastT(),t),t},enumerable:!0},distanceLimits:{get:function(){return c.getDistanceLimits(r)},set:function(t){return c.setDistanceLimits(t),t},enumerable:!0}}),t.addEventListener(\"contextmenu\",function(t){return t.preventDefault(),!1}),d._lastX=-1,d._lastY=-1,d._lastMods={shift:!1,control:!1,alt:!1,meta:!1},d.enableMouseListeners=function(){function e(e,r,a,i){var o=d.keyBindingMode;if(!1!==o){var s=\"rotate\"===o,l=\"pan\"===o,u=\"zoom\"===o,f=!!i.control,p=!!i.alt,g=!!i.shift,v=!!(1&e),m=!!(2&e),y=!!(4&e),x=1/t.clientHeight,b=x*(r-d._lastX),_=x*(a-d._lastY),w=d.flipX?1:-1,k=d.flipY?1:-1,T=Math.PI*d.rotateSpeed,A=n();if(-1!==d._lastX&&-1!==d._lastY&&((s&&v&&!f&&!p&&!g||v&&!f&&!p&&g)&&c.rotate(A,w*T*b,-k*T*_,0),(l&&v&&!f&&!p&&!g||m||v&&f&&!p&&!g)&&c.pan(A,-d.translateSpeed*b*h,d.translateSpeed*_*h,0),u&&v&&!f&&!p&&!g||y||v&&!f&&p&&!g)){var M=-d.zoomSpeed*_/window.innerHeight*(A-c.lastT())*100;c.pan(A,0,0,h*(Math.exp(M)-1))}return d._lastX=r,d._lastY=a,d._lastMods=i,!0}}d.mouseListener=i(t,e),t.addEventListener(\"touchstart\",function(r){var n=s(r.changedTouches[0],t);e(0,n[0],n[1],d._lastMods),e(1,n[0],n[1],d._lastMods),r.preventDefault()},!!l&&{passive:!1}),t.addEventListener(\"touchmove\",function(r){var n=s(r.changedTouches[0],t);e(1,n[0],n[1],d._lastMods),r.preventDefault()},!!l&&{passive:!1}),t.addEventListener(\"touchend\",function(t){e(0,d._lastX,d._lastY,d._lastMods),t.preventDefault()},!!l&&{passive:!1}),d.wheelListener=o(t,function(t,e){if(!1!==d.keyBindingMode&&d.enableWheel){var r=d.flipX?1:-1,a=d.flipY?1:-1,i=n();if(Math.abs(t)>Math.abs(e))c.rotate(i,0,0,-t*r*Math.PI*d.rotateSpeed/window.innerWidth);else if(!d._ortho){var o=-d.zoomSpeed*a*e/window.innerHeight*(i-c.lastT())/20;c.pan(i,0,0,h*(Math.exp(o)-1))}}},!0)},d.enableMouseListeners(),d};var n=t(\"right-now\"),a=t(\"3d-view\"),i=t(\"mouse-change\"),o=t(\"mouse-wheel\"),s=t(\"mouse-event-offset\"),l=t(\"has-passive-events\")},{\"3d-view\":54,\"has-passive-events\":412,\"mouse-change\":436,\"mouse-event-offset\":437,\"mouse-wheel\":439,\"right-now\":502}],291:[function(t,e,r){var n=t(\"glslify\"),a=t(\"gl-shader\"),i=n([\"precision mediump float;\\n#define GLSLIFY 1\\nattribute vec2 position;\\nvarying vec2 uv;\\nvoid main() {\\n uv = position;\\n gl_Position = vec4(position, 0, 1);\\n}\"]),o=n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D accumBuffer;\\nvarying vec2 uv;\\n\\nvoid main() {\\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\\n gl_FragColor = min(vec4(1,1,1,1), accum);\\n}\"]);e.exports=function(t){return a(t,i,o,null,[{name:\"position\",type:\"vec2\"}])}},{\"gl-shader\":303,glslify:410}],292:[function(t,e,r){\"use strict\";var n=t(\"./camera.js\"),a=t(\"gl-axes3d\"),i=t(\"gl-axes3d/properties\"),o=t(\"gl-spikes3d\"),s=t(\"gl-select-static\"),l=t(\"gl-fbo\"),c=t(\"a-big-triangle\"),u=t(\"mouse-change\"),h=t(\"gl-mat4/perspective\"),f=t(\"gl-mat4/ortho\"),p=t(\"./lib/shader\"),d=t(\"is-mobile\")({tablet:!0});function g(){this.mouse=[-1,-1],this.screen=null,this.distance=1/0,this.index=null,this.dataCoordinate=null,this.dataPosition=null,this.object=null,this.data=null}function v(t){var e=Math.round(Math.log(Math.abs(t))/Math.log(10));if(e<0){var r=Math.round(Math.pow(10,-e));return Math.ceil(t*r)/r}if(e>0){r=Math.round(Math.pow(10,e));return Math.ceil(t/r)*r}return Math.ceil(t)}function m(t){return\"boolean\"!=typeof t||t}e.exports={createScene:function(t){(t=t||{}).camera=t.camera||{};var e=t.canvas;if(!e)if(e=document.createElement(\"canvas\"),t.container){var r=t.container;r.appendChild(e)}else document.body.appendChild(e);var y=t.gl;y||(y=function(t,e){var r=null;try{(r=t.getContext(\"webgl\",e))||(r=t.getContext(\"experimental-webgl\",e))}catch(t){return null}return r}(e,t.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:d}));if(!y)throw new Error(\"webgl not supported\");var x=t.bounds||[[-10,-10,-10],[10,10,10]],b=new g,_=l(y,[y.drawingBufferWidth,y.drawingBufferHeight],{preferFloat:!d}),w=p(y),k=t.cameraObject&&!0===t.cameraObject._ortho||t.camera.projection&&\"orthographic\"===t.camera.projection.type||!1,T={eye:t.camera.eye||[2,0,0],center:t.camera.center||[0,0,0],up:t.camera.up||[0,1,0],zoomMin:t.camera.zoomMax||.1,zoomMax:t.camera.zoomMin||100,mode:t.camera.mode||\"turntable\",_ortho:k},A=t.axes||{},M=a(y,A);M.enable=!A.disable;var S=t.spikes||{},E=o(y,S),C=[],L=[],P=[],O=[],z=!0,I=!0,D=new Array(16),R=new Array(16),F={view:null,projection:D,model:R,_ortho:!1},I=!0,B=[y.drawingBufferWidth,y.drawingBufferHeight],N=t.cameraObject||n(e,T),j={gl:y,contextLost:!1,pixelRatio:t.pixelRatio||1,canvas:e,selection:b,camera:N,axes:M,axesPixels:null,spikes:E,bounds:x,objects:C,shape:B,aspect:t.aspectRatio||[1,1,1],pickRadius:t.pickRadius||10,zNear:t.zNear||.01,zFar:t.zFar||1e3,fovy:t.fovy||Math.PI/4,clearColor:t.clearColor||[0,0,0,0],autoResize:m(t.autoResize),autoBounds:m(t.autoBounds),autoScale:!!t.autoScale,autoCenter:m(t.autoCenter),clipToBounds:m(t.clipToBounds),snapToData:!!t.snapToData,onselect:t.onselect||null,onrender:t.onrender||null,onclick:t.onclick||null,cameraParams:F,oncontextloss:null,mouseListener:null,_stopped:!1,getAspectratio:function(){return{x:this.aspect[0],y:this.aspect[1],z:this.aspect[2]}},setAspectratio:function(t){this.aspect[0]=t.x,this.aspect[1]=t.y,this.aspect[2]=t.z}},V=[y.drawingBufferWidth/j.pixelRatio|0,y.drawingBufferHeight/j.pixelRatio|0];function U(){if(!j._stopped&&j.autoResize){var t=e.parentNode,r=1,n=1;t&&t!==document.body?(r=t.clientWidth,n=t.clientHeight):(r=window.innerWidth,n=window.innerHeight);var a=0|Math.ceil(r*j.pixelRatio),i=0|Math.ceil(n*j.pixelRatio);if(a!==e.width||i!==e.height){e.width=a,e.height=i;var o=e.style;o.position=o.position||\"absolute\",o.left=\"0px\",o.top=\"0px\",o.width=r+\"px\",o.height=n+\"px\",z=!0}}}j.autoResize&&U();function q(){for(var t=C.length,e=O.length,r=0;r<e;++r)P[r]=0;t:for(var r=0;r<t;++r){var n=C[r],a=n.pickSlots;if(a){for(var i=0;i<e;++i)if(P[i]+a<255){L[r]=i,n.setPickBase(P[i]+1),P[i]+=a;continue t}var o=s(y,B);L[r]=e,O.push(o),P.push(a),n.setPickBase(1),e+=1}else L[r]=-1}for(;e>0&&0===P[e-1];)P.pop(),O.pop().dispose()}function H(){if(j.contextLost)return!0;y.isContextLost()&&(j.contextLost=!0,j.mouseListener.enabled=!1,j.selection.object=null,j.oncontextloss&&j.oncontextloss())}window.addEventListener(\"resize\",U),j.update=function(t){j._stopped||(t=t||{},z=!0,I=!0)},j.add=function(t){j._stopped||(t.axes=M,C.push(t),L.push(-1),z=!0,I=!0,q())},j.remove=function(t){if(!j._stopped){var e=C.indexOf(t);e<0||(C.splice(e,1),L.pop(),z=!0,I=!0,q())}},j.dispose=function(){if(!j._stopped&&(j._stopped=!0,window.removeEventListener(\"resize\",U),e.removeEventListener(\"webglcontextlost\",H),j.mouseListener.enabled=!1,!j.contextLost)){M.dispose(),E.dispose();for(var t=0;t<C.length;++t)C[t].dispose();_.dispose();for(var t=0;t<O.length;++t)O[t].dispose();w.dispose(),y=null,M=null,E=null,C=[]}},j._mouseRotating=!1,j._prevButtons=0,j.enableMouseListeners=function(){j.mouseListener=u(e,function(t,e,r){if(!j._stopped){var n=O.length,a=C.length,i=b.object;b.distance=1/0,b.mouse[0]=e,b.mouse[1]=r,b.object=null,b.screen=null,b.dataCoordinate=b.dataPosition=null;var o=!1;if(t&&j._prevButtons)j._mouseRotating=!0;else{j._mouseRotating&&(I=!0),j._mouseRotating=!1;for(var s=0;s<n;++s){var l=O[s].query(e,V[1]-r-1,j.pickRadius);if(l){if(l.distance>b.distance)continue;for(var c=0;c<a;++c){var u=C[c];if(L[c]===s){var h=u.pick(l);h&&(b.buttons=t,b.screen=l.coord,b.distance=l.distance,b.object=u,b.index=h.distance,b.dataPosition=h.position,b.dataCoordinate=h.dataCoordinate,b.data=h,o=!0)}}}}}i&&i!==b.object&&(i.highlight&&i.highlight(null),z=!0),b.object&&(b.object.highlight&&b.object.highlight(b.data),z=!0),(o=o||b.object!==i)&&j.onselect&&j.onselect(b),1&t&&!(1&j._prevButtons)&&j.onclick&&j.onclick(b),j._prevButtons=t}})},e.addEventListener(\"webglcontextlost\",H);var G=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],Y=[G[0].slice(),G[1].slice()];function W(){if(!H()){U();var t=j.camera.tick();F.view=j.camera.matrix,z=z||t,I=I||t,M.pixelRatio=j.pixelRatio,E.pixelRatio=j.pixelRatio;var e=C.length,r=G[0],n=G[1];r[0]=r[1]=r[2]=1/0,n[0]=n[1]=n[2]=-1/0;for(var a=0;a<e;++a){var o=C[a];o.pixelRatio=j.pixelRatio,o.axes=j.axes,z=z||!!o.dirty,I=I||!!o.dirty;var s=o.bounds;if(s)for(var l=s[0],u=s[1],p=0;p<3;++p)r[p]=Math.min(r[p],l[p]),n[p]=Math.max(n[p],u[p])}var d=j.bounds;if(j.autoBounds)for(var p=0;p<3;++p){if(n[p]<r[p])r[p]=-1,n[p]=1;else{r[p]===n[p]&&(r[p]-=1,n[p]+=1);var g=.05*(n[p]-r[p]);r[p]=r[p]-g,n[p]=n[p]+g}d[0][p]=r[p],d[1][p]=n[p]}for(var m=!1,p=0;p<3;++p)m=m||Y[0][p]!==d[0][p]||Y[1][p]!==d[1][p],Y[0][p]=d[0][p],Y[1][p]=d[1][p];if(I=I||m,z=z||m){if(m){for(var x=[0,0,0],a=0;a<3;++a)x[a]=v((d[1][a]-d[0][a])/10);M.autoTicks?M.update({bounds:d,tickSpacing:x}):M.update({bounds:d})}var T=y.drawingBufferWidth,A=y.drawingBufferHeight;B[0]=T,B[1]=A,V[0]=0|Math.max(T/j.pixelRatio,1),V[1]=0|Math.max(A/j.pixelRatio,1),k?(f(D,-T/A,T/A,-1,1,j.zNear,j.zFar),F._ortho=!0):(h(D,j.fovy,T/A,j.zNear,j.zFar),F._ortho=!1);for(var a=0;a<16;++a)R[a]=0;R[15]=1;for(var S=0,a=0;a<3;++a)S=Math.max(S,d[1][a]-d[0][a]);for(var a=0;a<3;++a)j.autoScale?R[5*a]=j.aspect[a]/(d[1][a]-d[0][a]):R[5*a]=1/S,j.autoCenter&&(R[12+a]=.5*-R[5*a]*(d[0][a]+d[1][a]));for(var a=0;a<e;++a){var o=C[a];o.axesBounds=d,j.clipToBounds&&(o.clipBounds=d)}b.object&&(j.snapToData?E.position=b.dataCoordinate:E.position=b.dataPosition,E.bounds=d),I&&(I=!1,function(){if(H())return;y.colorMask(!0,!0,!0,!0),y.depthMask(!0),y.disable(y.BLEND),y.enable(y.DEPTH_TEST),y.depthFunc(y.LEQUAL);for(var t=C.length,e=O.length,r=0;r<e;++r){var n=O[r];n.shape=V,n.begin();for(var a=0;a<t;++a)if(L[a]===r){var i=C[a];i.drawPick&&(i.pixelRatio=1,i.drawPick(F))}n.end()}}()),j.axesPixels=i(j.axes,F,T,A),j.onrender&&j.onrender(),y.bindFramebuffer(y.FRAMEBUFFER,null),y.viewport(0,0,T,A);var P=j.clearColor;y.clearColor(P[0],P[1],P[2],P[3]),y.clear(y.COLOR_BUFFER_BIT|y.DEPTH_BUFFER_BIT),y.depthMask(!0),y.colorMask(!0,!0,!0,!0),y.enable(y.DEPTH_TEST),y.depthFunc(y.LEQUAL),y.disable(y.BLEND),y.disable(y.CULL_FACE);var N=!1;M.enable&&(N=N||M.isTransparent(),M.draw(F)),E.axes=M,b.object&&E.draw(F),y.disable(y.CULL_FACE);for(var a=0;a<e;++a){var o=C[a];o.axes=M,o.pixelRatio=j.pixelRatio,o.isOpaque&&o.isOpaque()&&o.draw(F),o.isTransparent&&o.isTransparent()&&(N=!0)}if(N){_.shape=B,_.bind(),y.clear(y.DEPTH_BUFFER_BIT),y.colorMask(!1,!1,!1,!1),y.depthMask(!0),y.depthFunc(y.LESS),M.enable&&M.isTransparent()&&M.drawTransparent(F);for(var a=0;a<e;++a){var o=C[a];o.isOpaque&&o.isOpaque()&&o.draw(F)}y.enable(y.BLEND),y.blendEquation(y.FUNC_ADD),y.blendFunc(y.ONE,y.ONE_MINUS_SRC_ALPHA),y.colorMask(!0,!0,!0,!0),y.depthMask(!1),y.clearColor(0,0,0,0),y.clear(y.COLOR_BUFFER_BIT),M.isTransparent()&&M.drawTransparent(F);for(var a=0;a<e;++a){var o=C[a];o.isTransparent&&o.isTransparent()&&o.drawTransparent(F)}y.bindFramebuffer(y.FRAMEBUFFER,null),y.blendFunc(y.ONE,y.ONE_MINUS_SRC_ALPHA),y.disable(y.DEPTH_TEST),w.bind(),_.color[0].bind(0),w.uniforms.accumBuffer=0,c(y),y.disable(y.BLEND)}z=!1;for(var a=0;a<e;++a)C[a].dirty=!1}}}return j.enableMouseListeners(),function t(){j._stopped||j.contextLost||(W(),requestAnimationFrame(t))}(),j.redraw=function(){j._stopped||(z=!0,W())},j},createCamera:n}},{\"./camera.js\":290,\"./lib/shader\":291,\"a-big-triangle\":61,\"gl-axes3d\":235,\"gl-axes3d/properties\":242,\"gl-fbo\":251,\"gl-mat4/ortho\":270,\"gl-mat4/perspective\":271,\"gl-select-static\":302,\"gl-spikes3d\":312,\"is-mobile\":421,\"mouse-change\":436}],293:[function(t,e,r){var n=t(\"glslify\");r.pointVertex=n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 position;\\n\\nuniform mat3 matrix;\\nuniform float pointSize;\\nuniform float pointCloud;\\n\\nhighp float rand(vec2 co) {\\n highp float a = 12.9898;\\n highp float b = 78.233;\\n highp float c = 43758.5453;\\n highp float d = dot(co.xy, vec2(a, b));\\n highp float e = mod(d, 3.14);\\n return fract(sin(e) * c);\\n}\\n\\nvoid main() {\\n vec3 hgPosition = matrix * vec3(position, 1);\\n gl_Position = vec4(hgPosition.xy, 0, hgPosition.z);\\n // if we don't jitter the point size a bit, overall point cloud\\n // saturation 'jumps' on zooming, which is disturbing and confusing\\n gl_PointSize = pointSize * ((19.5 + rand(position)) / 20.0);\\n if(pointCloud != 0.0) { // pointCloud is truthy\\n // get the same square surface as circle would be\\n gl_PointSize *= 0.886;\\n }\\n}\"]),r.pointFragment=n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nuniform vec4 color, borderColor;\\nuniform float centerFraction;\\nuniform float pointCloud;\\n\\nvoid main() {\\n float radius;\\n vec4 baseColor;\\n if(pointCloud != 0.0) { // pointCloud is truthy\\n if(centerFraction == 1.0) {\\n gl_FragColor = color;\\n } else {\\n gl_FragColor = mix(borderColor, color, centerFraction);\\n }\\n } else {\\n radius = length(2.0 * gl_PointCoord.xy - 1.0);\\n if(radius > 1.0) {\\n discard;\\n }\\n baseColor = mix(borderColor, color, step(radius, centerFraction));\\n gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a);\\n }\\n}\\n\"]),r.pickVertex=n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 position;\\nattribute vec4 pickId;\\n\\nuniform mat3 matrix;\\nuniform float pointSize;\\nuniform vec4 pickOffset;\\n\\nvarying vec4 fragId;\\n\\nvoid main() {\\n vec3 hgPosition = matrix * vec3(position, 1);\\n gl_Position = vec4(hgPosition.xy, 0, hgPosition.z);\\n gl_PointSize = pointSize;\\n\\n vec4 id = pickId + pickOffset;\\n id.y += floor(id.x / 256.0);\\n id.x -= floor(id.x / 256.0) * 256.0;\\n\\n id.z += floor(id.y / 256.0);\\n id.y -= floor(id.y / 256.0) * 256.0;\\n\\n id.w += floor(id.z / 256.0);\\n id.z -= floor(id.z / 256.0) * 256.0;\\n\\n fragId = id;\\n}\\n\"]),r.pickFragment=n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragId;\\n\\nvoid main() {\\n float radius = length(2.0 * gl_PointCoord.xy - 1.0);\\n if(radius > 1.0) {\\n discard;\\n }\\n gl_FragColor = fragId / 255.0;\\n}\\n\"])},{glslify:410}],294:[function(t,e,r){\"use strict\";var n=t(\"gl-shader\"),a=t(\"gl-buffer\"),i=t(\"typedarray-pool\"),o=t(\"./lib/shader\");function s(t,e,r,n,a){this.plot=t,this.offsetBuffer=e,this.pickBuffer=r,this.shader=n,this.pickShader=a,this.sizeMin=.5,this.sizeMinCap=2,this.sizeMax=20,this.areaRatio=1,this.pointCount=0,this.color=[1,0,0,1],this.borderColor=[0,0,0,1],this.blend=!1,this.pickOffset=0,this.points=null}e.exports=function(t,e){var r=t.gl,i=a(r),l=a(r),c=n(r,o.pointVertex,o.pointFragment),u=n(r,o.pickVertex,o.pickFragment),h=new s(t,i,l,c,u);return h.update(e),t.addObject(h),h};var l,c,u=s.prototype;u.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},u.update=function(t){var e;function r(e,r){return e in t?t[e]:r}t=t||{},this.sizeMin=r(\"sizeMin\",.5),this.sizeMax=r(\"sizeMax\",20),this.color=r(\"color\",[1,0,0,1]).slice(),this.areaRatio=r(\"areaRatio\",1),this.borderColor=r(\"borderColor\",[0,0,0,1]).slice(),this.blend=r(\"blend\",!1);var n=t.positions.length>>>1,a=t.positions instanceof Float32Array,o=t.idToIndex instanceof Int32Array&&t.idToIndex.length>=n,s=t.positions,l=a?s:i.mallocFloat32(s.length),c=o?t.idToIndex:i.mallocInt32(n);if(a||l.set(s),!o)for(l.set(s),e=0;e<n;e++)c[e]=e;this.points=s,this.offsetBuffer.update(l),this.pickBuffer.update(c),a||i.free(l),o||i.free(c),this.pointCount=n,this.pickOffset=0},u.unifiedDraw=(l=[1,0,0,0,1,0,0,0,1],c=[0,0,0,0],function(t){var e=void 0!==t,r=e?this.pickShader:this.shader,n=this.plot.gl,a=this.plot.dataBox;if(0===this.pointCount)return t;var i=a[2]-a[0],o=a[3]-a[1],s=function(t,e){var r,n=0,a=t.length>>>1;for(r=0;r<a;r++){var i=t[2*r],o=t[2*r+1];i>=e[0]&&i<=e[2]&&o>=e[1]&&o<=e[3]&&n++}return n}(this.points,a),u=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(s,.33333)));l[0]=2/i,l[4]=2/o,l[6]=-2*a[0]/i-1,l[7]=-2*a[1]/o-1,this.offsetBuffer.bind(),r.bind(),r.attributes.position.pointer(),r.uniforms.matrix=l,r.uniforms.color=this.color,r.uniforms.borderColor=this.borderColor,r.uniforms.pointCloud=u<5,r.uniforms.pointSize=u,r.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),e&&(c[0]=255&t,c[1]=t>>8&255,c[2]=t>>16&255,c[3]=t>>24&255,this.pickBuffer.bind(),r.attributes.pickId.pointer(n.UNSIGNED_BYTE),r.uniforms.pickOffset=c,this.pickOffset=t);var h=n.getParameter(n.BLEND),f=n.getParameter(n.DITHER);return h&&!this.blend&&n.disable(n.BLEND),f&&n.disable(n.DITHER),n.drawArrays(n.POINTS,0,this.pointCount),h&&!this.blend&&n.enable(n.BLEND),f&&n.enable(n.DITHER),t+this.pointCount}),u.draw=u.unifiedDraw,u.drawPick=u.unifiedDraw,u.pick=function(t,e,r){var n=this.pickOffset,a=this.pointCount;if(r<n||r>=n+a)return null;var i=r-n,o=this.points;return{object:this,pointId:i,dataCoord:[o[2*i],o[2*i+1]]}}},{\"./lib/shader\":293,\"gl-buffer\":243,\"gl-shader\":303,\"typedarray-pool\":543}],295:[function(t,e,r){e.exports=function(t,e,r,n){var a,i,o,s,l,c=e[0],u=e[1],h=e[2],f=e[3],p=r[0],d=r[1],g=r[2],v=r[3];(i=c*p+u*d+h*g+f*v)<0&&(i=-i,p=-p,d=-d,g=-g,v=-v);1-i>1e-6?(a=Math.acos(i),o=Math.sin(a),s=Math.sin((1-n)*a)/o,l=Math.sin(n*a)/o):(s=1-n,l=n);return t[0]=s*c+l*p,t[1]=s*u+l*d,t[2]=s*h+l*g,t[3]=s*f+l*v,t}},{}],296:[function(t,e,r){\"use strict\";e.exports=function(t){return t||0===t?t.toString():\"\"}},{}],297:[function(t,e,r){\"use strict\";var n=t(\"vectorize-text\");e.exports=function(t,e,r){var i=a[e];i||(i=a[e]={});if(t in i)return i[t];var o={textAlign:\"center\",textBaseline:\"middle\",lineHeight:1,font:e,lineSpacing:1.25,styletags:{breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},triangles:!0},s=n(t,o);o.triangles=!1;var l,c,u=n(t,o);if(r&&1!==r){for(l=0;l<s.positions.length;++l)for(c=0;c<s.positions[l].length;++c)s.positions[l][c]/=r;for(l=0;l<u.positions.length;++l)for(c=0;c<u.positions[l].length;++c)u.positions[l][c]/=r}var h=[[1/0,1/0],[-1/0,-1/0]],f=u.positions.length;for(l=0;l<f;++l){var p=u.positions[l];for(c=0;c<2;++c)h[0][c]=Math.min(h[0][c],p[c]),h[1][c]=Math.max(h[1][c],p[c])}return i[t]=[s,u,h]};var a={}},{\"vectorize-text\":548}],298:[function(t,e,r){var n=t(\"gl-shader\"),a=t(\"glslify\"),i=a([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform vec4 highlightId;\\nuniform float highlightScale;\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = 1.0;\\n if(distance(highlightId, id) < 0.0001) {\\n scale = highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1);\\n vec4 viewPosition = view * worldPosition;\\n viewPosition = viewPosition / viewPosition.w;\\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"]),o=a([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float highlightScale, pixelRatio;\\nuniform vec4 highlightId;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = pixelRatio;\\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\\n scale *= highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1.0);\\n vec4 viewPosition = view * worldPosition;\\n vec4 clipPosition = projection * viewPosition;\\n clipPosition /= clipPosition.w;\\n\\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"]),s=a([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform float highlightScale;\\nuniform vec4 highlightId;\\nuniform vec3 axes[2];\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float scale, pixelRatio;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float lscale = pixelRatio * scale;\\n if(distance(highlightId, id) < 0.0001) {\\n lscale *= highlightScale;\\n }\\n\\n vec4 clipCenter = projection * view * model * vec4(position, 1);\\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\\n vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = dataPosition;\\n }\\n}\\n\"]),l=a([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float opacity;\\n\\nvarying vec4 interpColor;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (\\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\\n interpColor.a * opacity == 0.\\n ) discard;\\n gl_FragColor = interpColor * opacity;\\n}\\n\"]),c=a([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float pickGroup;\\n\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\\n\\n gl_FragColor = vec4(pickGroup, pickId.bgr);\\n}\"]),u=[{name:\"position\",type:\"vec3\"},{name:\"color\",type:\"vec4\"},{name:\"glyph\",type:\"vec2\"},{name:\"id\",type:\"vec4\"}],h={vertex:i,fragment:l,attributes:u},f={vertex:o,fragment:l,attributes:u},p={vertex:s,fragment:l,attributes:u},d={vertex:i,fragment:c,attributes:u},g={vertex:o,fragment:c,attributes:u},v={vertex:s,fragment:c,attributes:u};function m(t,e){var r=n(t,e),a=r.attributes;return a.position.location=0,a.color.location=1,a.glyph.location=2,a.id.location=3,r}r.createPerspective=function(t){return m(t,h)},r.createOrtho=function(t){return m(t,f)},r.createProject=function(t){return m(t,p)},r.createPickPerspective=function(t){return m(t,d)},r.createPickOrtho=function(t){return m(t,g)},r.createPickProject=function(t){return m(t,v)}},{\"gl-shader\":303,glslify:410}],299:[function(t,e,r){\"use strict\";var n=t(\"is-string-blank\"),a=t(\"gl-buffer\"),i=t(\"gl-vao\"),o=t(\"typedarray-pool\"),s=t(\"gl-mat4/multiply\"),l=t(\"./lib/shaders\"),c=t(\"./lib/glyphs\"),u=t(\"./lib/get-simple-string\"),h=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function f(t,e){var r=t[0],n=t[1],a=t[2],i=t[3];return t[0]=e[0]*r+e[4]*n+e[8]*a+e[12]*i,t[1]=e[1]*r+e[5]*n+e[9]*a+e[13]*i,t[2]=e[2]*r+e[6]*n+e[10]*a+e[14]*i,t[3]=e[3]*r+e[7]*n+e[11]*a+e[15]*i,t}function p(t,e,r,n){return f(n,n),f(n,n),f(n,n)}function d(t,e){this.index=t,this.dataCoordinate=this.position=e}function g(t){return!0===t?1:t>1?1:t}function v(t,e,r,n,a,i,o,s,l,c,u,h){this.gl=t,this.pixelRatio=1,this.shader=e,this.orthoShader=r,this.projectShader=n,this.pointBuffer=a,this.colorBuffer=i,this.glyphBuffer=o,this.idBuffer=s,this.vao=l,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.hasAlpha=!1,this.lineWidth=0,this.projectScale=[2/3,2/3,2/3],this.projectOpacity=[1,1,1],this.projectHasAlpha=!1,this.pickId=0,this.pickPerspectiveShader=c,this.pickOrthoShader=u,this.pickProjectShader=h,this.points=[],this._selectResult=new d(0,[0,0,0]),this.useOrtho=!0,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.axesProject=[!0,!0,!0],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.highlightId=[1,1,1,1],this.highlightScale=2,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.dirty=!0}e.exports=function(t){var e=t.gl,r=l.createPerspective(e),n=l.createOrtho(e),o=l.createProject(e),s=l.createPickPerspective(e),c=l.createPickOrtho(e),u=l.createPickProject(e),h=a(e),f=a(e),p=a(e),d=a(e),g=i(e,[{buffer:h,size:3,type:e.FLOAT},{buffer:f,size:4,type:e.FLOAT},{buffer:p,size:2,type:e.FLOAT},{buffer:d,size:4,type:e.UNSIGNED_BYTE,normalized:!0}]),m=new v(e,r,n,o,h,f,p,d,g,s,c,u);return m.update(t),m};var m=v.prototype;m.pickSlots=1,m.setPickBase=function(t){this.pickId=t},m.isTransparent=function(){if(this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectHasAlpha)return!0;return!1},m.isOpaque=function(){if(!this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&!this.projectHasAlpha)return!0;return!1};var y=[0,0],x=[0,0,0],b=[0,0,0],_=[0,0,0,1],w=[0,0,0,1],k=h.slice(),T=[0,0,0],A=[[0,0,0],[0,0,0]];function M(t){return t[0]=t[1]=t[2]=0,t}function S(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t}function E(t,e,r,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[r]=n,t}function C(t,e,r,n){var a,i=e.axesProject,o=e.gl,l=t.uniforms,c=r.model||h,u=r.view||h,f=r.projection||h,d=e.axesBounds,g=function(t){for(var e=A,r=0;r<2;++r)for(var n=0;n<3;++n)e[r][n]=Math.max(Math.min(t[r][n],1e8),-1e8);return e}(e.clipBounds);a=e.axes&&e.axes.lastCubeProps?e.axes.lastCubeProps.axis:[1,1,1],y[0]=2/o.drawingBufferWidth,y[1]=2/o.drawingBufferHeight,t.bind(),l.view=u,l.projection=f,l.screenSize=y,l.highlightId=e.highlightId,l.highlightScale=e.highlightScale,l.clipBounds=g,l.pickGroup=e.pickId/255,l.pixelRatio=n;for(var v=0;v<3;++v)if(i[v]){l.scale=e.projectScale[v],l.opacity=e.projectOpacity[v];for(var m=k,C=0;C<16;++C)m[C]=0;for(C=0;C<4;++C)m[5*C]=1;m[5*v]=0,a[v]<0?m[12+v]=d[0][v]:m[12+v]=d[1][v],s(m,c,m),l.model=m;var L=(v+1)%3,P=(v+2)%3,O=M(x),z=M(b);O[L]=1,z[P]=1;var I=p(0,0,0,S(_,O)),D=p(0,0,0,S(w,z));if(Math.abs(I[1])>Math.abs(D[1])){var R=I;I=D,D=R,R=O,O=z,z=R;var F=L;L=P,P=F}I[0]<0&&(O[L]=-1),D[1]>0&&(z[P]=-1);var B=0,N=0;for(C=0;C<4;++C)B+=Math.pow(c[4*L+C],2),N+=Math.pow(c[4*P+C],2);O[L]/=Math.sqrt(B),z[P]/=Math.sqrt(N),l.axes[0]=O,l.axes[1]=z,l.fragClipBounds[0]=E(T,g[0],v,-1e8),l.fragClipBounds[1]=E(T,g[1],v,1e8),e.vao.bind(),e.vao.draw(o.TRIANGLES,e.vertexCount),e.lineWidth>0&&(o.lineWidth(e.lineWidth*n),e.vao.draw(o.LINES,e.lineVertexCount,e.vertexCount)),e.vao.unbind()}}var L=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function P(t,e,r,n,a,i,o){var s=r.gl;if((i===r.projectHasAlpha||o)&&C(e,r,n,a),i===r.hasAlpha||o){t.bind();var l=t.uniforms;l.model=n.model||h,l.view=n.view||h,l.projection=n.projection||h,y[0]=2/s.drawingBufferWidth,y[1]=2/s.drawingBufferHeight,l.screenSize=y,l.highlightId=r.highlightId,l.highlightScale=r.highlightScale,l.fragClipBounds=L,l.clipBounds=r.axes.bounds,l.opacity=r.opacity,l.pickGroup=r.pickId/255,l.pixelRatio=a,r.vao.bind(),r.vao.draw(s.TRIANGLES,r.vertexCount),r.lineWidth>0&&(s.lineWidth(r.lineWidth*a),r.vao.draw(s.LINES,r.lineVertexCount,r.vertexCount)),r.vao.unbind()}}function O(t,e,r,a){var i;i=Array.isArray(t)?e<t.length?t[e]:void 0:t,i=u(i);var o=!0;n(i)&&(i=\"\\u25bc\",o=!1);var s=c(i,r,a);return{mesh:s[0],lines:s[1],bounds:s[2],visible:o}}m.draw=function(t){P(this.useOrtho?this.orthoShader:this.shader,this.projectShader,this,t,this.pixelRatio,!1,!1)},m.drawTransparent=function(t){P(this.useOrtho?this.orthoShader:this.shader,this.projectShader,this,t,this.pixelRatio,!0,!1)},m.drawPick=function(t){P(this.useOrtho?this.pickOrthoShader:this.pickPerspectiveShader,this.pickProjectShader,this,t,1,!0,!0)},m.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[2]+(t.value[1]<<8)+(t.value[0]<<16);if(e>=this.pointCount||e<0)return null;var r=this.points[e],n=this._selectResult;n.index=e;for(var a=0;a<3;++a)n.position[a]=n.dataCoordinate[a]=r[a];return n},m.highlight=function(t){if(t){var e=t.index,r=255&e,n=e>>8&255,a=e>>16&255;this.highlightId=[r/255,n/255,a/255,0]}else this.highlightId=[1,1,1,1]},m.update=function(t){if(\"perspective\"in(t=t||{})&&(this.useOrtho=!t.perspective),\"orthographic\"in t&&(this.useOrtho=!!t.orthographic),\"lineWidth\"in t&&(this.lineWidth=t.lineWidth),\"project\"in t)if(Array.isArray(t.project))this.axesProject=t.project;else{var e=!!t.project;this.axesProject=[e,e,e]}if(\"projectScale\"in t)if(Array.isArray(t.projectScale))this.projectScale=t.projectScale.slice();else{var r=+t.projectScale;this.projectScale=[r,r,r]}if(this.projectHasAlpha=!1,\"projectOpacity\"in t){if(Array.isArray(t.projectOpacity))this.projectOpacity=t.projectOpacity.slice();else{r=+t.projectOpacity;this.projectOpacity=[r,r,r]}for(var n=0;n<3;++n)this.projectOpacity[n]=g(this.projectOpacity[n]),this.projectOpacity[n]<1&&(this.projectHasAlpha=!0)}this.hasAlpha=!1,\"opacity\"in t&&(this.opacity=g(t.opacity),this.opacity<1&&(this.hasAlpha=!0)),this.dirty=!0;var a,i,s=t.position,l=t.font||\"normal\",c=t.alignment||[0,0];if(2===c.length)a=c[0],i=c[1];else{a=[],i=[];for(n=0;n<c.length;++n)a[n]=c[n][0],i[n]=c[n][1]}var u=[1/0,1/0,1/0],h=[-1/0,-1/0,-1/0],f=t.glyph,p=t.color,d=t.size,v=t.angle,m=t.lineColor,y=-1,x=0,b=0,_=0;if(s.length){_=s.length;t:for(n=0;n<_;++n){for(var w=s[n],k=0;k<3;++k)if(isNaN(w[k])||!isFinite(w[k]))continue t;var T=(N=O(f,n,l,this.pixelRatio)).mesh,A=N.lines,M=N.bounds;x+=3*T.cells.length,b+=2*A.edges.length}}var S=x+b,E=o.mallocFloat(3*S),C=o.mallocFloat(4*S),L=o.mallocFloat(2*S),P=o.mallocUint32(S);if(S>0){var z=0,I=x,D=[0,0,0,1],R=[0,0,0,1],F=Array.isArray(p)&&Array.isArray(p[0]),B=Array.isArray(m)&&Array.isArray(m[0]);t:for(n=0;n<_;++n){y+=1;for(w=s[n],k=0;k<3;++k){if(isNaN(w[k])||!isFinite(w[k]))continue t;h[k]=Math.max(h[k],w[k]),u[k]=Math.min(u[k],w[k])}T=(N=O(f,n,l,this.pixelRatio)).mesh,A=N.lines,M=N.bounds;var N,j=N.visible;if(j)if(Array.isArray(p)){if(3===(V=F?n<p.length?p[n]:[0,0,0,0]:p).length){for(k=0;k<3;++k)D[k]=V[k];D[3]=1}else if(4===V.length){for(k=0;k<4;++k)D[k]=V[k];!this.hasAlpha&&V[3]<1&&(this.hasAlpha=!0)}}else D[0]=D[1]=D[2]=0,D[3]=1;else D=[1,1,1,0];if(j)if(Array.isArray(m)){var V;if(3===(V=B?n<m.length?m[n]:[0,0,0,0]:m).length){for(k=0;k<3;++k)R[k]=V[k];R[k]=1}else if(4===V.length){for(k=0;k<4;++k)R[k]=V[k];!this.hasAlpha&&V[3]<1&&(this.hasAlpha=!0)}}else R[0]=R[1]=R[2]=0,R[3]=1;else R=[1,1,1,0];var U=.5;j?Array.isArray(d)?U=n<d.length?+d[n]:12:d?U=+d:this.useOrtho&&(U=12):U=0;var q=0;Array.isArray(v)?q=n<v.length?+v[n]:0:v&&(q=+v);var H=Math.cos(q),G=Math.sin(q);for(w=s[n],k=0;k<3;++k)h[k]=Math.max(h[k],w[k]),u[k]=Math.min(u[k],w[k]);var Y=a,W=i;Y=0;Array.isArray(a)?Y=n<a.length?a[n]:0:a&&(Y=a);W=0;Array.isArray(i)?W=n<i.length?i[n]:0:i&&(W=i);var X=[Y*=Y>0?1-M[0][0]:Y<0?1+M[1][0]:1,W*=W>0?1-M[0][1]:W<0?1+M[1][1]:1],Z=T.cells||[],J=T.positions||[];for(k=0;k<Z.length;++k)for(var K=Z[k],Q=0;Q<3;++Q){for(var $=0;$<3;++$)E[3*z+$]=w[$];for($=0;$<4;++$)C[4*z+$]=D[$];P[z]=y;var tt=J[K[Q]];L[2*z]=U*(H*tt[0]-G*tt[1]+X[0]),L[2*z+1]=U*(G*tt[0]+H*tt[1]+X[1]),z+=1}for(Z=A.edges,J=A.positions,k=0;k<Z.length;++k)for(K=Z[k],Q=0;Q<2;++Q){for($=0;$<3;++$)E[3*I+$]=w[$];for($=0;$<4;++$)C[4*I+$]=R[$];P[I]=y;tt=J[K[Q]];L[2*I]=U*(H*tt[0]-G*tt[1]+X[0]),L[2*I+1]=U*(G*tt[0]+H*tt[1]+X[1]),I+=1}}}this.bounds=[u,h],this.points=s,this.pointCount=s.length,this.vertexCount=x,this.lineVertexCount=b,this.pointBuffer.update(E),this.colorBuffer.update(C),this.glyphBuffer.update(L),this.idBuffer.update(P),o.free(E),o.free(C),o.free(L),o.free(P)},m.dispose=function(){this.shader.dispose(),this.orthoShader.dispose(),this.pickPerspectiveShader.dispose(),this.pickOrthoShader.dispose(),this.vao.dispose(),this.pointBuffer.dispose(),this.colorBuffer.dispose(),this.glyphBuffer.dispose(),this.idBuffer.dispose()}},{\"./lib/get-simple-string\":296,\"./lib/glyphs\":297,\"./lib/shaders\":298,\"gl-buffer\":243,\"gl-mat4/multiply\":269,\"gl-vao\":328,\"is-string-blank\":424,\"typedarray-pool\":543}],300:[function(t,e,r){\"use strict\";var n=t(\"glslify\");r.boxVertex=n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec2 vertex;\\n\\nuniform vec2 cornerA, cornerB;\\n\\nvoid main() {\\n gl_Position = vec4(mix(cornerA, cornerB, vertex), 0, 1);\\n}\\n\"]),r.boxFragment=n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nuniform vec4 color;\\n\\nvoid main() {\\n gl_FragColor = color;\\n}\\n\"])},{glslify:410}],301:[function(t,e,r){\"use strict\";var n=t(\"gl-shader\"),a=t(\"gl-buffer\"),i=t(\"./lib/shaders\");function o(t,e,r){this.plot=t,this.boxBuffer=e,this.boxShader=r,this.enabled=!0,this.selectBox=[1/0,1/0,-1/0,-1/0],this.borderColor=[0,0,0,1],this.innerFill=!1,this.innerColor=[0,0,0,.25],this.outerFill=!0,this.outerColor=[0,0,0,.5],this.borderWidth=10}e.exports=function(t,e){var r=t.gl,s=a(r,[0,0,0,1,1,0,1,1]),l=n(r,i.boxVertex,i.boxFragment),c=new o(t,s,l);return c.update(e),t.addOverlay(c),c};var s=o.prototype;s.draw=function(){if(this.enabled){var t=this.plot,e=this.selectBox,r=this.borderWidth,n=(this.innerFill,this.innerColor),a=(this.outerFill,this.outerColor),i=this.borderColor,o=t.box,s=t.screenBox,l=t.dataBox,c=t.viewBox,u=t.pixelRatio,h=(e[0]-l[0])*(c[2]-c[0])/(l[2]-l[0])+c[0],f=(e[1]-l[1])*(c[3]-c[1])/(l[3]-l[1])+c[1],p=(e[2]-l[0])*(c[2]-c[0])/(l[2]-l[0])+c[0],d=(e[3]-l[1])*(c[3]-c[1])/(l[3]-l[1])+c[1];if(h=Math.max(h,c[0]),f=Math.max(f,c[1]),p=Math.min(p,c[2]),d=Math.min(d,c[3]),!(p<h||d<f)){o.bind();var g=s[2]-s[0],v=s[3]-s[1];if(this.outerFill&&(o.drawBox(0,0,g,f,a),o.drawBox(0,f,h,d,a),o.drawBox(0,d,g,v,a),o.drawBox(p,f,g,d,a)),this.innerFill&&o.drawBox(h,f,p,d,n),r>0){var m=r*u;o.drawBox(h-m,f-m,p+m,f+m,i),o.drawBox(h-m,d-m,p+m,d+m,i),o.drawBox(h-m,f-m,h+m,d+m,i),o.drawBox(p-m,f-m,p+m,d+m,i)}}}},s.update=function(t){t=t||{},this.innerFill=!!t.innerFill,this.outerFill=!!t.outerFill,this.innerColor=(t.innerColor||[0,0,0,.5]).slice(),this.outerColor=(t.outerColor||[0,0,0,.5]).slice(),this.borderColor=(t.borderColor||[0,0,0,1]).slice(),this.borderWidth=t.borderWidth||0,this.selectBox=(t.selectBox||this.selectBox).slice()},s.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)}},{\"./lib/shaders\":300,\"gl-buffer\":243,\"gl-shader\":303}],302:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r=n(t,e),i=a.mallocUint8(e[0]*e[1]*4);return new c(t,r,i)};var n=t(\"gl-fbo\"),a=t(\"typedarray-pool\"),i=t(\"ndarray\"),o=t(\"bit-twiddle\").nextPow2,s=t(\"cwise/lib/wrapper\")({args:[\"array\",{offset:[0,0,1],array:0},{offset:[0,0,2],array:0},{offset:[0,0,3],array:0},\"scalar\",\"scalar\",\"index\"],pre:{body:\"{this_closestD2=1e8,this_closestX=-1,this_closestY=-1}\",args:[],thisVars:[\"this_closestD2\",\"this_closestX\",\"this_closestY\"],localVars:[]},body:{body:\"{if(_inline_16_arg0_<255||_inline_16_arg1_<255||_inline_16_arg2_<255||_inline_16_arg3_<255){var _inline_16_l=_inline_16_arg4_-_inline_16_arg6_[0],_inline_16_a=_inline_16_arg5_-_inline_16_arg6_[1],_inline_16_f=_inline_16_l*_inline_16_l+_inline_16_a*_inline_16_a;_inline_16_f<this_closestD2&&(this_closestD2=_inline_16_f,this_closestX=_inline_16_arg6_[0],this_closestY=_inline_16_arg6_[1])}}\",args:[{name:\"_inline_16_arg0_\",lvalue:!1,rvalue:!0,count:1},{name:\"_inline_16_arg1_\",lvalue:!1,rvalue:!0,count:1},{name:\"_inline_16_arg2_\",lvalue:!1,rvalue:!0,count:1},{name:\"_inline_16_arg3_\",lvalue:!1,rvalue:!0,count:1},{name:\"_inline_16_arg4_\",lvalue:!1,rvalue:!0,count:1},{name:\"_inline_16_arg5_\",lvalue:!1,rvalue:!0,count:1},{name:\"_inline_16_arg6_\",lvalue:!1,rvalue:!0,count:4}],thisVars:[\"this_closestD2\",\"this_closestX\",\"this_closestY\"],localVars:[\"_inline_16_a\",\"_inline_16_f\",\"_inline_16_l\"]},post:{body:\"{return[this_closestX,this_closestY,this_closestD2]}\",args:[],thisVars:[\"this_closestD2\",\"this_closestX\",\"this_closestY\"],localVars:[]},debug:!1,funcName:\"cwise\",blockSize:64});function l(t,e,r,n,a){this.coord=[t,e],this.id=r,this.value=n,this.distance=a}function c(t,e,r){this.gl=t,this.fbo=e,this.buffer=r,this._readTimeout=null;var n=this;this._readCallback=function(){n.gl&&(e.bind(),t.readPixels(0,0,e.shape[0],e.shape[1],t.RGBA,t.UNSIGNED_BYTE,n.buffer),n._readTimeout=null)}}var u=c.prototype;Object.defineProperty(u,\"shape\",{get:function(){return this.gl?this.fbo.shape.slice():[0,0]},set:function(t){if(this.gl){this.fbo.shape=t;var e=this.fbo.shape[0],r=this.fbo.shape[1];if(r*e*4>this.buffer.length){a.free(this.buffer);for(var n=this.buffer=a.mallocUint8(o(r*e*4)),i=0;i<r*e*4;++i)n[i]=255}return t}}}),u.begin=function(){var t=this.gl;this.shape;t&&(this.fbo.bind(),t.clearColor(1,1,1,1),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT))},u.end=function(){var t=this.gl;t&&(t.bindFramebuffer(t.FRAMEBUFFER,null),this._readTimeout||clearTimeout(this._readTimeout),this._readTimeout=setTimeout(this._readCallback,1))},u.query=function(t,e,r){if(!this.gl)return null;var n=this.fbo.shape.slice();t|=0,e|=0,\"number\"!=typeof r&&(r=1);var a=0|Math.min(Math.max(t-r,0),n[0]),o=0|Math.min(Math.max(t+r,0),n[0]),c=0|Math.min(Math.max(e-r,0),n[1]),u=0|Math.min(Math.max(e+r,0),n[1]);if(o<=a||u<=c)return null;var h=[o-a,u-c],f=i(this.buffer,[h[0],h[1],4],[4,4*n[0],1],4*(a+n[0]*c)),p=s(f.hi(h[0],h[1],1),r,r),d=p[0],g=p[1];return d<0||Math.pow(this.radius,2)<p[2]?null:new l(d+a|0,g+c|0,f.get(d,g,0),[f.get(d,g,1),f.get(d,g,2),f.get(d,g,3)],Math.sqrt(p[2]))},u.dispose=function(){this.gl&&(this.fbo.dispose(),a.free(this.buffer),this.gl=null,this._readTimeout&&clearTimeout(this._readTimeout))}},{\"bit-twiddle\":93,\"cwise/lib/wrapper\":150,\"gl-fbo\":251,ndarray:451,\"typedarray-pool\":543}],303:[function(t,e,r){\"use strict\";var n=t(\"./lib/create-uniforms\"),a=t(\"./lib/create-attributes\"),i=t(\"./lib/reflect\"),o=t(\"./lib/shader-cache\"),s=t(\"./lib/runtime-reflect\"),l=t(\"./lib/GLError\");function c(t){this.gl=t,this.gl.lastAttribCount=0,this._vref=this._fref=this._relink=this.vertShader=this.fragShader=this.program=this.attributes=this.uniforms=this.types=null}var u=c.prototype;function h(t,e){return t.name<e.name?-1:1}u.bind=function(){var t;this.program||this._relink();var e=this.gl.getProgramParameter(this.program,this.gl.ACTIVE_ATTRIBUTES),r=this.gl.lastAttribCount;if(e>r)for(t=r;t<e;t++)this.gl.enableVertexAttribArray(t);else if(r>e)for(t=e;t<r;t++)this.gl.disableVertexAttribArray(t);this.gl.lastAttribCount=e,this.gl.useProgram(this.program)},u.dispose=function(){for(var t=this.gl.lastAttribCount,e=0;e<t;e++)this.gl.disableVertexAttribArray(e);this.gl.lastAttribCount=0,this._fref&&this._fref.dispose(),this._vref&&this._vref.dispose(),this.attributes=this.types=this.vertShader=this.fragShader=this.program=this._relink=this._fref=this._vref=null},u.update=function(t,e,r,c){if(!e||1===arguments.length){var u=t;t=u.vertex,e=u.fragment,r=u.uniforms,c=u.attributes}var f=this,p=f.gl,d=f._vref;f._vref=o.shader(p,p.VERTEX_SHADER,t),d&&d.dispose(),f.vertShader=f._vref.shader;var g=this._fref;if(f._fref=o.shader(p,p.FRAGMENT_SHADER,e),g&&g.dispose(),f.fragShader=f._fref.shader,!r||!c){var v=p.createProgram();if(p.attachShader(v,f.fragShader),p.attachShader(v,f.vertShader),p.linkProgram(v),!p.getProgramParameter(v,p.LINK_STATUS)){var m=p.getProgramInfoLog(v);throw new l(m,\"Error linking program:\"+m)}r=r||s.uniforms(p,v),c=c||s.attributes(p,v),p.deleteProgram(v)}(c=c.slice()).sort(h);var y,x=[],b=[],_=[];for(y=0;y<c.length;++y){var w=c[y];if(w.type.indexOf(\"mat\")>=0){for(var k=0|w.type.charAt(w.type.length-1),T=new Array(k),A=0;A<k;++A)T[A]=_.length,b.push(w.name+\"[\"+A+\"]\"),\"number\"==typeof w.location?_.push(w.location+A):Array.isArray(w.location)&&w.location.length===k&&\"number\"==typeof w.location[A]?_.push(0|w.location[A]):_.push(-1);x.push({name:w.name,type:w.type,locations:T})}else x.push({name:w.name,type:w.type,locations:[_.length]}),b.push(w.name),\"number\"==typeof w.location?_.push(0|w.location):_.push(-1)}var M=0;for(y=0;y<_.length;++y)if(_[y]<0){for(;_.indexOf(M)>=0;)M+=1;_[y]=M}var S=new Array(r.length);function E(){f.program=o.program(p,f._vref,f._fref,b,_);for(var t=0;t<r.length;++t)S[t]=p.getUniformLocation(f.program,r[t].name)}E(),f._relink=E,f.types={uniforms:i(r),attributes:i(c)},f.attributes=a(p,f,x,_),Object.defineProperty(f,\"uniforms\",n(p,f,r,S))},e.exports=function(t,e,r,n,a){var i=new c(t);return i.update(e,r,n,a),i}},{\"./lib/GLError\":304,\"./lib/create-attributes\":305,\"./lib/create-uniforms\":306,\"./lib/reflect\":307,\"./lib/runtime-reflect\":308,\"./lib/shader-cache\":309}],304:[function(t,e,r){function n(t,e,r){this.shortMessage=e||\"\",this.longMessage=r||\"\",this.rawError=t||\"\",this.message=\"gl-shader: \"+(e||t||\"\")+(r?\"\\n\"+r:\"\"),this.stack=(new Error).stack}n.prototype=new Error,n.prototype.name=\"GLError\",n.prototype.constructor=n,e.exports=n},{}],305:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,a){for(var i={},l=0,c=r.length;l<c;++l){var u=r[l],h=u.name,f=u.type,p=u.locations;switch(f){case\"bool\":case\"int\":case\"float\":o(t,e,p[0],a,1,i,h);break;default:if(f.indexOf(\"vec\")>=0){var d=f.charCodeAt(f.length-1)-48;if(d<2||d>4)throw new n(\"\",\"Invalid data type for attribute \"+h+\": \"+f);o(t,e,p[0],a,d,i,h)}else{if(!(f.indexOf(\"mat\")>=0))throw new n(\"\",\"Unknown data type for attribute \"+h+\": \"+f);var d=f.charCodeAt(f.length-1)-48;if(d<2||d>4)throw new n(\"\",\"Invalid data type for attribute \"+h+\": \"+f);s(t,e,p,a,d,i,h)}}}return i};var n=t(\"./GLError\");function a(t,e,r,n,a,i){this._gl=t,this._wrapper=e,this._index=r,this._locations=n,this._dimension=a,this._constFunc=i}var i=a.prototype;function o(t,e,r,n,i,o,s){for(var l=[\"gl\",\"v\"],c=[],u=0;u<i;++u)l.push(\"x\"+u),c.push(\"x\"+u);l.push(\"if(x0.length===void 0){return gl.vertexAttrib\"+i+\"f(v,\"+c.join()+\")}else{return gl.vertexAttrib\"+i+\"fv(v,x0)}\");var h=Function.apply(null,l),f=new a(t,e,r,n,i,h);Object.defineProperty(o,s,{set:function(e){return t.disableVertexAttribArray(n[r]),h(t,n[r],e),e},get:function(){return f},enumerable:!0})}function s(t,e,r,n,a,i,s){for(var l=new Array(a),c=new Array(a),u=0;u<a;++u)o(t,e,r[u],n,a,l,u),c[u]=l[u];Object.defineProperty(l,\"location\",{set:function(t){if(Array.isArray(t))for(var e=0;e<a;++e)c[e].location=t[e];else for(e=0;e<a;++e)c[e].location=t+e;return t},get:function(){for(var t=new Array(a),e=0;e<a;++e)t[e]=n[r[e]];return t},enumerable:!0}),l.pointer=function(e,i,o,s){e=e||t.FLOAT,i=!!i,o=o||a*a,s=s||0;for(var l=0;l<a;++l){var c=n[r[l]];t.vertexAttribPointer(c,a,e,i,o,s+l*a),t.enableVertexAttribArray(c)}};var h=new Array(a),f=t[\"vertexAttrib\"+a+\"fv\"];Object.defineProperty(i,s,{set:function(e){for(var i=0;i<a;++i){var o=n[r[i]];if(t.disableVertexAttribArray(o),Array.isArray(e[0]))f.call(t,o,e[i]);else{for(var s=0;s<a;++s)h[s]=e[a*i+s];f.call(t,o,h)}}return e},get:function(){return l},enumerable:!0})}i.pointer=function(t,e,r,n){var a=this._gl,i=this._locations[this._index];a.vertexAttribPointer(i,this._dimension,t||a.FLOAT,!!e,r||0,n||0),a.enableVertexAttribArray(i)},i.set=function(t,e,r,n){return this._constFunc(this._locations[this._index],t,e,r,n)},Object.defineProperty(i,\"location\",{get:function(){return this._locations[this._index]},set:function(t){return t!==this._locations[this._index]&&(this._locations[this._index]=0|t,this._wrapper.program=null),0|t}})},{\"./GLError\":304}],306:[function(t,e,r){\"use strict\";var n=t(\"./reflect\"),a=t(\"./GLError\");function i(t){return new Function(\"y\",\"return function(){return y}\")(t)}function o(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=e;return r}e.exports=function(t,e,r,s){function l(t,e,r){switch(r){case\"bool\":case\"int\":case\"sampler2D\":case\"samplerCube\":return\"gl.uniform1i(locations[\"+e+\"],obj\"+t+\")\";case\"float\":return\"gl.uniform1f(locations[\"+e+\"],obj\"+t+\")\";default:var n=r.indexOf(\"vec\");if(!(0<=n&&n<=1&&r.length===4+n)){if(0===r.indexOf(\"mat\")&&4===r.length){var i=r.charCodeAt(r.length-1)-48;if(i<2||i>4)throw new a(\"\",\"Invalid uniform dimension type for matrix \"+name+\": \"+r);return\"gl.uniformMatrix\"+i+\"fv(locations[\"+e+\"],false,obj\"+t+\")\"}throw new a(\"\",\"Unknown uniform data type for \"+name+\": \"+r)}var i=r.charCodeAt(r.length-1)-48;if(i<2||i>4)throw new a(\"\",\"Invalid data type\");switch(r.charAt(0)){case\"b\":case\"i\":return\"gl.uniform\"+i+\"iv(locations[\"+e+\"],obj\"+t+\")\";case\"v\":return\"gl.uniform\"+i+\"fv(locations[\"+e+\"],obj\"+t+\")\";default:throw new a(\"\",\"Unrecognized data type for vector \"+name+\": \"+r)}}}function c(e){for(var n=[\"return function updateProperty(obj){\"],a=function t(e,r){if(\"object\"!=typeof r)return[[e,r]];var n=[];for(var a in r){var i=r[a],o=e;parseInt(a)+\"\"===a?o+=\"[\"+a+\"]\":o+=\".\"+a,\"object\"==typeof i?n.push.apply(n,t(o,i)):n.push([o,i])}return n}(\"\",e),i=0;i<a.length;++i){var o=a[i],c=o[0],u=o[1];s[u]&&n.push(l(c,u,r[u].type))}n.push(\"return obj}\");var h=new Function(\"gl\",\"locations\",n.join(\"\\n\"));return h(t,s)}function u(n,l,u){if(\"object\"==typeof u){var f=h(u);Object.defineProperty(n,l,{get:i(f),set:c(u),enumerable:!0,configurable:!1})}else s[u]?Object.defineProperty(n,l,{get:(p=u,new Function(\"gl\",\"wrapper\",\"locations\",\"return function(){return gl.getUniform(wrapper.program,locations[\"+p+\"])}\")(t,e,s)),set:c(u),enumerable:!0,configurable:!1}):n[l]=function(t){switch(t){case\"bool\":return!1;case\"int\":case\"sampler2D\":case\"samplerCube\":case\"float\":return 0;default:var e=t.indexOf(\"vec\");if(0<=e&&e<=1&&t.length===4+e){var r=t.charCodeAt(t.length-1)-48;if(r<2||r>4)throw new a(\"\",\"Invalid data type\");return\"b\"===t.charAt(0)?o(r,!1):o(r,0)}if(0===t.indexOf(\"mat\")&&4===t.length){var r=t.charCodeAt(t.length-1)-48;if(r<2||r>4)throw new a(\"\",\"Invalid uniform dimension type for matrix \"+name+\": \"+t);return o(r*r,0)}throw new a(\"\",\"Unknown uniform data type for \"+name+\": \"+t)}}(r[u].type);var p}function h(t){var e;if(Array.isArray(t)){e=new Array(t.length);for(var r=0;r<t.length;++r)u(e,r,t[r])}else for(var n in e={},t)u(e,n,t[n]);return e}var f=n(r,!0);return{get:i(h(f)),set:c(f),enumerable:!0,configurable:!0}}},{\"./GLError\":304,\"./reflect\":307}],307:[function(t,e,r){\"use strict\";e.exports=function(t,e){for(var r={},n=0;n<t.length;++n)for(var a=t[n].name,i=a.split(\".\"),o=r,s=0;s<i.length;++s){var l=i[s].split(\"[\");if(l.length>1){l[0]in o||(o[l[0]]=[]),o=o[l[0]];for(var c=1;c<l.length;++c){var u=parseInt(l[c]);c<l.length-1||s<i.length-1?(u in o||(c<l.length-1?o[u]=[]:o[u]={}),o=o[u]):o[u]=e?n:t[n].type}}else s<i.length-1?(l[0]in o||(o[l[0]]={}),o=o[l[0]]):o[l[0]]=e?n:t[n].type}return r}},{}],308:[function(t,e,r){\"use strict\";r.uniforms=function(t,e){for(var r=t.getProgramParameter(e,t.ACTIVE_UNIFORMS),n=[],a=0;a<r;++a){var o=t.getActiveUniform(e,a);if(o){var s=i(t,o.type);if(o.size>1)for(var l=0;l<o.size;++l)n.push({name:o.name.replace(\"[0]\",\"[\"+l+\"]\"),type:s});else n.push({name:o.name,type:s})}}return n},r.attributes=function(t,e){for(var r=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES),n=[],a=0;a<r;++a){var o=t.getActiveAttrib(e,a);o&&n.push({name:o.name,type:i(t,o.type)})}return n};var n={FLOAT:\"float\",FLOAT_VEC2:\"vec2\",FLOAT_VEC3:\"vec3\",FLOAT_VEC4:\"vec4\",INT:\"int\",INT_VEC2:\"ivec2\",INT_VEC3:\"ivec3\",INT_VEC4:\"ivec4\",BOOL:\"bool\",BOOL_VEC2:\"bvec2\",BOOL_VEC3:\"bvec3\",BOOL_VEC4:\"bvec4\",FLOAT_MAT2:\"mat2\",FLOAT_MAT3:\"mat3\",FLOAT_MAT4:\"mat4\",SAMPLER_2D:\"sampler2D\",SAMPLER_CUBE:\"samplerCube\"},a=null;function i(t,e){if(!a){var r=Object.keys(n);a={};for(var i=0;i<r.length;++i){var o=r[i];a[t[o]]=n[o]}}return a[e]}},{}],309:[function(t,e,r){\"use strict\";r.shader=function(t,e,r){return u(t).getShaderReference(e,r)},r.program=function(t,e,r,n,a){return u(t).getProgram(e,r,n,a)};var n=t(\"./GLError\"),a=t(\"gl-format-compiler-error\"),i=new(\"undefined\"==typeof WeakMap?t(\"weakmap-shim\"):WeakMap),o=0;function s(t,e,r,n,a,i,o){this.id=t,this.src=e,this.type=r,this.shader=n,this.count=i,this.programs=[],this.cache=o}function l(t){this.gl=t,this.shaders=[{},{}],this.programs={}}s.prototype.dispose=function(){if(0==--this.count){for(var t=this.cache,e=t.gl,r=this.programs,n=0,a=r.length;n<a;++n){var i=t.programs[r[n]];i&&(delete t.programs[n],e.deleteProgram(i))}e.deleteShader(this.shader),delete t.shaders[this.type===e.FRAGMENT_SHADER|0][this.src]}};var c=l.prototype;function u(t){var e=i.get(t);return e||(e=new l(t),i.set(t,e)),e}c.getShaderReference=function(t,e){var r=this.gl,i=this.shaders[t===r.FRAGMENT_SHADER|0],l=i[e];if(l&&r.isShader(l.shader))l.count+=1;else{var c=function(t,e,r){var i=t.createShader(e);if(t.shaderSource(i,r),t.compileShader(i),!t.getShaderParameter(i,t.COMPILE_STATUS)){var o=t.getShaderInfoLog(i);try{var s=a(o,r,e)}catch(t){throw console.warn(\"Failed to format compiler error: \"+t),new n(o,\"Error compiling shader:\\n\"+o)}throw new n(o,s.short,s.long)}return i}(r,t,e);l=i[e]=new s(o++,e,t,c,[],1,this)}return l},c.getProgram=function(t,e,r,a){var i=[t.id,e.id,r.join(\":\"),a.join(\":\")].join(\"@\"),o=this.programs[i];return o&&this.gl.isProgram(o)||(this.programs[i]=o=function(t,e,r,a,i){var o=t.createProgram();t.attachShader(o,e),t.attachShader(o,r);for(var s=0;s<a.length;++s)t.bindAttribLocation(o,i[s],a[s]);if(t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS)){var l=t.getProgramInfoLog(o);throw new n(l,\"Error linking program: \"+l)}return o}(this.gl,t.shader,e.shader,r,a),t.programs.push(i),e.programs.push(i)),o}},{\"./GLError\":304,\"gl-format-compiler-error\":252,\"weakmap-shim\":553}],310:[function(t,e,r){\"use strict\";function n(t){this.plot=t,this.enable=[!0,!0,!1,!1],this.width=[1,1,1,1],this.color=[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.center=[1/0,1/0]}e.exports=function(t,e){var r=new n(t);return r.update(e),t.addOverlay(r),r};var a=n.prototype;a.update=function(t){t=t||{},this.enable=(t.enable||[!0,!0,!1,!1]).slice(),this.width=(t.width||[1,1,1,1]).slice(),this.color=(t.color||[[0,0,0,1],[0,0,0,1],[0,0,0,1],[0,0,0,1]]).map(function(t){return t.slice()}),this.center=(t.center||[1/0,1/0]).slice(),this.plot.setOverlayDirty()},a.draw=function(){var t=this.enable,e=this.width,r=this.color,n=this.center,a=this.plot,i=a.line,o=a.dataBox,s=a.viewBox;if(i.bind(),o[0]<=n[0]&&n[0]<=o[2]&&o[1]<=n[1]&&n[1]<=o[3]){var l=s[0]+(n[0]-o[0])/(o[2]-o[0])*(s[2]-s[0]),c=s[1]+(n[1]-o[1])/(o[3]-o[1])*(s[3]-s[1]);t[0]&&i.drawLine(l,c,s[0],c,e[0],r[0]),t[1]&&i.drawLine(l,c,l,s[1],e[1],r[1]),t[2]&&i.drawLine(l,c,s[2],c,e[2],r[2]),t[3]&&i.drawLine(l,c,l,s[3],e[3],r[3])}},a.dispose=function(){this.plot.removeOverlay(this)}},{}],311:[function(t,e,r){\"use strict\";var n=t(\"glslify\"),a=t(\"gl-shader\"),i=n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, color;\\nattribute float weight;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 coordinates[3];\\nuniform vec4 colors[3];\\nuniform vec2 screenShape;\\nuniform float lineWidth;\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n vec3 vertexPosition = mix(coordinates[0],\\n mix(coordinates[2], coordinates[1], 0.5 * (position + 1.0)), abs(position));\\n\\n vec4 clipPos = projection * view * model * vec4(vertexPosition, 1.0);\\n vec2 clipOffset = (projection * view * model * vec4(color, 0.0)).xy;\\n vec2 delta = weight * clipOffset * screenShape;\\n vec2 lineOffset = normalize(vec2(delta.y, -delta.x)) / screenShape;\\n\\n gl_Position = vec4(clipPos.xy + clipPos.w * 0.5 * lineWidth * lineOffset, clipPos.z, clipPos.w);\\n fragColor = color.x * colors[0] + color.y * colors[1] + color.z * colors[2];\\n}\\n\"]),o=n([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n gl_FragColor = fragColor;\\n}\"]);e.exports=function(t){return a(t,i,o,null,[{name:\"position\",type:\"vec3\"},{name:\"color\",type:\"vec3\"},{name:\"weight\",type:\"float\"}])}},{\"gl-shader\":303,glslify:410}],312:[function(t,e,r){\"use strict\";var n=t(\"gl-buffer\"),a=t(\"gl-vao\"),i=t(\"./shaders/index\");e.exports=function(t,e){var r=[];function o(t,e,n,a,i,o){var s=[t,e,n,0,0,0,1];s[a+3]=1,s[a]=i,r.push.apply(r,s),s[6]=-1,r.push.apply(r,s),s[a]=o,r.push.apply(r,s),r.push.apply(r,s),s[6]=1,r.push.apply(r,s),s[a]=i,r.push.apply(r,s)}o(0,0,0,0,0,1),o(0,0,0,1,0,1),o(0,0,0,2,0,1),o(1,0,0,1,-1,1),o(1,0,0,2,-1,1),o(0,1,0,0,-1,1),o(0,1,0,2,-1,1),o(0,0,1,0,-1,1),o(0,0,1,1,-1,1);var l=n(t,r),c=a(t,[{type:t.FLOAT,buffer:l,size:3,offset:0,stride:28},{type:t.FLOAT,buffer:l,size:3,offset:12,stride:28},{type:t.FLOAT,buffer:l,size:1,offset:24,stride:28}]),u=i(t);u.attributes.position.location=0,u.attributes.color.location=1,u.attributes.weight.location=2;var h=new s(t,l,c,u);return h.update(e),h};var o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n,this.pixelRatio=1,this.bounds=[[-1e3,-1e3,-1e3],[1e3,1e3,1e3]],this.position=[0,0,0],this.lineWidth=[2,2,2],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.enabled=[!0,!0,!0],this.drawSides=[!0,!0,!0],this.axes=null}var l=s.prototype,c=[0,0,0],u=[0,0,0],h=[0,0];l.isTransparent=function(){return!1},l.drawTransparent=function(t){},l.draw=function(t){var e=this.gl,r=this.vao,n=this.shader;r.bind(),n.bind();var a,i=t.model||o,s=t.view||o,l=t.projection||o;this.axes&&(a=this.axes.lastCubeProps.axis);for(var f=c,p=u,d=0;d<3;++d)a&&a[d]<0?(f[d]=this.bounds[0][d],p[d]=this.bounds[1][d]):(f[d]=this.bounds[1][d],p[d]=this.bounds[0][d]);h[0]=e.drawingBufferWidth,h[1]=e.drawingBufferHeight,n.uniforms.model=i,n.uniforms.view=s,n.uniforms.projection=l,n.uniforms.coordinates=[this.position,f,p],n.uniforms.colors=this.colors,n.uniforms.screenShape=h;for(d=0;d<3;++d)n.uniforms.lineWidth=this.lineWidth[d]*this.pixelRatio,this.enabled[d]&&(r.draw(e.TRIANGLES,6,6*d),this.drawSides[d]&&r.draw(e.TRIANGLES,12,18+12*d));r.unbind()},l.update=function(t){t&&(\"bounds\"in t&&(this.bounds=t.bounds),\"position\"in t&&(this.position=t.position),\"lineWidth\"in t&&(this.lineWidth=t.lineWidth),\"colors\"in t&&(this.colors=t.colors),\"enabled\"in t&&(this.enabled=t.enabled),\"drawSides\"in t&&(this.drawSides=t.drawSides))},l.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},{\"./shaders/index\":311,\"gl-buffer\":243,\"gl-vao\":328}],313:[function(t,e,r){var n=t(\"glslify\"),a=n([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the tube vertex and normal at the given index.\\n//\\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\\n//\\n// Each tube segment is made up of a ring of vertices.\\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\\n// The indexes of tube segments run from 0 to 8.\\n//\\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\\n float segmentCount = 8.0;\\n\\n float angle = 2.0 * 3.14159 * (index / segmentCount);\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d);\\n vec3 y = v * sin(angle) * length(d);\\n vec3 v3 = x + y;\\n\\n normal = normalize(v3);\\n\\n return v3;\\n}\\n\\nattribute vec4 vector;\\nattribute vec4 color, position;\\nattribute vec2 uv;\\n\\nuniform float vectorScale, tubeScale;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 eyePosition, lightPosition;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n // Scale the vector magnitude to stay constant with\\n // model & view changes.\\n vec3 normal;\\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * tubePosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n // vec4 m_position = model * vec4(tubePosition, 1.0);\\n vec4 t_position = view * tubePosition;\\n gl_Position = projection * t_position;\\n\\n f_color = color;\\n f_data = tubePosition.xyz;\\n f_position = position.xyz;\\n f_uv = uv;\\n}\\n\"]),i=n([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * opacity;\\n}\\n\"]),o=n([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the tube vertex and normal at the given index.\\n//\\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\\n//\\n// Each tube segment is made up of a ring of vertices.\\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\\n// The indexes of tube segments run from 0 to 8.\\n//\\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\\n float segmentCount = 8.0;\\n\\n float angle = 2.0 * 3.14159 * (index / segmentCount);\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d);\\n vec3 y = v * sin(angle) * length(d);\\n vec3 v3 = x + y;\\n\\n normal = normalize(v3);\\n\\n return v3;\\n}\\n\\nattribute vec4 vector;\\nattribute vec4 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform float tubeScale;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n vec3 normal;\\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n\\n gl_Position = projection * view * tubePosition;\\n f_id = id;\\n f_position = position.xyz;\\n}\\n\"]),s=n([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"]);r.meshShader={vertex:a,fragment:i,attributes:[{name:\"position\",type:\"vec4\"},{name:\"color\",type:\"vec4\"},{name:\"uv\",type:\"vec2\"},{name:\"vector\",type:\"vec4\"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:\"position\",type:\"vec4\"},{name:\"id\",type:\"vec4\"},{name:\"vector\",type:\"vec4\"}]}},{glslify:410}],314:[function(t,e,r){\"use strict\";var n=t(\"gl-vec3\"),a=t(\"gl-vec4\"),i=[\"xyz\",\"xzy\",\"yxz\",\"yzx\",\"zxy\",\"zyx\"],o=function(t,e,r,i){for(var o=0,s=0;s<t.length;s++)for(var l=t[s].velocities,c=0;c<l.length;c++)o=Math.max(o,n.length(l[c]));var u=t.map(function(t){return function(t,e,r,i){for(var o=t.points,s=t.velocities,l=t.divergences,c=[],u=[],h=[],f=[],p=[],d=[],g=0,v=0,m=a.create(),y=a.create(),x=0;x<o.length;x++){var b=o[x],_=s[x],w=l[x];0===e&&(w=.05*r),v=n.length(_)/i,m=a.create(),n.copy(m,_),m[3]=w;for(var k=0;k<8;k++)p[k]=[b[0],b[1],b[2],k];if(f.length>0)for(k=0;k<8;k++){var T=(k+1)%8;c.push(f[k],p[k],p[T],p[T],f[T],f[k]),h.push(y,m,m,m,y,y),d.push(g,v,v,v,g,g);var A=c.length;u.push([A-6,A-5,A-4],[A-3,A-2,A-1])}var M=f;f=p,p=M;var S=y;y=m,m=S;var E=g;g=v,v=E}return{positions:c,cells:u,vectors:h,vertexIntensity:d}}(t,r,i,o)}),h=[],f=[],p=[],d=[];for(s=0;s<u.length;s++){var g=u[s],v=h.length;h=h.concat(g.positions),p=p.concat(g.vectors),d=d.concat(g.vertexIntensity);for(c=0;c<g.cells.length;c++){var m=g.cells[c],y=[];f.push(y);for(var x=0;x<m.length;x++)y.push(m[x]+v)}}return{positions:h,cells:f,vectors:p,vertexIntensity:d,colormap:e}},s=function(t,e){var r,n=t.length;for(r=0;r<n;r++){var a=t[r];if(a===e)return r;if(a>e)return r-1}return r},l=function(t,e,r){return t<e?e:t>r?r:t},c=function(t){var e=1/0;t.sort(function(t,e){return t-e});for(var r=t.length,n=1;n<r;n++){var a=Math.abs(t[n]-t[n-1]);a<e&&(e=a)}return e};e.exports=function(t,e){var r=t.startingPositions,a=t.maxLength||1e3,u=t.tubeSize||1,h=t.absoluteTubeSize,f=t.gridFill||\"+x+y+z\",p={};-1!==f.indexOf(\"-x\")&&(p.reversedX=!0),-1!==f.indexOf(\"-y\")&&(p.reversedY=!0),-1!==f.indexOf(\"-z\")&&(p.reversedZ=!0),p.filled=i.indexOf(f.replace(/-/g,\"\").replace(/\\+/g,\"\"));var d=t.getVelocity||function(e){return function(t,e,r){var a=e.vectors,i=e.meshgrid,o=t[0],c=t[1],u=t[2],h=i[0].length,f=i[1].length,p=i[2].length,d=s(i[0],o),g=s(i[1],c),v=s(i[2],u),m=d+1,y=g+1,x=v+1;if(d=l(d,0,h-1),m=l(m,0,h-1),g=l(g,0,f-1),y=l(y,0,f-1),v=l(v,0,p-1),x=l(x,0,p-1),d<0||g<0||v<0||m>h-1||y>f-1||x>p-1)return n.create();var b,_,w,k,T,A,M=i[0][d],S=i[0][m],E=i[1][g],C=i[1][y],L=i[2][v],P=(o-M)/(S-M),O=(c-E)/(C-E),z=(u-L)/(i[2][x]-L);switch(isFinite(P)||(P=.5),isFinite(O)||(O=.5),isFinite(z)||(z=.5),r.reversedX&&(d=h-1-d,m=h-1-m),r.reversedY&&(g=f-1-g,y=f-1-y),r.reversedZ&&(v=p-1-v,x=p-1-x),r.filled){case 5:T=v,A=x,w=g*p,k=y*p,b=d*p*f,_=m*p*f;break;case 4:T=v,A=x,b=d*p,_=m*p,w=g*p*h,k=y*p*h;break;case 3:w=g,k=y,T=v*f,A=x*f,b=d*f*p,_=m*f*p;break;case 2:w=g,k=y,b=d*f,_=m*f,T=v*f*h,A=x*f*h;break;case 1:b=d,_=m,T=v*h,A=x*h,w=g*h*p,k=y*h*p;break;default:b=d,_=m,w=g*h,k=y*h,T=v*h*f,A=x*h*f}var I=a[b+w+T],D=a[b+w+A],R=a[b+k+T],F=a[b+k+A],B=a[_+w+T],N=a[_+w+A],j=a[_+k+T],V=a[_+k+A],U=n.create(),q=n.create(),H=n.create(),G=n.create();n.lerp(U,I,B,P),n.lerp(q,D,N,P),n.lerp(H,R,j,P),n.lerp(G,F,V,P);var Y=n.create(),W=n.create();n.lerp(Y,U,H,O),n.lerp(W,q,G,O);var X=n.create();return n.lerp(X,Y,W,z),X}(e,t,p)},g=t.getDivergence||function(t,e){var r=n.create(),a=1e-4;n.add(r,t,[a,0,0]);var i=d(r);n.subtract(i,i,e),n.scale(i,i,1e4),n.add(r,t,[0,a,0]);var o=d(r);n.subtract(o,o,e),n.scale(o,o,1e4),n.add(r,t,[0,0,a]);var s=d(r);return n.subtract(s,s,e),n.scale(s,s,1e4),n.add(r,i,o),n.add(r,r,s),r},v=[],m=e[0][0],y=e[0][1],x=e[0][2],b=e[1][0],_=e[1][1],w=e[1][2],k=function(t){var e=t[0],r=t[1],n=t[2];return!(e<m||e>b||r<y||r>_||n<x||n>w)},T=10*n.distance(e[0],e[1])/a,A=T*T,M=1,S=0,E=r.length;E>1&&(M=function(t){for(var e=[],r=[],n=[],a={},i={},o={},s=t.length,l=0;l<s;l++){var u=t[l],h=u[0],f=u[1],p=u[2];a[h]||(e.push(h),a[h]=!0),i[f]||(r.push(f),i[f]=!0),o[p]||(n.push(p),o[p]=!0)}var d=c(e),g=c(r),v=c(n),m=Math.min(d,g,v);return isFinite(m)?m:1}(r));for(var C=0;C<E;C++){var L=n.create();n.copy(L,r[C]);var P=[L],O=[],z=d(L),I=L;O.push(z);var D=[],R=g(L,z),F=n.length(R);isFinite(F)&&F>S&&(S=F),D.push(F),v.push({points:P,velocities:O,divergences:D});for(var B=0;B<100*a&&P.length<a&&k(L);){B++;var N=n.clone(z),j=n.squaredLength(N);if(0===j)break;if(j>A&&n.scale(N,N,T/Math.sqrt(j)),n.add(N,N,L),z=d(N),n.squaredDistance(I,N)-A>-1e-4*A){P.push(N),I=N,O.push(z);R=g(N,z),F=n.length(R);isFinite(F)&&F>S&&(S=F),D.push(F)}L=N}}var V=o(v,t.colormap,S,M);return h?V.tubeScale=h:(0===S&&(S=1),V.tubeScale=.5*u*M/S),V};var u=t(\"./lib/shaders\"),h=t(\"gl-cone3d\").createMesh;e.exports.createTubeMesh=function(t,e){return h(t,e,{shaders:u,traceType:\"streamtube\"})}},{\"./lib/shaders\":313,\"gl-cone3d\":244,\"gl-vec3\":347,\"gl-vec4\":383}],315:[function(t,e,r){var n=t(\"gl-shader\"),a=t(\"glslify\"),i=a([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute vec3 f;\\nattribute vec3 normal;\\n\\nuniform vec3 objectOffset;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 lightPosition, eyePosition;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 localCoordinate = vec3(uv.zw, f.x);\\n worldCoordinate = objectOffset + localCoordinate;\\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\\n vec4 clipPosition = projection * view * worldPosition;\\n gl_Position = clipPosition;\\n kill = f.y;\\n value = f.z;\\n planeCoordinate = uv.xy;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * worldPosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n lightDirection = lightPosition - cameraCoordinate.xyz;\\n eyeDirection = eyePosition - cameraCoordinate.xyz;\\n surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz);\\n}\\n\"]),o=a([\"precision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat beckmannSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness) {\\n return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 lowerBound, upperBound;\\nuniform float contourTint;\\nuniform vec4 contourColor;\\nuniform sampler2D colormap;\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform float vertexColor;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n if ((kill > 0.0) ||\\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\n\\n vec3 N = normalize(surfaceNormal);\\n vec3 V = normalize(eyeDirection);\\n vec3 L = normalize(lightDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n //decide how to interpolate color \\u2014 in vertex or in fragment\\n vec4 surfaceColor =\\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\\n step(.5, vertexColor) * vColor;\\n\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\\n}\\n\"]),s=a([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute float f;\\n\\nuniform vec3 objectOffset;\\nuniform mat3 permutation;\\nuniform mat4 model, view, projection;\\nuniform float height, zOffset;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\\n worldCoordinate = objectOffset + dataCoordinate;\\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\\n\\n vec4 clipPosition = projection * view * worldPosition;\\n clipPosition.z += zOffset;\\n\\n gl_Position = clipPosition;\\n value = f + objectOffset.z;\\n kill = -1.0;\\n planeCoordinate = uv.zw;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Don't do lighting for contours\\n surfaceNormal = vec3(1,0,0);\\n eyeDirection = vec3(0,1,0);\\n lightDirection = vec3(0,0,1);\\n}\\n\"]),l=a([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec2 shape;\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 surfaceNormal;\\n\\nvec2 splitFloat(float v) {\\n float vh = 255.0 * v;\\n float upper = floor(vh);\\n float lower = fract(vh);\\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\\n}\\n\\nvoid main() {\\n if ((kill > 0.0) ||\\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\n\\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\\n}\\n\"]);r.createShader=function(t){var e=n(t,i,o,null,[{name:\"uv\",type:\"vec4\"},{name:\"f\",type:\"vec3\"},{name:\"normal\",type:\"vec3\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createPickShader=function(t){var e=n(t,i,l,null,[{name:\"uv\",type:\"vec4\"},{name:\"f\",type:\"vec3\"},{name:\"normal\",type:\"vec3\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createContourShader=function(t){var e=n(t,s,o,null,[{name:\"uv\",type:\"vec4\"},{name:\"f\",type:\"float\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e},r.createPickContourShader=function(t){var e=n(t,s,l,null,[{name:\"uv\",type:\"vec4\"},{name:\"f\",type:\"float\"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e}},{\"gl-shader\":303,glslify:410}],316:[function(t,e,r){arguments[4][112][0].apply(r,arguments)},{dup:112}],317:[function(t,e,r){\"use strict\";e.exports=function(t){var e=t.gl,r=y(e),n=b(e),s=x(e),l=_(e),c=a(e),u=i(e,[{buffer:c,size:4,stride:w,offset:0},{buffer:c,size:3,stride:w,offset:16},{buffer:c,size:3,stride:w,offset:28}]),h=a(e),f=i(e,[{buffer:h,size:4,stride:20,offset:0},{buffer:h,size:1,stride:20,offset:16}]),p=a(e),d=i(e,[{buffer:p,size:2,type:e.FLOAT}]),g=o(e,1,S,e.RGBA,e.UNSIGNED_BYTE);g.minFilter=e.LINEAR,g.magFilter=e.LINEAR;var v=new E(e,[0,0],[[0,0,0],[0,0,0]],r,n,c,u,g,s,l,h,f,p,d,[0,0,0]),m={levels:[[],[],[]]};for(var k in t)m[k]=t[k];return m.colormap=m.colormap||\"jet\",v.update(m),v};var n=t(\"bit-twiddle\"),a=t(\"gl-buffer\"),i=t(\"gl-vao\"),o=t(\"gl-texture2d\"),s=t(\"typedarray-pool\"),l=t(\"colormap\"),c=t(\"ndarray-ops\"),u=t(\"ndarray-pack\"),h=t(\"ndarray\"),f=t(\"surface-nets\"),p=t(\"gl-mat4/multiply\"),d=t(\"gl-mat4/invert\"),g=t(\"binary-search-bounds\"),v=t(\"ndarray-gradient\"),m=t(\"./lib/shaders\"),y=m.createShader,x=m.createContourShader,b=m.createPickShader,_=m.createPickContourShader,w=40,k=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],T=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],A=[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]];function M(t,e,r,n,a){this.position=t,this.index=e,this.uv=r,this.level=n,this.dataCoordinate=a}!function(){for(var t=0;t<3;++t){var e=A[t],r=(t+2)%3;e[(t+1)%3+0]=1,e[r+3]=1,e[t+6]=1}}();var S=256;function E(t,e,r,n,a,i,o,l,c,u,f,p,d,g,v){this.gl=t,this.shape=e,this.bounds=r,this.objectOffset=v,this.intensityBounds=[],this._shader=n,this._pickShader=a,this._coordinateBuffer=i,this._vao=o,this._colorMap=l,this._contourShader=c,this._contourPickShader=u,this._contourBuffer=f,this._contourVAO=p,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new M([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=d,this._dynamicVAO=g,this._dynamicOffsets=[0,0,0],this._dynamicCounts=[0,0,0],this.contourWidth=[1,1,1],this.contourLevels=[[1],[1],[1]],this.contourTint=[0,0,0],this.contourColor=[[.5,.5,.5,1],[.5,.5,.5,1],[.5,.5,.5,1]],this.showContour=!0,this.showSurface=!0,this.enableHighlight=[!0,!0,!0],this.highlightColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.highlightTint=[1,1,1],this.highlightLevel=[-1,-1,-1],this.enableDynamic=[!0,!0,!0],this.dynamicLevel=[NaN,NaN,NaN],this.dynamicColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.dynamicTint=[1,1,1],this.dynamicWidth=[1,1,1],this.axesBounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.surfaceProject=[!1,!1,!1],this.contourProject=[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],this.colorBounds=[!1,!1],this._field=[h(s.mallocFloat(1024),[0,0]),h(s.mallocFloat(1024),[0,0]),h(s.mallocFloat(1024),[0,0])],this.pickId=1,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.snapToData=!1,this.pixelRatio=1,this.opacity=1,this.lightPosition=[10,1e4,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.vertexColor=0,this.dirty=!0}var C=E.prototype;C.isTransparent=function(){return this.opacity<1},C.isOpaque=function(){if(this.opacity>=1)return!0;for(var t=0;t<3;++t)if(this._contourCounts[t].length>0||this._dynamicCounts[t]>0)return!0;return!1},C.pickSlots=1,C.setPickBase=function(t){this.pickId=t};var L=[0,0,0],P={showSurface:!1,showContour:!1,projections:[k.slice(),k.slice(),k.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function O(t,e){var r,n,a,i=e.axes&&e.axes.lastCubeProps.axis||L,o=e.showSurface,s=e.showContour;for(r=0;r<3;++r)for(o=o||e.surfaceProject[r],n=0;n<3;++n)s=s||e.contourProject[r][n];for(r=0;r<3;++r){var l=P.projections[r];for(n=0;n<16;++n)l[n]=0;for(n=0;n<4;++n)l[5*n]=1;l[5*r]=0,l[12+r]=e.axesBounds[+(i[r]>0)][r],p(l,t.model,l);var c=P.clipBounds[r];for(a=0;a<2;++a)for(n=0;n<3;++n)c[a][n]=t.clipBounds[a][n];c[0][r]=-1e8,c[1][r]=1e8}return P.showSurface=o,P.showContour=s,P}var z={model:k,view:k,projection:k,inverseModel:k.slice(),lowerBound:[0,0,0],upperBound:[0,0,0],colorMap:0,clipBounds:[[0,0,0],[0,0,0]],height:0,contourTint:0,contourColor:[0,0,0,1],permutation:[1,0,0,0,1,0,0,0,1],zOffset:-1e-4,objectOffset:[0,0,0],kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},I=k.slice(),D=[1,0,0,0,1,0,0,0,1];function R(t,e){t=t||{};var r=this.gl;r.disable(r.CULL_FACE),this._colorMap.bind(0);var n=z;n.model=t.model||k,n.view=t.view||k,n.projection=t.projection||k,n.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],n.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],n.objectOffset=this.objectOffset,n.contourColor=this.contourColor[0],n.inverseModel=d(n.inverseModel,n.model);for(var a=0;a<2;++a)for(var i=n.clipBounds[a],o=0;o<3;++o)i[o]=Math.min(Math.max(this.clipBounds[a][o],-1e8),1e8);n.kambient=this.ambientLight,n.kdiffuse=this.diffuseLight,n.kspecular=this.specularLight,n.roughness=this.roughness,n.fresnel=this.fresnel,n.opacity=this.opacity,n.height=0,n.permutation=D,n.vertexColor=this.vertexColor;var s=I;for(p(s,n.view,n.model),p(s,n.projection,s),d(s,s),a=0;a<3;++a)n.eyePosition[a]=s[12+a]/s[15];var l=s[15];for(a=0;a<3;++a)l+=this.lightPosition[a]*s[4*a+3];for(a=0;a<3;++a){var c=s[12+a];for(o=0;o<3;++o)c+=s[4*o+a]*this.lightPosition[o];n.lightPosition[a]=c/l}var u=O(n,this);if(u.showSurface&&e===this.opacity<1){for(this._shader.bind(),this._shader.uniforms=n,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(r.TRIANGLES,this._vertexCount),a=0;a<3;++a)this.surfaceProject[a]&&this.vertexCount&&(this._shader.uniforms.model=u.projections[a],this._shader.uniforms.clipBounds=u.clipBounds[a],this._vao.draw(r.TRIANGLES,this._vertexCount));this._vao.unbind()}if(u.showContour&&!e){var h=this._contourShader;n.kambient=1,n.kdiffuse=0,n.kspecular=0,n.opacity=1,h.b
@victormayes
Copy link

Gracias por tu aporte...!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment