{
  "cells": [
    {
      "cell_type": "code",
      "source": [
        "!date\n",
        "!python --version"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "zagD5fVNjqbU",
        "outputId": "1d3b4f42-5915-4421-f06a-df1349d19d56"
      },
      "execution_count": 1,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Thu Jun  6 03:20:43 AM UTC 2024\n",
            "Python 3.10.12\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JkGYZ7Usjp6Y"
      },
      "source": [
        "# 特徴的な単語の抽出\n",
        "ある文書における特徴的な単語とは何だろうか。様々な指標が提案されているが、基本的には (1) 何か特徴を設定し、(2) その重要度を求め、(3) ランキングすることで求める事が多い。最もシンプルなアプローチは (1) 単語毎に、(2) 出現頻度を求め、 (3) 頻出上位を特徴的な単語と捉える方法だ。ここではワードクラウド形式で眺める例と、2文書間の出現頻度分布を眺める例を観察してみよう。\n",
        "\n",
        "- 参考: [はじめての自然言語処理 第6回 OSS によるテキストマイニング](https://www.ogis-ri.co.jp/otc/hiroba/technical/similar-document-search/part6.html)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "M66JAaNcjp6a"
      },
      "source": [
        "## required\n",
        "- spacy, sklearn\n",
        "- wordcloud: ``pip install wordcloud``\n",
        "- scattertext: ``pip install scattertext``"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# spacy, ginzaインストール\n",
        "!pip install -U ginza ja_ginza\n",
        "\n",
        "!pip install scattertext"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "b1ub2893js8P",
        "outputId": "23aea7b1-cd77-4e60-9bd0-a3965ed7bbee"
      },
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Collecting ginza\n",
            "  Downloading ginza-5.2.0-py3-none-any.whl (21 kB)\n",
            "Collecting ja_ginza\n",
            "  Downloading ja_ginza-5.2.0-py3-none-any.whl (59.1 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m59.1/59.1 MB\u001b[0m \u001b[31m12.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: spacy<4.0.0,>=3.4.4 in /usr/local/lib/python3.10/dist-packages (from ginza) (3.7.4)\n",
            "Collecting plac>=1.3.3 (from ginza)\n",
            "  Downloading plac-1.4.3-py2.py3-none-any.whl (22 kB)\n",
            "Collecting SudachiPy<0.7.0,>=0.6.2 (from ginza)\n",
            "  Downloading SudachiPy-0.6.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.6/2.6 MB\u001b[0m \u001b[31m32.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hCollecting SudachiDict-core>=20210802 (from ginza)\n",
            "  Downloading SudachiDict_core-20240409-py3-none-any.whl (72.0 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m72.0/72.0 MB\u001b[0m \u001b[31m6.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (3.0.12)\n",
            "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (1.0.5)\n",
            "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (1.0.10)\n",
            "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (2.0.8)\n",
            "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (3.0.9)\n",
            "Requirement already satisfied: thinc<8.3.0,>=8.2.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (8.2.3)\n",
            "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (1.1.3)\n",
            "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (2.4.8)\n",
            "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (2.0.10)\n",
            "Requirement already satisfied: weasel<0.4.0,>=0.1.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (0.3.4)\n",
            "Requirement already satisfied: typer<0.10.0,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (0.9.4)\n",
            "Requirement already satisfied: smart-open<7.0.0,>=5.2.1 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (6.4.0)\n",
            "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (4.66.4)\n",
            "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (2.31.0)\n",
            "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (2.7.3)\n",
            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (3.1.4)\n",
            "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (67.7.2)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (24.0)\n",
            "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (3.4.0)\n",
            "Requirement already satisfied: numpy>=1.19.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.0.0,>=3.4.4->ginza) (1.25.2)\n",
            "Requirement already satisfied: language-data>=1.2 in /usr/local/lib/python3.10/dist-packages (from langcodes<4.0.0,>=3.2.0->spacy<4.0.0,>=3.4.4->ginza) (1.2.0)\n",
            "Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4.0.0,>=3.4.4->ginza) (0.7.0)\n",
            "Requirement already satisfied: pydantic-core==2.18.4 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4.0.0,>=3.4.4->ginza) (2.18.4)\n",
            "Requirement already satisfied: typing-extensions>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4.0.0,>=3.4.4->ginza) (4.12.1)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.0.0,>=3.4.4->ginza) (3.3.2)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.0.0,>=3.4.4->ginza) (3.7)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.0.0,>=3.4.4->ginza) (2.0.7)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.0.0,>=3.4.4->ginza) (2024.6.2)\n",
            "Requirement already satisfied: blis<0.8.0,>=0.7.8 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.2.2->spacy<4.0.0,>=3.4.4->ginza) (0.7.11)\n",
            "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.2.2->spacy<4.0.0,>=3.4.4->ginza) (0.1.5)\n",
            "Requirement already satisfied: click<9.0.0,>=7.1.1 in /usr/local/lib/python3.10/dist-packages (from typer<0.10.0,>=0.3.0->spacy<4.0.0,>=3.4.4->ginza) (8.1.7)\n",
            "Requirement already satisfied: cloudpathlib<0.17.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from weasel<0.4.0,>=0.1.0->spacy<4.0.0,>=3.4.4->ginza) (0.16.0)\n",
            "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->spacy<4.0.0,>=3.4.4->ginza) (2.1.5)\n",
            "Requirement already satisfied: marisa-trie>=0.7.7 in /usr/local/lib/python3.10/dist-packages (from language-data>=1.2->langcodes<4.0.0,>=3.2.0->spacy<4.0.0,>=3.4.4->ginza) (1.1.1)\n",
            "Installing collected packages: SudachiPy, plac, SudachiDict-core, ginza, ja_ginza\n",
            "Successfully installed SudachiDict-core-20240409 SudachiPy-0.6.8 ginza-5.2.0 ja_ginza-5.2.0 plac-1.4.3\n",
            "Collecting scattertext\n",
            "  Downloading scattertext-0.1.19-py3-none-any.whl (8.2 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m8.2/8.2 MB\u001b[0m \u001b[31m52.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from scattertext) (1.25.2)\n",
            "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from scattertext) (1.11.4)\n",
            "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.10/dist-packages (from scattertext) (1.2.2)\n",
            "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from scattertext) (2.0.3)\n",
            "Requirement already satisfied: statsmodels in /usr/local/lib/python3.10/dist-packages (from scattertext) (0.14.2)\n",
            "Collecting flashtext (from scattertext)\n",
            "  Downloading flashtext-2.7.tar.gz (14 kB)\n",
            "  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "Requirement already satisfied: gensim>=4.0.0 in /usr/local/lib/python3.10/dist-packages (from scattertext) (4.3.2)\n",
            "Requirement already satisfied: spacy>=3.2 in /usr/local/lib/python3.10/dist-packages (from scattertext) (3.7.4)\n",
            "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from scattertext) (4.66.4)\n",
            "Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.10/dist-packages (from gensim>=4.0.0->scattertext) (6.4.0)\n",
            "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (3.0.12)\n",
            "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (1.0.5)\n",
            "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (1.0.10)\n",
            "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (2.0.8)\n",
            "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (3.0.9)\n",
            "Requirement already satisfied: thinc<8.3.0,>=8.2.2 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (8.2.3)\n",
            "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (1.1.3)\n",
            "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (2.4.8)\n",
            "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (2.0.10)\n",
            "Requirement already satisfied: weasel<0.4.0,>=0.1.0 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (0.3.4)\n",
            "Requirement already satisfied: typer<0.10.0,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (0.9.4)\n",
            "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (2.31.0)\n",
            "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (2.7.3)\n",
            "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (3.1.4)\n",
            "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (67.7.2)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (24.0)\n",
            "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from spacy>=3.2->scattertext) (3.4.0)\n",
            "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas->scattertext) (2.8.2)\n",
            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->scattertext) (2023.4)\n",
            "Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas->scattertext) (2024.1)\n",
            "Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->scattertext) (1.4.2)\n",
            "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn->scattertext) (3.5.0)\n",
            "Requirement already satisfied: patsy>=0.5.6 in /usr/local/lib/python3.10/dist-packages (from statsmodels->scattertext) (0.5.6)\n",
            "Requirement already satisfied: language-data>=1.2 in /usr/local/lib/python3.10/dist-packages (from langcodes<4.0.0,>=3.2.0->spacy>=3.2->scattertext) (1.2.0)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from patsy>=0.5.6->statsmodels->scattertext) (1.16.0)\n",
            "Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy>=3.2->scattertext) (0.7.0)\n",
            "Requirement already satisfied: pydantic-core==2.18.4 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy>=3.2->scattertext) (2.18.4)\n",
            "Requirement already satisfied: typing-extensions>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy>=3.2->scattertext) (4.12.1)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy>=3.2->scattertext) (3.3.2)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy>=3.2->scattertext) (3.7)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy>=3.2->scattertext) (2.0.7)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy>=3.2->scattertext) (2024.6.2)\n",
            "Requirement already satisfied: blis<0.8.0,>=0.7.8 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.2.2->spacy>=3.2->scattertext) (0.7.11)\n",
            "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.2.2->spacy>=3.2->scattertext) (0.1.5)\n",
            "Requirement already satisfied: click<9.0.0,>=7.1.1 in /usr/local/lib/python3.10/dist-packages (from typer<0.10.0,>=0.3.0->spacy>=3.2->scattertext) (8.1.7)\n",
            "Requirement already satisfied: cloudpathlib<0.17.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from weasel<0.4.0,>=0.1.0->spacy>=3.2->scattertext) (0.16.0)\n",
            "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->spacy>=3.2->scattertext) (2.1.5)\n",
            "Requirement already satisfied: marisa-trie>=0.7.7 in /usr/local/lib/python3.10/dist-packages (from language-data>=1.2->langcodes<4.0.0,>=3.2.0->spacy>=3.2->scattertext) (1.1.1)\n",
            "Building wheels for collected packages: flashtext\n",
            "  Building wheel for flashtext (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for flashtext: filename=flashtext-2.7-py2.py3-none-any.whl size=9296 sha256=83ab7688c723f846444e1ec290f63f252f652e8868ba2c2cb4245905f3c04cfe\n",
            "  Stored in directory: /root/.cache/pip/wheels/bc/be/39/c37ad168eb2ff644c9685f52554440372129450f0b8ed203dd\n",
            "Successfully built flashtext\n",
            "Installing collected packages: flashtext, scattertext\n",
            "Successfully installed flashtext-2.7 scattertext-0.1.19\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TjVcHzkAjp6a"
      },
      "source": [
        "## 利用ライブラリの用意、データセット準備\n",
        "事前に、[load_r_assesment.ipynb](./load_r_assesment.ipynb) でデータセットを作成し、pkl形式でファイル保存(r_assesment.pkl)しておく。今回は作成済みファイルをダウンロードして利用することにする。\n",
        "\n",
        "r_assesment.pklは授業評価アンケートの自由記述欄をpd.DataFrame形式で保存したもので、授業名(title)、学年(grade)、必修か否か(required)、質問番号(q_id)、コメント(comment)で構成される。"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "PvxbujZwjp6a",
        "outputId": "5623c5af-5060-4397-9fed-1924b1af982a"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n",
            "                                 Dload  Upload   Total   Spent    Left  Speed\n",
            "100 34834  100 34834    0     0  16555      0  0:00:02  0:00:02 --:--:-- 16563\n"
          ]
        }
      ],
      "source": [
        "!curl -O https://ie.u-ryukyu.ac.jp/~tnal/2022/dm/static/r_assesment.pkl"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 204
        },
        "id": "9YVC2Objjp6c",
        "outputId": "77f39063-82d9-471d-af94-f961987b853d"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   title  grade  required     q_id                       comment\n",
              "0  工業数学Ⅰ      1      True  Q21 (1)                          特になし\n",
              "1  工業数学Ⅰ      1      True  Q21 (2)            正直わかりずらい。むだに間があるし。\n",
              "2  工業数学Ⅰ      1      True  Q21 (2)          例題を取り入れて理解しやすくしてほしい。\n",
              "3  工業数学Ⅰ      1      True  Q21 (2)                          特になし\n",
              "4  工業数学Ⅰ      1      True  Q21 (2)  スライドに書く文字をもう少しわかりやすくして欲しいです。"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-fc4bbcaa-f125-4087-bf18-499146c024b2\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>title</th>\n",
              "      <th>grade</th>\n",
              "      <th>required</th>\n",
              "      <th>q_id</th>\n",
              "      <th>comment</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>工業数学Ⅰ</td>\n",
              "      <td>1</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (1)</td>\n",
              "      <td>特になし</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>工業数学Ⅰ</td>\n",
              "      <td>1</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (2)</td>\n",
              "      <td>正直わかりずらい。むだに間があるし。</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>工業数学Ⅰ</td>\n",
              "      <td>1</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (2)</td>\n",
              "      <td>例題を取り入れて理解しやすくしてほしい。</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>工業数学Ⅰ</td>\n",
              "      <td>1</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (2)</td>\n",
              "      <td>特になし</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>工業数学Ⅰ</td>\n",
              "      <td>1</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (2)</td>\n",
              "      <td>スライドに書く文字をもう少しわかりやすくして欲しいです。</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-fc4bbcaa-f125-4087-bf18-499146c024b2')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-fc4bbcaa-f125-4087-bf18-499146c024b2 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-fc4bbcaa-f125-4087-bf18-499146c024b2');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-05271a8b-7af9-46d7-9434-b73c5c17428a\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-05271a8b-7af9-46d7-9434-b73c5c17428a')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-05271a8b-7af9-46d7-9434-b73c5c17428a button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "assesment_df",
              "summary": "{\n  \"name\": \"assesment_df\",\n  \"rows\": 170,\n  \"fields\": [\n    {\n      \"column\": \"title\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 16,\n        \"samples\": [\n          \"\\u5de5\\u696d\\u6570\\u5b66\\u2160\",\n          \"\\u6280\\u8853\\u8005\\u306e\\u502b\\u7406\",\n          \"\\u30a2\\u30eb\\u30b4\\u30ea\\u30ba\\u30e0\\u3068\\u30c7\\u30fc\\u30bf\\u69cb\\u9020\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"grade\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 3,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          1,\n          2,\n          3\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"required\",\n      \"properties\": {\n        \"dtype\": \"boolean\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          false,\n          true\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"q_id\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Q21 (2)\",\n          \"Q22\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"comment\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 153,\n        \"samples\": [\n          \"\\u30fb\\u6559\\u79d1\\u66f8\\u304c\\u5fc5\\u8981\\u306a\\u306e\\u304b\\u5fc5\\u8981\\u3067\\u306a\\u3044\\u306e\\u304b\\u304c\\u66d6\\u6627\\u306a\\u307e\\u307e\\u6388\\u696d\\u304c\\u59cb\\u307e\\u308a\\u3001\\u975e\\u5e38\\u306b\\u4e0d\\u5b89\\u3060\\u3063\\u305f\\u305f\\u3081\\u3001\\u6559\\u79d1\\u66f8\\u304c\\u5fc5\\u9808\\u304b\\u305d\\u3046\\u3067\\u306a\\u3044\\u306e\\u304b\\u306f\\u6700\\u521d\\u306b\\u306f\\u3063\\u304d\\u308a\\u3057\\u3066\\u6b32\\u3057\\u3044\\u3002\\r\\n\\u30fb\\u8ab2\\u984c\\u3092\\u51fa\\u3059\\u3060\\u3051\\u51fa\\u3055\\u305b\\u3066\\u304a\\u3044\\u3066\\u3001\\u63a1\\u70b9\\u3082\\u305b\\u305a\\u3001\\u3069\\u3046\\u3044\\u3063\\u305f\\u89e3\\u7b54\\u304c\\u6b63\\u3057\\u3044\\u306e\\u304b\\u3068\\u3044\\u3063\\u305f\\u6307\\u91dd\\u3082\\u51fa\\u3059\\u306e\\u304c\\u3068\\u3066\\u3082\\u9045\\u3044\\u3002\\u8ab2\\u984c\\u306f\\u89e3\\u304f\\u3060\\u3051\\u3067\\u306f\\u77e5\\u8b58\\u306e\\u5b9a\\u7740\\u306b\\u3064\\u306a\\u304c\\u3089\\u306a\\u3044\\u3068\\u601d\\u3044\\u307e\\u3059\\u304c\\u3001\\u305d\\u3053\\u3089\\u3078\\u3093\\u306f\\u3069\\u3046\\u306a\\u3093\\u3067\\u3057\\u3087\\u3046\\u304b\\u3002\\r\\n\\u30fb\\u914d\\u5e03\\u8cc7\\u6599\\u3068\\u3057\\u3066\\u3001\\u904e\\u53bb\\u554f\\u3082\\u914d\\u5e03\\u3057\\u3066\\u304f\\u308c\\u308b\\u3068\\u3068\\u3066\\u3082\\u52a9\\u304b\\u308b\\u306a\\u3001\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u3054\\u691c\\u8a0e\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\u3002\",\n          \"\\u30fb\\u4e2d\\u9593\\u30c6\\u30b9\\u30c8\\u3092\\u5ef6\\u671f\\u3057\\u7d9a\\u3051\\u3001\\u6700\\u7d42\\u7684\\u306b\\u4e2d\\u9593\\u30fb\\u671f\\u672b\\u8a66\\u9a13\\u3092\\uff12\\u9031\\u7d9a\\u3051\\u3066\\u3084\\u308b\\u3053\\u3068\\u3068\\u306a\\u308a\\u3001\\u8a08\\u753b\\u6027\\u304c\\u6b20\\u3051\\u3066\\u3044\\u308b\\u3002\\r\\n\\u30fb\\u914d\\u5e03\\u8cc7\\u6599\\u306e\\u8aa4\\u5b57\\u8131\\u5b57\\u304c\\u591a\\u3059\\u304e\\u308b\\u3002\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 4
        }
      ],
      "source": [
        "import collections\n",
        "\n",
        "import numpy as np\n",
        "import pandas as pd\n",
        "import spacy\n",
        "\n",
        "nlp = spacy.load(\"ja_ginza\")\n",
        "\n",
        "assesment_df = pd.read_pickle('r_assesment.pkl')\n",
        "assesment_df.head()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "h1gtVVTBjp6c"
      },
      "source": [
        "## (何故かみんな大好き) ワードクラウド\n",
        "- 分かち書きした文章を用意し、最大フォントサイズや画像サイズを指定するぐらいで作成可能。\n",
        "- wordcloudで日本語を扱う場合、フォント指定が必要。OS毎にフォントの場所が異なるので「Windows wordcolud 日本語」のようにググってみよう。"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 708
        },
        "id": "Ho5gxU8zjp6c",
        "outputId": "1aba21d6-7e1c-49e7-810b-529f4f80be76"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "        title  grade  required     q_id  \\\n",
              "0       工業数学Ⅰ      1      True  Q21 (1)   \n",
              "1       工業数学Ⅰ      1      True  Q21 (2)   \n",
              "2       工業数学Ⅰ      1      True  Q21 (2)   \n",
              "3       工業数学Ⅰ      1      True  Q21 (2)   \n",
              "4       工業数学Ⅰ      1      True  Q21 (2)   \n",
              "..        ...    ...       ...      ...   \n",
              "165  データマイニング      3     False      Q22   \n",
              "166  ICT実践英語Ⅰ      3     False      Q22   \n",
              "167   知能情報実験Ⅲ      3      True  Q21 (2)   \n",
              "168   知能情報実験Ⅲ      3      True      Q22   \n",
              "169   知能情報実験Ⅲ      3      True      Q22   \n",
              "\n",
              "                                               comment  \\\n",
              "0                                                 特になし   \n",
              "1                                   正直わかりずらい。むだに間があるし。   \n",
              "2                                 例題を取り入れて理解しやすくしてほしい。   \n",
              "3                                                 特になし   \n",
              "4                         スライドに書く文字をもう少しわかりやすくして欲しいです。   \n",
              "..                                                 ...   \n",
              "165  課題が難しいものが多く、時間を多くとってもらえたのは非常に良かったですがかなりきつかったです...   \n",
              "166                            オンラインなどで顔を合わせてやりたかったです。   \n",
              "167  unityの操作方法の説明などを最初に行ってもらえたらもう少しスムーズにできたのではないかと思う。   \n",
              "168  それぞれに任せるといった形で進められたものだったのでそれなりに進めやすかったですが、オンライ...   \n",
              "169  モバイルアプリ班\\r\\nHTML/CSS，JavaScriptなどを用いてアプリケーションを...   \n",
              "\n",
              "                                                wakati  \n",
              "0                                                特に なし  \n",
              "1                         正直 わかる ずらい 。 むだ だ 間 が ある し 。  \n",
              "2                    例題 を 取り入れる て 理解 する やすい する て ほしい 。  \n",
              "3                                                特に なし  \n",
              "4           スライド に 書く 文字 を もう 少し わかる やすい する て 欲しい です 。  \n",
              "..                                                 ...  \n",
              "165  課題 が 難しい もの が 多い 、 時間 を 多い とる て もらえる た の は 非常 ...  \n",
              "166                 オンライン など で 顔 を 合わせる て やる たい た です 。  \n",
              "167  unity の 操作方法 の 説明 など を 最初 に 行く て もらえる た もう 少し ...  \n",
              "168  それぞれ に 任せる と いう た 形 で 進める られる た もの だ た の だ それ ...  \n",
              "169  モバイルアプリ 班 \\r\\n HTML / CSS , javascript など を 用い...  \n",
              "\n",
              "[170 rows x 6 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-c84eac7a-dbc0-417d-b2ad-dd2fe6708865\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>title</th>\n",
              "      <th>grade</th>\n",
              "      <th>required</th>\n",
              "      <th>q_id</th>\n",
              "      <th>comment</th>\n",
              "      <th>wakati</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>工業数学Ⅰ</td>\n",
              "      <td>1</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (1)</td>\n",
              "      <td>特になし</td>\n",
              "      <td>特に なし</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>工業数学Ⅰ</td>\n",
              "      <td>1</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (2)</td>\n",
              "      <td>正直わかりずらい。むだに間があるし。</td>\n",
              "      <td>正直 わかる ずらい 。 むだ だ 間 が ある し 。</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>工業数学Ⅰ</td>\n",
              "      <td>1</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (2)</td>\n",
              "      <td>例題を取り入れて理解しやすくしてほしい。</td>\n",
              "      <td>例題 を 取り入れる て 理解 する やすい する て ほしい 。</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>工業数学Ⅰ</td>\n",
              "      <td>1</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (2)</td>\n",
              "      <td>特になし</td>\n",
              "      <td>特に なし</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>工業数学Ⅰ</td>\n",
              "      <td>1</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (2)</td>\n",
              "      <td>スライドに書く文字をもう少しわかりやすくして欲しいです。</td>\n",
              "      <td>スライド に 書く 文字 を もう 少し わかる やすい する て 欲しい です 。</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>...</th>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "      <td>...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>165</th>\n",
              "      <td>データマイニング</td>\n",
              "      <td>3</td>\n",
              "      <td>False</td>\n",
              "      <td>Q22</td>\n",
              "      <td>課題が難しいものが多く、時間を多くとってもらえたのは非常に良かったですがかなりきつかったです...</td>\n",
              "      <td>課題 が 難しい もの が 多い 、 時間 を 多い とる て もらえる た の は 非常 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>166</th>\n",
              "      <td>ICT実践英語Ⅰ</td>\n",
              "      <td>3</td>\n",
              "      <td>False</td>\n",
              "      <td>Q22</td>\n",
              "      <td>オンラインなどで顔を合わせてやりたかったです。</td>\n",
              "      <td>オンライン など で 顔 を 合わせる て やる たい た です 。</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>167</th>\n",
              "      <td>知能情報実験Ⅲ</td>\n",
              "      <td>3</td>\n",
              "      <td>True</td>\n",
              "      <td>Q21 (2)</td>\n",
              "      <td>unityの操作方法の説明などを最初に行ってもらえたらもう少しスムーズにできたのではないかと思う。</td>\n",
              "      <td>unity の 操作方法 の 説明 など を 最初 に 行く て もらえる た もう 少し ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>168</th>\n",
              "      <td>知能情報実験Ⅲ</td>\n",
              "      <td>3</td>\n",
              "      <td>True</td>\n",
              "      <td>Q22</td>\n",
              "      <td>それぞれに任せるといった形で進められたものだったのでそれなりに進めやすかったですが、オンライ...</td>\n",
              "      <td>それぞれ に 任せる と いう た 形 で 進める られる た もの だ た の だ それ ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>169</th>\n",
              "      <td>知能情報実験Ⅲ</td>\n",
              "      <td>3</td>\n",
              "      <td>True</td>\n",
              "      <td>Q22</td>\n",
              "      <td>モバイルアプリ班\\r\\nHTML/CSS，JavaScriptなどを用いてアプリケーションを...</td>\n",
              "      <td>モバイルアプリ 班 \\r\\n HTML / CSS , javascript など を 用い...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>170 rows × 6 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c84eac7a-dbc0-417d-b2ad-dd2fe6708865')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-c84eac7a-dbc0-417d-b2ad-dd2fe6708865 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-c84eac7a-dbc0-417d-b2ad-dd2fe6708865');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-c4d7e9e9-27a8-4786-a08a-37ff0b5fd176\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-c4d7e9e9-27a8-4786-a08a-37ff0b5fd176')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-c4d7e9e9-27a8-4786-a08a-37ff0b5fd176 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "assesment_df",
              "summary": "{\n  \"name\": \"assesment_df\",\n  \"rows\": 170,\n  \"fields\": [\n    {\n      \"column\": \"title\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 16,\n        \"samples\": [\n          \"\\u5de5\\u696d\\u6570\\u5b66\\u2160\",\n          \"\\u6280\\u8853\\u8005\\u306e\\u502b\\u7406\",\n          \"\\u30a2\\u30eb\\u30b4\\u30ea\\u30ba\\u30e0\\u3068\\u30c7\\u30fc\\u30bf\\u69cb\\u9020\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"grade\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 3,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          1,\n          2,\n          3\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"required\",\n      \"properties\": {\n        \"dtype\": \"boolean\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          false,\n          true\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"q_id\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Q21 (2)\",\n          \"Q22\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"comment\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 153,\n        \"samples\": [\n          \"\\u30fb\\u6559\\u79d1\\u66f8\\u304c\\u5fc5\\u8981\\u306a\\u306e\\u304b\\u5fc5\\u8981\\u3067\\u306a\\u3044\\u306e\\u304b\\u304c\\u66d6\\u6627\\u306a\\u307e\\u307e\\u6388\\u696d\\u304c\\u59cb\\u307e\\u308a\\u3001\\u975e\\u5e38\\u306b\\u4e0d\\u5b89\\u3060\\u3063\\u305f\\u305f\\u3081\\u3001\\u6559\\u79d1\\u66f8\\u304c\\u5fc5\\u9808\\u304b\\u305d\\u3046\\u3067\\u306a\\u3044\\u306e\\u304b\\u306f\\u6700\\u521d\\u306b\\u306f\\u3063\\u304d\\u308a\\u3057\\u3066\\u6b32\\u3057\\u3044\\u3002\\r\\n\\u30fb\\u8ab2\\u984c\\u3092\\u51fa\\u3059\\u3060\\u3051\\u51fa\\u3055\\u305b\\u3066\\u304a\\u3044\\u3066\\u3001\\u63a1\\u70b9\\u3082\\u305b\\u305a\\u3001\\u3069\\u3046\\u3044\\u3063\\u305f\\u89e3\\u7b54\\u304c\\u6b63\\u3057\\u3044\\u306e\\u304b\\u3068\\u3044\\u3063\\u305f\\u6307\\u91dd\\u3082\\u51fa\\u3059\\u306e\\u304c\\u3068\\u3066\\u3082\\u9045\\u3044\\u3002\\u8ab2\\u984c\\u306f\\u89e3\\u304f\\u3060\\u3051\\u3067\\u306f\\u77e5\\u8b58\\u306e\\u5b9a\\u7740\\u306b\\u3064\\u306a\\u304c\\u3089\\u306a\\u3044\\u3068\\u601d\\u3044\\u307e\\u3059\\u304c\\u3001\\u305d\\u3053\\u3089\\u3078\\u3093\\u306f\\u3069\\u3046\\u306a\\u3093\\u3067\\u3057\\u3087\\u3046\\u304b\\u3002\\r\\n\\u30fb\\u914d\\u5e03\\u8cc7\\u6599\\u3068\\u3057\\u3066\\u3001\\u904e\\u53bb\\u554f\\u3082\\u914d\\u5e03\\u3057\\u3066\\u304f\\u308c\\u308b\\u3068\\u3068\\u3066\\u3082\\u52a9\\u304b\\u308b\\u306a\\u3001\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u3054\\u691c\\u8a0e\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\u3002\",\n          \"\\u30fb\\u4e2d\\u9593\\u30c6\\u30b9\\u30c8\\u3092\\u5ef6\\u671f\\u3057\\u7d9a\\u3051\\u3001\\u6700\\u7d42\\u7684\\u306b\\u4e2d\\u9593\\u30fb\\u671f\\u672b\\u8a66\\u9a13\\u3092\\uff12\\u9031\\u7d9a\\u3051\\u3066\\u3084\\u308b\\u3053\\u3068\\u3068\\u306a\\u308a\\u3001\\u8a08\\u753b\\u6027\\u304c\\u6b20\\u3051\\u3066\\u3044\\u308b\\u3002\\r\\n\\u30fb\\u914d\\u5e03\\u8cc7\\u6599\\u306e\\u8aa4\\u5b57\\u8131\\u5b57\\u304c\\u591a\\u3059\\u304e\\u308b\\u3002\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"wakati\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 153,\n        \"samples\": [\n          \"\\u30fb \\u6559\\u79d1\\u66f8 \\u304c \\u5fc5\\u8981 \\u3060 \\u306e \\u304b \\u5fc5\\u8981 \\u3060 \\u306a\\u3044 \\u306e \\u304b \\u304c \\u66d6\\u6627 \\u3060 \\u307e\\u307e \\u6388\\u696d \\u304c \\u59cb\\u307e\\u308b \\u3001 \\u975e\\u5e38 \\u3060 \\u4e0d\\u5b89 \\u3060 \\u305f \\u305f\\u3081 \\u3001 \\u6559\\u79d1\\u66f8 \\u304c \\u5fc5\\u9808 \\u304b \\u305d\\u3046 \\u3060 \\u306a\\u3044 \\u306e \\u304b \\u306f \\u6700\\u521d \\u306b \\u306f\\u3063\\u304d\\u308a \\u3059\\u308b \\u3066 \\u6b32\\u3057\\u3044 \\u3002 \\r\\n \\u30fb \\u8ab2\\u984c \\u3092 \\u51fa\\u3059 \\u3060\\u3051 \\u51fa\\u3059 \\u305b\\u308b \\u3066 \\u304a\\u304f \\u3066 \\u3001 \\u63a1\\u70b9 \\u3082 \\u3059\\u308b \\u305a \\u3001 \\u3069\\u3046 \\u3044\\u3046 \\u305f \\u89e3\\u7b54 \\u304c \\u6b63\\u3057\\u3044 \\u306e \\u304b \\u3068 \\u3044\\u3046 \\u305f \\u6307\\u91dd \\u3082 \\u51fa\\u3059 \\u306e \\u304c \\u3068\\u3066\\u3082 \\u9045\\u3044 \\u3002 \\u8ab2\\u984c \\u306f \\u89e3\\u304f \\u3060\\u3051 \\u3067 \\u306f \\u77e5\\u8b58 \\u306e \\u5b9a\\u7740 \\u306b \\u3064\\u306a\\u304c\\u308b \\u306a\\u3044 \\u3068 \\u601d\\u3046 \\u307e\\u3059 \\u304c \\u3001 \\u305d\\u3053 \\u3089 \\u3078\\u3093 \\u306f \\u3069\\u3046 \\u3060 \\u3093 \\u3067\\u3059 \\u304b \\u3002 \\r\\n \\u30fb \\u914d\\u5e03\\u8cc7\\u6599 \\u3068 \\u3059\\u308b \\u3066 \\u3001 \\u904e\\u53bb\\u554f \\u3082 \\u914d\\u5e03 \\u3059\\u308b \\u3066 \\u304f\\u308c\\u308b \\u3068 \\u3068\\u3066\\u3082 \\u52a9\\u304b\\u308b \\u306a \\u3001 \\u3068 \\u601d\\u3046 \\u307e\\u3059 \\u3002 \\u3054 \\u691c\\u8a0e \\u304a \\u9858\\u3046 \\u3059\\u308b \\u307e\\u3059 \\u3002\",\n          \"\\u30fb \\u4e2d\\u9593 \\u30c6\\u30b9\\u30c8 \\u3092 \\u5ef6\\u671f \\u3059\\u308b \\u7d9a\\u3051\\u308b \\u3001 \\u6700\\u7d42\\u7684 \\u3060 \\u4e2d\\u9593 \\u30fb \\u671f\\u672b \\u8a66\\u9a13 \\u3092 2 \\u9031 \\u7d9a\\u3051\\u308b \\u3066 \\u3084\\u308b \\u3053\\u3068 \\u3068 \\u306a\\u308b \\u3001 \\u8a08\\u753b\\u6027 \\u304c \\u6b20\\u3051\\u308b \\u3066 \\u3044\\u308b \\u3002 \\r\\n \\u30fb \\u914d\\u5e03\\u8cc7\\u6599 \\u306e \\u8aa4\\u5b57 \\u8131\\u5b57 \\u304c \\u591a\\u3044 \\u3059\\u304e\\u308b \\u3002\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 5
        }
      ],
      "source": [
        "# 分かち書き\n",
        "assesment_df['wakati'] = ''\n",
        "for index, comment in enumerate(assesment_df['comment']):\n",
        "    doc = nlp(comment)\n",
        "    wakati_words = []\n",
        "    for token in doc:\n",
        "        wakati_words.append(token.lemma_)\n",
        "    wakati_text = ' '.join(wakati_words)\n",
        "    assesment_df.at[index, 'wakati'] = wakati_text\n",
        "\n",
        "assesment_df"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# フォントのインストールと設定\n",
        "!apt-get -y install fonts-ipafont-gothic\n",
        "font_path = '/usr/share/fonts/truetype/fonts-japanese-mincho.ttf'"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "tGDFsi_zkh9d",
        "outputId": "e3c21739-d491-4ba8-bcba-6133c1cb2361"
      },
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Reading package lists... Done\n",
            "Building dependency tree... Done\n",
            "Reading state information... Done\n",
            "The following additional packages will be installed:\n",
            "  fonts-ipafont-mincho\n",
            "The following NEW packages will be installed:\n",
            "  fonts-ipafont-gothic fonts-ipafont-mincho\n",
            "0 upgraded, 2 newly installed, 0 to remove and 45 not upgraded.\n",
            "Need to get 8,237 kB of archives.\n",
            "After this operation, 28.7 MB of additional disk space will be used.\n",
            "Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 fonts-ipafont-gothic all 00303-21ubuntu1 [3,513 kB]\n",
            "Get:2 http://archive.ubuntu.com/ubuntu jammy/universe amd64 fonts-ipafont-mincho all 00303-21ubuntu1 [4,724 kB]\n",
            "Fetched 8,237 kB in 0s (37.2 MB/s)\n",
            "Selecting previously unselected package fonts-ipafont-gothic.\n",
            "(Reading database ... 121918 files and directories currently installed.)\n",
            "Preparing to unpack .../fonts-ipafont-gothic_00303-21ubuntu1_all.deb ...\n",
            "Unpacking fonts-ipafont-gothic (00303-21ubuntu1) ...\n",
            "Selecting previously unselected package fonts-ipafont-mincho.\n",
            "Preparing to unpack .../fonts-ipafont-mincho_00303-21ubuntu1_all.deb ...\n",
            "Unpacking fonts-ipafont-mincho (00303-21ubuntu1) ...\n",
            "Setting up fonts-ipafont-mincho (00303-21ubuntu1) ...\n",
            "update-alternatives: using /usr/share/fonts/opentype/ipafont-mincho/ipam.ttf to provide /usr/share/fonts/truetype/fonts-japanese-mincho.ttf (fonts-japanese-mincho.ttf) in auto mode\n",
            "Setting up fonts-ipafont-gothic (00303-21ubuntu1) ...\n",
            "update-alternatives: using /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf to provide /usr/share/fonts/truetype/fonts-japanese-gothic.ttf (fonts-japanese-gothic.ttf) in auto mode\n",
            "Processing triggers for fontconfig (2.13.1-4.2ubuntu5) ...\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 395
        },
        "id": "z9VBl_yhjp6c",
        "outputId": "9e0ddc6c-b0ef-4e2d-fcd0-9c0e11da5b22"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<PIL.Image.Image image mode=RGB size=1000x500>"
            ],
            "image/png": "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\n"
          },
          "metadata": {},
          "execution_count": 10
        }
      ],
      "source": [
        "from wordcloud import WordCloud\n",
        "\n",
        "#font_path = '/Library/Fonts/Arial Unicode' # macOSでデフォルトであると思われるフォント\n",
        "#wc = WordCloud(background_color='white', font_path=font_path, max_font_size=100, width=1000, height=500).generate(' '.join(assesment_df['wakati']))\n",
        "wc = WordCloud(background_color='white', font_path=font_path, max_font_size=100, width=1000, height=500).generate(' '.join(assesment_df['wakati']))\n",
        "wc.to_image()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "QcjSoMB3jp6d"
      },
      "source": [
        "## scattertextによる2文書の傾向比較\n",
        "[scattertext](https://github.com/JasonKessler/scattertext)は、2つの文書（もしくは2つの文書集合）の違いを単語出現分布から観察するのに適した可視化ツールだ。対比させるという点が重要であり、そうではないタスク、例えばある文書を要約する（重要語を抽出する）というタスクには向いていない。対比する文書は1文書単位でも良いし、複数文書でも構わない。\n",
        "\n",
        "なお、3種類以上を同時に比較することはできない。もしそのような場合に用いたいのであれば、例えば「文書1とそれ以外」「文書2とそれ以外」のように one-vs-rest を複数回実行すると良いだろう。\n",
        "\n",
        "以下では、授業毎のコメント数上位2科目を比較対象とし、以下の手順で描画する。\n",
        "- 上位2科目の dataframe を用意する。\n",
        "- コメントの spacy.nlp 解析結果（Doc形式）を用意する。\n",
        "  - コメント文そのものや分かち書き結果ではなく、Doc型を用意する必要がある。\n",
        "- dataframe と列を指定して scattertext に処理してもらう。"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "NxK_iCPvjp6d"
      },
      "source": [
        "### 前処理なし"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "dfXTAnl8jp6d",
        "outputId": "ce7ebaf1-25c4-4ead-b109-2e972273b082"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "title\n",
              "コンピュータシステム      32\n",
              "プログラミングⅠ        19\n",
              "技術者の倫理          18\n",
              "工業数学Ⅰ           16\n",
              "アルゴリズムとデータ構造    15\n",
              "データサイエンス基礎      15\n",
              "プログラミング演習Ⅰ      13\n",
              "工学基礎演習          12\n",
              "プロジェクトデザイン       9\n",
              "情報ネットワークⅠ        7\n",
              "情報処理技術概論         7\n",
              "知能情報実験Ⅲ          3\n",
              "ディジタル回路          1\n",
              "キャリアデザイン         1\n",
              "データマイニング         1\n",
              "ICT実践英語Ⅰ         1\n",
              "Name: count, dtype: int64"
            ]
          },
          "metadata": {},
          "execution_count": 11
        }
      ],
      "source": [
        "# 授業毎のコメント数上位を確認\n",
        "assesment_df['title'].value_counts()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 374
        },
        "id": "MXjedGCqjp6d",
        "outputId": "04c523de-377e-4a05-c763-c9a4bf740752"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "       title                                         comment  \\\n",
              "46  プログラミングⅠ                                            特になし   \n",
              "47  プログラミングⅠ  たまに説明がないコードがあったりしたので少し戸惑った。いずれはやっていくものではあるが、、、   \n",
              "48  プログラミングⅠ                                 できれば、対面を増やして欲しい   \n",
              "49  プログラミングⅠ                                            特になし   \n",
              "50  プログラミングⅠ                             他人の課題を変更できてしまうのが怖い。   \n",
              "\n",
              "                                                  doc  \n",
              "46                                           (特に, なし)  \n",
              "47  (たまに, 説明, が, ない, コード, が, あっ, たり, し, た, の, で, 少...  \n",
              "48                    (できれ, ば, 、, 対面, を, 増やし, て, 欲しい)  \n",
              "49                                           (特に, なし)  \n",
              "50        (他人, の, 課題, を, 変更, でき, て, しまう, の, が, 怖い, 。)  "
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-9c01ae50-e7f2-4521-b3dc-1de16eeee8b0\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>title</th>\n",
              "      <th>comment</th>\n",
              "      <th>doc</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>46</th>\n",
              "      <td>プログラミングⅠ</td>\n",
              "      <td>特になし</td>\n",
              "      <td>(特に, なし)</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>47</th>\n",
              "      <td>プログラミングⅠ</td>\n",
              "      <td>たまに説明がないコードがあったりしたので少し戸惑った。いずれはやっていくものではあるが、、、</td>\n",
              "      <td>(たまに, 説明, が, ない, コード, が, あっ, たり, し, た, の, で, 少...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>48</th>\n",
              "      <td>プログラミングⅠ</td>\n",
              "      <td>できれば、対面を増やして欲しい</td>\n",
              "      <td>(できれ, ば, 、, 対面, を, 増やし, て, 欲しい)</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>49</th>\n",
              "      <td>プログラミングⅠ</td>\n",
              "      <td>特になし</td>\n",
              "      <td>(特に, なし)</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>50</th>\n",
              "      <td>プログラミングⅠ</td>\n",
              "      <td>他人の課題を変更できてしまうのが怖い。</td>\n",
              "      <td>(他人, の, 課題, を, 変更, でき, て, しまう, の, が, 怖い, 。)</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9c01ae50-e7f2-4521-b3dc-1de16eeee8b0')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-9c01ae50-e7f2-4521-b3dc-1de16eeee8b0 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-9c01ae50-e7f2-4521-b3dc-1de16eeee8b0');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-4549b63d-3792-4818-bc23-c290631961db\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4549b63d-3792-4818-bc23-c290631961db')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-4549b63d-3792-4818-bc23-c290631961db button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "new_df",
              "summary": "{\n  \"name\": \"new_df\",\n  \"rows\": 51,\n  \"fields\": [\n    {\n      \"column\": \"title\",\n      \"properties\": {\n        \"dtype\": \"category\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u30b7\\u30b9\\u30c6\\u30e0\",\n          \"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u2160\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"comment\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 48,\n        \"samples\": [\n          \"\\u30de\\u30a6\\u30b9\\u3067\\u306e\\u30e1\\u30e2\\u66f8\\u304d\\u306f\\u5c11\\u3057\\u898b\\u3065\\u3089\\u304b\\u3063\\u305f\\u3002\",\n          \"Zoom\\u306e\\u97f3\\u58f0\\u3001\\u8cc7\\u6599\\u753b\\u50cf\\u306e\\u753b\\u8cea\\u306a\\u3069\\u7279\\u306b\\u554f\\u984c\\u306a\\u304f\\u6388\\u696d\\u3092\\u53d7\\u3051\\u3089\\u308c\\u305f\\u3002\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"doc\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 51,\n        \"samples\": [\n          \"Zoom\\u306e\\u97f3\\u58f0\\u3001\\u8cc7\\u6599\\u753b\\u50cf\\u306e\\u753b\\u8cea\\u306a\\u3069\\u7279\\u306b\\u554f\\u984c\\u306a\\u304f\\u6388\\u696d\\u3092\\u53d7\\u3051\\u3089\\u308c\\u305f\\u3002\",\n          \"\\u30fb\\u8ab2\\u984c\\u3092\\u51fa\\u3057\\u3066\\u3082\\u3001\\u89e3\\u7b54\\u3084\\u63a1\\u70b9\\u304c\\u51fa\\u306a\\u304f\\u3066\\u3068\\u3066\\u3082\\u56f0\\u308b\\u3002\\u8a66\\u9a13\\u306e\\u4e00\\u9031\\u9593\\u524d\\u306b\\u89e3\\u7b54\\u3092\\u51fa\\u3055\\u308c\\u3066\\u3082\\u3001\\u5b8c\\u74a7\\u306b\\u5fa9\\u7fd2\\u3067\\u304d\\u308b\\u308f\\u3051\\u304c\\u306a\\u3044\\u3002\\u524d\\u6301\\u3063\\u3066\\u5fa9\\u7fd2\\u3057\\u305f\\u3044\\u304b\\u3089\\u3001\\u8ab2\\u984c\\u306e\\u63d0\\u51fa\\u671f\\u9593\\u3092\\u904e\\u304e\\u305f\\u3089\\u3059\\u3050\\u306b\\u89e3\\u7b54\\u3092\\u51fa\\u3057\\u3066\\u307b\\u3057\\u3044\\u3002\\r\\n\\u30fbwebclass\\u3067\\u8a66\\u9a13\\u3092\\u3057\\u305f\\u3089\\u3001webclass\\u304c\\u6b62\\u307e\\u3063\\u3066\\u89e3\\u7b54\\u3067\\u304d\\u306a\\u304f\\u306a\\u3063\\u305f\\u5b66\\u751f\\u304c\\u591a\\u304f\\u3044\\u305f\\u3002\\u6628\\u5e74\\u3082\\u3053\\u306e\\u3088\\u3046\\u306a\\u4e8b\\u614b\\u304c\\u8d77\\u3053\\u3063\\u305f\\u3068\\u805e\\u3044\\u3066\\u3001\\u89e3\\u6c7a\\u7b56\\u3092\\u8003\\u3048\\u306a\\u304b\\u3063\\u305f\\u306e\\u304b\\u3068\\u7591\\u554f\\u306b\\u601d\\u3046\\u3002\\u3061\\u3083\\u3093\\u3068\\u3053\\u306e\\u554f\\u984c\\u3092\\u89e3\\u6c7a\\u3057\\u3066\\u304b\\u3089\\u3001\\u5b66\\u751f\\u304c\\u5b89\\u5fc3\\u3057\\u3066\\u8a66\\u9a13\\u3092\\u53d7\\u3051\\u3089\\u308c\\u308b\\u74b0\\u5883\\u3092\\u6574\\u3048\\u3066\\u307b\\u3057\\u3044\\u3002\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 12
        }
      ],
      "source": [
        "# 上位2科目のみの dataframe を用意。\n",
        "# (1) 比較対象をカテゴリ名として保存している列（以下では new_df['title']）と、\n",
        "# (2) 処理対象となる文書（以下では new_df['comment']）を保存すること。\n",
        "title1 = 'コンピュータシステム'\n",
        "title2 = 'プログラミングⅠ'\n",
        "condition1 = assesment_df['title'] == title1\n",
        "condition2 = assesment_df['title'] == title2\n",
        "new_df = assesment_df[condition1 | condition2].loc[:,['title', 'comment']]\n",
        "\n",
        "# コメント文の nlp 解析結果を用意し、new_df に新しい列として保存する。\n",
        "# new_df['doc'] の中は丸括弧付きで分かち書きされているように出力されるが、中身はDoc形式である点に注意。\n",
        "docs = []\n",
        "for comment in new_df['comment']:\n",
        "    doc = nlp(comment)\n",
        "    docs.append(doc)\n",
        "\n",
        "new_df['doc'] = docs\n",
        "new_df.head()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 759
        },
        "id": "XX5GDrD6jp6e",
        "outputId": "0a3117eb-03b8-4fb5-bfd5-b5801d9da09a"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "<!-- some code adapted from www.degeneratestate.org/static/metal_lyrics/metal_line.html -->\n",
              "<!-- <!DOCTYPE html>\n",
              "<meta content=\"utf-8\"> -->\n",
              "<style> /* set the CSS */\n",
              "\n",
              "body {\n",
              "  font: 12px Arial;\n",
              "}\n",
              "\n",
              "svg {\n",
              "  font: 12px Helvetica;\n",
              "}\n",
              "\n",
              "path {\n",
              "  stroke: steelblue;\n",
              "  stroke-width: 2;\n",
              "  fill: none;\n",
              "}\n",
              "\n",
              ".grid line {\n",
              "  stroke: lightgrey;\n",
              "  stroke-opacity: 0.4;\n",
              "  shape-rendering: crispEdges;\n",
              "}\n",
              "\n",
              ".grid path {\n",
              "  stroke-width: 0;\n",
              "}\n",
              "\n",
              ".axis path,\n",
              ".axis lineper {\n",
              "  fill: none;\n",
              "  stroke: grey;\n",
              "  stroke-width: 1;\n",
              "  shape-rendering: crispEdges;\n",
              "}\n",
              "\n",
              "div.tooltip {\n",
              "  position: absolute;\n",
              "  text-align: center;\n",
              "  width: 150px;\n",
              "  height: 28px;\n",
              "  padding: 2px;\n",
              "  font: 12px sans-serif;\n",
              "  background: lightsteelblue;\n",
              "  border: 0px;\n",
              "  border-radius: 8px;\n",
              "  pointer-events: none;\n",
              "}\n",
              "\n",
              "div.tooltipscore {\n",
              "  position: absolute;\n",
              "  text-align: center;\n",
              "  width: 150px;\n",
              "  height: 50px;\n",
              "  padding: 2px;\n",
              "  font: 10px sans-serif;\n",
              "  background: lightsteelblue;\n",
              "  border: 0px;\n",
              "  border-radius: 8px;\n",
              "  pointer-events: none;\n",
              "}\n",
              "\n",
              ".category_header {\n",
              "  font: 12px sans-serif;\n",
              "  font-weight: bolder;\n",
              "  text-decoration: underline;\n",
              "}\n",
              "\n",
              "div.label {\n",
              "  color: rgb(252, 251, 253);\n",
              "  color: rgb(63, 0, 125);\n",
              "  color: rgb(158, 155, 201);\n",
              "\n",
              "  position: absolute;\n",
              "  text-align: left;\n",
              "  padding: 1px;\n",
              "  border-spacing: 1px;\n",
              "  font: 10px sans-serif;\n",
              "  font-family: Sans-Serif;\n",
              "  border: 0;\n",
              "  pointer-events: none;\n",
              "}\n",
              "/*\n",
              "input {\n",
              "  border: 1px dotted #ccc;\n",
              "  background: white;\n",
              "  font-family: monospace;\n",
              "  padding: 10px 20px;\n",
              "  font-size: 14px;\n",
              "  margin: 20px 10px 30px 0;\n",
              "  color: darkred;\n",
              "}*/\n",
              "\n",
              ".alert {\n",
              "  font-family: monospace;\n",
              "  padding: 10px 20px;\n",
              "  font-size: 14px;\n",
              "  margin: 20px 10px 30px 0;\n",
              "  color: darkred;\n",
              "}\n",
              "\n",
              "ul.top_terms li {\n",
              "  padding-right: 20px;\n",
              "  font-size: 30pt;\n",
              "  color: red;\n",
              "}\n",
              "/*\n",
              "input:focus {\n",
              "  background-color: lightyellow;\n",
              "  outline: none;\n",
              "}*/\n",
              "\n",
              ".snippet {\n",
              "  padding-bottom: 10px;\n",
              "  padding-left: 5px;\n",
              "  padding-right: 5px;\n",
              "  white-space: pre-wrap;\n",
              "}\n",
              "\n",
              ".snippet_header {\n",
              "  font-size: 20px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "  font-weight: bolder;\n",
              "  #text-decoration: underline;\n",
              "  text-align: center;\n",
              "  border-bottom-width: 10px;\n",
              "  border-bottom-color: #888888;\n",
              "  padding-bottom: 10px;\n",
              "}\n",
              "\n",
              ".topic_preview {\n",
              "  font-size: 12px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "  text-align: center;\n",
              "  padding-bottom: 10px;\n",
              "  font-weight: normal;\n",
              "  text-decoration: none;\n",
              "}\n",
              "\n",
              "\n",
              "#d3-div-1-categoryinfo {\n",
              "  font-size: 12px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "  text-align: center;\n",
              "  padding-bottom: 10px;    \n",
              "\n",
              "}\n",
              "\n",
              "\n",
              "#d3-div-1-title-div {\n",
              "  font-size: 20px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "  text-align: center;\n",
              "}\n",
              "\n",
              ".text_header {\n",
              "  font: 18px sans-serif;\n",
              "  font-size: 18px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "\n",
              "  font-weight: bolder;\n",
              "  text-decoration: underline;\n",
              "  text-align: center;\n",
              "  color: darkblue;\n",
              "  padding-bottom: 10px;\n",
              "}\n",
              "\n",
              ".text_subheader {\n",
              "  font-size: 14px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "\n",
              "  text-align: center;\n",
              "}\n",
              "\n",
              ".snippet_meta {\n",
              "  border-top: 3px solid #4588ba;\n",
              "  font-size: 12px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "  color: darkblue;\n",
              "}\n",
              "\n",
              ".not_match {\n",
              "    background-color: #F0F8FF;\n",
              "}\n",
              "    \n",
              ".contexts {\n",
              "  width: 45%;\n",
              "  float: left;\n",
              "}\n",
              "\n",
              ".neut_display {\n",
              "  display: none;\n",
              "  float: left\n",
              "}\n",
              "\n",
              ".scattertext {\n",
              "  font-size: 10px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "}\n",
              "\n",
              ".label {\n",
              "  font-size: 10px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "}\n",
              "\n",
              ".obscured {\n",
              "  /*font-size: 14px;\n",
              "  font-weight: normal;\n",
              "  color: dimgrey;\n",
              "  font-family: Helvetica;*/\n",
              "  text-align: center;\n",
              "}\n",
              "\n",
              ".small_label {\n",
              "  font-size: 10px;\n",
              "}\n",
              "\n",
              "#d3-div-1-corpus-stats {\n",
              "  text-align: center;\n",
              "}\n",
              "\n",
              "#d3-div-1-cat {\n",
              "}\n",
              "\n",
              "#d3-div-1-notcat {\n",
              "}\n",
              "\n",
              "#d3-div-1-neut {\n",
              "}\n",
              "\n",
              "#d3-div-1-neutcol {\n",
              "  display: none;\n",
              "}\n",
              "/* Adapted from https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_autocomplete */\n",
              "\n",
              ".autocomplete {\n",
              "  position: relative;\n",
              "  display: inline-block;\n",
              "}\n",
              "\n",
              "input {\n",
              "  border: 1px solid transparent;\n",
              "  background-color: #f1f1f1;\n",
              "  padding: 10px;\n",
              "  font-size: 16px;\n",
              "}\n",
              "\n",
              "input[type=text] {\n",
              "  background-color: #f1f1f1;\n",
              "  width: 100%;\n",
              "}\n",
              "\n",
              "input[type=submit] {\n",
              "  background-color: DodgerBlue;\n",
              "  color: #fff;\n",
              "  cursor: pointer;\n",
              "}\n",
              "\n",
              ".autocomplete-items {\n",
              "  position: absolute;\n",
              "  border: 2px solid #d4d4d4;\n",
              "  border-bottom: none;\n",
              "  border-top: none;\n",
              "  z-index: 99;\n",
              "  /*position the autocomplete items to be the same width as the container:*/\n",
              "  top: 100%;\n",
              "  left: 0;\n",
              "  right: 0;\n",
              "}\n",
              "\n",
              ".autocomplete-items div {\n",
              "  padding: 10px;\n",
              "  cursor: pointer;\n",
              "  background-color: #fff;\n",
              "  border-bottom: 2px solid #d4d4d4;\n",
              "}\n",
              "\n",
              "/*when hovering an item:*/\n",
              ".autocomplete-items div:hover {\n",
              "  background-color: #e9e9e9;\n",
              "}\n",
              "\n",
              "/*when navigating through the items using the arrow keys:*/\n",
              ".autocomplete-active {\n",
              "  background-color: DodgerBlue !important;\n",
              "  color: #ffffff;\n",
              "}\n",
              "</style>\n",
              "\n",
              "<script src=\"https://cdnjs.cloudflare.com/ajax/libs/d3/4.6.0/d3.min.js\" charset=\"utf-8\"></script>\n",
              "<script src=\"https://d3js.org/d3-scale-chromatic.v1.min.js\" charset=\"utf-8\"></script>\n",
              "\n",
              "<!-- INSERT SEMIOTIC SQUARE -->\n",
              "<!--<a onclick=\"maxFreq = Math.log(data.map(d => d.cat + d.ncat).reduce((a,b) => Math.max(a,b))); plotInterface.redrawPoints(0.1, d => (Math.log(d.ncat + d.cat)/maxFreq), d => d.s, false); plotInterface.redrawPoints(0.1, d => (Math.log(d.ncat + d.cat)/maxFreq), d => d.s, true)\">View Score Plot</a>-->\n",
              "<span id=\"d3-div-1-title-div\"></span>\n",
              "<div class=\"scattertext\" id=\"d3-div-1\" style=\"float: left\"></div>\n",
              "<div style=\"floag: left;\">\n",
              "    <div autocomplete=\"off\">\n",
              "        <div class=\"autocomplete\">\n",
              "            <input id=\"searchInput\" type=\"text\" placeholder=\"Search the chart\">\n",
              "        </div>\n",
              "    </div>\n",
              "</div>\n",
              "<br/>\n",
              "<div id=\"d3-div-1-corpus-stats\"></div>\n",
              "<div id=\"d3-div-1-overlapped-terms\"></div>\n",
              "<a name=\"d3-div-1-snippets\"></a>\n",
              "<a name=\"d3-div-1-snippetsalt\"></a>\n",
              "<div id=\"d3-div-1-termstats\"></div>\n",
              "<div id=\"d3-div-1-overlapped-terms-clicked\"></div>\n",
              "<div id=\"d3-div-1-categoryinfo\" style=\"display: hidden\"></div>\n",
              "<div id=\"d3-div-2\">\n",
              "  <div class=\"d3-div-1-contexts\">\n",
              "    <div class=\"snippet_header\" id=\"d3-div-1-cathead\"></div>\n",
              "    <div class=\"snippet\" id=\"d3-div-1-cat\"></div>\n",
              "  </div>\n",
              "  <div id=\"d3-div-1-notcol\" class=\"d3-div-1-contexts\">\n",
              "    <div class=\"snippet_header\" id=\"d3-div-1-notcathead\"></div>\n",
              "    <div class=\"snippet\" id=\"d3-div-1-notcat\"></div>\n",
              "  </div>\n",
              "  <div id=\"d3-div-1-neutcol\" class=\"d3-div-1-contexts\">\n",
              "    <div class=\"snippet_header\" id=\"d3-div-1-neuthead\"></div>\n",
              "    <div class=\"snippet\" id=\"d3-div-1-neut\"></div>\n",
              "  </div>\n",
              "</div>\n",
              "<script charset=\"utf-8\">\n",
              "    // Created using Cozy: github.com/uwplse/cozy\n",
              "function Rectangle(ax1, ay1, ax2, ay2) {\n",
              "    this.ax1 = ax1;\n",
              "    this.ay1 = ay1;\n",
              "    this.ax2 = ax2;\n",
              "    this.ay2 = ay2;\n",
              "    this._left7 = undefined;\n",
              "    this._right8 = undefined;\n",
              "    this._parent9 = undefined;\n",
              "    this._min_ax12 = undefined;\n",
              "    this._min_ay13 = undefined;\n",
              "    this._max_ay24 = undefined;\n",
              "    this._height10 = undefined;\n",
              "}\n",
              "function RectangleHolder() {\n",
              "    this.my_size = 0;\n",
              "    (this)._root1 = null;\n",
              "}\n",
              "RectangleHolder.prototype.size = function () {\n",
              "    return this.my_size;\n",
              "};\n",
              "RectangleHolder.prototype.add = function (x) {\n",
              "    ++this.my_size;\n",
              "    var _idx69 = (x).ax2;\n",
              "    (x)._left7 = null;\n",
              "    (x)._right8 = null;\n",
              "    (x)._min_ax12 = (x).ax1;\n",
              "    (x)._min_ay13 = (x).ay1;\n",
              "    (x)._max_ay24 = (x).ay2;\n",
              "    (x)._height10 = 0;\n",
              "    var _previous70 = null;\n",
              "    var _current71 = (this)._root1;\n",
              "    var _is_left72 = false;\n",
              "    while (!((_current71) == null)) {\n",
              "        _previous70 = _current71;\n",
              "        if ((_idx69) < ((_current71).ax2)) {\n",
              "            _current71 = (_current71)._left7;\n",
              "            _is_left72 = true;\n",
              "        } else {\n",
              "            _current71 = (_current71)._right8;\n",
              "            _is_left72 = false;\n",
              "        }\n",
              "    }\n",
              "    if ((_previous70) == null) {\n",
              "        (this)._root1 = x;\n",
              "    } else {\n",
              "        (x)._parent9 = _previous70;\n",
              "        if (_is_left72) {\n",
              "            (_previous70)._left7 = x;\n",
              "        } else {\n",
              "            (_previous70)._right8 = x;\n",
              "        }\n",
              "    }\n",
              "    var _cursor73 = (x)._parent9;\n",
              "    var _changed74 = true;\n",
              "    while ((_changed74) && (!((_cursor73) == (null)))) {\n",
              "        var _old__min_ax1275 = (_cursor73)._min_ax12;\n",
              "        var _old__min_ay1376 = (_cursor73)._min_ay13;\n",
              "        var _old__max_ay2477 = (_cursor73)._max_ay24;\n",
              "        var _old_height78 = (_cursor73)._height10;\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval79 = (_cursor73).ax1;\n",
              "        var _child80 = (_cursor73)._left7;\n",
              "        if (!((_child80) == null)) {\n",
              "            var _val81 = (_child80)._min_ax12;\n",
              "            _augval79 = ((_augval79) < (_val81)) ? (_augval79) : (_val81);\n",
              "        }\n",
              "        var _child82 = (_cursor73)._right8;\n",
              "        if (!((_child82) == null)) {\n",
              "            var _val83 = (_child82)._min_ax12;\n",
              "            _augval79 = ((_augval79) < (_val83)) ? (_augval79) : (_val83);\n",
              "        }\n",
              "        (_cursor73)._min_ax12 = _augval79;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval84 = (_cursor73).ay1;\n",
              "        var _child85 = (_cursor73)._left7;\n",
              "        if (!((_child85) == null)) {\n",
              "            var _val86 = (_child85)._min_ay13;\n",
              "            _augval84 = ((_augval84) < (_val86)) ? (_augval84) : (_val86);\n",
              "        }\n",
              "        var _child87 = (_cursor73)._right8;\n",
              "        if (!((_child87) == null)) {\n",
              "            var _val88 = (_child87)._min_ay13;\n",
              "            _augval84 = ((_augval84) < (_val88)) ? (_augval84) : (_val88);\n",
              "        }\n",
              "        (_cursor73)._min_ay13 = _augval84;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval89 = (_cursor73).ay2;\n",
              "        var _child90 = (_cursor73)._left7;\n",
              "        if (!((_child90) == null)) {\n",
              "            var _val91 = (_child90)._max_ay24;\n",
              "            _augval89 = ((_augval89) < (_val91)) ? (_val91) : (_augval89);\n",
              "        }\n",
              "        var _child92 = (_cursor73)._right8;\n",
              "        if (!((_child92) == null)) {\n",
              "            var _val93 = (_child92)._max_ay24;\n",
              "            _augval89 = ((_augval89) < (_val93)) ? (_val93) : (_augval89);\n",
              "        }\n",
              "        (_cursor73)._max_ay24 = _augval89;\n",
              "        (_cursor73)._height10 = 1 + ((((((_cursor73)._left7) == null) ? (-1) : (((_cursor73)._left7)._height10)) > ((((_cursor73)._right8) == null) ? (-1) : (((_cursor73)._right8)._height10))) ? ((((_cursor73)._left7) == null) ? (-1) : (((_cursor73)._left7)._height10)) : ((((_cursor73)._right8) == null) ? (-1) : (((_cursor73)._right8)._height10)));\n",
              "        _changed74 = false;\n",
              "        _changed74 = (_changed74) || (!((_old__min_ax1275) == ((_cursor73)._min_ax12)));\n",
              "        _changed74 = (_changed74) || (!((_old__min_ay1376) == ((_cursor73)._min_ay13)));\n",
              "        _changed74 = (_changed74) || (!((_old__max_ay2477) == ((_cursor73)._max_ay24)));\n",
              "        _changed74 = (_changed74) || (!((_old_height78) == ((_cursor73)._height10)));\n",
              "        _cursor73 = (_cursor73)._parent9;\n",
              "    }\n",
              "    /* rebalance AVL tree */\n",
              "    var _cursor94 = x;\n",
              "    var _imbalance95;\n",
              "    while (!(((_cursor94)._parent9) == null)) {\n",
              "        _cursor94 = (_cursor94)._parent9;\n",
              "        (_cursor94)._height10 = 1 + ((((((_cursor94)._left7) == null) ? (-1) : (((_cursor94)._left7)._height10)) > ((((_cursor94)._right8) == null) ? (-1) : (((_cursor94)._right8)._height10))) ? ((((_cursor94)._left7) == null) ? (-1) : (((_cursor94)._left7)._height10)) : ((((_cursor94)._right8) == null) ? (-1) : (((_cursor94)._right8)._height10)));\n",
              "        _imbalance95 = ((((_cursor94)._left7) == null) ? (-1) : (((_cursor94)._left7)._height10)) - ((((_cursor94)._right8) == null) ? (-1) : (((_cursor94)._right8)._height10));\n",
              "        if ((_imbalance95) > (1)) {\n",
              "            if ((((((_cursor94)._left7)._left7) == null) ? (-1) : ((((_cursor94)._left7)._left7)._height10)) < (((((_cursor94)._left7)._right8) == null) ? (-1) : ((((_cursor94)._left7)._right8)._height10))) {\n",
              "                /* rotate ((_cursor94)._left7)._right8 */\n",
              "                var _a96 = (_cursor94)._left7;\n",
              "                var _b97 = (_a96)._right8;\n",
              "                var _c98 = (_b97)._left7;\n",
              "                /* replace _a96 with _b97 in (_a96)._parent9 */\n",
              "                if (!(((_a96)._parent9) == null)) {\n",
              "                    if ((((_a96)._parent9)._left7) == (_a96)) {\n",
              "                        ((_a96)._parent9)._left7 = _b97;\n",
              "                    } else {\n",
              "                        ((_a96)._parent9)._right8 = _b97;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b97) == null)) {\n",
              "                    (_b97)._parent9 = (_a96)._parent9;\n",
              "                }\n",
              "                /* replace _c98 with _a96 in _b97 */\n",
              "                (_b97)._left7 = _a96;\n",
              "                if (!((_a96) == null)) {\n",
              "                    (_a96)._parent9 = _b97;\n",
              "                }\n",
              "                /* replace _b97 with _c98 in _a96 */\n",
              "                (_a96)._right8 = _c98;\n",
              "                if (!((_c98) == null)) {\n",
              "                    (_c98)._parent9 = _a96;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval99 = (_a96).ax1;\n",
              "                var _child100 = (_a96)._left7;\n",
              "                if (!((_child100) == null)) {\n",
              "                    var _val101 = (_child100)._min_ax12;\n",
              "                    _augval99 = ((_augval99) < (_val101)) ? (_augval99) : (_val101);\n",
              "                }\n",
              "                var _child102 = (_a96)._right8;\n",
              "                if (!((_child102) == null)) {\n",
              "                    var _val103 = (_child102)._min_ax12;\n",
              "                    _augval99 = ((_augval99) < (_val103)) ? (_augval99) : (_val103);\n",
              "                }\n",
              "                (_a96)._min_ax12 = _augval99;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval104 = (_a96).ay1;\n",
              "                var _child105 = (_a96)._left7;\n",
              "                if (!((_child105) == null)) {\n",
              "                    var _val106 = (_child105)._min_ay13;\n",
              "                    _augval104 = ((_augval104) < (_val106)) ? (_augval104) : (_val106);\n",
              "                }\n",
              "                var _child107 = (_a96)._right8;\n",
              "                if (!((_child107) == null)) {\n",
              "                    var _val108 = (_child107)._min_ay13;\n",
              "                    _augval104 = ((_augval104) < (_val108)) ? (_augval104) : (_val108);\n",
              "                }\n",
              "                (_a96)._min_ay13 = _augval104;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval109 = (_a96).ay2;\n",
              "                var _child110 = (_a96)._left7;\n",
              "                if (!((_child110) == null)) {\n",
              "                    var _val111 = (_child110)._max_ay24;\n",
              "                    _augval109 = ((_augval109) < (_val111)) ? (_val111) : (_augval109);\n",
              "                }\n",
              "                var _child112 = (_a96)._right8;\n",
              "                if (!((_child112) == null)) {\n",
              "                    var _val113 = (_child112)._max_ay24;\n",
              "                    _augval109 = ((_augval109) < (_val113)) ? (_val113) : (_augval109);\n",
              "                }\n",
              "                (_a96)._max_ay24 = _augval109;\n",
              "                (_a96)._height10 = 1 + ((((((_a96)._left7) == null) ? (-1) : (((_a96)._left7)._height10)) > ((((_a96)._right8) == null) ? (-1) : (((_a96)._right8)._height10))) ? ((((_a96)._left7) == null) ? (-1) : (((_a96)._left7)._height10)) : ((((_a96)._right8) == null) ? (-1) : (((_a96)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval114 = (_b97).ax1;\n",
              "                var _child115 = (_b97)._left7;\n",
              "                if (!((_child115) == null)) {\n",
              "                    var _val116 = (_child115)._min_ax12;\n",
              "                    _augval114 = ((_augval114) < (_val116)) ? (_augval114) : (_val116);\n",
              "                }\n",
              "                var _child117 = (_b97)._right8;\n",
              "                if (!((_child117) == null)) {\n",
              "                    var _val118 = (_child117)._min_ax12;\n",
              "                    _augval114 = ((_augval114) < (_val118)) ? (_augval114) : (_val118);\n",
              "                }\n",
              "                (_b97)._min_ax12 = _augval114;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval119 = (_b97).ay1;\n",
              "                var _child120 = (_b97)._left7;\n",
              "                if (!((_child120) == null)) {\n",
              "                    var _val121 = (_child120)._min_ay13;\n",
              "                    _augval119 = ((_augval119) < (_val121)) ? (_augval119) : (_val121);\n",
              "                }\n",
              "                var _child122 = (_b97)._right8;\n",
              "                if (!((_child122) == null)) {\n",
              "                    var _val123 = (_child122)._min_ay13;\n",
              "                    _augval119 = ((_augval119) < (_val123)) ? (_augval119) : (_val123);\n",
              "                }\n",
              "                (_b97)._min_ay13 = _augval119;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval124 = (_b97).ay2;\n",
              "                var _child125 = (_b97)._left7;\n",
              "                if (!((_child125) == null)) {\n",
              "                    var _val126 = (_child125)._max_ay24;\n",
              "                    _augval124 = ((_augval124) < (_val126)) ? (_val126) : (_augval124);\n",
              "                }\n",
              "                var _child127 = (_b97)._right8;\n",
              "                if (!((_child127) == null)) {\n",
              "                    var _val128 = (_child127)._max_ay24;\n",
              "                    _augval124 = ((_augval124) < (_val128)) ? (_val128) : (_augval124);\n",
              "                }\n",
              "                (_b97)._max_ay24 = _augval124;\n",
              "                (_b97)._height10 = 1 + ((((((_b97)._left7) == null) ? (-1) : (((_b97)._left7)._height10)) > ((((_b97)._right8) == null) ? (-1) : (((_b97)._right8)._height10))) ? ((((_b97)._left7) == null) ? (-1) : (((_b97)._left7)._height10)) : ((((_b97)._right8) == null) ? (-1) : (((_b97)._right8)._height10)));\n",
              "                if (!(((_b97)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval129 = ((_b97)._parent9).ax1;\n",
              "                    var _child130 = ((_b97)._parent9)._left7;\n",
              "                    if (!((_child130) == null)) {\n",
              "                        var _val131 = (_child130)._min_ax12;\n",
              "                        _augval129 = ((_augval129) < (_val131)) ? (_augval129) : (_val131);\n",
              "                    }\n",
              "                    var _child132 = ((_b97)._parent9)._right8;\n",
              "                    if (!((_child132) == null)) {\n",
              "                        var _val133 = (_child132)._min_ax12;\n",
              "                        _augval129 = ((_augval129) < (_val133)) ? (_augval129) : (_val133);\n",
              "                    }\n",
              "                    ((_b97)._parent9)._min_ax12 = _augval129;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval134 = ((_b97)._parent9).ay1;\n",
              "                    var _child135 = ((_b97)._parent9)._left7;\n",
              "                    if (!((_child135) == null)) {\n",
              "                        var _val136 = (_child135)._min_ay13;\n",
              "                        _augval134 = ((_augval134) < (_val136)) ? (_augval134) : (_val136);\n",
              "                    }\n",
              "                    var _child137 = ((_b97)._parent9)._right8;\n",
              "                    if (!((_child137) == null)) {\n",
              "                        var _val138 = (_child137)._min_ay13;\n",
              "                        _augval134 = ((_augval134) < (_val138)) ? (_augval134) : (_val138);\n",
              "                    }\n",
              "                    ((_b97)._parent9)._min_ay13 = _augval134;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval139 = ((_b97)._parent9).ay2;\n",
              "                    var _child140 = ((_b97)._parent9)._left7;\n",
              "                    if (!((_child140) == null)) {\n",
              "                        var _val141 = (_child140)._max_ay24;\n",
              "                        _augval139 = ((_augval139) < (_val141)) ? (_val141) : (_augval139);\n",
              "                    }\n",
              "                    var _child142 = ((_b97)._parent9)._right8;\n",
              "                    if (!((_child142) == null)) {\n",
              "                        var _val143 = (_child142)._max_ay24;\n",
              "                        _augval139 = ((_augval139) < (_val143)) ? (_val143) : (_augval139);\n",
              "                    }\n",
              "                    ((_b97)._parent9)._max_ay24 = _augval139;\n",
              "                    ((_b97)._parent9)._height10 = 1 + (((((((_b97)._parent9)._left7) == null) ? (-1) : ((((_b97)._parent9)._left7)._height10)) > (((((_b97)._parent9)._right8) == null) ? (-1) : ((((_b97)._parent9)._right8)._height10))) ? (((((_b97)._parent9)._left7) == null) ? (-1) : ((((_b97)._parent9)._left7)._height10)) : (((((_b97)._parent9)._right8) == null) ? (-1) : ((((_b97)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b97;\n",
              "                }\n",
              "            }\n",
              "            /* rotate (_cursor94)._left7 */\n",
              "            var _a144 = _cursor94;\n",
              "            var _b145 = (_a144)._left7;\n",
              "            var _c146 = (_b145)._right8;\n",
              "            /* replace _a144 with _b145 in (_a144)._parent9 */\n",
              "            if (!(((_a144)._parent9) == null)) {\n",
              "                if ((((_a144)._parent9)._left7) == (_a144)) {\n",
              "                    ((_a144)._parent9)._left7 = _b145;\n",
              "                } else {\n",
              "                    ((_a144)._parent9)._right8 = _b145;\n",
              "                }\n",
              "            }\n",
              "            if (!((_b145) == null)) {\n",
              "                (_b145)._parent9 = (_a144)._parent9;\n",
              "            }\n",
              "            /* replace _c146 with _a144 in _b145 */\n",
              "            (_b145)._right8 = _a144;\n",
              "            if (!((_a144) == null)) {\n",
              "                (_a144)._parent9 = _b145;\n",
              "            }\n",
              "            /* replace _b145 with _c146 in _a144 */\n",
              "            (_a144)._left7 = _c146;\n",
              "            if (!((_c146) == null)) {\n",
              "                (_c146)._parent9 = _a144;\n",
              "            }\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval147 = (_a144).ax1;\n",
              "            var _child148 = (_a144)._left7;\n",
              "            if (!((_child148) == null)) {\n",
              "                var _val149 = (_child148)._min_ax12;\n",
              "                _augval147 = ((_augval147) < (_val149)) ? (_augval147) : (_val149);\n",
              "            }\n",
              "            var _child150 = (_a144)._right8;\n",
              "            if (!((_child150) == null)) {\n",
              "                var _val151 = (_child150)._min_ax12;\n",
              "                _augval147 = ((_augval147) < (_val151)) ? (_augval147) : (_val151);\n",
              "            }\n",
              "            (_a144)._min_ax12 = _augval147;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval152 = (_a144).ay1;\n",
              "            var _child153 = (_a144)._left7;\n",
              "            if (!((_child153) == null)) {\n",
              "                var _val154 = (_child153)._min_ay13;\n",
              "                _augval152 = ((_augval152) < (_val154)) ? (_augval152) : (_val154);\n",
              "            }\n",
              "            var _child155 = (_a144)._right8;\n",
              "            if (!((_child155) == null)) {\n",
              "                var _val156 = (_child155)._min_ay13;\n",
              "                _augval152 = ((_augval152) < (_val156)) ? (_augval152) : (_val156);\n",
              "            }\n",
              "            (_a144)._min_ay13 = _augval152;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval157 = (_a144).ay2;\n",
              "            var _child158 = (_a144)._left7;\n",
              "            if (!((_child158) == null)) {\n",
              "                var _val159 = (_child158)._max_ay24;\n",
              "                _augval157 = ((_augval157) < (_val159)) ? (_val159) : (_augval157);\n",
              "            }\n",
              "            var _child160 = (_a144)._right8;\n",
              "            if (!((_child160) == null)) {\n",
              "                var _val161 = (_child160)._max_ay24;\n",
              "                _augval157 = ((_augval157) < (_val161)) ? (_val161) : (_augval157);\n",
              "            }\n",
              "            (_a144)._max_ay24 = _augval157;\n",
              "            (_a144)._height10 = 1 + ((((((_a144)._left7) == null) ? (-1) : (((_a144)._left7)._height10)) > ((((_a144)._right8) == null) ? (-1) : (((_a144)._right8)._height10))) ? ((((_a144)._left7) == null) ? (-1) : (((_a144)._left7)._height10)) : ((((_a144)._right8) == null) ? (-1) : (((_a144)._right8)._height10)));\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval162 = (_b145).ax1;\n",
              "            var _child163 = (_b145)._left7;\n",
              "            if (!((_child163) == null)) {\n",
              "                var _val164 = (_child163)._min_ax12;\n",
              "                _augval162 = ((_augval162) < (_val164)) ? (_augval162) : (_val164);\n",
              "            }\n",
              "            var _child165 = (_b145)._right8;\n",
              "            if (!((_child165) == null)) {\n",
              "                var _val166 = (_child165)._min_ax12;\n",
              "                _augval162 = ((_augval162) < (_val166)) ? (_augval162) : (_val166);\n",
              "            }\n",
              "            (_b145)._min_ax12 = _augval162;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval167 = (_b145).ay1;\n",
              "            var _child168 = (_b145)._left7;\n",
              "            if (!((_child168) == null)) {\n",
              "                var _val169 = (_child168)._min_ay13;\n",
              "                _augval167 = ((_augval167) < (_val169)) ? (_augval167) : (_val169);\n",
              "            }\n",
              "            var _child170 = (_b145)._right8;\n",
              "            if (!((_child170) == null)) {\n",
              "                var _val171 = (_child170)._min_ay13;\n",
              "                _augval167 = ((_augval167) < (_val171)) ? (_augval167) : (_val171);\n",
              "            }\n",
              "            (_b145)._min_ay13 = _augval167;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval172 = (_b145).ay2;\n",
              "            var _child173 = (_b145)._left7;\n",
              "            if (!((_child173) == null)) {\n",
              "                var _val174 = (_child173)._max_ay24;\n",
              "                _augval172 = ((_augval172) < (_val174)) ? (_val174) : (_augval172);\n",
              "            }\n",
              "            var _child175 = (_b145)._right8;\n",
              "            if (!((_child175) == null)) {\n",
              "                var _val176 = (_child175)._max_ay24;\n",
              "                _augval172 = ((_augval172) < (_val176)) ? (_val176) : (_augval172);\n",
              "            }\n",
              "            (_b145)._max_ay24 = _augval172;\n",
              "            (_b145)._height10 = 1 + ((((((_b145)._left7) == null) ? (-1) : (((_b145)._left7)._height10)) > ((((_b145)._right8) == null) ? (-1) : (((_b145)._right8)._height10))) ? ((((_b145)._left7) == null) ? (-1) : (((_b145)._left7)._height10)) : ((((_b145)._right8) == null) ? (-1) : (((_b145)._right8)._height10)));\n",
              "            if (!(((_b145)._parent9) == null)) {\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval177 = ((_b145)._parent9).ax1;\n",
              "                var _child178 = ((_b145)._parent9)._left7;\n",
              "                if (!((_child178) == null)) {\n",
              "                    var _val179 = (_child178)._min_ax12;\n",
              "                    _augval177 = ((_augval177) < (_val179)) ? (_augval177) : (_val179);\n",
              "                }\n",
              "                var _child180 = ((_b145)._parent9)._right8;\n",
              "                if (!((_child180) == null)) {\n",
              "                    var _val181 = (_child180)._min_ax12;\n",
              "                    _augval177 = ((_augval177) < (_val181)) ? (_augval177) : (_val181);\n",
              "                }\n",
              "                ((_b145)._parent9)._min_ax12 = _augval177;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval182 = ((_b145)._parent9).ay1;\n",
              "                var _child183 = ((_b145)._parent9)._left7;\n",
              "                if (!((_child183) == null)) {\n",
              "                    var _val184 = (_child183)._min_ay13;\n",
              "                    _augval182 = ((_augval182) < (_val184)) ? (_augval182) : (_val184);\n",
              "                }\n",
              "                var _child185 = ((_b145)._parent9)._right8;\n",
              "                if (!((_child185) == null)) {\n",
              "                    var _val186 = (_child185)._min_ay13;\n",
              "                    _augval182 = ((_augval182) < (_val186)) ? (_augval182) : (_val186);\n",
              "                }\n",
              "                ((_b145)._parent9)._min_ay13 = _augval182;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval187 = ((_b145)._parent9).ay2;\n",
              "                var _child188 = ((_b145)._parent9)._left7;\n",
              "                if (!((_child188) == null)) {\n",
              "                    var _val189 = (_child188)._max_ay24;\n",
              "                    _augval187 = ((_augval187) < (_val189)) ? (_val189) : (_augval187);\n",
              "                }\n",
              "                var _child190 = ((_b145)._parent9)._right8;\n",
              "                if (!((_child190) == null)) {\n",
              "                    var _val191 = (_child190)._max_ay24;\n",
              "                    _augval187 = ((_augval187) < (_val191)) ? (_val191) : (_augval187);\n",
              "                }\n",
              "                ((_b145)._parent9)._max_ay24 = _augval187;\n",
              "                ((_b145)._parent9)._height10 = 1 + (((((((_b145)._parent9)._left7) == null) ? (-1) : ((((_b145)._parent9)._left7)._height10)) > (((((_b145)._parent9)._right8) == null) ? (-1) : ((((_b145)._parent9)._right8)._height10))) ? (((((_b145)._parent9)._left7) == null) ? (-1) : ((((_b145)._parent9)._left7)._height10)) : (((((_b145)._parent9)._right8) == null) ? (-1) : ((((_b145)._parent9)._right8)._height10)));\n",
              "            } else {\n",
              "                (this)._root1 = _b145;\n",
              "            }\n",
              "            _cursor94 = (_cursor94)._parent9;\n",
              "        } else if ((_imbalance95) < (-1)) {\n",
              "            if ((((((_cursor94)._right8)._left7) == null) ? (-1) : ((((_cursor94)._right8)._left7)._height10)) > (((((_cursor94)._right8)._right8) == null) ? (-1) : ((((_cursor94)._right8)._right8)._height10))) {\n",
              "                /* rotate ((_cursor94)._right8)._left7 */\n",
              "                var _a192 = (_cursor94)._right8;\n",
              "                var _b193 = (_a192)._left7;\n",
              "                var _c194 = (_b193)._right8;\n",
              "                /* replace _a192 with _b193 in (_a192)._parent9 */\n",
              "                if (!(((_a192)._parent9) == null)) {\n",
              "                    if ((((_a192)._parent9)._left7) == (_a192)) {\n",
              "                        ((_a192)._parent9)._left7 = _b193;\n",
              "                    } else {\n",
              "                        ((_a192)._parent9)._right8 = _b193;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b193) == null)) {\n",
              "                    (_b193)._parent9 = (_a192)._parent9;\n",
              "                }\n",
              "                /* replace _c194 with _a192 in _b193 */\n",
              "                (_b193)._right8 = _a192;\n",
              "                if (!((_a192) == null)) {\n",
              "                    (_a192)._parent9 = _b193;\n",
              "                }\n",
              "                /* replace _b193 with _c194 in _a192 */\n",
              "                (_a192)._left7 = _c194;\n",
              "                if (!((_c194) == null)) {\n",
              "                    (_c194)._parent9 = _a192;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval195 = (_a192).ax1;\n",
              "                var _child196 = (_a192)._left7;\n",
              "                if (!((_child196) == null)) {\n",
              "                    var _val197 = (_child196)._min_ax12;\n",
              "                    _augval195 = ((_augval195) < (_val197)) ? (_augval195) : (_val197);\n",
              "                }\n",
              "                var _child198 = (_a192)._right8;\n",
              "                if (!((_child198) == null)) {\n",
              "                    var _val199 = (_child198)._min_ax12;\n",
              "                    _augval195 = ((_augval195) < (_val199)) ? (_augval195) : (_val199);\n",
              "                }\n",
              "                (_a192)._min_ax12 = _augval195;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval200 = (_a192).ay1;\n",
              "                var _child201 = (_a192)._left7;\n",
              "                if (!((_child201) == null)) {\n",
              "                    var _val202 = (_child201)._min_ay13;\n",
              "                    _augval200 = ((_augval200) < (_val202)) ? (_augval200) : (_val202);\n",
              "                }\n",
              "                var _child203 = (_a192)._right8;\n",
              "                if (!((_child203) == null)) {\n",
              "                    var _val204 = (_child203)._min_ay13;\n",
              "                    _augval200 = ((_augval200) < (_val204)) ? (_augval200) : (_val204);\n",
              "                }\n",
              "                (_a192)._min_ay13 = _augval200;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval205 = (_a192).ay2;\n",
              "                var _child206 = (_a192)._left7;\n",
              "                if (!((_child206) == null)) {\n",
              "                    var _val207 = (_child206)._max_ay24;\n",
              "                    _augval205 = ((_augval205) < (_val207)) ? (_val207) : (_augval205);\n",
              "                }\n",
              "                var _child208 = (_a192)._right8;\n",
              "                if (!((_child208) == null)) {\n",
              "                    var _val209 = (_child208)._max_ay24;\n",
              "                    _augval205 = ((_augval205) < (_val209)) ? (_val209) : (_augval205);\n",
              "                }\n",
              "                (_a192)._max_ay24 = _augval205;\n",
              "                (_a192)._height10 = 1 + ((((((_a192)._left7) == null) ? (-1) : (((_a192)._left7)._height10)) > ((((_a192)._right8) == null) ? (-1) : (((_a192)._right8)._height10))) ? ((((_a192)._left7) == null) ? (-1) : (((_a192)._left7)._height10)) : ((((_a192)._right8) == null) ? (-1) : (((_a192)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval210 = (_b193).ax1;\n",
              "                var _child211 = (_b193)._left7;\n",
              "                if (!((_child211) == null)) {\n",
              "                    var _val212 = (_child211)._min_ax12;\n",
              "                    _augval210 = ((_augval210) < (_val212)) ? (_augval210) : (_val212);\n",
              "                }\n",
              "                var _child213 = (_b193)._right8;\n",
              "                if (!((_child213) == null)) {\n",
              "                    var _val214 = (_child213)._min_ax12;\n",
              "                    _augval210 = ((_augval210) < (_val214)) ? (_augval210) : (_val214);\n",
              "                }\n",
              "                (_b193)._min_ax12 = _augval210;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval215 = (_b193).ay1;\n",
              "                var _child216 = (_b193)._left7;\n",
              "                if (!((_child216) == null)) {\n",
              "                    var _val217 = (_child216)._min_ay13;\n",
              "                    _augval215 = ((_augval215) < (_val217)) ? (_augval215) : (_val217);\n",
              "                }\n",
              "                var _child218 = (_b193)._right8;\n",
              "                if (!((_child218) == null)) {\n",
              "                    var _val219 = (_child218)._min_ay13;\n",
              "                    _augval215 = ((_augval215) < (_val219)) ? (_augval215) : (_val219);\n",
              "                }\n",
              "                (_b193)._min_ay13 = _augval215;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval220 = (_b193).ay2;\n",
              "                var _child221 = (_b193)._left7;\n",
              "                if (!((_child221) == null)) {\n",
              "                    var _val222 = (_child221)._max_ay24;\n",
              "                    _augval220 = ((_augval220) < (_val222)) ? (_val222) : (_augval220);\n",
              "                }\n",
              "                var _child223 = (_b193)._right8;\n",
              "                if (!((_child223) == null)) {\n",
              "                    var _val224 = (_child223)._max_ay24;\n",
              "                    _augval220 = ((_augval220) < (_val224)) ? (_val224) : (_augval220);\n",
              "                }\n",
              "                (_b193)._max_ay24 = _augval220;\n",
              "                (_b193)._height10 = 1 + ((((((_b193)._left7) == null) ? (-1) : (((_b193)._left7)._height10)) > ((((_b193)._right8) == null) ? (-1) : (((_b193)._right8)._height10))) ? ((((_b193)._left7) == null) ? (-1) : (((_b193)._left7)._height10)) : ((((_b193)._right8) == null) ? (-1) : (((_b193)._right8)._height10)));\n",
              "                if (!(((_b193)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval225 = ((_b193)._parent9).ax1;\n",
              "                    var _child226 = ((_b193)._parent9)._left7;\n",
              "                    if (!((_child226) == null)) {\n",
              "                        var _val227 = (_child226)._min_ax12;\n",
              "                        _augval225 = ((_augval225) < (_val227)) ? (_augval225) : (_val227);\n",
              "                    }\n",
              "                    var _child228 = ((_b193)._parent9)._right8;\n",
              "                    if (!((_child228) == null)) {\n",
              "                        var _val229 = (_child228)._min_ax12;\n",
              "                        _augval225 = ((_augval225) < (_val229)) ? (_augval225) : (_val229);\n",
              "                    }\n",
              "                    ((_b193)._parent9)._min_ax12 = _augval225;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval230 = ((_b193)._parent9).ay1;\n",
              "                    var _child231 = ((_b193)._parent9)._left7;\n",
              "                    if (!((_child231) == null)) {\n",
              "                        var _val232 = (_child231)._min_ay13;\n",
              "                        _augval230 = ((_augval230) < (_val232)) ? (_augval230) : (_val232);\n",
              "                    }\n",
              "                    var _child233 = ((_b193)._parent9)._right8;\n",
              "                    if (!((_child233) == null)) {\n",
              "                        var _val234 = (_child233)._min_ay13;\n",
              "                        _augval230 = ((_augval230) < (_val234)) ? (_augval230) : (_val234);\n",
              "                    }\n",
              "                    ((_b193)._parent9)._min_ay13 = _augval230;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval235 = ((_b193)._parent9).ay2;\n",
              "                    var _child236 = ((_b193)._parent9)._left7;\n",
              "                    if (!((_child236) == null)) {\n",
              "                        var _val237 = (_child236)._max_ay24;\n",
              "                        _augval235 = ((_augval235) < (_val237)) ? (_val237) : (_augval235);\n",
              "                    }\n",
              "                    var _child238 = ((_b193)._parent9)._right8;\n",
              "                    if (!((_child238) == null)) {\n",
              "                        var _val239 = (_child238)._max_ay24;\n",
              "                        _augval235 = ((_augval235) < (_val239)) ? (_val239) : (_augval235);\n",
              "                    }\n",
              "                    ((_b193)._parent9)._max_ay24 = _augval235;\n",
              "                    ((_b193)._parent9)._height10 = 1 + (((((((_b193)._parent9)._left7) == null) ? (-1) : ((((_b193)._parent9)._left7)._height10)) > (((((_b193)._parent9)._right8) == null) ? (-1) : ((((_b193)._parent9)._right8)._height10))) ? (((((_b193)._parent9)._left7) == null) ? (-1) : ((((_b193)._parent9)._left7)._height10)) : (((((_b193)._parent9)._right8) == null) ? (-1) : ((((_b193)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b193;\n",
              "                }\n",
              "            }\n",
              "            /* rotate (_cursor94)._right8 */\n",
              "            var _a240 = _cursor94;\n",
              "            var _b241 = (_a240)._right8;\n",
              "            var _c242 = (_b241)._left7;\n",
              "            /* replace _a240 with _b241 in (_a240)._parent9 */\n",
              "            if (!(((_a240)._parent9) == null)) {\n",
              "                if ((((_a240)._parent9)._left7) == (_a240)) {\n",
              "                    ((_a240)._parent9)._left7 = _b241;\n",
              "                } else {\n",
              "                    ((_a240)._parent9)._right8 = _b241;\n",
              "                }\n",
              "            }\n",
              "            if (!((_b241) == null)) {\n",
              "                (_b241)._parent9 = (_a240)._parent9;\n",
              "            }\n",
              "            /* replace _c242 with _a240 in _b241 */\n",
              "            (_b241)._left7 = _a240;\n",
              "            if (!((_a240) == null)) {\n",
              "                (_a240)._parent9 = _b241;\n",
              "            }\n",
              "            /* replace _b241 with _c242 in _a240 */\n",
              "            (_a240)._right8 = _c242;\n",
              "            if (!((_c242) == null)) {\n",
              "                (_c242)._parent9 = _a240;\n",
              "            }\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval243 = (_a240).ax1;\n",
              "            var _child244 = (_a240)._left7;\n",
              "            if (!((_child244) == null)) {\n",
              "                var _val245 = (_child244)._min_ax12;\n",
              "                _augval243 = ((_augval243) < (_val245)) ? (_augval243) : (_val245);\n",
              "            }\n",
              "            var _child246 = (_a240)._right8;\n",
              "            if (!((_child246) == null)) {\n",
              "                var _val247 = (_child246)._min_ax12;\n",
              "                _augval243 = ((_augval243) < (_val247)) ? (_augval243) : (_val247);\n",
              "            }\n",
              "            (_a240)._min_ax12 = _augval243;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval248 = (_a240).ay1;\n",
              "            var _child249 = (_a240)._left7;\n",
              "            if (!((_child249) == null)) {\n",
              "                var _val250 = (_child249)._min_ay13;\n",
              "                _augval248 = ((_augval248) < (_val250)) ? (_augval248) : (_val250);\n",
              "            }\n",
              "            var _child251 = (_a240)._right8;\n",
              "            if (!((_child251) == null)) {\n",
              "                var _val252 = (_child251)._min_ay13;\n",
              "                _augval248 = ((_augval248) < (_val252)) ? (_augval248) : (_val252);\n",
              "            }\n",
              "            (_a240)._min_ay13 = _augval248;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval253 = (_a240).ay2;\n",
              "            var _child254 = (_a240)._left7;\n",
              "            if (!((_child254) == null)) {\n",
              "                var _val255 = (_child254)._max_ay24;\n",
              "                _augval253 = ((_augval253) < (_val255)) ? (_val255) : (_augval253);\n",
              "            }\n",
              "            var _child256 = (_a240)._right8;\n",
              "            if (!((_child256) == null)) {\n",
              "                var _val257 = (_child256)._max_ay24;\n",
              "                _augval253 = ((_augval253) < (_val257)) ? (_val257) : (_augval253);\n",
              "            }\n",
              "            (_a240)._max_ay24 = _augval253;\n",
              "            (_a240)._height10 = 1 + ((((((_a240)._left7) == null) ? (-1) : (((_a240)._left7)._height10)) > ((((_a240)._right8) == null) ? (-1) : (((_a240)._right8)._height10))) ? ((((_a240)._left7) == null) ? (-1) : (((_a240)._left7)._height10)) : ((((_a240)._right8) == null) ? (-1) : (((_a240)._right8)._height10)));\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval258 = (_b241).ax1;\n",
              "            var _child259 = (_b241)._left7;\n",
              "            if (!((_child259) == null)) {\n",
              "                var _val260 = (_child259)._min_ax12;\n",
              "                _augval258 = ((_augval258) < (_val260)) ? (_augval258) : (_val260);\n",
              "            }\n",
              "            var _child261 = (_b241)._right8;\n",
              "            if (!((_child261) == null)) {\n",
              "                var _val262 = (_child261)._min_ax12;\n",
              "                _augval258 = ((_augval258) < (_val262)) ? (_augval258) : (_val262);\n",
              "            }\n",
              "            (_b241)._min_ax12 = _augval258;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval263 = (_b241).ay1;\n",
              "            var _child264 = (_b241)._left7;\n",
              "            if (!((_child264) == null)) {\n",
              "                var _val265 = (_child264)._min_ay13;\n",
              "                _augval263 = ((_augval263) < (_val265)) ? (_augval263) : (_val265);\n",
              "            }\n",
              "            var _child266 = (_b241)._right8;\n",
              "            if (!((_child266) == null)) {\n",
              "                var _val267 = (_child266)._min_ay13;\n",
              "                _augval263 = ((_augval263) < (_val267)) ? (_augval263) : (_val267);\n",
              "            }\n",
              "            (_b241)._min_ay13 = _augval263;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval268 = (_b241).ay2;\n",
              "            var _child269 = (_b241)._left7;\n",
              "            if (!((_child269) == null)) {\n",
              "                var _val270 = (_child269)._max_ay24;\n",
              "                _augval268 = ((_augval268) < (_val270)) ? (_val270) : (_augval268);\n",
              "            }\n",
              "            var _child271 = (_b241)._right8;\n",
              "            if (!((_child271) == null)) {\n",
              "                var _val272 = (_child271)._max_ay24;\n",
              "                _augval268 = ((_augval268) < (_val272)) ? (_val272) : (_augval268);\n",
              "            }\n",
              "            (_b241)._max_ay24 = _augval268;\n",
              "            (_b241)._height10 = 1 + ((((((_b241)._left7) == null) ? (-1) : (((_b241)._left7)._height10)) > ((((_b241)._right8) == null) ? (-1) : (((_b241)._right8)._height10))) ? ((((_b241)._left7) == null) ? (-1) : (((_b241)._left7)._height10)) : ((((_b241)._right8) == null) ? (-1) : (((_b241)._right8)._height10)));\n",
              "            if (!(((_b241)._parent9) == null)) {\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval273 = ((_b241)._parent9).ax1;\n",
              "                var _child274 = ((_b241)._parent9)._left7;\n",
              "                if (!((_child274) == null)) {\n",
              "                    var _val275 = (_child274)._min_ax12;\n",
              "                    _augval273 = ((_augval273) < (_val275)) ? (_augval273) : (_val275);\n",
              "                }\n",
              "                var _child276 = ((_b241)._parent9)._right8;\n",
              "                if (!((_child276) == null)) {\n",
              "                    var _val277 = (_child276)._min_ax12;\n",
              "                    _augval273 = ((_augval273) < (_val277)) ? (_augval273) : (_val277);\n",
              "                }\n",
              "                ((_b241)._parent9)._min_ax12 = _augval273;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval278 = ((_b241)._parent9).ay1;\n",
              "                var _child279 = ((_b241)._parent9)._left7;\n",
              "                if (!((_child279) == null)) {\n",
              "                    var _val280 = (_child279)._min_ay13;\n",
              "                    _augval278 = ((_augval278) < (_val280)) ? (_augval278) : (_val280);\n",
              "                }\n",
              "                var _child281 = ((_b241)._parent9)._right8;\n",
              "                if (!((_child281) == null)) {\n",
              "                    var _val282 = (_child281)._min_ay13;\n",
              "                    _augval278 = ((_augval278) < (_val282)) ? (_augval278) : (_val282);\n",
              "                }\n",
              "                ((_b241)._parent9)._min_ay13 = _augval278;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval283 = ((_b241)._parent9).ay2;\n",
              "                var _child284 = ((_b241)._parent9)._left7;\n",
              "                if (!((_child284) == null)) {\n",
              "                    var _val285 = (_child284)._max_ay24;\n",
              "                    _augval283 = ((_augval283) < (_val285)) ? (_val285) : (_augval283);\n",
              "                }\n",
              "                var _child286 = ((_b241)._parent9)._right8;\n",
              "                if (!((_child286) == null)) {\n",
              "                    var _val287 = (_child286)._max_ay24;\n",
              "                    _augval283 = ((_augval283) < (_val287)) ? (_val287) : (_augval283);\n",
              "                }\n",
              "                ((_b241)._parent9)._max_ay24 = _augval283;\n",
              "                ((_b241)._parent9)._height10 = 1 + (((((((_b241)._parent9)._left7) == null) ? (-1) : ((((_b241)._parent9)._left7)._height10)) > (((((_b241)._parent9)._right8) == null) ? (-1) : ((((_b241)._parent9)._right8)._height10))) ? (((((_b241)._parent9)._left7) == null) ? (-1) : ((((_b241)._parent9)._left7)._height10)) : (((((_b241)._parent9)._right8) == null) ? (-1) : ((((_b241)._parent9)._right8)._height10)));\n",
              "            } else {\n",
              "                (this)._root1 = _b241;\n",
              "            }\n",
              "            _cursor94 = (_cursor94)._parent9;\n",
              "        }\n",
              "    }\n",
              "};\n",
              "RectangleHolder.prototype.remove = function (x) {\n",
              "    --this.my_size;\n",
              "    var _parent288 = (x)._parent9;\n",
              "    var _left289 = (x)._left7;\n",
              "    var _right290 = (x)._right8;\n",
              "    var _new_x291;\n",
              "    if (((_left289) == null) && ((_right290) == null)) {\n",
              "        _new_x291 = null;\n",
              "        /* replace x with _new_x291 in _parent288 */\n",
              "        if (!((_parent288) == null)) {\n",
              "            if (((_parent288)._left7) == (x)) {\n",
              "                (_parent288)._left7 = _new_x291;\n",
              "            } else {\n",
              "                (_parent288)._right8 = _new_x291;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x291) == null)) {\n",
              "            (_new_x291)._parent9 = _parent288;\n",
              "        }\n",
              "    } else if ((!((_left289) == null)) && ((_right290) == null)) {\n",
              "        _new_x291 = _left289;\n",
              "        /* replace x with _new_x291 in _parent288 */\n",
              "        if (!((_parent288) == null)) {\n",
              "            if (((_parent288)._left7) == (x)) {\n",
              "                (_parent288)._left7 = _new_x291;\n",
              "            } else {\n",
              "                (_parent288)._right8 = _new_x291;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x291) == null)) {\n",
              "            (_new_x291)._parent9 = _parent288;\n",
              "        }\n",
              "    } else if (((_left289) == null) && (!((_right290) == null))) {\n",
              "        _new_x291 = _right290;\n",
              "        /* replace x with _new_x291 in _parent288 */\n",
              "        if (!((_parent288) == null)) {\n",
              "            if (((_parent288)._left7) == (x)) {\n",
              "                (_parent288)._left7 = _new_x291;\n",
              "            } else {\n",
              "                (_parent288)._right8 = _new_x291;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x291) == null)) {\n",
              "            (_new_x291)._parent9 = _parent288;\n",
              "        }\n",
              "    } else {\n",
              "        var _root292 = (x)._right8;\n",
              "        var _x293 = _root292;\n",
              "        var _descend294 = true;\n",
              "        var _from_left295 = true;\n",
              "        while (true) {\n",
              "            if ((_x293) == null) {\n",
              "                _x293 = null;\n",
              "                break;\n",
              "            }\n",
              "            if (_descend294) {\n",
              "                /* too small? */\n",
              "                if (false) {\n",
              "                    if ((!(((_x293)._right8) == null)) && (true)) {\n",
              "                        if ((_x293) == (_root292)) {\n",
              "                            _root292 = (_x293)._right8;\n",
              "                        }\n",
              "                        _x293 = (_x293)._right8;\n",
              "                    } else if ((_x293) == (_root292)) {\n",
              "                        _x293 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend294 = false;\n",
              "                        _from_left295 = (!(((_x293)._parent9) == null)) && ((_x293) == (((_x293)._parent9)._left7));\n",
              "                        _x293 = (_x293)._parent9;\n",
              "                    }\n",
              "                } else if ((!(((_x293)._left7) == null)) && (true)) {\n",
              "                    _x293 = (_x293)._left7;\n",
              "                    /* too large? */\n",
              "                } else if (false) {\n",
              "                    if ((_x293) == (_root292)) {\n",
              "                        _x293 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend294 = false;\n",
              "                        _from_left295 = (!(((_x293)._parent9) == null)) && ((_x293) == (((_x293)._parent9)._left7));\n",
              "                        _x293 = (_x293)._parent9;\n",
              "                    }\n",
              "                    /* node ok? */\n",
              "                } else if (true) {\n",
              "                    break;\n",
              "                } else if ((_x293) == (_root292)) {\n",
              "                    _root292 = (_x293)._right8;\n",
              "                    _x293 = (_x293)._right8;\n",
              "                } else {\n",
              "                    if ((!(((_x293)._right8) == null)) && (true)) {\n",
              "                        if ((_x293) == (_root292)) {\n",
              "                            _root292 = (_x293)._right8;\n",
              "                        }\n",
              "                        _x293 = (_x293)._right8;\n",
              "                    } else {\n",
              "                        _descend294 = false;\n",
              "                        _from_left295 = (!(((_x293)._parent9) == null)) && ((_x293) == (((_x293)._parent9)._left7));\n",
              "                        _x293 = (_x293)._parent9;\n",
              "                    }\n",
              "                }\n",
              "            } else if (_from_left295) {\n",
              "                if (false) {\n",
              "                    _x293 = null;\n",
              "                    break;\n",
              "                } else if (true) {\n",
              "                    break;\n",
              "                } else if ((!(((_x293)._right8) == null)) && (true)) {\n",
              "                    _descend294 = true;\n",
              "                    if ((_x293) == (_root292)) {\n",
              "                        _root292 = (_x293)._right8;\n",
              "                    }\n",
              "                    _x293 = (_x293)._right8;\n",
              "                } else if ((_x293) == (_root292)) {\n",
              "                    _x293 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend294 = false;\n",
              "                    _from_left295 = (!(((_x293)._parent9) == null)) && ((_x293) == (((_x293)._parent9)._left7));\n",
              "                    _x293 = (_x293)._parent9;\n",
              "                }\n",
              "            } else {\n",
              "                if ((_x293) == (_root292)) {\n",
              "                    _x293 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend294 = false;\n",
              "                    _from_left295 = (!(((_x293)._parent9) == null)) && ((_x293) == (((_x293)._parent9)._left7));\n",
              "                    _x293 = (_x293)._parent9;\n",
              "                }\n",
              "            }\n",
              "        }\n",
              "        _new_x291 = _x293;\n",
              "        var _mp296 = (_x293)._parent9;\n",
              "        var _mr297 = (_x293)._right8;\n",
              "        /* replace _x293 with _mr297 in _mp296 */\n",
              "        if (!((_mp296) == null)) {\n",
              "            if (((_mp296)._left7) == (_x293)) {\n",
              "                (_mp296)._left7 = _mr297;\n",
              "            } else {\n",
              "                (_mp296)._right8 = _mr297;\n",
              "            }\n",
              "        }\n",
              "        if (!((_mr297) == null)) {\n",
              "            (_mr297)._parent9 = _mp296;\n",
              "        }\n",
              "        /* replace x with _x293 in _parent288 */\n",
              "        if (!((_parent288) == null)) {\n",
              "            if (((_parent288)._left7) == (x)) {\n",
              "                (_parent288)._left7 = _x293;\n",
              "            } else {\n",
              "                (_parent288)._right8 = _x293;\n",
              "            }\n",
              "        }\n",
              "        if (!((_x293) == null)) {\n",
              "            (_x293)._parent9 = _parent288;\n",
              "        }\n",
              "        /* replace null with _left289 in _x293 */\n",
              "        (_x293)._left7 = _left289;\n",
              "        if (!((_left289) == null)) {\n",
              "            (_left289)._parent9 = _x293;\n",
              "        }\n",
              "        /* replace _mr297 with (x)._right8 in _x293 */\n",
              "        (_x293)._right8 = (x)._right8;\n",
              "        if (!(((x)._right8) == null)) {\n",
              "            ((x)._right8)._parent9 = _x293;\n",
              "        }\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval298 = (_x293).ax1;\n",
              "        var _child299 = (_x293)._left7;\n",
              "        if (!((_child299) == null)) {\n",
              "            var _val300 = (_child299)._min_ax12;\n",
              "            _augval298 = ((_augval298) < (_val300)) ? (_augval298) : (_val300);\n",
              "        }\n",
              "        var _child301 = (_x293)._right8;\n",
              "        if (!((_child301) == null)) {\n",
              "            var _val302 = (_child301)._min_ax12;\n",
              "            _augval298 = ((_augval298) < (_val302)) ? (_augval298) : (_val302);\n",
              "        }\n",
              "        (_x293)._min_ax12 = _augval298;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval303 = (_x293).ay1;\n",
              "        var _child304 = (_x293)._left7;\n",
              "        if (!((_child304) == null)) {\n",
              "            var _val305 = (_child304)._min_ay13;\n",
              "            _augval303 = ((_augval303) < (_val305)) ? (_augval303) : (_val305);\n",
              "        }\n",
              "        var _child306 = (_x293)._right8;\n",
              "        if (!((_child306) == null)) {\n",
              "            var _val307 = (_child306)._min_ay13;\n",
              "            _augval303 = ((_augval303) < (_val307)) ? (_augval303) : (_val307);\n",
              "        }\n",
              "        (_x293)._min_ay13 = _augval303;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval308 = (_x293).ay2;\n",
              "        var _child309 = (_x293)._left7;\n",
              "        if (!((_child309) == null)) {\n",
              "            var _val310 = (_child309)._max_ay24;\n",
              "            _augval308 = ((_augval308) < (_val310)) ? (_val310) : (_augval308);\n",
              "        }\n",
              "        var _child311 = (_x293)._right8;\n",
              "        if (!((_child311) == null)) {\n",
              "            var _val312 = (_child311)._max_ay24;\n",
              "            _augval308 = ((_augval308) < (_val312)) ? (_val312) : (_augval308);\n",
              "        }\n",
              "        (_x293)._max_ay24 = _augval308;\n",
              "        (_x293)._height10 = 1 + ((((((_x293)._left7) == null) ? (-1) : (((_x293)._left7)._height10)) > ((((_x293)._right8) == null) ? (-1) : (((_x293)._right8)._height10))) ? ((((_x293)._left7) == null) ? (-1) : (((_x293)._left7)._height10)) : ((((_x293)._right8) == null) ? (-1) : (((_x293)._right8)._height10)));\n",
              "        var _cursor313 = _mp296;\n",
              "        var _changed314 = true;\n",
              "        while ((_changed314) && (!((_cursor313) == (_parent288)))) {\n",
              "            var _old__min_ax12315 = (_cursor313)._min_ax12;\n",
              "            var _old__min_ay13316 = (_cursor313)._min_ay13;\n",
              "            var _old__max_ay24317 = (_cursor313)._max_ay24;\n",
              "            var _old_height318 = (_cursor313)._height10;\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval319 = (_cursor313).ax1;\n",
              "            var _child320 = (_cursor313)._left7;\n",
              "            if (!((_child320) == null)) {\n",
              "                var _val321 = (_child320)._min_ax12;\n",
              "                _augval319 = ((_augval319) < (_val321)) ? (_augval319) : (_val321);\n",
              "            }\n",
              "            var _child322 = (_cursor313)._right8;\n",
              "            if (!((_child322) == null)) {\n",
              "                var _val323 = (_child322)._min_ax12;\n",
              "                _augval319 = ((_augval319) < (_val323)) ? (_augval319) : (_val323);\n",
              "            }\n",
              "            (_cursor313)._min_ax12 = _augval319;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval324 = (_cursor313).ay1;\n",
              "            var _child325 = (_cursor313)._left7;\n",
              "            if (!((_child325) == null)) {\n",
              "                var _val326 = (_child325)._min_ay13;\n",
              "                _augval324 = ((_augval324) < (_val326)) ? (_augval324) : (_val326);\n",
              "            }\n",
              "            var _child327 = (_cursor313)._right8;\n",
              "            if (!((_child327) == null)) {\n",
              "                var _val328 = (_child327)._min_ay13;\n",
              "                _augval324 = ((_augval324) < (_val328)) ? (_augval324) : (_val328);\n",
              "            }\n",
              "            (_cursor313)._min_ay13 = _augval324;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval329 = (_cursor313).ay2;\n",
              "            var _child330 = (_cursor313)._left7;\n",
              "            if (!((_child330) == null)) {\n",
              "                var _val331 = (_child330)._max_ay24;\n",
              "                _augval329 = ((_augval329) < (_val331)) ? (_val331) : (_augval329);\n",
              "            }\n",
              "            var _child332 = (_cursor313)._right8;\n",
              "            if (!((_child332) == null)) {\n",
              "                var _val333 = (_child332)._max_ay24;\n",
              "                _augval329 = ((_augval329) < (_val333)) ? (_val333) : (_augval329);\n",
              "            }\n",
              "            (_cursor313)._max_ay24 = _augval329;\n",
              "            (_cursor313)._height10 = 1 + ((((((_cursor313)._left7) == null) ? (-1) : (((_cursor313)._left7)._height10)) > ((((_cursor313)._right8) == null) ? (-1) : (((_cursor313)._right8)._height10))) ? ((((_cursor313)._left7) == null) ? (-1) : (((_cursor313)._left7)._height10)) : ((((_cursor313)._right8) == null) ? (-1) : (((_cursor313)._right8)._height10)));\n",
              "            _changed314 = false;\n",
              "            _changed314 = (_changed314) || (!((_old__min_ax12315) == ((_cursor313)._min_ax12)));\n",
              "            _changed314 = (_changed314) || (!((_old__min_ay13316) == ((_cursor313)._min_ay13)));\n",
              "            _changed314 = (_changed314) || (!((_old__max_ay24317) == ((_cursor313)._max_ay24)));\n",
              "            _changed314 = (_changed314) || (!((_old_height318) == ((_cursor313)._height10)));\n",
              "            _cursor313 = (_cursor313)._parent9;\n",
              "        }\n",
              "    }\n",
              "    var _cursor334 = _parent288;\n",
              "    var _changed335 = true;\n",
              "    while ((_changed335) && (!((_cursor334) == (null)))) {\n",
              "        var _old__min_ax12336 = (_cursor334)._min_ax12;\n",
              "        var _old__min_ay13337 = (_cursor334)._min_ay13;\n",
              "        var _old__max_ay24338 = (_cursor334)._max_ay24;\n",
              "        var _old_height339 = (_cursor334)._height10;\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval340 = (_cursor334).ax1;\n",
              "        var _child341 = (_cursor334)._left7;\n",
              "        if (!((_child341) == null)) {\n",
              "            var _val342 = (_child341)._min_ax12;\n",
              "            _augval340 = ((_augval340) < (_val342)) ? (_augval340) : (_val342);\n",
              "        }\n",
              "        var _child343 = (_cursor334)._right8;\n",
              "        if (!((_child343) == null)) {\n",
              "            var _val344 = (_child343)._min_ax12;\n",
              "            _augval340 = ((_augval340) < (_val344)) ? (_augval340) : (_val344);\n",
              "        }\n",
              "        (_cursor334)._min_ax12 = _augval340;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval345 = (_cursor334).ay1;\n",
              "        var _child346 = (_cursor334)._left7;\n",
              "        if (!((_child346) == null)) {\n",
              "            var _val347 = (_child346)._min_ay13;\n",
              "            _augval345 = ((_augval345) < (_val347)) ? (_augval345) : (_val347);\n",
              "        }\n",
              "        var _child348 = (_cursor334)._right8;\n",
              "        if (!((_child348) == null)) {\n",
              "            var _val349 = (_child348)._min_ay13;\n",
              "            _augval345 = ((_augval345) < (_val349)) ? (_augval345) : (_val349);\n",
              "        }\n",
              "        (_cursor334)._min_ay13 = _augval345;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval350 = (_cursor334).ay2;\n",
              "        var _child351 = (_cursor334)._left7;\n",
              "        if (!((_child351) == null)) {\n",
              "            var _val352 = (_child351)._max_ay24;\n",
              "            _augval350 = ((_augval350) < (_val352)) ? (_val352) : (_augval350);\n",
              "        }\n",
              "        var _child353 = (_cursor334)._right8;\n",
              "        if (!((_child353) == null)) {\n",
              "            var _val354 = (_child353)._max_ay24;\n",
              "            _augval350 = ((_augval350) < (_val354)) ? (_val354) : (_augval350);\n",
              "        }\n",
              "        (_cursor334)._max_ay24 = _augval350;\n",
              "        (_cursor334)._height10 = 1 + ((((((_cursor334)._left7) == null) ? (-1) : (((_cursor334)._left7)._height10)) > ((((_cursor334)._right8) == null) ? (-1) : (((_cursor334)._right8)._height10))) ? ((((_cursor334)._left7) == null) ? (-1) : (((_cursor334)._left7)._height10)) : ((((_cursor334)._right8) == null) ? (-1) : (((_cursor334)._right8)._height10)));\n",
              "        _changed335 = false;\n",
              "        _changed335 = (_changed335) || (!((_old__min_ax12336) == ((_cursor334)._min_ax12)));\n",
              "        _changed335 = (_changed335) || (!((_old__min_ay13337) == ((_cursor334)._min_ay13)));\n",
              "        _changed335 = (_changed335) || (!((_old__max_ay24338) == ((_cursor334)._max_ay24)));\n",
              "        _changed335 = (_changed335) || (!((_old_height339) == ((_cursor334)._height10)));\n",
              "        _cursor334 = (_cursor334)._parent9;\n",
              "    }\n",
              "    if (((this)._root1) == (x)) {\n",
              "        (this)._root1 = _new_x291;\n",
              "    }\n",
              "};\n",
              "RectangleHolder.prototype.updateAx1 = function (__x, new_val) {\n",
              "    if ((__x).ax1 != new_val) {\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval355 = new_val;\n",
              "        var _child356 = (__x)._left7;\n",
              "        if (!((_child356) == null)) {\n",
              "            var _val357 = (_child356)._min_ax12;\n",
              "            _augval355 = ((_augval355) < (_val357)) ? (_augval355) : (_val357);\n",
              "        }\n",
              "        var _child358 = (__x)._right8;\n",
              "        if (!((_child358) == null)) {\n",
              "            var _val359 = (_child358)._min_ax12;\n",
              "            _augval355 = ((_augval355) < (_val359)) ? (_augval355) : (_val359);\n",
              "        }\n",
              "        (__x)._min_ax12 = _augval355;\n",
              "        var _cursor360 = (__x)._parent9;\n",
              "        var _changed361 = true;\n",
              "        while ((_changed361) && (!((_cursor360) == (null)))) {\n",
              "            var _old__min_ax12362 = (_cursor360)._min_ax12;\n",
              "            var _old_height363 = (_cursor360)._height10;\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval364 = (_cursor360).ax1;\n",
              "            var _child365 = (_cursor360)._left7;\n",
              "            if (!((_child365) == null)) {\n",
              "                var _val366 = (_child365)._min_ax12;\n",
              "                _augval364 = ((_augval364) < (_val366)) ? (_augval364) : (_val366);\n",
              "            }\n",
              "            var _child367 = (_cursor360)._right8;\n",
              "            if (!((_child367) == null)) {\n",
              "                var _val368 = (_child367)._min_ax12;\n",
              "                _augval364 = ((_augval364) < (_val368)) ? (_augval364) : (_val368);\n",
              "            }\n",
              "            (_cursor360)._min_ax12 = _augval364;\n",
              "            (_cursor360)._height10 = 1 + ((((((_cursor360)._left7) == null) ? (-1) : (((_cursor360)._left7)._height10)) > ((((_cursor360)._right8) == null) ? (-1) : (((_cursor360)._right8)._height10))) ? ((((_cursor360)._left7) == null) ? (-1) : (((_cursor360)._left7)._height10)) : ((((_cursor360)._right8) == null) ? (-1) : (((_cursor360)._right8)._height10)));\n",
              "            _changed361 = false;\n",
              "            _changed361 = (_changed361) || (!((_old__min_ax12362) == ((_cursor360)._min_ax12)));\n",
              "            _changed361 = (_changed361) || (!((_old_height363) == ((_cursor360)._height10)));\n",
              "            _cursor360 = (_cursor360)._parent9;\n",
              "        }\n",
              "        (__x).ax1 = new_val;\n",
              "    }\n",
              "}\n",
              "RectangleHolder.prototype.updateAy1 = function (__x, new_val) {\n",
              "    if ((__x).ay1 != new_val) {\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval369 = new_val;\n",
              "        var _child370 = (__x)._left7;\n",
              "        if (!((_child370) == null)) {\n",
              "            var _val371 = (_child370)._min_ay13;\n",
              "            _augval369 = ((_augval369) < (_val371)) ? (_augval369) : (_val371);\n",
              "        }\n",
              "        var _child372 = (__x)._right8;\n",
              "        if (!((_child372) == null)) {\n",
              "            var _val373 = (_child372)._min_ay13;\n",
              "            _augval369 = ((_augval369) < (_val373)) ? (_augval369) : (_val373);\n",
              "        }\n",
              "        (__x)._min_ay13 = _augval369;\n",
              "        var _cursor374 = (__x)._parent9;\n",
              "        var _changed375 = true;\n",
              "        while ((_changed375) && (!((_cursor374) == (null)))) {\n",
              "            var _old__min_ay13376 = (_cursor374)._min_ay13;\n",
              "            var _old_height377 = (_cursor374)._height10;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval378 = (_cursor374).ay1;\n",
              "            var _child379 = (_cursor374)._left7;\n",
              "            if (!((_child379) == null)) {\n",
              "                var _val380 = (_child379)._min_ay13;\n",
              "                _augval378 = ((_augval378) < (_val380)) ? (_augval378) : (_val380);\n",
              "            }\n",
              "            var _child381 = (_cursor374)._right8;\n",
              "            if (!((_child381) == null)) {\n",
              "                var _val382 = (_child381)._min_ay13;\n",
              "                _augval378 = ((_augval378) < (_val382)) ? (_augval378) : (_val382);\n",
              "            }\n",
              "            (_cursor374)._min_ay13 = _augval378;\n",
              "            (_cursor374)._height10 = 1 + ((((((_cursor374)._left7) == null) ? (-1) : (((_cursor374)._left7)._height10)) > ((((_cursor374)._right8) == null) ? (-1) : (((_cursor374)._right8)._height10))) ? ((((_cursor374)._left7) == null) ? (-1) : (((_cursor374)._left7)._height10)) : ((((_cursor374)._right8) == null) ? (-1) : (((_cursor374)._right8)._height10)));\n",
              "            _changed375 = false;\n",
              "            _changed375 = (_changed375) || (!((_old__min_ay13376) == ((_cursor374)._min_ay13)));\n",
              "            _changed375 = (_changed375) || (!((_old_height377) == ((_cursor374)._height10)));\n",
              "            _cursor374 = (_cursor374)._parent9;\n",
              "        }\n",
              "        (__x).ay1 = new_val;\n",
              "    }\n",
              "}\n",
              "RectangleHolder.prototype.updateAx2 = function (__x, new_val) {\n",
              "    if ((__x).ax2 != new_val) {\n",
              "        var _parent383 = (__x)._parent9;\n",
              "        var _left384 = (__x)._left7;\n",
              "        var _right385 = (__x)._right8;\n",
              "        var _new_x386;\n",
              "        if (((_left384) == null) && ((_right385) == null)) {\n",
              "            _new_x386 = null;\n",
              "            /* replace __x with _new_x386 in _parent383 */\n",
              "            if (!((_parent383) == null)) {\n",
              "                if (((_parent383)._left7) == (__x)) {\n",
              "                    (_parent383)._left7 = _new_x386;\n",
              "                } else {\n",
              "                    (_parent383)._right8 = _new_x386;\n",
              "                }\n",
              "            }\n",
              "            if (!((_new_x386) == null)) {\n",
              "                (_new_x386)._parent9 = _parent383;\n",
              "            }\n",
              "        } else if ((!((_left384) == null)) && ((_right385) == null)) {\n",
              "            _new_x386 = _left384;\n",
              "            /* replace __x with _new_x386 in _parent383 */\n",
              "            if (!((_parent383) == null)) {\n",
              "                if (((_parent383)._left7) == (__x)) {\n",
              "                    (_parent383)._left7 = _new_x386;\n",
              "                } else {\n",
              "                    (_parent383)._right8 = _new_x386;\n",
              "                }\n",
              "            }\n",
              "            if (!((_new_x386) == null)) {\n",
              "                (_new_x386)._parent9 = _parent383;\n",
              "            }\n",
              "        } else if (((_left384) == null) && (!((_right385) == null))) {\n",
              "            _new_x386 = _right385;\n",
              "            /* replace __x with _new_x386 in _parent383 */\n",
              "            if (!((_parent383) == null)) {\n",
              "                if (((_parent383)._left7) == (__x)) {\n",
              "                    (_parent383)._left7 = _new_x386;\n",
              "                } else {\n",
              "                    (_parent383)._right8 = _new_x386;\n",
              "                }\n",
              "            }\n",
              "            if (!((_new_x386) == null)) {\n",
              "                (_new_x386)._parent9 = _parent383;\n",
              "            }\n",
              "        } else {\n",
              "            var _root387 = (__x)._right8;\n",
              "            var _x388 = _root387;\n",
              "            var _descend389 = true;\n",
              "            var _from_left390 = true;\n",
              "            while (true) {\n",
              "                if ((_x388) == null) {\n",
              "                    _x388 = null;\n",
              "                    break;\n",
              "                }\n",
              "                if (_descend389) {\n",
              "                    /* too small? */\n",
              "                    if (false) {\n",
              "                        if ((!(((_x388)._right8) == null)) && (true)) {\n",
              "                            if ((_x388) == (_root387)) {\n",
              "                                _root387 = (_x388)._right8;\n",
              "                            }\n",
              "                            _x388 = (_x388)._right8;\n",
              "                        } else if ((_x388) == (_root387)) {\n",
              "                            _x388 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend389 = false;\n",
              "                            _from_left390 = (!(((_x388)._parent9) == null)) && ((_x388) == (((_x388)._parent9)._left7));\n",
              "                            _x388 = (_x388)._parent9;\n",
              "                        }\n",
              "                    } else if ((!(((_x388)._left7) == null)) && (true)) {\n",
              "                        _x388 = (_x388)._left7;\n",
              "                        /* too large? */\n",
              "                    } else if (false) {\n",
              "                        if ((_x388) == (_root387)) {\n",
              "                            _x388 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend389 = false;\n",
              "                            _from_left390 = (!(((_x388)._parent9) == null)) && ((_x388) == (((_x388)._parent9)._left7));\n",
              "                            _x388 = (_x388)._parent9;\n",
              "                        }\n",
              "                        /* node ok? */\n",
              "                    } else if (true) {\n",
              "                        break;\n",
              "                    } else if ((_x388) == (_root387)) {\n",
              "                        _root387 = (_x388)._right8;\n",
              "                        _x388 = (_x388)._right8;\n",
              "                    } else {\n",
              "                        if ((!(((_x388)._right8) == null)) && (true)) {\n",
              "                            if ((_x388) == (_root387)) {\n",
              "                                _root387 = (_x388)._right8;\n",
              "                            }\n",
              "                            _x388 = (_x388)._right8;\n",
              "                        } else {\n",
              "                            _descend389 = false;\n",
              "                            _from_left390 = (!(((_x388)._parent9) == null)) && ((_x388) == (((_x388)._parent9)._left7));\n",
              "                            _x388 = (_x388)._parent9;\n",
              "                        }\n",
              "                    }\n",
              "                } else if (_from_left390) {\n",
              "                    if (false) {\n",
              "                        _x388 = null;\n",
              "                        break;\n",
              "                    } else if (true) {\n",
              "                        break;\n",
              "                    } else if ((!(((_x388)._right8) == null)) && (true)) {\n",
              "                        _descend389 = true;\n",
              "                        if ((_x388) == (_root387)) {\n",
              "                            _root387 = (_x388)._right8;\n",
              "                        }\n",
              "                        _x388 = (_x388)._right8;\n",
              "                    } else if ((_x388) == (_root387)) {\n",
              "                        _x388 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend389 = false;\n",
              "                        _from_left390 = (!(((_x388)._parent9) == null)) && ((_x388) == (((_x388)._parent9)._left7));\n",
              "                        _x388 = (_x388)._parent9;\n",
              "                    }\n",
              "                } else {\n",
              "                    if ((_x388) == (_root387)) {\n",
              "                        _x388 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend389 = false;\n",
              "                        _from_left390 = (!(((_x388)._parent9) == null)) && ((_x388) == (((_x388)._parent9)._left7));\n",
              "                        _x388 = (_x388)._parent9;\n",
              "                    }\n",
              "                }\n",
              "            }\n",
              "            _new_x386 = _x388;\n",
              "            var _mp391 = (_x388)._parent9;\n",
              "            var _mr392 = (_x388)._right8;\n",
              "            /* replace _x388 with _mr392 in _mp391 */\n",
              "            if (!((_mp391) == null)) {\n",
              "                if (((_mp391)._left7) == (_x388)) {\n",
              "                    (_mp391)._left7 = _mr392;\n",
              "                } else {\n",
              "                    (_mp391)._right8 = _mr392;\n",
              "                }\n",
              "            }\n",
              "            if (!((_mr392) == null)) {\n",
              "                (_mr392)._parent9 = _mp391;\n",
              "            }\n",
              "            /* replace __x with _x388 in _parent383 */\n",
              "            if (!((_parent383) == null)) {\n",
              "                if (((_parent383)._left7) == (__x)) {\n",
              "                    (_parent383)._left7 = _x388;\n",
              "                } else {\n",
              "                    (_parent383)._right8 = _x388;\n",
              "                }\n",
              "            }\n",
              "            if (!((_x388) == null)) {\n",
              "                (_x388)._parent9 = _parent383;\n",
              "            }\n",
              "            /* replace null with _left384 in _x388 */\n",
              "            (_x388)._left7 = _left384;\n",
              "            if (!((_left384) == null)) {\n",
              "                (_left384)._parent9 = _x388;\n",
              "            }\n",
              "            /* replace _mr392 with (__x)._right8 in _x388 */\n",
              "            (_x388)._right8 = (__x)._right8;\n",
              "            if (!(((__x)._right8) == null)) {\n",
              "                ((__x)._right8)._parent9 = _x388;\n",
              "            }\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval393 = (_x388).ax1;\n",
              "            var _child394 = (_x388)._left7;\n",
              "            if (!((_child394) == null)) {\n",
              "                var _val395 = (_child394)._min_ax12;\n",
              "                _augval393 = ((_augval393) < (_val395)) ? (_augval393) : (_val395);\n",
              "            }\n",
              "            var _child396 = (_x388)._right8;\n",
              "            if (!((_child396) == null)) {\n",
              "                var _val397 = (_child396)._min_ax12;\n",
              "                _augval393 = ((_augval393) < (_val397)) ? (_augval393) : (_val397);\n",
              "            }\n",
              "            (_x388)._min_ax12 = _augval393;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval398 = (_x388).ay1;\n",
              "            var _child399 = (_x388)._left7;\n",
              "            if (!((_child399) == null)) {\n",
              "                var _val400 = (_child399)._min_ay13;\n",
              "                _augval398 = ((_augval398) < (_val400)) ? (_augval398) : (_val400);\n",
              "            }\n",
              "            var _child401 = (_x388)._right8;\n",
              "            if (!((_child401) == null)) {\n",
              "                var _val402 = (_child401)._min_ay13;\n",
              "                _augval398 = ((_augval398) < (_val402)) ? (_augval398) : (_val402);\n",
              "            }\n",
              "            (_x388)._min_ay13 = _augval398;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval403 = (_x388).ay2;\n",
              "            var _child404 = (_x388)._left7;\n",
              "            if (!((_child404) == null)) {\n",
              "                var _val405 = (_child404)._max_ay24;\n",
              "                _augval403 = ((_augval403) < (_val405)) ? (_val405) : (_augval403);\n",
              "            }\n",
              "            var _child406 = (_x388)._right8;\n",
              "            if (!((_child406) == null)) {\n",
              "                var _val407 = (_child406)._max_ay24;\n",
              "                _augval403 = ((_augval403) < (_val407)) ? (_val407) : (_augval403);\n",
              "            }\n",
              "            (_x388)._max_ay24 = _augval403;\n",
              "            (_x388)._height10 = 1 + ((((((_x388)._left7) == null) ? (-1) : (((_x388)._left7)._height10)) > ((((_x388)._right8) == null) ? (-1) : (((_x388)._right8)._height10))) ? ((((_x388)._left7) == null) ? (-1) : (((_x388)._left7)._height10)) : ((((_x388)._right8) == null) ? (-1) : (((_x388)._right8)._height10)));\n",
              "            var _cursor408 = _mp391;\n",
              "            var _changed409 = true;\n",
              "            while ((_changed409) && (!((_cursor408) == (_parent383)))) {\n",
              "                var _old__min_ax12410 = (_cursor408)._min_ax12;\n",
              "                var _old__min_ay13411 = (_cursor408)._min_ay13;\n",
              "                var _old__max_ay24412 = (_cursor408)._max_ay24;\n",
              "                var _old_height413 = (_cursor408)._height10;\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval414 = (_cursor408).ax1;\n",
              "                var _child415 = (_cursor408)._left7;\n",
              "                if (!((_child415) == null)) {\n",
              "                    var _val416 = (_child415)._min_ax12;\n",
              "                    _augval414 = ((_augval414) < (_val416)) ? (_augval414) : (_val416);\n",
              "                }\n",
              "                var _child417 = (_cursor408)._right8;\n",
              "                if (!((_child417) == null)) {\n",
              "                    var _val418 = (_child417)._min_ax12;\n",
              "                    _augval414 = ((_augval414) < (_val418)) ? (_augval414) : (_val418);\n",
              "                }\n",
              "                (_cursor408)._min_ax12 = _augval414;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval419 = (_cursor408).ay1;\n",
              "                var _child420 = (_cursor408)._left7;\n",
              "                if (!((_child420) == null)) {\n",
              "                    var _val421 = (_child420)._min_ay13;\n",
              "                    _augval419 = ((_augval419) < (_val421)) ? (_augval419) : (_val421);\n",
              "                }\n",
              "                var _child422 = (_cursor408)._right8;\n",
              "                if (!((_child422) == null)) {\n",
              "                    var _val423 = (_child422)._min_ay13;\n",
              "                    _augval419 = ((_augval419) < (_val423)) ? (_augval419) : (_val423);\n",
              "                }\n",
              "                (_cursor408)._min_ay13 = _augval419;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval424 = (_cursor408).ay2;\n",
              "                var _child425 = (_cursor408)._left7;\n",
              "                if (!((_child425) == null)) {\n",
              "                    var _val426 = (_child425)._max_ay24;\n",
              "                    _augval424 = ((_augval424) < (_val426)) ? (_val426) : (_augval424);\n",
              "                }\n",
              "                var _child427 = (_cursor408)._right8;\n",
              "                if (!((_child427) == null)) {\n",
              "                    var _val428 = (_child427)._max_ay24;\n",
              "                    _augval424 = ((_augval424) < (_val428)) ? (_val428) : (_augval424);\n",
              "                }\n",
              "                (_cursor408)._max_ay24 = _augval424;\n",
              "                (_cursor408)._height10 = 1 + ((((((_cursor408)._left7) == null) ? (-1) : (((_cursor408)._left7)._height10)) > ((((_cursor408)._right8) == null) ? (-1) : (((_cursor408)._right8)._height10))) ? ((((_cursor408)._left7) == null) ? (-1) : (((_cursor408)._left7)._height10)) : ((((_cursor408)._right8) == null) ? (-1) : (((_cursor408)._right8)._height10)));\n",
              "                _changed409 = false;\n",
              "                _changed409 = (_changed409) || (!((_old__min_ax12410) == ((_cursor408)._min_ax12)));\n",
              "                _changed409 = (_changed409) || (!((_old__min_ay13411) == ((_cursor408)._min_ay13)));\n",
              "                _changed409 = (_changed409) || (!((_old__max_ay24412) == ((_cursor408)._max_ay24)));\n",
              "                _changed409 = (_changed409) || (!((_old_height413) == ((_cursor408)._height10)));\n",
              "                _cursor408 = (_cursor408)._parent9;\n",
              "            }\n",
              "        }\n",
              "        var _cursor429 = _parent383;\n",
              "        var _changed430 = true;\n",
              "        while ((_changed430) && (!((_cursor429) == (null)))) {\n",
              "            var _old__min_ax12431 = (_cursor429)._min_ax12;\n",
              "            var _old__min_ay13432 = (_cursor429)._min_ay13;\n",
              "            var _old__max_ay24433 = (_cursor429)._max_ay24;\n",
              "            var _old_height434 = (_cursor429)._height10;\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval435 = (_cursor429).ax1;\n",
              "            var _child436 = (_cursor429)._left7;\n",
              "            if (!((_child436) == null)) {\n",
              "                var _val437 = (_child436)._min_ax12;\n",
              "                _augval435 = ((_augval435) < (_val437)) ? (_augval435) : (_val437);\n",
              "            }\n",
              "            var _child438 = (_cursor429)._right8;\n",
              "            if (!((_child438) == null)) {\n",
              "                var _val439 = (_child438)._min_ax12;\n",
              "                _augval435 = ((_augval435) < (_val439)) ? (_augval435) : (_val439);\n",
              "            }\n",
              "            (_cursor429)._min_ax12 = _augval435;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval440 = (_cursor429).ay1;\n",
              "            var _child441 = (_cursor429)._left7;\n",
              "            if (!((_child441) == null)) {\n",
              "                var _val442 = (_child441)._min_ay13;\n",
              "                _augval440 = ((_augval440) < (_val442)) ? (_augval440) : (_val442);\n",
              "            }\n",
              "            var _child443 = (_cursor429)._right8;\n",
              "            if (!((_child443) == null)) {\n",
              "                var _val444 = (_child443)._min_ay13;\n",
              "                _augval440 = ((_augval440) < (_val444)) ? (_augval440) : (_val444);\n",
              "            }\n",
              "            (_cursor429)._min_ay13 = _augval440;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval445 = (_cursor429).ay2;\n",
              "            var _child446 = (_cursor429)._left7;\n",
              "            if (!((_child446) == null)) {\n",
              "                var _val447 = (_child446)._max_ay24;\n",
              "                _augval445 = ((_augval445) < (_val447)) ? (_val447) : (_augval445);\n",
              "            }\n",
              "            var _child448 = (_cursor429)._right8;\n",
              "            if (!((_child448) == null)) {\n",
              "                var _val449 = (_child448)._max_ay24;\n",
              "                _augval445 = ((_augval445) < (_val449)) ? (_val449) : (_augval445);\n",
              "            }\n",
              "            (_cursor429)._max_ay24 = _augval445;\n",
              "            (_cursor429)._height10 = 1 + ((((((_cursor429)._left7) == null) ? (-1) : (((_cursor429)._left7)._height10)) > ((((_cursor429)._right8) == null) ? (-1) : (((_cursor429)._right8)._height10))) ? ((((_cursor429)._left7) == null) ? (-1) : (((_cursor429)._left7)._height10)) : ((((_cursor429)._right8) == null) ? (-1) : (((_cursor429)._right8)._height10)));\n",
              "            _changed430 = false;\n",
              "            _changed430 = (_changed430) || (!((_old__min_ax12431) == ((_cursor429)._min_ax12)));\n",
              "            _changed430 = (_changed430) || (!((_old__min_ay13432) == ((_cursor429)._min_ay13)));\n",
              "            _changed430 = (_changed430) || (!((_old__max_ay24433) == ((_cursor429)._max_ay24)));\n",
              "            _changed430 = (_changed430) || (!((_old_height434) == ((_cursor429)._height10)));\n",
              "            _cursor429 = (_cursor429)._parent9;\n",
              "        }\n",
              "        if (((this)._root1) == (__x)) {\n",
              "            (this)._root1 = _new_x386;\n",
              "        }\n",
              "        (__x)._left7 = null;\n",
              "        (__x)._right8 = null;\n",
              "        (__x)._min_ax12 = (__x).ax1;\n",
              "        (__x)._min_ay13 = (__x).ay1;\n",
              "        (__x)._max_ay24 = (__x).ay2;\n",
              "        (__x)._height10 = 0;\n",
              "        var _previous450 = null;\n",
              "        var _current451 = (this)._root1;\n",
              "        var _is_left452 = false;\n",
              "        while (!((_current451) == null)) {\n",
              "            _previous450 = _current451;\n",
              "            if ((new_val) < ((_current451).ax2)) {\n",
              "                _current451 = (_current451)._left7;\n",
              "                _is_left452 = true;\n",
              "            } else {\n",
              "                _current451 = (_current451)._right8;\n",
              "                _is_left452 = false;\n",
              "            }\n",
              "        }\n",
              "        if ((_previous450) == null) {\n",
              "            (this)._root1 = __x;\n",
              "        } else {\n",
              "            (__x)._parent9 = _previous450;\n",
              "            if (_is_left452) {\n",
              "                (_previous450)._left7 = __x;\n",
              "            } else {\n",
              "                (_previous450)._right8 = __x;\n",
              "            }\n",
              "        }\n",
              "        var _cursor453 = (__x)._parent9;\n",
              "        var _changed454 = true;\n",
              "        while ((_changed454) && (!((_cursor453) == (null)))) {\n",
              "            var _old__min_ax12455 = (_cursor453)._min_ax12;\n",
              "            var _old__min_ay13456 = (_cursor453)._min_ay13;\n",
              "            var _old__max_ay24457 = (_cursor453)._max_ay24;\n",
              "            var _old_height458 = (_cursor453)._height10;\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval459 = (_cursor453).ax1;\n",
              "            var _child460 = (_cursor453)._left7;\n",
              "            if (!((_child460) == null)) {\n",
              "                var _val461 = (_child460)._min_ax12;\n",
              "                _augval459 = ((_augval459) < (_val461)) ? (_augval459) : (_val461);\n",
              "            }\n",
              "            var _child462 = (_cursor453)._right8;\n",
              "            if (!((_child462) == null)) {\n",
              "                var _val463 = (_child462)._min_ax12;\n",
              "                _augval459 = ((_augval459) < (_val463)) ? (_augval459) : (_val463);\n",
              "            }\n",
              "            (_cursor453)._min_ax12 = _augval459;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval464 = (_cursor453).ay1;\n",
              "            var _child465 = (_cursor453)._left7;\n",
              "            if (!((_child465) == null)) {\n",
              "                var _val466 = (_child465)._min_ay13;\n",
              "                _augval464 = ((_augval464) < (_val466)) ? (_augval464) : (_val466);\n",
              "            }\n",
              "            var _child467 = (_cursor453)._right8;\n",
              "            if (!((_child467) == null)) {\n",
              "                var _val468 = (_child467)._min_ay13;\n",
              "                _augval464 = ((_augval464) < (_val468)) ? (_augval464) : (_val468);\n",
              "            }\n",
              "            (_cursor453)._min_ay13 = _augval464;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval469 = (_cursor453).ay2;\n",
              "            var _child470 = (_cursor453)._left7;\n",
              "            if (!((_child470) == null)) {\n",
              "                var _val471 = (_child470)._max_ay24;\n",
              "                _augval469 = ((_augval469) < (_val471)) ? (_val471) : (_augval469);\n",
              "            }\n",
              "            var _child472 = (_cursor453)._right8;\n",
              "            if (!((_child472) == null)) {\n",
              "                var _val473 = (_child472)._max_ay24;\n",
              "                _augval469 = ((_augval469) < (_val473)) ? (_val473) : (_augval469);\n",
              "            }\n",
              "            (_cursor453)._max_ay24 = _augval469;\n",
              "            (_cursor453)._height10 = 1 + ((((((_cursor453)._left7) == null) ? (-1) : (((_cursor453)._left7)._height10)) > ((((_cursor453)._right8) == null) ? (-1) : (((_cursor453)._right8)._height10))) ? ((((_cursor453)._left7) == null) ? (-1) : (((_cursor453)._left7)._height10)) : ((((_cursor453)._right8) == null) ? (-1) : (((_cursor453)._right8)._height10)));\n",
              "            _changed454 = false;\n",
              "            _changed454 = (_changed454) || (!((_old__min_ax12455) == ((_cursor453)._min_ax12)));\n",
              "            _changed454 = (_changed454) || (!((_old__min_ay13456) == ((_cursor453)._min_ay13)));\n",
              "            _changed454 = (_changed454) || (!((_old__max_ay24457) == ((_cursor453)._max_ay24)));\n",
              "            _changed454 = (_changed454) || (!((_old_height458) == ((_cursor453)._height10)));\n",
              "            _cursor453 = (_cursor453)._parent9;\n",
              "        }\n",
              "        /* rebalance AVL tree */\n",
              "        var _cursor474 = __x;\n",
              "        var _imbalance475;\n",
              "        while (!(((_cursor474)._parent9) == null)) {\n",
              "            _cursor474 = (_cursor474)._parent9;\n",
              "            (_cursor474)._height10 = 1 + ((((((_cursor474)._left7) == null) ? (-1) : (((_cursor474)._left7)._height10)) > ((((_cursor474)._right8) == null) ? (-1) : (((_cursor474)._right8)._height10))) ? ((((_cursor474)._left7) == null) ? (-1) : (((_cursor474)._left7)._height10)) : ((((_cursor474)._right8) == null) ? (-1) : (((_cursor474)._right8)._height10)));\n",
              "            _imbalance475 = ((((_cursor474)._left7) == null) ? (-1) : (((_cursor474)._left7)._height10)) - ((((_cursor474)._right8) == null) ? (-1) : (((_cursor474)._right8)._height10));\n",
              "            if ((_imbalance475) > (1)) {\n",
              "                if ((((((_cursor474)._left7)._left7) == null) ? (-1) : ((((_cursor474)._left7)._left7)._height10)) < (((((_cursor474)._left7)._right8) == null) ? (-1) : ((((_cursor474)._left7)._right8)._height10))) {\n",
              "                    /* rotate ((_cursor474)._left7)._right8 */\n",
              "                    var _a476 = (_cursor474)._left7;\n",
              "                    var _b477 = (_a476)._right8;\n",
              "                    var _c478 = (_b477)._left7;\n",
              "                    /* replace _a476 with _b477 in (_a476)._parent9 */\n",
              "                    if (!(((_a476)._parent9) == null)) {\n",
              "                        if ((((_a476)._parent9)._left7) == (_a476)) {\n",
              "                            ((_a476)._parent9)._left7 = _b477;\n",
              "                        } else {\n",
              "                            ((_a476)._parent9)._right8 = _b477;\n",
              "                        }\n",
              "                    }\n",
              "                    if (!((_b477) == null)) {\n",
              "                        (_b477)._parent9 = (_a476)._parent9;\n",
              "                    }\n",
              "                    /* replace _c478 with _a476 in _b477 */\n",
              "                    (_b477)._left7 = _a476;\n",
              "                    if (!((_a476) == null)) {\n",
              "                        (_a476)._parent9 = _b477;\n",
              "                    }\n",
              "                    /* replace _b477 with _c478 in _a476 */\n",
              "                    (_a476)._right8 = _c478;\n",
              "                    if (!((_c478) == null)) {\n",
              "                        (_c478)._parent9 = _a476;\n",
              "                    }\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval479 = (_a476).ax1;\n",
              "                    var _child480 = (_a476)._left7;\n",
              "                    if (!((_child480) == null)) {\n",
              "                        var _val481 = (_child480)._min_ax12;\n",
              "                        _augval479 = ((_augval479) < (_val481)) ? (_augval479) : (_val481);\n",
              "                    }\n",
              "                    var _child482 = (_a476)._right8;\n",
              "                    if (!((_child482) == null)) {\n",
              "                        var _val483 = (_child482)._min_ax12;\n",
              "                        _augval479 = ((_augval479) < (_val483)) ? (_augval479) : (_val483);\n",
              "                    }\n",
              "                    (_a476)._min_ax12 = _augval479;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval484 = (_a476).ay1;\n",
              "                    var _child485 = (_a476)._left7;\n",
              "                    if (!((_child485) == null)) {\n",
              "                        var _val486 = (_child485)._min_ay13;\n",
              "                        _augval484 = ((_augval484) < (_val486)) ? (_augval484) : (_val486);\n",
              "                    }\n",
              "                    var _child487 = (_a476)._right8;\n",
              "                    if (!((_child487) == null)) {\n",
              "                        var _val488 = (_child487)._min_ay13;\n",
              "                        _augval484 = ((_augval484) < (_val488)) ? (_augval484) : (_val488);\n",
              "                    }\n",
              "                    (_a476)._min_ay13 = _augval484;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval489 = (_a476).ay2;\n",
              "                    var _child490 = (_a476)._left7;\n",
              "                    if (!((_child490) == null)) {\n",
              "                        var _val491 = (_child490)._max_ay24;\n",
              "                        _augval489 = ((_augval489) < (_val491)) ? (_val491) : (_augval489);\n",
              "                    }\n",
              "                    var _child492 = (_a476)._right8;\n",
              "                    if (!((_child492) == null)) {\n",
              "                        var _val493 = (_child492)._max_ay24;\n",
              "                        _augval489 = ((_augval489) < (_val493)) ? (_val493) : (_augval489);\n",
              "                    }\n",
              "                    (_a476)._max_ay24 = _augval489;\n",
              "                    (_a476)._height10 = 1 + ((((((_a476)._left7) == null) ? (-1) : (((_a476)._left7)._height10)) > ((((_a476)._right8) == null) ? (-1) : (((_a476)._right8)._height10))) ? ((((_a476)._left7) == null) ? (-1) : (((_a476)._left7)._height10)) : ((((_a476)._right8) == null) ? (-1) : (((_a476)._right8)._height10)));\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval494 = (_b477).ax1;\n",
              "                    var _child495 = (_b477)._left7;\n",
              "                    if (!((_child495) == null)) {\n",
              "                        var _val496 = (_child495)._min_ax12;\n",
              "                        _augval494 = ((_augval494) < (_val496)) ? (_augval494) : (_val496);\n",
              "                    }\n",
              "                    var _child497 = (_b477)._right8;\n",
              "                    if (!((_child497) == null)) {\n",
              "                        var _val498 = (_child497)._min_ax12;\n",
              "                        _augval494 = ((_augval494) < (_val498)) ? (_augval494) : (_val498);\n",
              "                    }\n",
              "                    (_b477)._min_ax12 = _augval494;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval499 = (_b477).ay1;\n",
              "                    var _child500 = (_b477)._left7;\n",
              "                    if (!((_child500) == null)) {\n",
              "                        var _val501 = (_child500)._min_ay13;\n",
              "                        _augval499 = ((_augval499) < (_val501)) ? (_augval499) : (_val501);\n",
              "                    }\n",
              "                    var _child502 = (_b477)._right8;\n",
              "                    if (!((_child502) == null)) {\n",
              "                        var _val503 = (_child502)._min_ay13;\n",
              "                        _augval499 = ((_augval499) < (_val503)) ? (_augval499) : (_val503);\n",
              "                    }\n",
              "                    (_b477)._min_ay13 = _augval499;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval504 = (_b477).ay2;\n",
              "                    var _child505 = (_b477)._left7;\n",
              "                    if (!((_child505) == null)) {\n",
              "                        var _val506 = (_child505)._max_ay24;\n",
              "                        _augval504 = ((_augval504) < (_val506)) ? (_val506) : (_augval504);\n",
              "                    }\n",
              "                    var _child507 = (_b477)._right8;\n",
              "                    if (!((_child507) == null)) {\n",
              "                        var _val508 = (_child507)._max_ay24;\n",
              "                        _augval504 = ((_augval504) < (_val508)) ? (_val508) : (_augval504);\n",
              "                    }\n",
              "                    (_b477)._max_ay24 = _augval504;\n",
              "                    (_b477)._height10 = 1 + ((((((_b477)._left7) == null) ? (-1) : (((_b477)._left7)._height10)) > ((((_b477)._right8) == null) ? (-1) : (((_b477)._right8)._height10))) ? ((((_b477)._left7) == null) ? (-1) : (((_b477)._left7)._height10)) : ((((_b477)._right8) == null) ? (-1) : (((_b477)._right8)._height10)));\n",
              "                    if (!(((_b477)._parent9) == null)) {\n",
              "                        /* _min_ax12 is min of ax1 */\n",
              "                        var _augval509 = ((_b477)._parent9).ax1;\n",
              "                        var _child510 = ((_b477)._parent9)._left7;\n",
              "                        if (!((_child510) == null)) {\n",
              "                            var _val511 = (_child510)._min_ax12;\n",
              "                            _augval509 = ((_augval509) < (_val511)) ? (_augval509) : (_val511);\n",
              "                        }\n",
              "                        var _child512 = ((_b477)._parent9)._right8;\n",
              "                        if (!((_child512) == null)) {\n",
              "                            var _val513 = (_child512)._min_ax12;\n",
              "                            _augval509 = ((_augval509) < (_val513)) ? (_augval509) : (_val513);\n",
              "                        }\n",
              "                        ((_b477)._parent9)._min_ax12 = _augval509;\n",
              "                        /* _min_ay13 is min of ay1 */\n",
              "                        var _augval514 = ((_b477)._parent9).ay1;\n",
              "                        var _child515 = ((_b477)._parent9)._left7;\n",
              "                        if (!((_child515) == null)) {\n",
              "                            var _val516 = (_child515)._min_ay13;\n",
              "                            _augval514 = ((_augval514) < (_val516)) ? (_augval514) : (_val516);\n",
              "                        }\n",
              "                        var _child517 = ((_b477)._parent9)._right8;\n",
              "                        if (!((_child517) == null)) {\n",
              "                            var _val518 = (_child517)._min_ay13;\n",
              "                            _augval514 = ((_augval514) < (_val518)) ? (_augval514) : (_val518);\n",
              "                        }\n",
              "                        ((_b477)._parent9)._min_ay13 = _augval514;\n",
              "                        /* _max_ay24 is max of ay2 */\n",
              "                        var _augval519 = ((_b477)._parent9).ay2;\n",
              "                        var _child520 = ((_b477)._parent9)._left7;\n",
              "                        if (!((_child520) == null)) {\n",
              "                            var _val521 = (_child520)._max_ay24;\n",
              "                            _augval519 = ((_augval519) < (_val521)) ? (_val521) : (_augval519);\n",
              "                        }\n",
              "                        var _child522 = ((_b477)._parent9)._right8;\n",
              "                        if (!((_child522) == null)) {\n",
              "                            var _val523 = (_child522)._max_ay24;\n",
              "                            _augval519 = ((_augval519) < (_val523)) ? (_val523) : (_augval519);\n",
              "                        }\n",
              "                        ((_b477)._parent9)._max_ay24 = _augval519;\n",
              "                        ((_b477)._parent9)._height10 = 1 + (((((((_b477)._parent9)._left7) == null) ? (-1) : ((((_b477)._parent9)._left7)._height10)) > (((((_b477)._parent9)._right8) == null) ? (-1) : ((((_b477)._parent9)._right8)._height10))) ? (((((_b477)._parent9)._left7) == null) ? (-1) : ((((_b477)._parent9)._left7)._height10)) : (((((_b477)._parent9)._right8) == null) ? (-1) : ((((_b477)._parent9)._right8)._height10)));\n",
              "                    } else {\n",
              "                        (this)._root1 = _b477;\n",
              "                    }\n",
              "                }\n",
              "                /* rotate (_cursor474)._left7 */\n",
              "                var _a524 = _cursor474;\n",
              "                var _b525 = (_a524)._left7;\n",
              "                var _c526 = (_b525)._right8;\n",
              "                /* replace _a524 with _b525 in (_a524)._parent9 */\n",
              "                if (!(((_a524)._parent9) == null)) {\n",
              "                    if ((((_a524)._parent9)._left7) == (_a524)) {\n",
              "                        ((_a524)._parent9)._left7 = _b525;\n",
              "                    } else {\n",
              "                        ((_a524)._parent9)._right8 = _b525;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b525) == null)) {\n",
              "                    (_b525)._parent9 = (_a524)._parent9;\n",
              "                }\n",
              "                /* replace _c526 with _a524 in _b525 */\n",
              "                (_b525)._right8 = _a524;\n",
              "                if (!((_a524) == null)) {\n",
              "                    (_a524)._parent9 = _b525;\n",
              "                }\n",
              "                /* replace _b525 with _c526 in _a524 */\n",
              "                (_a524)._left7 = _c526;\n",
              "                if (!((_c526) == null)) {\n",
              "                    (_c526)._parent9 = _a524;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval527 = (_a524).ax1;\n",
              "                var _child528 = (_a524)._left7;\n",
              "                if (!((_child528) == null)) {\n",
              "                    var _val529 = (_child528)._min_ax12;\n",
              "                    _augval527 = ((_augval527) < (_val529)) ? (_augval527) : (_val529);\n",
              "                }\n",
              "                var _child530 = (_a524)._right8;\n",
              "                if (!((_child530) == null)) {\n",
              "                    var _val531 = (_child530)._min_ax12;\n",
              "                    _augval527 = ((_augval527) < (_val531)) ? (_augval527) : (_val531);\n",
              "                }\n",
              "                (_a524)._min_ax12 = _augval527;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval532 = (_a524).ay1;\n",
              "                var _child533 = (_a524)._left7;\n",
              "                if (!((_child533) == null)) {\n",
              "                    var _val534 = (_child533)._min_ay13;\n",
              "                    _augval532 = ((_augval532) < (_val534)) ? (_augval532) : (_val534);\n",
              "                }\n",
              "                var _child535 = (_a524)._right8;\n",
              "                if (!((_child535) == null)) {\n",
              "                    var _val536 = (_child535)._min_ay13;\n",
              "                    _augval532 = ((_augval532) < (_val536)) ? (_augval532) : (_val536);\n",
              "                }\n",
              "                (_a524)._min_ay13 = _augval532;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval537 = (_a524).ay2;\n",
              "                var _child538 = (_a524)._left7;\n",
              "                if (!((_child538) == null)) {\n",
              "                    var _val539 = (_child538)._max_ay24;\n",
              "                    _augval537 = ((_augval537) < (_val539)) ? (_val539) : (_augval537);\n",
              "                }\n",
              "                var _child540 = (_a524)._right8;\n",
              "                if (!((_child540) == null)) {\n",
              "                    var _val541 = (_child540)._max_ay24;\n",
              "                    _augval537 = ((_augval537) < (_val541)) ? (_val541) : (_augval537);\n",
              "                }\n",
              "                (_a524)._max_ay24 = _augval537;\n",
              "                (_a524)._height10 = 1 + ((((((_a524)._left7) == null) ? (-1) : (((_a524)._left7)._height10)) > ((((_a524)._right8) == null) ? (-1) : (((_a524)._right8)._height10))) ? ((((_a524)._left7) == null) ? (-1) : (((_a524)._left7)._height10)) : ((((_a524)._right8) == null) ? (-1) : (((_a524)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval542 = (_b525).ax1;\n",
              "                var _child543 = (_b525)._left7;\n",
              "                if (!((_child543) == null)) {\n",
              "                    var _val544 = (_child543)._min_ax12;\n",
              "                    _augval542 = ((_augval542) < (_val544)) ? (_augval542) : (_val544);\n",
              "                }\n",
              "                var _child545 = (_b525)._right8;\n",
              "                if (!((_child545) == null)) {\n",
              "                    var _val546 = (_child545)._min_ax12;\n",
              "                    _augval542 = ((_augval542) < (_val546)) ? (_augval542) : (_val546);\n",
              "                }\n",
              "                (_b525)._min_ax12 = _augval542;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval547 = (_b525).ay1;\n",
              "                var _child548 = (_b525)._left7;\n",
              "                if (!((_child548) == null)) {\n",
              "                    var _val549 = (_child548)._min_ay13;\n",
              "                    _augval547 = ((_augval547) < (_val549)) ? (_augval547) : (_val549);\n",
              "                }\n",
              "                var _child550 = (_b525)._right8;\n",
              "                if (!((_child550) == null)) {\n",
              "                    var _val551 = (_child550)._min_ay13;\n",
              "                    _augval547 = ((_augval547) < (_val551)) ? (_augval547) : (_val551);\n",
              "                }\n",
              "                (_b525)._min_ay13 = _augval547;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval552 = (_b525).ay2;\n",
              "                var _child553 = (_b525)._left7;\n",
              "                if (!((_child553) == null)) {\n",
              "                    var _val554 = (_child553)._max_ay24;\n",
              "                    _augval552 = ((_augval552) < (_val554)) ? (_val554) : (_augval552);\n",
              "                }\n",
              "                var _child555 = (_b525)._right8;\n",
              "                if (!((_child555) == null)) {\n",
              "                    var _val556 = (_child555)._max_ay24;\n",
              "                    _augval552 = ((_augval552) < (_val556)) ? (_val556) : (_augval552);\n",
              "                }\n",
              "                (_b525)._max_ay24 = _augval552;\n",
              "                (_b525)._height10 = 1 + ((((((_b525)._left7) == null) ? (-1) : (((_b525)._left7)._height10)) > ((((_b525)._right8) == null) ? (-1) : (((_b525)._right8)._height10))) ? ((((_b525)._left7) == null) ? (-1) : (((_b525)._left7)._height10)) : ((((_b525)._right8) == null) ? (-1) : (((_b525)._right8)._height10)));\n",
              "                if (!(((_b525)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval557 = ((_b525)._parent9).ax1;\n",
              "                    var _child558 = ((_b525)._parent9)._left7;\n",
              "                    if (!((_child558) == null)) {\n",
              "                        var _val559 = (_child558)._min_ax12;\n",
              "                        _augval557 = ((_augval557) < (_val559)) ? (_augval557) : (_val559);\n",
              "                    }\n",
              "                    var _child560 = ((_b525)._parent9)._right8;\n",
              "                    if (!((_child560) == null)) {\n",
              "                        var _val561 = (_child560)._min_ax12;\n",
              "                        _augval557 = ((_augval557) < (_val561)) ? (_augval557) : (_val561);\n",
              "                    }\n",
              "                    ((_b525)._parent9)._min_ax12 = _augval557;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval562 = ((_b525)._parent9).ay1;\n",
              "                    var _child563 = ((_b525)._parent9)._left7;\n",
              "                    if (!((_child563) == null)) {\n",
              "                        var _val564 = (_child563)._min_ay13;\n",
              "                        _augval562 = ((_augval562) < (_val564)) ? (_augval562) : (_val564);\n",
              "                    }\n",
              "                    var _child565 = ((_b525)._parent9)._right8;\n",
              "                    if (!((_child565) == null)) {\n",
              "                        var _val566 = (_child565)._min_ay13;\n",
              "                        _augval562 = ((_augval562) < (_val566)) ? (_augval562) : (_val566);\n",
              "                    }\n",
              "                    ((_b525)._parent9)._min_ay13 = _augval562;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval567 = ((_b525)._parent9).ay2;\n",
              "                    var _child568 = ((_b525)._parent9)._left7;\n",
              "                    if (!((_child568) == null)) {\n",
              "                        var _val569 = (_child568)._max_ay24;\n",
              "                        _augval567 = ((_augval567) < (_val569)) ? (_val569) : (_augval567);\n",
              "                    }\n",
              "                    var _child570 = ((_b525)._parent9)._right8;\n",
              "                    if (!((_child570) == null)) {\n",
              "                        var _val571 = (_child570)._max_ay24;\n",
              "                        _augval567 = ((_augval567) < (_val571)) ? (_val571) : (_augval567);\n",
              "                    }\n",
              "                    ((_b525)._parent9)._max_ay24 = _augval567;\n",
              "                    ((_b525)._parent9)._height10 = 1 + (((((((_b525)._parent9)._left7) == null) ? (-1) : ((((_b525)._parent9)._left7)._height10)) > (((((_b525)._parent9)._right8) == null) ? (-1) : ((((_b525)._parent9)._right8)._height10))) ? (((((_b525)._parent9)._left7) == null) ? (-1) : ((((_b525)._parent9)._left7)._height10)) : (((((_b525)._parent9)._right8) == null) ? (-1) : ((((_b525)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b525;\n",
              "                }\n",
              "                _cursor474 = (_cursor474)._parent9;\n",
              "            } else if ((_imbalance475) < (-1)) {\n",
              "                if ((((((_cursor474)._right8)._left7) == null) ? (-1) : ((((_cursor474)._right8)._left7)._height10)) > (((((_cursor474)._right8)._right8) == null) ? (-1) : ((((_cursor474)._right8)._right8)._height10))) {\n",
              "                    /* rotate ((_cursor474)._right8)._left7 */\n",
              "                    var _a572 = (_cursor474)._right8;\n",
              "                    var _b573 = (_a572)._left7;\n",
              "                    var _c574 = (_b573)._right8;\n",
              "                    /* replace _a572 with _b573 in (_a572)._parent9 */\n",
              "                    if (!(((_a572)._parent9) == null)) {\n",
              "                        if ((((_a572)._parent9)._left7) == (_a572)) {\n",
              "                            ((_a572)._parent9)._left7 = _b573;\n",
              "                        } else {\n",
              "                            ((_a572)._parent9)._right8 = _b573;\n",
              "                        }\n",
              "                    }\n",
              "                    if (!((_b573) == null)) {\n",
              "                        (_b573)._parent9 = (_a572)._parent9;\n",
              "                    }\n",
              "                    /* replace _c574 with _a572 in _b573 */\n",
              "                    (_b573)._right8 = _a572;\n",
              "                    if (!((_a572) == null)) {\n",
              "                        (_a572)._parent9 = _b573;\n",
              "                    }\n",
              "                    /* replace _b573 with _c574 in _a572 */\n",
              "                    (_a572)._left7 = _c574;\n",
              "                    if (!((_c574) == null)) {\n",
              "                        (_c574)._parent9 = _a572;\n",
              "                    }\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval575 = (_a572).ax1;\n",
              "                    var _child576 = (_a572)._left7;\n",
              "                    if (!((_child576) == null)) {\n",
              "                        var _val577 = (_child576)._min_ax12;\n",
              "                        _augval575 = ((_augval575) < (_val577)) ? (_augval575) : (_val577);\n",
              "                    }\n",
              "                    var _child578 = (_a572)._right8;\n",
              "                    if (!((_child578) == null)) {\n",
              "                        var _val579 = (_child578)._min_ax12;\n",
              "                        _augval575 = ((_augval575) < (_val579)) ? (_augval575) : (_val579);\n",
              "                    }\n",
              "                    (_a572)._min_ax12 = _augval575;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval580 = (_a572).ay1;\n",
              "                    var _child581 = (_a572)._left7;\n",
              "                    if (!((_child581) == null)) {\n",
              "                        var _val582 = (_child581)._min_ay13;\n",
              "                        _augval580 = ((_augval580) < (_val582)) ? (_augval580) : (_val582);\n",
              "                    }\n",
              "                    var _child583 = (_a572)._right8;\n",
              "                    if (!((_child583) == null)) {\n",
              "                        var _val584 = (_child583)._min_ay13;\n",
              "                        _augval580 = ((_augval580) < (_val584)) ? (_augval580) : (_val584);\n",
              "                    }\n",
              "                    (_a572)._min_ay13 = _augval580;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval585 = (_a572).ay2;\n",
              "                    var _child586 = (_a572)._left7;\n",
              "                    if (!((_child586) == null)) {\n",
              "                        var _val587 = (_child586)._max_ay24;\n",
              "                        _augval585 = ((_augval585) < (_val587)) ? (_val587) : (_augval585);\n",
              "                    }\n",
              "                    var _child588 = (_a572)._right8;\n",
              "                    if (!((_child588) == null)) {\n",
              "                        var _val589 = (_child588)._max_ay24;\n",
              "                        _augval585 = ((_augval585) < (_val589)) ? (_val589) : (_augval585);\n",
              "                    }\n",
              "                    (_a572)._max_ay24 = _augval585;\n",
              "                    (_a572)._height10 = 1 + ((((((_a572)._left7) == null) ? (-1) : (((_a572)._left7)._height10)) > ((((_a572)._right8) == null) ? (-1) : (((_a572)._right8)._height10))) ? ((((_a572)._left7) == null) ? (-1) : (((_a572)._left7)._height10)) : ((((_a572)._right8) == null) ? (-1) : (((_a572)._right8)._height10)));\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval590 = (_b573).ax1;\n",
              "                    var _child591 = (_b573)._left7;\n",
              "                    if (!((_child591) == null)) {\n",
              "                        var _val592 = (_child591)._min_ax12;\n",
              "                        _augval590 = ((_augval590) < (_val592)) ? (_augval590) : (_val592);\n",
              "                    }\n",
              "                    var _child593 = (_b573)._right8;\n",
              "                    if (!((_child593) == null)) {\n",
              "                        var _val594 = (_child593)._min_ax12;\n",
              "                        _augval590 = ((_augval590) < (_val594)) ? (_augval590) : (_val594);\n",
              "                    }\n",
              "                    (_b573)._min_ax12 = _augval590;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval595 = (_b573).ay1;\n",
              "                    var _child596 = (_b573)._left7;\n",
              "                    if (!((_child596) == null)) {\n",
              "                        var _val597 = (_child596)._min_ay13;\n",
              "                        _augval595 = ((_augval595) < (_val597)) ? (_augval595) : (_val597);\n",
              "                    }\n",
              "                    var _child598 = (_b573)._right8;\n",
              "                    if (!((_child598) == null)) {\n",
              "                        var _val599 = (_child598)._min_ay13;\n",
              "                        _augval595 = ((_augval595) < (_val599)) ? (_augval595) : (_val599);\n",
              "                    }\n",
              "                    (_b573)._min_ay13 = _augval595;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval600 = (_b573).ay2;\n",
              "                    var _child601 = (_b573)._left7;\n",
              "                    if (!((_child601) == null)) {\n",
              "                        var _val602 = (_child601)._max_ay24;\n",
              "                        _augval600 = ((_augval600) < (_val602)) ? (_val602) : (_augval600);\n",
              "                    }\n",
              "                    var _child603 = (_b573)._right8;\n",
              "                    if (!((_child603) == null)) {\n",
              "                        var _val604 = (_child603)._max_ay24;\n",
              "                        _augval600 = ((_augval600) < (_val604)) ? (_val604) : (_augval600);\n",
              "                    }\n",
              "                    (_b573)._max_ay24 = _augval600;\n",
              "                    (_b573)._height10 = 1 + ((((((_b573)._left7) == null) ? (-1) : (((_b573)._left7)._height10)) > ((((_b573)._right8) == null) ? (-1) : (((_b573)._right8)._height10))) ? ((((_b573)._left7) == null) ? (-1) : (((_b573)._left7)._height10)) : ((((_b573)._right8) == null) ? (-1) : (((_b573)._right8)._height10)));\n",
              "                    if (!(((_b573)._parent9) == null)) {\n",
              "                        /* _min_ax12 is min of ax1 */\n",
              "                        var _augval605 = ((_b573)._parent9).ax1;\n",
              "                        var _child606 = ((_b573)._parent9)._left7;\n",
              "                        if (!((_child606) == null)) {\n",
              "                            var _val607 = (_child606)._min_ax12;\n",
              "                            _augval605 = ((_augval605) < (_val607)) ? (_augval605) : (_val607);\n",
              "                        }\n",
              "                        var _child608 = ((_b573)._parent9)._right8;\n",
              "                        if (!((_child608) == null)) {\n",
              "                            var _val609 = (_child608)._min_ax12;\n",
              "                            _augval605 = ((_augval605) < (_val609)) ? (_augval605) : (_val609);\n",
              "                        }\n",
              "                        ((_b573)._parent9)._min_ax12 = _augval605;\n",
              "                        /* _min_ay13 is min of ay1 */\n",
              "                        var _augval610 = ((_b573)._parent9).ay1;\n",
              "                        var _child611 = ((_b573)._parent9)._left7;\n",
              "                        if (!((_child611) == null)) {\n",
              "                            var _val612 = (_child611)._min_ay13;\n",
              "                            _augval610 = ((_augval610) < (_val612)) ? (_augval610) : (_val612);\n",
              "                        }\n",
              "                        var _child613 = ((_b573)._parent9)._right8;\n",
              "                        if (!((_child613) == null)) {\n",
              "                            var _val614 = (_child613)._min_ay13;\n",
              "                            _augval610 = ((_augval610) < (_val614)) ? (_augval610) : (_val614);\n",
              "                        }\n",
              "                        ((_b573)._parent9)._min_ay13 = _augval610;\n",
              "                        /* _max_ay24 is max of ay2 */\n",
              "                        var _augval615 = ((_b573)._parent9).ay2;\n",
              "                        var _child616 = ((_b573)._parent9)._left7;\n",
              "                        if (!((_child616) == null)) {\n",
              "                            var _val617 = (_child616)._max_ay24;\n",
              "                            _augval615 = ((_augval615) < (_val617)) ? (_val617) : (_augval615);\n",
              "                        }\n",
              "                        var _child618 = ((_b573)._parent9)._right8;\n",
              "                        if (!((_child618) == null)) {\n",
              "                            var _val619 = (_child618)._max_ay24;\n",
              "                            _augval615 = ((_augval615) < (_val619)) ? (_val619) : (_augval615);\n",
              "                        }\n",
              "                        ((_b573)._parent9)._max_ay24 = _augval615;\n",
              "                        ((_b573)._parent9)._height10 = 1 + (((((((_b573)._parent9)._left7) == null) ? (-1) : ((((_b573)._parent9)._left7)._height10)) > (((((_b573)._parent9)._right8) == null) ? (-1) : ((((_b573)._parent9)._right8)._height10))) ? (((((_b573)._parent9)._left7) == null) ? (-1) : ((((_b573)._parent9)._left7)._height10)) : (((((_b573)._parent9)._right8) == null) ? (-1) : ((((_b573)._parent9)._right8)._height10)));\n",
              "                    } else {\n",
              "                        (this)._root1 = _b573;\n",
              "                    }\n",
              "                }\n",
              "                /* rotate (_cursor474)._right8 */\n",
              "                var _a620 = _cursor474;\n",
              "                var _b621 = (_a620)._right8;\n",
              "                var _c622 = (_b621)._left7;\n",
              "                /* replace _a620 with _b621 in (_a620)._parent9 */\n",
              "                if (!(((_a620)._parent9) == null)) {\n",
              "                    if ((((_a620)._parent9)._left7) == (_a620)) {\n",
              "                        ((_a620)._parent9)._left7 = _b621;\n",
              "                    } else {\n",
              "                        ((_a620)._parent9)._right8 = _b621;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b621) == null)) {\n",
              "                    (_b621)._parent9 = (_a620)._parent9;\n",
              "                }\n",
              "                /* replace _c622 with _a620 in _b621 */\n",
              "                (_b621)._left7 = _a620;\n",
              "                if (!((_a620) == null)) {\n",
              "                    (_a620)._parent9 = _b621;\n",
              "                }\n",
              "                /* replace _b621 with _c622 in _a620 */\n",
              "                (_a620)._right8 = _c622;\n",
              "                if (!((_c622) == null)) {\n",
              "                    (_c622)._parent9 = _a620;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval623 = (_a620).ax1;\n",
              "                var _child624 = (_a620)._left7;\n",
              "                if (!((_child624) == null)) {\n",
              "                    var _val625 = (_child624)._min_ax12;\n",
              "                    _augval623 = ((_augval623) < (_val625)) ? (_augval623) : (_val625);\n",
              "                }\n",
              "                var _child626 = (_a620)._right8;\n",
              "                if (!((_child626) == null)) {\n",
              "                    var _val627 = (_child626)._min_ax12;\n",
              "                    _augval623 = ((_augval623) < (_val627)) ? (_augval623) : (_val627);\n",
              "                }\n",
              "                (_a620)._min_ax12 = _augval623;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval628 = (_a620).ay1;\n",
              "                var _child629 = (_a620)._left7;\n",
              "                if (!((_child629) == null)) {\n",
              "                    var _val630 = (_child629)._min_ay13;\n",
              "                    _augval628 = ((_augval628) < (_val630)) ? (_augval628) : (_val630);\n",
              "                }\n",
              "                var _child631 = (_a620)._right8;\n",
              "                if (!((_child631) == null)) {\n",
              "                    var _val632 = (_child631)._min_ay13;\n",
              "                    _augval628 = ((_augval628) < (_val632)) ? (_augval628) : (_val632);\n",
              "                }\n",
              "                (_a620)._min_ay13 = _augval628;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval633 = (_a620).ay2;\n",
              "                var _child634 = (_a620)._left7;\n",
              "                if (!((_child634) == null)) {\n",
              "                    var _val635 = (_child634)._max_ay24;\n",
              "                    _augval633 = ((_augval633) < (_val635)) ? (_val635) : (_augval633);\n",
              "                }\n",
              "                var _child636 = (_a620)._right8;\n",
              "                if (!((_child636) == null)) {\n",
              "                    var _val637 = (_child636)._max_ay24;\n",
              "                    _augval633 = ((_augval633) < (_val637)) ? (_val637) : (_augval633);\n",
              "                }\n",
              "                (_a620)._max_ay24 = _augval633;\n",
              "                (_a620)._height10 = 1 + ((((((_a620)._left7) == null) ? (-1) : (((_a620)._left7)._height10)) > ((((_a620)._right8) == null) ? (-1) : (((_a620)._right8)._height10))) ? ((((_a620)._left7) == null) ? (-1) : (((_a620)._left7)._height10)) : ((((_a620)._right8) == null) ? (-1) : (((_a620)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval638 = (_b621).ax1;\n",
              "                var _child639 = (_b621)._left7;\n",
              "                if (!((_child639) == null)) {\n",
              "                    var _val640 = (_child639)._min_ax12;\n",
              "                    _augval638 = ((_augval638) < (_val640)) ? (_augval638) : (_val640);\n",
              "                }\n",
              "                var _child641 = (_b621)._right8;\n",
              "                if (!((_child641) == null)) {\n",
              "                    var _val642 = (_child641)._min_ax12;\n",
              "                    _augval638 = ((_augval638) < (_val642)) ? (_augval638) : (_val642);\n",
              "                }\n",
              "                (_b621)._min_ax12 = _augval638;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval643 = (_b621).ay1;\n",
              "                var _child644 = (_b621)._left7;\n",
              "                if (!((_child644) == null)) {\n",
              "                    var _val645 = (_child644)._min_ay13;\n",
              "                    _augval643 = ((_augval643) < (_val645)) ? (_augval643) : (_val645);\n",
              "                }\n",
              "                var _child646 = (_b621)._right8;\n",
              "                if (!((_child646) == null)) {\n",
              "                    var _val647 = (_child646)._min_ay13;\n",
              "                    _augval643 = ((_augval643) < (_val647)) ? (_augval643) : (_val647);\n",
              "                }\n",
              "                (_b621)._min_ay13 = _augval643;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval648 = (_b621).ay2;\n",
              "                var _child649 = (_b621)._left7;\n",
              "                if (!((_child649) == null)) {\n",
              "                    var _val650 = (_child649)._max_ay24;\n",
              "                    _augval648 = ((_augval648) < (_val650)) ? (_val650) : (_augval648);\n",
              "                }\n",
              "                var _child651 = (_b621)._right8;\n",
              "                if (!((_child651) == null)) {\n",
              "                    var _val652 = (_child651)._max_ay24;\n",
              "                    _augval648 = ((_augval648) < (_val652)) ? (_val652) : (_augval648);\n",
              "                }\n",
              "                (_b621)._max_ay24 = _augval648;\n",
              "                (_b621)._height10 = 1 + ((((((_b621)._left7) == null) ? (-1) : (((_b621)._left7)._height10)) > ((((_b621)._right8) == null) ? (-1) : (((_b621)._right8)._height10))) ? ((((_b621)._left7) == null) ? (-1) : (((_b621)._left7)._height10)) : ((((_b621)._right8) == null) ? (-1) : (((_b621)._right8)._height10)));\n",
              "                if (!(((_b621)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval653 = ((_b621)._parent9).ax1;\n",
              "                    var _child654 = ((_b621)._parent9)._left7;\n",
              "                    if (!((_child654) == null)) {\n",
              "                        var _val655 = (_child654)._min_ax12;\n",
              "                        _augval653 = ((_augval653) < (_val655)) ? (_augval653) : (_val655);\n",
              "                    }\n",
              "                    var _child656 = ((_b621)._parent9)._right8;\n",
              "                    if (!((_child656) == null)) {\n",
              "                        var _val657 = (_child656)._min_ax12;\n",
              "                        _augval653 = ((_augval653) < (_val657)) ? (_augval653) : (_val657);\n",
              "                    }\n",
              "                    ((_b621)._parent9)._min_ax12 = _augval653;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval658 = ((_b621)._parent9).ay1;\n",
              "                    var _child659 = ((_b621)._parent9)._left7;\n",
              "                    if (!((_child659) == null)) {\n",
              "                        var _val660 = (_child659)._min_ay13;\n",
              "                        _augval658 = ((_augval658) < (_val660)) ? (_augval658) : (_val660);\n",
              "                    }\n",
              "                    var _child661 = ((_b621)._parent9)._right8;\n",
              "                    if (!((_child661) == null)) {\n",
              "                        var _val662 = (_child661)._min_ay13;\n",
              "                        _augval658 = ((_augval658) < (_val662)) ? (_augval658) : (_val662);\n",
              "                    }\n",
              "                    ((_b621)._parent9)._min_ay13 = _augval658;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval663 = ((_b621)._parent9).ay2;\n",
              "                    var _child664 = ((_b621)._parent9)._left7;\n",
              "                    if (!((_child664) == null)) {\n",
              "                        var _val665 = (_child664)._max_ay24;\n",
              "                        _augval663 = ((_augval663) < (_val665)) ? (_val665) : (_augval663);\n",
              "                    }\n",
              "                    var _child666 = ((_b621)._parent9)._right8;\n",
              "                    if (!((_child666) == null)) {\n",
              "                        var _val667 = (_child666)._max_ay24;\n",
              "                        _augval663 = ((_augval663) < (_val667)) ? (_val667) : (_augval663);\n",
              "                    }\n",
              "                    ((_b621)._parent9)._max_ay24 = _augval663;\n",
              "                    ((_b621)._parent9)._height10 = 1 + (((((((_b621)._parent9)._left7) == null) ? (-1) : ((((_b621)._parent9)._left7)._height10)) > (((((_b621)._parent9)._right8) == null) ? (-1) : ((((_b621)._parent9)._right8)._height10))) ? (((((_b621)._parent9)._left7) == null) ? (-1) : ((((_b621)._parent9)._left7)._height10)) : (((((_b621)._parent9)._right8) == null) ? (-1) : ((((_b621)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b621;\n",
              "                }\n",
              "                _cursor474 = (_cursor474)._parent9;\n",
              "            }\n",
              "        }\n",
              "        (__x).ax2 = new_val;\n",
              "    }\n",
              "}\n",
              "RectangleHolder.prototype.updateAy2 = function (__x, new_val) {\n",
              "    if ((__x).ay2 != new_val) {\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval668 = new_val;\n",
              "        var _child669 = (__x)._left7;\n",
              "        if (!((_child669) == null)) {\n",
              "            var _val670 = (_child669)._max_ay24;\n",
              "            _augval668 = ((_augval668) < (_val670)) ? (_val670) : (_augval668);\n",
              "        }\n",
              "        var _child671 = (__x)._right8;\n",
              "        if (!((_child671) == null)) {\n",
              "            var _val672 = (_child671)._max_ay24;\n",
              "            _augval668 = ((_augval668) < (_val672)) ? (_val672) : (_augval668);\n",
              "        }\n",
              "        (__x)._max_ay24 = _augval668;\n",
              "        var _cursor673 = (__x)._parent9;\n",
              "        var _changed674 = true;\n",
              "        while ((_changed674) && (!((_cursor673) == (null)))) {\n",
              "            var _old__max_ay24675 = (_cursor673)._max_ay24;\n",
              "            var _old_height676 = (_cursor673)._height10;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval677 = (_cursor673).ay2;\n",
              "            var _child678 = (_cursor673)._left7;\n",
              "            if (!((_child678) == null)) {\n",
              "                var _val679 = (_child678)._max_ay24;\n",
              "                _augval677 = ((_augval677) < (_val679)) ? (_val679) : (_augval677);\n",
              "            }\n",
              "            var _child680 = (_cursor673)._right8;\n",
              "            if (!((_child680) == null)) {\n",
              "                var _val681 = (_child680)._max_ay24;\n",
              "                _augval677 = ((_augval677) < (_val681)) ? (_val681) : (_augval677);\n",
              "            }\n",
              "            (_cursor673)._max_ay24 = _augval677;\n",
              "            (_cursor673)._height10 = 1 + ((((((_cursor673)._left7) == null) ? (-1) : (((_cursor673)._left7)._height10)) > ((((_cursor673)._right8) == null) ? (-1) : (((_cursor673)._right8)._height10))) ? ((((_cursor673)._left7) == null) ? (-1) : (((_cursor673)._left7)._height10)) : ((((_cursor673)._right8) == null) ? (-1) : (((_cursor673)._right8)._height10)));\n",
              "            _changed674 = false;\n",
              "            _changed674 = (_changed674) || (!((_old__max_ay24675) == ((_cursor673)._max_ay24)));\n",
              "            _changed674 = (_changed674) || (!((_old_height676) == ((_cursor673)._height10)));\n",
              "            _cursor673 = (_cursor673)._parent9;\n",
              "        }\n",
              "        (__x).ay2 = new_val;\n",
              "    }\n",
              "}\n",
              "RectangleHolder.prototype.update = function (__x, ax1, ay1, ax2, ay2) {\n",
              "    var _parent682 = (__x)._parent9;\n",
              "    var _left683 = (__x)._left7;\n",
              "    var _right684 = (__x)._right8;\n",
              "    var _new_x685;\n",
              "    if (((_left683) == null) && ((_right684) == null)) {\n",
              "        _new_x685 = null;\n",
              "        /* replace __x with _new_x685 in _parent682 */\n",
              "        if (!((_parent682) == null)) {\n",
              "            if (((_parent682)._left7) == (__x)) {\n",
              "                (_parent682)._left7 = _new_x685;\n",
              "            } else {\n",
              "                (_parent682)._right8 = _new_x685;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x685) == null)) {\n",
              "            (_new_x685)._parent9 = _parent682;\n",
              "        }\n",
              "    } else if ((!((_left683) == null)) && ((_right684) == null)) {\n",
              "        _new_x685 = _left683;\n",
              "        /* replace __x with _new_x685 in _parent682 */\n",
              "        if (!((_parent682) == null)) {\n",
              "            if (((_parent682)._left7) == (__x)) {\n",
              "                (_parent682)._left7 = _new_x685;\n",
              "            } else {\n",
              "                (_parent682)._right8 = _new_x685;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x685) == null)) {\n",
              "            (_new_x685)._parent9 = _parent682;\n",
              "        }\n",
              "    } else if (((_left683) == null) && (!((_right684) == null))) {\n",
              "        _new_x685 = _right684;\n",
              "        /* replace __x with _new_x685 in _parent682 */\n",
              "        if (!((_parent682) == null)) {\n",
              "            if (((_parent682)._left7) == (__x)) {\n",
              "                (_parent682)._left7 = _new_x685;\n",
              "            } else {\n",
              "                (_parent682)._right8 = _new_x685;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x685) == null)) {\n",
              "            (_new_x685)._parent9 = _parent682;\n",
              "        }\n",
              "    } else {\n",
              "        var _root686 = (__x)._right8;\n",
              "        var _x687 = _root686;\n",
              "        var _descend688 = true;\n",
              "        var _from_left689 = true;\n",
              "        while (true) {\n",
              "            if ((_x687) == null) {\n",
              "                _x687 = null;\n",
              "                break;\n",
              "            }\n",
              "            if (_descend688) {\n",
              "                /* too small? */\n",
              "                if (false) {\n",
              "                    if ((!(((_x687)._right8) == null)) && (true)) {\n",
              "                        if ((_x687) == (_root686)) {\n",
              "                            _root686 = (_x687)._right8;\n",
              "                        }\n",
              "                        _x687 = (_x687)._right8;\n",
              "                    } else if ((_x687) == (_root686)) {\n",
              "                        _x687 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend688 = false;\n",
              "                        _from_left689 = (!(((_x687)._parent9) == null)) && ((_x687) == (((_x687)._parent9)._left7));\n",
              "                        _x687 = (_x687)._parent9;\n",
              "                    }\n",
              "                } else if ((!(((_x687)._left7) == null)) && (true)) {\n",
              "                    _x687 = (_x687)._left7;\n",
              "                    /* too large? */\n",
              "                } else if (false) {\n",
              "                    if ((_x687) == (_root686)) {\n",
              "                        _x687 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend688 = false;\n",
              "                        _from_left689 = (!(((_x687)._parent9) == null)) && ((_x687) == (((_x687)._parent9)._left7));\n",
              "                        _x687 = (_x687)._parent9;\n",
              "                    }\n",
              "                    /* node ok? */\n",
              "                } else if (true) {\n",
              "                    break;\n",
              "                } else if ((_x687) == (_root686)) {\n",
              "                    _root686 = (_x687)._right8;\n",
              "                    _x687 = (_x687)._right8;\n",
              "                } else {\n",
              "                    if ((!(((_x687)._right8) == null)) && (true)) {\n",
              "                        if ((_x687) == (_root686)) {\n",
              "                            _root686 = (_x687)._right8;\n",
              "                        }\n",
              "                        _x687 = (_x687)._right8;\n",
              "                    } else {\n",
              "                        _descend688 = false;\n",
              "                        _from_left689 = (!(((_x687)._parent9) == null)) && ((_x687) == (((_x687)._parent9)._left7));\n",
              "                        _x687 = (_x687)._parent9;\n",
              "                    }\n",
              "                }\n",
              "            } else if (_from_left689) {\n",
              "                if (false) {\n",
              "                    _x687 = null;\n",
              "                    break;\n",
              "                } else if (true) {\n",
              "                    break;\n",
              "                } else if ((!(((_x687)._right8) == null)) && (true)) {\n",
              "                    _descend688 = true;\n",
              "                    if ((_x687) == (_root686)) {\n",
              "                        _root686 = (_x687)._right8;\n",
              "                    }\n",
              "                    _x687 = (_x687)._right8;\n",
              "                } else if ((_x687) == (_root686)) {\n",
              "                    _x687 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend688 = false;\n",
              "                    _from_left689 = (!(((_x687)._parent9) == null)) && ((_x687) == (((_x687)._parent9)._left7));\n",
              "                    _x687 = (_x687)._parent9;\n",
              "                }\n",
              "            } else {\n",
              "                if ((_x687) == (_root686)) {\n",
              "                    _x687 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend688 = false;\n",
              "                    _from_left689 = (!(((_x687)._parent9) == null)) && ((_x687) == (((_x687)._parent9)._left7));\n",
              "                    _x687 = (_x687)._parent9;\n",
              "                }\n",
              "            }\n",
              "        }\n",
              "        _new_x685 = _x687;\n",
              "        var _mp690 = (_x687)._parent9;\n",
              "        var _mr691 = (_x687)._right8;\n",
              "        /* replace _x687 with _mr691 in _mp690 */\n",
              "        if (!((_mp690) == null)) {\n",
              "            if (((_mp690)._left7) == (_x687)) {\n",
              "                (_mp690)._left7 = _mr691;\n",
              "            } else {\n",
              "                (_mp690)._right8 = _mr691;\n",
              "            }\n",
              "        }\n",
              "        if (!((_mr691) == null)) {\n",
              "            (_mr691)._parent9 = _mp690;\n",
              "        }\n",
              "        /* replace __x with _x687 in _parent682 */\n",
              "        if (!((_parent682) == null)) {\n",
              "            if (((_parent682)._left7) == (__x)) {\n",
              "                (_parent682)._left7 = _x687;\n",
              "            } else {\n",
              "                (_parent682)._right8 = _x687;\n",
              "            }\n",
              "        }\n",
              "        if (!((_x687) == null)) {\n",
              "            (_x687)._parent9 = _parent682;\n",
              "        }\n",
              "        /* replace null with _left683 in _x687 */\n",
              "        (_x687)._left7 = _left683;\n",
              "        if (!((_left683) == null)) {\n",
              "            (_left683)._parent9 = _x687;\n",
              "        }\n",
              "        /* replace _mr691 with (__x)._right8 in _x687 */\n",
              "        (_x687)._right8 = (__x)._right8;\n",
              "        if (!(((__x)._right8) == null)) {\n",
              "            ((__x)._right8)._parent9 = _x687;\n",
              "        }\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval692 = (_x687).ax1;\n",
              "        var _child693 = (_x687)._left7;\n",
              "        if (!((_child693) == null)) {\n",
              "            var _val694 = (_child693)._min_ax12;\n",
              "            _augval692 = ((_augval692) < (_val694)) ? (_augval692) : (_val694);\n",
              "        }\n",
              "        var _child695 = (_x687)._right8;\n",
              "        if (!((_child695) == null)) {\n",
              "            var _val696 = (_child695)._min_ax12;\n",
              "            _augval692 = ((_augval692) < (_val696)) ? (_augval692) : (_val696);\n",
              "        }\n",
              "        (_x687)._min_ax12 = _augval692;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval697 = (_x687).ay1;\n",
              "        var _child698 = (_x687)._left7;\n",
              "        if (!((_child698) == null)) {\n",
              "            var _val699 = (_child698)._min_ay13;\n",
              "            _augval697 = ((_augval697) < (_val699)) ? (_augval697) : (_val699);\n",
              "        }\n",
              "        var _child700 = (_x687)._right8;\n",
              "        if (!((_child700) == null)) {\n",
              "            var _val701 = (_child700)._min_ay13;\n",
              "            _augval697 = ((_augval697) < (_val701)) ? (_augval697) : (_val701);\n",
              "        }\n",
              "        (_x687)._min_ay13 = _augval697;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval702 = (_x687).ay2;\n",
              "        var _child703 = (_x687)._left7;\n",
              "        if (!((_child703) == null)) {\n",
              "            var _val704 = (_child703)._max_ay24;\n",
              "            _augval702 = ((_augval702) < (_val704)) ? (_val704) : (_augval702);\n",
              "        }\n",
              "        var _child705 = (_x687)._right8;\n",
              "        if (!((_child705) == null)) {\n",
              "            var _val706 = (_child705)._max_ay24;\n",
              "            _augval702 = ((_augval702) < (_val706)) ? (_val706) : (_augval702);\n",
              "        }\n",
              "        (_x687)._max_ay24 = _augval702;\n",
              "        (_x687)._height10 = 1 + ((((((_x687)._left7) == null) ? (-1) : (((_x687)._left7)._height10)) > ((((_x687)._right8) == null) ? (-1) : (((_x687)._right8)._height10))) ? ((((_x687)._left7) == null) ? (-1) : (((_x687)._left7)._height10)) : ((((_x687)._right8) == null) ? (-1) : (((_x687)._right8)._height10)));\n",
              "        var _cursor707 = _mp690;\n",
              "        var _changed708 = true;\n",
              "        while ((_changed708) && (!((_cursor707) == (_parent682)))) {\n",
              "            var _old__min_ax12709 = (_cursor707)._min_ax12;\n",
              "            var _old__min_ay13710 = (_cursor707)._min_ay13;\n",
              "            var _old__max_ay24711 = (_cursor707)._max_ay24;\n",
              "            var _old_height712 = (_cursor707)._height10;\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval713 = (_cursor707).ax1;\n",
              "            var _child714 = (_cursor707)._left7;\n",
              "            if (!((_child714) == null)) {\n",
              "                var _val715 = (_child714)._min_ax12;\n",
              "                _augval713 = ((_augval713) < (_val715)) ? (_augval713) : (_val715);\n",
              "            }\n",
              "            var _child716 = (_cursor707)._right8;\n",
              "            if (!((_child716) == null)) {\n",
              "                var _val717 = (_child716)._min_ax12;\n",
              "                _augval713 = ((_augval713) < (_val717)) ? (_augval713) : (_val717);\n",
              "            }\n",
              "            (_cursor707)._min_ax12 = _augval713;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval718 = (_cursor707).ay1;\n",
              "            var _child719 = (_cursor707)._left7;\n",
              "            if (!((_child719) == null)) {\n",
              "                var _val720 = (_child719)._min_ay13;\n",
              "                _augval718 = ((_augval718) < (_val720)) ? (_augval718) : (_val720);\n",
              "            }\n",
              "            var _child721 = (_cursor707)._right8;\n",
              "            if (!((_child721) == null)) {\n",
              "                var _val722 = (_child721)._min_ay13;\n",
              "                _augval718 = ((_augval718) < (_val722)) ? (_augval718) : (_val722);\n",
              "            }\n",
              "            (_cursor707)._min_ay13 = _augval718;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval723 = (_cursor707).ay2;\n",
              "            var _child724 = (_cursor707)._left7;\n",
              "            if (!((_child724) == null)) {\n",
              "                var _val725 = (_child724)._max_ay24;\n",
              "                _augval723 = ((_augval723) < (_val725)) ? (_val725) : (_augval723);\n",
              "            }\n",
              "            var _child726 = (_cursor707)._right8;\n",
              "            if (!((_child726) == null)) {\n",
              "                var _val727 = (_child726)._max_ay24;\n",
              "                _augval723 = ((_augval723) < (_val727)) ? (_val727) : (_augval723);\n",
              "            }\n",
              "            (_cursor707)._max_ay24 = _augval723;\n",
              "            (_cursor707)._height10 = 1 + ((((((_cursor707)._left7) == null) ? (-1) : (((_cursor707)._left7)._height10)) > ((((_cursor707)._right8) == null) ? (-1) : (((_cursor707)._right8)._height10))) ? ((((_cursor707)._left7) == null) ? (-1) : (((_cursor707)._left7)._height10)) : ((((_cursor707)._right8) == null) ? (-1) : (((_cursor707)._right8)._height10)));\n",
              "            _changed708 = false;\n",
              "            _changed708 = (_changed708) || (!((_old__min_ax12709) == ((_cursor707)._min_ax12)));\n",
              "            _changed708 = (_changed708) || (!((_old__min_ay13710) == ((_cursor707)._min_ay13)));\n",
              "            _changed708 = (_changed708) || (!((_old__max_ay24711) == ((_cursor707)._max_ay24)));\n",
              "            _changed708 = (_changed708) || (!((_old_height712) == ((_cursor707)._height10)));\n",
              "            _cursor707 = (_cursor707)._parent9;\n",
              "        }\n",
              "    }\n",
              "    var _cursor728 = _parent682;\n",
              "    var _changed729 = true;\n",
              "    while ((_changed729) && (!((_cursor728) == (null)))) {\n",
              "        var _old__min_ax12730 = (_cursor728)._min_ax12;\n",
              "        var _old__min_ay13731 = (_cursor728)._min_ay13;\n",
              "        var _old__max_ay24732 = (_cursor728)._max_ay24;\n",
              "        var _old_height733 = (_cursor728)._height10;\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval734 = (_cursor728).ax1;\n",
              "        var _child735 = (_cursor728)._left7;\n",
              "        if (!((_child735) == null)) {\n",
              "            var _val736 = (_child735)._min_ax12;\n",
              "            _augval734 = ((_augval734) < (_val736)) ? (_augval734) : (_val736);\n",
              "        }\n",
              "        var _child737 = (_cursor728)._right8;\n",
              "        if (!((_child737) == null)) {\n",
              "            var _val738 = (_child737)._min_ax12;\n",
              "            _augval734 = ((_augval734) < (_val738)) ? (_augval734) : (_val738);\n",
              "        }\n",
              "        (_cursor728)._min_ax12 = _augval734;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval739 = (_cursor728).ay1;\n",
              "        var _child740 = (_cursor728)._left7;\n",
              "        if (!((_child740) == null)) {\n",
              "            var _val741 = (_child740)._min_ay13;\n",
              "            _augval739 = ((_augval739) < (_val741)) ? (_augval739) : (_val741);\n",
              "        }\n",
              "        var _child742 = (_cursor728)._right8;\n",
              "        if (!((_child742) == null)) {\n",
              "            var _val743 = (_child742)._min_ay13;\n",
              "            _augval739 = ((_augval739) < (_val743)) ? (_augval739) : (_val743);\n",
              "        }\n",
              "        (_cursor728)._min_ay13 = _augval739;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval744 = (_cursor728).ay2;\n",
              "        var _child745 = (_cursor728)._left7;\n",
              "        if (!((_child745) == null)) {\n",
              "            var _val746 = (_child745)._max_ay24;\n",
              "            _augval744 = ((_augval744) < (_val746)) ? (_val746) : (_augval744);\n",
              "        }\n",
              "        var _child747 = (_cursor728)._right8;\n",
              "        if (!((_child747) == null)) {\n",
              "            var _val748 = (_child747)._max_ay24;\n",
              "            _augval744 = ((_augval744) < (_val748)) ? (_val748) : (_augval744);\n",
              "        }\n",
              "        (_cursor728)._max_ay24 = _augval744;\n",
              "        (_cursor728)._height10 = 1 + ((((((_cursor728)._left7) == null) ? (-1) : (((_cursor728)._left7)._height10)) > ((((_cursor728)._right8) == null) ? (-1) : (((_cursor728)._right8)._height10))) ? ((((_cursor728)._left7) == null) ? (-1) : (((_cursor728)._left7)._height10)) : ((((_cursor728)._right8) == null) ? (-1) : (((_cursor728)._right8)._height10)));\n",
              "        _changed729 = false;\n",
              "        _changed729 = (_changed729) || (!((_old__min_ax12730) == ((_cursor728)._min_ax12)));\n",
              "        _changed729 = (_changed729) || (!((_old__min_ay13731) == ((_cursor728)._min_ay13)));\n",
              "        _changed729 = (_changed729) || (!((_old__max_ay24732) == ((_cursor728)._max_ay24)));\n",
              "        _changed729 = (_changed729) || (!((_old_height733) == ((_cursor728)._height10)));\n",
              "        _cursor728 = (_cursor728)._parent9;\n",
              "    }\n",
              "    if (((this)._root1) == (__x)) {\n",
              "        (this)._root1 = _new_x685;\n",
              "    }\n",
              "    (__x)._left7 = null;\n",
              "    (__x)._right8 = null;\n",
              "    (__x)._min_ax12 = (__x).ax1;\n",
              "    (__x)._min_ay13 = (__x).ay1;\n",
              "    (__x)._max_ay24 = (__x).ay2;\n",
              "    (__x)._height10 = 0;\n",
              "    var _previous749 = null;\n",
              "    var _current750 = (this)._root1;\n",
              "    var _is_left751 = false;\n",
              "    while (!((_current750) == null)) {\n",
              "        _previous749 = _current750;\n",
              "        if ((ax2) < ((_current750).ax2)) {\n",
              "            _current750 = (_current750)._left7;\n",
              "            _is_left751 = true;\n",
              "        } else {\n",
              "            _current750 = (_current750)._right8;\n",
              "            _is_left751 = false;\n",
              "        }\n",
              "    }\n",
              "    if ((_previous749) == null) {\n",
              "        (this)._root1 = __x;\n",
              "    } else {\n",
              "        (__x)._parent9 = _previous749;\n",
              "        if (_is_left751) {\n",
              "            (_previous749)._left7 = __x;\n",
              "        } else {\n",
              "            (_previous749)._right8 = __x;\n",
              "        }\n",
              "    }\n",
              "    var _cursor752 = (__x)._parent9;\n",
              "    var _changed753 = true;\n",
              "    while ((_changed753) && (!((_cursor752) == (null)))) {\n",
              "        var _old__min_ax12754 = (_cursor752)._min_ax12;\n",
              "        var _old__min_ay13755 = (_cursor752)._min_ay13;\n",
              "        var _old__max_ay24756 = (_cursor752)._max_ay24;\n",
              "        var _old_height757 = (_cursor752)._height10;\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval758 = (_cursor752).ax1;\n",
              "        var _child759 = (_cursor752)._left7;\n",
              "        if (!((_child759) == null)) {\n",
              "            var _val760 = (_child759)._min_ax12;\n",
              "            _augval758 = ((_augval758) < (_val760)) ? (_augval758) : (_val760);\n",
              "        }\n",
              "        var _child761 = (_cursor752)._right8;\n",
              "        if (!((_child761) == null)) {\n",
              "            var _val762 = (_child761)._min_ax12;\n",
              "            _augval758 = ((_augval758) < (_val762)) ? (_augval758) : (_val762);\n",
              "        }\n",
              "        (_cursor752)._min_ax12 = _augval758;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval763 = (_cursor752).ay1;\n",
              "        var _child764 = (_cursor752)._left7;\n",
              "        if (!((_child764) == null)) {\n",
              "            var _val765 = (_child764)._min_ay13;\n",
              "            _augval763 = ((_augval763) < (_val765)) ? (_augval763) : (_val765);\n",
              "        }\n",
              "        var _child766 = (_cursor752)._right8;\n",
              "        if (!((_child766) == null)) {\n",
              "            var _val767 = (_child766)._min_ay13;\n",
              "            _augval763 = ((_augval763) < (_val767)) ? (_augval763) : (_val767);\n",
              "        }\n",
              "        (_cursor752)._min_ay13 = _augval763;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval768 = (_cursor752).ay2;\n",
              "        var _child769 = (_cursor752)._left7;\n",
              "        if (!((_child769) == null)) {\n",
              "            var _val770 = (_child769)._max_ay24;\n",
              "            _augval768 = ((_augval768) < (_val770)) ? (_val770) : (_augval768);\n",
              "        }\n",
              "        var _child771 = (_cursor752)._right8;\n",
              "        if (!((_child771) == null)) {\n",
              "            var _val772 = (_child771)._max_ay24;\n",
              "            _augval768 = ((_augval768) < (_val772)) ? (_val772) : (_augval768);\n",
              "        }\n",
              "        (_cursor752)._max_ay24 = _augval768;\n",
              "        (_cursor752)._height10 = 1 + ((((((_cursor752)._left7) == null) ? (-1) : (((_cursor752)._left7)._height10)) > ((((_cursor752)._right8) == null) ? (-1) : (((_cursor752)._right8)._height10))) ? ((((_cursor752)._left7) == null) ? (-1) : (((_cursor752)._left7)._height10)) : ((((_cursor752)._right8) == null) ? (-1) : (((_cursor752)._right8)._height10)));\n",
              "        _changed753 = false;\n",
              "        _changed753 = (_changed753) || (!((_old__min_ax12754) == ((_cursor752)._min_ax12)));\n",
              "        _changed753 = (_changed753) || (!((_old__min_ay13755) == ((_cursor752)._min_ay13)));\n",
              "        _changed753 = (_changed753) || (!((_old__max_ay24756) == ((_cursor752)._max_ay24)));\n",
              "        _changed753 = (_changed753) || (!((_old_height757) == ((_cursor752)._height10)));\n",
              "        _cursor752 = (_cursor752)._parent9;\n",
              "    }\n",
              "    /* rebalance AVL tree */\n",
              "    var _cursor773 = __x;\n",
              "    var _imbalance774;\n",
              "    while (!(((_cursor773)._parent9) == null)) {\n",
              "        _cursor773 = (_cursor773)._parent9;\n",
              "        (_cursor773)._height10 = 1 + ((((((_cursor773)._left7) == null) ? (-1) : (((_cursor773)._left7)._height10)) > ((((_cursor773)._right8) == null) ? (-1) : (((_cursor773)._right8)._height10))) ? ((((_cursor773)._left7) == null) ? (-1) : (((_cursor773)._left7)._height10)) : ((((_cursor773)._right8) == null) ? (-1) : (((_cursor773)._right8)._height10)));\n",
              "        _imbalance774 = ((((_cursor773)._left7) == null) ? (-1) : (((_cursor773)._left7)._height10)) - ((((_cursor773)._right8) == null) ? (-1) : (((_cursor773)._right8)._height10));\n",
              "        if ((_imbalance774) > (1)) {\n",
              "            if ((((((_cursor773)._left7)._left7) == null) ? (-1) : ((((_cursor773)._left7)._left7)._height10)) < (((((_cursor773)._left7)._right8) == null) ? (-1) : ((((_cursor773)._left7)._right8)._height10))) {\n",
              "                /* rotate ((_cursor773)._left7)._right8 */\n",
              "                var _a775 = (_cursor773)._left7;\n",
              "                var _b776 = (_a775)._right8;\n",
              "                var _c777 = (_b776)._left7;\n",
              "                /* replace _a775 with _b776 in (_a775)._parent9 */\n",
              "                if (!(((_a775)._parent9) == null)) {\n",
              "                    if ((((_a775)._parent9)._left7) == (_a775)) {\n",
              "                        ((_a775)._parent9)._left7 = _b776;\n",
              "                    } else {\n",
              "                        ((_a775)._parent9)._right8 = _b776;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b776) == null)) {\n",
              "                    (_b776)._parent9 = (_a775)._parent9;\n",
              "                }\n",
              "                /* replace _c777 with _a775 in _b776 */\n",
              "                (_b776)._left7 = _a775;\n",
              "                if (!((_a775) == null)) {\n",
              "                    (_a775)._parent9 = _b776;\n",
              "                }\n",
              "                /* replace _b776 with _c777 in _a775 */\n",
              "                (_a775)._right8 = _c777;\n",
              "                if (!((_c777) == null)) {\n",
              "                    (_c777)._parent9 = _a775;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval778 = (_a775).ax1;\n",
              "                var _child779 = (_a775)._left7;\n",
              "                if (!((_child779) == null)) {\n",
              "                    var _val780 = (_child779)._min_ax12;\n",
              "                    _augval778 = ((_augval778) < (_val780)) ? (_augval778) : (_val780);\n",
              "                }\n",
              "                var _child781 = (_a775)._right8;\n",
              "                if (!((_child781) == null)) {\n",
              "                    var _val782 = (_child781)._min_ax12;\n",
              "                    _augval778 = ((_augval778) < (_val782)) ? (_augval778) : (_val782);\n",
              "                }\n",
              "                (_a775)._min_ax12 = _augval778;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval783 = (_a775).ay1;\n",
              "                var _child784 = (_a775)._left7;\n",
              "                if (!((_child784) == null)) {\n",
              "                    var _val785 = (_child784)._min_ay13;\n",
              "                    _augval783 = ((_augval783) < (_val785)) ? (_augval783) : (_val785);\n",
              "                }\n",
              "                var _child786 = (_a775)._right8;\n",
              "                if (!((_child786) == null)) {\n",
              "                    var _val787 = (_child786)._min_ay13;\n",
              "                    _augval783 = ((_augval783) < (_val787)) ? (_augval783) : (_val787);\n",
              "                }\n",
              "                (_a775)._min_ay13 = _augval783;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval788 = (_a775).ay2;\n",
              "                var _child789 = (_a775)._left7;\n",
              "                if (!((_child789) == null)) {\n",
              "                    var _val790 = (_child789)._max_ay24;\n",
              "                    _augval788 = ((_augval788) < (_val790)) ? (_val790) : (_augval788);\n",
              "                }\n",
              "                var _child791 = (_a775)._right8;\n",
              "                if (!((_child791) == null)) {\n",
              "                    var _val792 = (_child791)._max_ay24;\n",
              "                    _augval788 = ((_augval788) < (_val792)) ? (_val792) : (_augval788);\n",
              "                }\n",
              "                (_a775)._max_ay24 = _augval788;\n",
              "                (_a775)._height10 = 1 + ((((((_a775)._left7) == null) ? (-1) : (((_a775)._left7)._height10)) > ((((_a775)._right8) == null) ? (-1) : (((_a775)._right8)._height10))) ? ((((_a775)._left7) == null) ? (-1) : (((_a775)._left7)._height10)) : ((((_a775)._right8) == null) ? (-1) : (((_a775)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval793 = (_b776).ax1;\n",
              "                var _child794 = (_b776)._left7;\n",
              "                if (!((_child794) == null)) {\n",
              "                    var _val795 = (_child794)._min_ax12;\n",
              "                    _augval793 = ((_augval793) < (_val795)) ? (_augval793) : (_val795);\n",
              "                }\n",
              "                var _child796 = (_b776)._right8;\n",
              "                if (!((_child796) == null)) {\n",
              "                    var _val797 = (_child796)._min_ax12;\n",
              "                    _augval793 = ((_augval793) < (_val797)) ? (_augval793) : (_val797);\n",
              "                }\n",
              "                (_b776)._min_ax12 = _augval793;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval798 = (_b776).ay1;\n",
              "                var _child799 = (_b776)._left7;\n",
              "                if (!((_child799) == null)) {\n",
              "                    var _val800 = (_child799)._min_ay13;\n",
              "                    _augval798 = ((_augval798) < (_val800)) ? (_augval798) : (_val800);\n",
              "                }\n",
              "                var _child801 = (_b776)._right8;\n",
              "                if (!((_child801) == null)) {\n",
              "                    var _val802 = (_child801)._min_ay13;\n",
              "                    _augval798 = ((_augval798) < (_val802)) ? (_augval798) : (_val802);\n",
              "                }\n",
              "                (_b776)._min_ay13 = _augval798;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval803 = (_b776).ay2;\n",
              "                var _child804 = (_b776)._left7;\n",
              "                if (!((_child804) == null)) {\n",
              "                    var _val805 = (_child804)._max_ay24;\n",
              "                    _augval803 = ((_augval803) < (_val805)) ? (_val805) : (_augval803);\n",
              "                }\n",
              "                var _child806 = (_b776)._right8;\n",
              "                if (!((_child806) == null)) {\n",
              "                    var _val807 = (_child806)._max_ay24;\n",
              "                    _augval803 = ((_augval803) < (_val807)) ? (_val807) : (_augval803);\n",
              "                }\n",
              "                (_b776)._max_ay24 = _augval803;\n",
              "                (_b776)._height10 = 1 + ((((((_b776)._left7) == null) ? (-1) : (((_b776)._left7)._height10)) > ((((_b776)._right8) == null) ? (-1) : (((_b776)._right8)._height10))) ? ((((_b776)._left7) == null) ? (-1) : (((_b776)._left7)._height10)) : ((((_b776)._right8) == null) ? (-1) : (((_b776)._right8)._height10)));\n",
              "                if (!(((_b776)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval808 = ((_b776)._parent9).ax1;\n",
              "                    var _child809 = ((_b776)._parent9)._left7;\n",
              "                    if (!((_child809) == null)) {\n",
              "                        var _val810 = (_child809)._min_ax12;\n",
              "                        _augval808 = ((_augval808) < (_val810)) ? (_augval808) : (_val810);\n",
              "                    }\n",
              "                    var _child811 = ((_b776)._parent9)._right8;\n",
              "                    if (!((_child811) == null)) {\n",
              "                        var _val812 = (_child811)._min_ax12;\n",
              "                        _augval808 = ((_augval808) < (_val812)) ? (_augval808) : (_val812);\n",
              "                    }\n",
              "                    ((_b776)._parent9)._min_ax12 = _augval808;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval813 = ((_b776)._parent9).ay1;\n",
              "                    var _child814 = ((_b776)._parent9)._left7;\n",
              "                    if (!((_child814) == null)) {\n",
              "                        var _val815 = (_child814)._min_ay13;\n",
              "                        _augval813 = ((_augval813) < (_val815)) ? (_augval813) : (_val815);\n",
              "                    }\n",
              "                    var _child816 = ((_b776)._parent9)._right8;\n",
              "                    if (!((_child816) == null)) {\n",
              "                        var _val817 = (_child816)._min_ay13;\n",
              "                        _augval813 = ((_augval813) < (_val817)) ? (_augval813) : (_val817);\n",
              "                    }\n",
              "                    ((_b776)._parent9)._min_ay13 = _augval813;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval818 = ((_b776)._parent9).ay2;\n",
              "                    var _child819 = ((_b776)._parent9)._left7;\n",
              "                    if (!((_child819) == null)) {\n",
              "                        var _val820 = (_child819)._max_ay24;\n",
              "                        _augval818 = ((_augval818) < (_val820)) ? (_val820) : (_augval818);\n",
              "                    }\n",
              "                    var _child821 = ((_b776)._parent9)._right8;\n",
              "                    if (!((_child821) == null)) {\n",
              "                        var _val822 = (_child821)._max_ay24;\n",
              "                        _augval818 = ((_augval818) < (_val822)) ? (_val822) : (_augval818);\n",
              "                    }\n",
              "                    ((_b776)._parent9)._max_ay24 = _augval818;\n",
              "                    ((_b776)._parent9)._height10 = 1 + (((((((_b776)._parent9)._left7) == null) ? (-1) : ((((_b776)._parent9)._left7)._height10)) > (((((_b776)._parent9)._right8) == null) ? (-1) : ((((_b776)._parent9)._right8)._height10))) ? (((((_b776)._parent9)._left7) == null) ? (-1) : ((((_b776)._parent9)._left7)._height10)) : (((((_b776)._parent9)._right8) == null) ? (-1) : ((((_b776)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b776;\n",
              "                }\n",
              "            }\n",
              "            /* rotate (_cursor773)._left7 */\n",
              "            var _a823 = _cursor773;\n",
              "            var _b824 = (_a823)._left7;\n",
              "            var _c825 = (_b824)._right8;\n",
              "            /* replace _a823 with _b824 in (_a823)._parent9 */\n",
              "            if (!(((_a823)._parent9) == null)) {\n",
              "                if ((((_a823)._parent9)._left7) == (_a823)) {\n",
              "                    ((_a823)._parent9)._left7 = _b824;\n",
              "                } else {\n",
              "                    ((_a823)._parent9)._right8 = _b824;\n",
              "                }\n",
              "            }\n",
              "            if (!((_b824) == null)) {\n",
              "                (_b824)._parent9 = (_a823)._parent9;\n",
              "            }\n",
              "            /* replace _c825 with _a823 in _b824 */\n",
              "            (_b824)._right8 = _a823;\n",
              "            if (!((_a823) == null)) {\n",
              "                (_a823)._parent9 = _b824;\n",
              "            }\n",
              "            /* replace _b824 with _c825 in _a823 */\n",
              "            (_a823)._left7 = _c825;\n",
              "            if (!((_c825) == null)) {\n",
              "                (_c825)._parent9 = _a823;\n",
              "            }\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval826 = (_a823).ax1;\n",
              "            var _child827 = (_a823)._left7;\n",
              "            if (!((_child827) == null)) {\n",
              "                var _val828 = (_child827)._min_ax12;\n",
              "                _augval826 = ((_augval826) < (_val828)) ? (_augval826) : (_val828);\n",
              "            }\n",
              "            var _child829 = (_a823)._right8;\n",
              "            if (!((_child829) == null)) {\n",
              "                var _val830 = (_child829)._min_ax12;\n",
              "                _augval826 = ((_augval826) < (_val830)) ? (_augval826) : (_val830);\n",
              "            }\n",
              "            (_a823)._min_ax12 = _augval826;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval831 = (_a823).ay1;\n",
              "            var _child832 = (_a823)._left7;\n",
              "            if (!((_child832) == null)) {\n",
              "                var _val833 = (_child832)._min_ay13;\n",
              "                _augval831 = ((_augval831) < (_val833)) ? (_augval831) : (_val833);\n",
              "            }\n",
              "            var _child834 = (_a823)._right8;\n",
              "            if (!((_child834) == null)) {\n",
              "                var _val835 = (_child834)._min_ay13;\n",
              "                _augval831 = ((_augval831) < (_val835)) ? (_augval831) : (_val835);\n",
              "            }\n",
              "            (_a823)._min_ay13 = _augval831;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval836 = (_a823).ay2;\n",
              "            var _child837 = (_a823)._left7;\n",
              "            if (!((_child837) == null)) {\n",
              "                var _val838 = (_child837)._max_ay24;\n",
              "                _augval836 = ((_augval836) < (_val838)) ? (_val838) : (_augval836);\n",
              "            }\n",
              "            var _child839 = (_a823)._right8;\n",
              "            if (!((_child839) == null)) {\n",
              "                var _val840 = (_child839)._max_ay24;\n",
              "                _augval836 = ((_augval836) < (_val840)) ? (_val840) : (_augval836);\n",
              "            }\n",
              "            (_a823)._max_ay24 = _augval836;\n",
              "            (_a823)._height10 = 1 + ((((((_a823)._left7) == null) ? (-1) : (((_a823)._left7)._height10)) > ((((_a823)._right8) == null) ? (-1) : (((_a823)._right8)._height10))) ? ((((_a823)._left7) == null) ? (-1) : (((_a823)._left7)._height10)) : ((((_a823)._right8) == null) ? (-1) : (((_a823)._right8)._height10)));\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval841 = (_b824).ax1;\n",
              "            var _child842 = (_b824)._left7;\n",
              "            if (!((_child842) == null)) {\n",
              "                var _val843 = (_child842)._min_ax12;\n",
              "                _augval841 = ((_augval841) < (_val843)) ? (_augval841) : (_val843);\n",
              "            }\n",
              "            var _child844 = (_b824)._right8;\n",
              "            if (!((_child844) == null)) {\n",
              "                var _val845 = (_child844)._min_ax12;\n",
              "                _augval841 = ((_augval841) < (_val845)) ? (_augval841) : (_val845);\n",
              "            }\n",
              "            (_b824)._min_ax12 = _augval841;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval846 = (_b824).ay1;\n",
              "            var _child847 = (_b824)._left7;\n",
              "            if (!((_child847) == null)) {\n",
              "                var _val848 = (_child847)._min_ay13;\n",
              "                _augval846 = ((_augval846) < (_val848)) ? (_augval846) : (_val848);\n",
              "            }\n",
              "            var _child849 = (_b824)._right8;\n",
              "            if (!((_child849) == null)) {\n",
              "                var _val850 = (_child849)._min_ay13;\n",
              "                _augval846 = ((_augval846) < (_val850)) ? (_augval846) : (_val850);\n",
              "            }\n",
              "            (_b824)._min_ay13 = _augval846;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval851 = (_b824).ay2;\n",
              "            var _child852 = (_b824)._left7;\n",
              "            if (!((_child852) == null)) {\n",
              "                var _val853 = (_child852)._max_ay24;\n",
              "                _augval851 = ((_augval851) < (_val853)) ? (_val853) : (_augval851);\n",
              "            }\n",
              "            var _child854 = (_b824)._right8;\n",
              "            if (!((_child854) == null)) {\n",
              "                var _val855 = (_child854)._max_ay24;\n",
              "                _augval851 = ((_augval851) < (_val855)) ? (_val855) : (_augval851);\n",
              "            }\n",
              "            (_b824)._max_ay24 = _augval851;\n",
              "            (_b824)._height10 = 1 + ((((((_b824)._left7) == null) ? (-1) : (((_b824)._left7)._height10)) > ((((_b824)._right8) == null) ? (-1) : (((_b824)._right8)._height10))) ? ((((_b824)._left7) == null) ? (-1) : (((_b824)._left7)._height10)) : ((((_b824)._right8) == null) ? (-1) : (((_b824)._right8)._height10)));\n",
              "            if (!(((_b824)._parent9) == null)) {\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval856 = ((_b824)._parent9).ax1;\n",
              "                var _child857 = ((_b824)._parent9)._left7;\n",
              "                if (!((_child857) == null)) {\n",
              "                    var _val858 = (_child857)._min_ax12;\n",
              "                    _augval856 = ((_augval856) < (_val858)) ? (_augval856) : (_val858);\n",
              "                }\n",
              "                var _child859 = ((_b824)._parent9)._right8;\n",
              "                if (!((_child859) == null)) {\n",
              "                    var _val860 = (_child859)._min_ax12;\n",
              "                    _augval856 = ((_augval856) < (_val860)) ? (_augval856) : (_val860);\n",
              "                }\n",
              "                ((_b824)._parent9)._min_ax12 = _augval856;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval861 = ((_b824)._parent9).ay1;\n",
              "                var _child862 = ((_b824)._parent9)._left7;\n",
              "                if (!((_child862) == null)) {\n",
              "                    var _val863 = (_child862)._min_ay13;\n",
              "                    _augval861 = ((_augval861) < (_val863)) ? (_augval861) : (_val863);\n",
              "                }\n",
              "                var _child864 = ((_b824)._parent9)._right8;\n",
              "                if (!((_child864) == null)) {\n",
              "                    var _val865 = (_child864)._min_ay13;\n",
              "                    _augval861 = ((_augval861) < (_val865)) ? (_augval861) : (_val865);\n",
              "                }\n",
              "                ((_b824)._parent9)._min_ay13 = _augval861;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval866 = ((_b824)._parent9).ay2;\n",
              "                var _child867 = ((_b824)._parent9)._left7;\n",
              "                if (!((_child867) == null)) {\n",
              "                    var _val868 = (_child867)._max_ay24;\n",
              "                    _augval866 = ((_augval866) < (_val868)) ? (_val868) : (_augval866);\n",
              "                }\n",
              "                var _child869 = ((_b824)._parent9)._right8;\n",
              "                if (!((_child869) == null)) {\n",
              "                    var _val870 = (_child869)._max_ay24;\n",
              "                    _augval866 = ((_augval866) < (_val870)) ? (_val870) : (_augval866);\n",
              "                }\n",
              "                ((_b824)._parent9)._max_ay24 = _augval866;\n",
              "                ((_b824)._parent9)._height10 = 1 + (((((((_b824)._parent9)._left7) == null) ? (-1) : ((((_b824)._parent9)._left7)._height10)) > (((((_b824)._parent9)._right8) == null) ? (-1) : ((((_b824)._parent9)._right8)._height10))) ? (((((_b824)._parent9)._left7) == null) ? (-1) : ((((_b824)._parent9)._left7)._height10)) : (((((_b824)._parent9)._right8) == null) ? (-1) : ((((_b824)._parent9)._right8)._height10)));\n",
              "            } else {\n",
              "                (this)._root1 = _b824;\n",
              "            }\n",
              "            _cursor773 = (_cursor773)._parent9;\n",
              "        } else if ((_imbalance774) < (-1)) {\n",
              "            if ((((((_cursor773)._right8)._left7) == null) ? (-1) : ((((_cursor773)._right8)._left7)._height10)) > (((((_cursor773)._right8)._right8) == null) ? (-1) : ((((_cursor773)._right8)._right8)._height10))) {\n",
              "                /* rotate ((_cursor773)._right8)._left7 */\n",
              "                var _a871 = (_cursor773)._right8;\n",
              "                var _b872 = (_a871)._left7;\n",
              "                var _c873 = (_b872)._right8;\n",
              "                /* replace _a871 with _b872 in (_a871)._parent9 */\n",
              "                if (!(((_a871)._parent9) == null)) {\n",
              "                    if ((((_a871)._parent9)._left7) == (_a871)) {\n",
              "                        ((_a871)._parent9)._left7 = _b872;\n",
              "                    } else {\n",
              "                        ((_a871)._parent9)._right8 = _b872;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b872) == null)) {\n",
              "                    (_b872)._parent9 = (_a871)._parent9;\n",
              "                }\n",
              "                /* replace _c873 with _a871 in _b872 */\n",
              "                (_b872)._right8 = _a871;\n",
              "                if (!((_a871) == null)) {\n",
              "                    (_a871)._parent9 = _b872;\n",
              "                }\n",
              "                /* replace _b872 with _c873 in _a871 */\n",
              "                (_a871)._left7 = _c873;\n",
              "                if (!((_c873) == null)) {\n",
              "                    (_c873)._parent9 = _a871;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval874 = (_a871).ax1;\n",
              "                var _child875 = (_a871)._left7;\n",
              "                if (!((_child875) == null)) {\n",
              "                    var _val876 = (_child875)._min_ax12;\n",
              "                    _augval874 = ((_augval874) < (_val876)) ? (_augval874) : (_val876);\n",
              "                }\n",
              "                var _child877 = (_a871)._right8;\n",
              "                if (!((_child877) == null)) {\n",
              "                    var _val878 = (_child877)._min_ax12;\n",
              "                    _augval874 = ((_augval874) < (_val878)) ? (_augval874) : (_val878);\n",
              "                }\n",
              "                (_a871)._min_ax12 = _augval874;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval879 = (_a871).ay1;\n",
              "                var _child880 = (_a871)._left7;\n",
              "                if (!((_child880) == null)) {\n",
              "                    var _val881 = (_child880)._min_ay13;\n",
              "                    _augval879 = ((_augval879) < (_val881)) ? (_augval879) : (_val881);\n",
              "                }\n",
              "                var _child882 = (_a871)._right8;\n",
              "                if (!((_child882) == null)) {\n",
              "                    var _val883 = (_child882)._min_ay13;\n",
              "                    _augval879 = ((_augval879) < (_val883)) ? (_augval879) : (_val883);\n",
              "                }\n",
              "                (_a871)._min_ay13 = _augval879;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval884 = (_a871).ay2;\n",
              "                var _child885 = (_a871)._left7;\n",
              "                if (!((_child885) == null)) {\n",
              "                    var _val886 = (_child885)._max_ay24;\n",
              "                    _augval884 = ((_augval884) < (_val886)) ? (_val886) : (_augval884);\n",
              "                }\n",
              "                var _child887 = (_a871)._right8;\n",
              "                if (!((_child887) == null)) {\n",
              "                    var _val888 = (_child887)._max_ay24;\n",
              "                    _augval884 = ((_augval884) < (_val888)) ? (_val888) : (_augval884);\n",
              "                }\n",
              "                (_a871)._max_ay24 = _augval884;\n",
              "                (_a871)._height10 = 1 + ((((((_a871)._left7) == null) ? (-1) : (((_a871)._left7)._height10)) > ((((_a871)._right8) == null) ? (-1) : (((_a871)._right8)._height10))) ? ((((_a871)._left7) == null) ? (-1) : (((_a871)._left7)._height10)) : ((((_a871)._right8) == null) ? (-1) : (((_a871)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval889 = (_b872).ax1;\n",
              "                var _child890 = (_b872)._left7;\n",
              "                if (!((_child890) == null)) {\n",
              "                    var _val891 = (_child890)._min_ax12;\n",
              "                    _augval889 = ((_augval889) < (_val891)) ? (_augval889) : (_val891);\n",
              "                }\n",
              "                var _child892 = (_b872)._right8;\n",
              "                if (!((_child892) == null)) {\n",
              "                    var _val893 = (_child892)._min_ax12;\n",
              "                    _augval889 = ((_augval889) < (_val893)) ? (_augval889) : (_val893);\n",
              "                }\n",
              "                (_b872)._min_ax12 = _augval889;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval894 = (_b872).ay1;\n",
              "                var _child895 = (_b872)._left7;\n",
              "                if (!((_child895) == null)) {\n",
              "                    var _val896 = (_child895)._min_ay13;\n",
              "                    _augval894 = ((_augval894) < (_val896)) ? (_augval894) : (_val896);\n",
              "                }\n",
              "                var _child897 = (_b872)._right8;\n",
              "                if (!((_child897) == null)) {\n",
              "                    var _val898 = (_child897)._min_ay13;\n",
              "                    _augval894 = ((_augval894) < (_val898)) ? (_augval894) : (_val898);\n",
              "                }\n",
              "                (_b872)._min_ay13 = _augval894;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval899 = (_b872).ay2;\n",
              "                var _child900 = (_b872)._left7;\n",
              "                if (!((_child900) == null)) {\n",
              "                    var _val901 = (_child900)._max_ay24;\n",
              "                    _augval899 = ((_augval899) < (_val901)) ? (_val901) : (_augval899);\n",
              "                }\n",
              "                var _child902 = (_b872)._right8;\n",
              "                if (!((_child902) == null)) {\n",
              "                    var _val903 = (_child902)._max_ay24;\n",
              "                    _augval899 = ((_augval899) < (_val903)) ? (_val903) : (_augval899);\n",
              "                }\n",
              "                (_b872)._max_ay24 = _augval899;\n",
              "                (_b872)._height10 = 1 + ((((((_b872)._left7) == null) ? (-1) : (((_b872)._left7)._height10)) > ((((_b872)._right8) == null) ? (-1) : (((_b872)._right8)._height10))) ? ((((_b872)._left7) == null) ? (-1) : (((_b872)._left7)._height10)) : ((((_b872)._right8) == null) ? (-1) : (((_b872)._right8)._height10)));\n",
              "                if (!(((_b872)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval904 = ((_b872)._parent9).ax1;\n",
              "                    var _child905 = ((_b872)._parent9)._left7;\n",
              "                    if (!((_child905) == null)) {\n",
              "                        var _val906 = (_child905)._min_ax12;\n",
              "                        _augval904 = ((_augval904) < (_val906)) ? (_augval904) : (_val906);\n",
              "                    }\n",
              "                    var _child907 = ((_b872)._parent9)._right8;\n",
              "                    if (!((_child907) == null)) {\n",
              "                        var _val908 = (_child907)._min_ax12;\n",
              "                        _augval904 = ((_augval904) < (_val908)) ? (_augval904) : (_val908);\n",
              "                    }\n",
              "                    ((_b872)._parent9)._min_ax12 = _augval904;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval909 = ((_b872)._parent9).ay1;\n",
              "                    var _child910 = ((_b872)._parent9)._left7;\n",
              "                    if (!((_child910) == null)) {\n",
              "                        var _val911 = (_child910)._min_ay13;\n",
              "                        _augval909 = ((_augval909) < (_val911)) ? (_augval909) : (_val911);\n",
              "                    }\n",
              "                    var _child912 = ((_b872)._parent9)._right8;\n",
              "                    if (!((_child912) == null)) {\n",
              "                        var _val913 = (_child912)._min_ay13;\n",
              "                        _augval909 = ((_augval909) < (_val913)) ? (_augval909) : (_val913);\n",
              "                    }\n",
              "                    ((_b872)._parent9)._min_ay13 = _augval909;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval914 = ((_b872)._parent9).ay2;\n",
              "                    var _child915 = ((_b872)._parent9)._left7;\n",
              "                    if (!((_child915) == null)) {\n",
              "                        var _val916 = (_child915)._max_ay24;\n",
              "                        _augval914 = ((_augval914) < (_val916)) ? (_val916) : (_augval914);\n",
              "                    }\n",
              "                    var _child917 = ((_b872)._parent9)._right8;\n",
              "                    if (!((_child917) == null)) {\n",
              "                        var _val918 = (_child917)._max_ay24;\n",
              "                        _augval914 = ((_augval914) < (_val918)) ? (_val918) : (_augval914);\n",
              "                    }\n",
              "                    ((_b872)._parent9)._max_ay24 = _augval914;\n",
              "                    ((_b872)._parent9)._height10 = 1 + (((((((_b872)._parent9)._left7) == null) ? (-1) : ((((_b872)._parent9)._left7)._height10)) > (((((_b872)._parent9)._right8) == null) ? (-1) : ((((_b872)._parent9)._right8)._height10))) ? (((((_b872)._parent9)._left7) == null) ? (-1) : ((((_b872)._parent9)._left7)._height10)) : (((((_b872)._parent9)._right8) == null) ? (-1) : ((((_b872)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b872;\n",
              "                }\n",
              "            }\n",
              "            /* rotate (_cursor773)._right8 */\n",
              "            var _a919 = _cursor773;\n",
              "            var _b920 = (_a919)._right8;\n",
              "            var _c921 = (_b920)._left7;\n",
              "            /* replace _a919 with _b920 in (_a919)._parent9 */\n",
              "            if (!(((_a919)._parent9) == null)) {\n",
              "                if ((((_a919)._parent9)._left7) == (_a919)) {\n",
              "                    ((_a919)._parent9)._left7 = _b920;\n",
              "                } else {\n",
              "                    ((_a919)._parent9)._right8 = _b920;\n",
              "                }\n",
              "            }\n",
              "            if (!((_b920) == null)) {\n",
              "                (_b920)._parent9 = (_a919)._parent9;\n",
              "            }\n",
              "            /* replace _c921 with _a919 in _b920 */\n",
              "            (_b920)._left7 = _a919;\n",
              "            if (!((_a919) == null)) {\n",
              "                (_a919)._parent9 = _b920;\n",
              "            }\n",
              "            /* replace _b920 with _c921 in _a919 */\n",
              "            (_a919)._right8 = _c921;\n",
              "            if (!((_c921) == null)) {\n",
              "                (_c921)._parent9 = _a919;\n",
              "            }\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval922 = (_a919).ax1;\n",
              "            var _child923 = (_a919)._left7;\n",
              "            if (!((_child923) == null)) {\n",
              "                var _val924 = (_child923)._min_ax12;\n",
              "                _augval922 = ((_augval922) < (_val924)) ? (_augval922) : (_val924);\n",
              "            }\n",
              "            var _child925 = (_a919)._right8;\n",
              "            if (!((_child925) == null)) {\n",
              "                var _val926 = (_child925)._min_ax12;\n",
              "                _augval922 = ((_augval922) < (_val926)) ? (_augval922) : (_val926);\n",
              "            }\n",
              "            (_a919)._min_ax12 = _augval922;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval927 = (_a919).ay1;\n",
              "            var _child928 = (_a919)._left7;\n",
              "            if (!((_child928) == null)) {\n",
              "                var _val929 = (_child928)._min_ay13;\n",
              "                _augval927 = ((_augval927) < (_val929)) ? (_augval927) : (_val929);\n",
              "            }\n",
              "            var _child930 = (_a919)._right8;\n",
              "            if (!((_child930) == null)) {\n",
              "                var _val931 = (_child930)._min_ay13;\n",
              "                _augval927 = ((_augval927) < (_val931)) ? (_augval927) : (_val931);\n",
              "            }\n",
              "            (_a919)._min_ay13 = _augval927;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval932 = (_a919).ay2;\n",
              "            var _child933 = (_a919)._left7;\n",
              "            if (!((_child933) == null)) {\n",
              "                var _val934 = (_child933)._max_ay24;\n",
              "                _augval932 = ((_augval932) < (_val934)) ? (_val934) : (_augval932);\n",
              "            }\n",
              "            var _child935 = (_a919)._right8;\n",
              "            if (!((_child935) == null)) {\n",
              "                var _val936 = (_child935)._max_ay24;\n",
              "                _augval932 = ((_augval932) < (_val936)) ? (_val936) : (_augval932);\n",
              "            }\n",
              "            (_a919)._max_ay24 = _augval932;\n",
              "            (_a919)._height10 = 1 + ((((((_a919)._left7) == null) ? (-1) : (((_a919)._left7)._height10)) > ((((_a919)._right8) == null) ? (-1) : (((_a919)._right8)._height10))) ? ((((_a919)._left7) == null) ? (-1) : (((_a919)._left7)._height10)) : ((((_a919)._right8) == null) ? (-1) : (((_a919)._right8)._height10)));\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval937 = (_b920).ax1;\n",
              "            var _child938 = (_b920)._left7;\n",
              "            if (!((_child938) == null)) {\n",
              "                var _val939 = (_child938)._min_ax12;\n",
              "                _augval937 = ((_augval937) < (_val939)) ? (_augval937) : (_val939);\n",
              "            }\n",
              "            var _child940 = (_b920)._right8;\n",
              "            if (!((_child940) == null)) {\n",
              "                var _val941 = (_child940)._min_ax12;\n",
              "                _augval937 = ((_augval937) < (_val941)) ? (_augval937) : (_val941);\n",
              "            }\n",
              "            (_b920)._min_ax12 = _augval937;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval942 = (_b920).ay1;\n",
              "            var _child943 = (_b920)._left7;\n",
              "            if (!((_child943) == null)) {\n",
              "                var _val944 = (_child943)._min_ay13;\n",
              "                _augval942 = ((_augval942) < (_val944)) ? (_augval942) : (_val944);\n",
              "            }\n",
              "            var _child945 = (_b920)._right8;\n",
              "            if (!((_child945) == null)) {\n",
              "                var _val946 = (_child945)._min_ay13;\n",
              "                _augval942 = ((_augval942) < (_val946)) ? (_augval942) : (_val946);\n",
              "            }\n",
              "            (_b920)._min_ay13 = _augval942;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval947 = (_b920).ay2;\n",
              "            var _child948 = (_b920)._left7;\n",
              "            if (!((_child948) == null)) {\n",
              "                var _val949 = (_child948)._max_ay24;\n",
              "                _augval947 = ((_augval947) < (_val949)) ? (_val949) : (_augval947);\n",
              "            }\n",
              "            var _child950 = (_b920)._right8;\n",
              "            if (!((_child950) == null)) {\n",
              "                var _val951 = (_child950)._max_ay24;\n",
              "                _augval947 = ((_augval947) < (_val951)) ? (_val951) : (_augval947);\n",
              "            }\n",
              "            (_b920)._max_ay24 = _augval947;\n",
              "            (_b920)._height10 = 1 + ((((((_b920)._left7) == null) ? (-1) : (((_b920)._left7)._height10)) > ((((_b920)._right8) == null) ? (-1) : (((_b920)._right8)._height10))) ? ((((_b920)._left7) == null) ? (-1) : (((_b920)._left7)._height10)) : ((((_b920)._right8) == null) ? (-1) : (((_b920)._right8)._height10)));\n",
              "            if (!(((_b920)._parent9) == null)) {\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval952 = ((_b920)._parent9).ax1;\n",
              "                var _child953 = ((_b920)._parent9)._left7;\n",
              "                if (!((_child953) == null)) {\n",
              "                    var _val954 = (_child953)._min_ax12;\n",
              "                    _augval952 = ((_augval952) < (_val954)) ? (_augval952) : (_val954);\n",
              "                }\n",
              "                var _child955 = ((_b920)._parent9)._right8;\n",
              "                if (!((_child955) == null)) {\n",
              "                    var _val956 = (_child955)._min_ax12;\n",
              "                    _augval952 = ((_augval952) < (_val956)) ? (_augval952) : (_val956);\n",
              "                }\n",
              "                ((_b920)._parent9)._min_ax12 = _augval952;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval957 = ((_b920)._parent9).ay1;\n",
              "                var _child958 = ((_b920)._parent9)._left7;\n",
              "                if (!((_child958) == null)) {\n",
              "                    var _val959 = (_child958)._min_ay13;\n",
              "                    _augval957 = ((_augval957) < (_val959)) ? (_augval957) : (_val959);\n",
              "                }\n",
              "                var _child960 = ((_b920)._parent9)._right8;\n",
              "                if (!((_child960) == null)) {\n",
              "                    var _val961 = (_child960)._min_ay13;\n",
              "                    _augval957 = ((_augval957) < (_val961)) ? (_augval957) : (_val961);\n",
              "                }\n",
              "                ((_b920)._parent9)._min_ay13 = _augval957;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval962 = ((_b920)._parent9).ay2;\n",
              "                var _child963 = ((_b920)._parent9)._left7;\n",
              "                if (!((_child963) == null)) {\n",
              "                    var _val964 = (_child963)._max_ay24;\n",
              "                    _augval962 = ((_augval962) < (_val964)) ? (_val964) : (_augval962);\n",
              "                }\n",
              "                var _child965 = ((_b920)._parent9)._right8;\n",
              "                if (!((_child965) == null)) {\n",
              "                    var _val966 = (_child965)._max_ay24;\n",
              "                    _augval962 = ((_augval962) < (_val966)) ? (_val966) : (_augval962);\n",
              "                }\n",
              "                ((_b920)._parent9)._max_ay24 = _augval962;\n",
              "                ((_b920)._parent9)._height10 = 1 + (((((((_b920)._parent9)._left7) == null) ? (-1) : ((((_b920)._parent9)._left7)._height10)) > (((((_b920)._parent9)._right8) == null) ? (-1) : ((((_b920)._parent9)._right8)._height10))) ? (((((_b920)._parent9)._left7) == null) ? (-1) : ((((_b920)._parent9)._left7)._height10)) : (((((_b920)._parent9)._right8) == null) ? (-1) : ((((_b920)._parent9)._right8)._height10)));\n",
              "            } else {\n",
              "                (this)._root1 = _b920;\n",
              "            }\n",
              "            _cursor773 = (_cursor773)._parent9;\n",
              "        }\n",
              "    }\n",
              "    (__x).ax1 = ax1;\n",
              "    (__x).ay1 = ay1;\n",
              "    (__x).ax2 = ax2;\n",
              "    (__x).ay2 = ay2;\n",
              "}\n",
              "RectangleHolder.prototype.findMatchingRectangles = function (bx1, by1, bx2, by2, __callback) {\n",
              "    var _root967 = (this)._root1;\n",
              "    var _x968 = _root967;\n",
              "    var _descend969 = true;\n",
              "    var _from_left970 = true;\n",
              "    while (true) {\n",
              "        if ((_x968) == null) {\n",
              "            _x968 = null;\n",
              "            break;\n",
              "        }\n",
              "        if (_descend969) {\n",
              "            /* too small? */\n",
              "            if ((false) || (((_x968).ax2) <= (bx1))) {\n",
              "                if ((!(((_x968)._right8) == null)) && ((((true) && ((((_x968)._right8)._min_ax12) < (bx2))) && ((((_x968)._right8)._min_ay13) < (by2))) && ((((_x968)._right8)._max_ay24) > (by1)))) {\n",
              "                    if ((_x968) == (_root967)) {\n",
              "                        _root967 = (_x968)._right8;\n",
              "                    }\n",
              "                    _x968 = (_x968)._right8;\n",
              "                } else if ((_x968) == (_root967)) {\n",
              "                    _x968 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend969 = false;\n",
              "                    _from_left970 = (!(((_x968)._parent9) == null)) && ((_x968) == (((_x968)._parent9)._left7));\n",
              "                    _x968 = (_x968)._parent9;\n",
              "                }\n",
              "            } else if ((!(((_x968)._left7) == null)) && ((((true) && ((((_x968)._left7)._min_ax12) < (bx2))) && ((((_x968)._left7)._min_ay13) < (by2))) && ((((_x968)._left7)._max_ay24) > (by1)))) {\n",
              "                _x968 = (_x968)._left7;\n",
              "                /* too large? */\n",
              "            } else if (false) {\n",
              "                if ((_x968) == (_root967)) {\n",
              "                    _x968 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend969 = false;\n",
              "                    _from_left970 = (!(((_x968)._parent9) == null)) && ((_x968) == (((_x968)._parent9)._left7));\n",
              "                    _x968 = (_x968)._parent9;\n",
              "                }\n",
              "                /* node ok? */\n",
              "            } else if ((((true) && (((_x968).ax1) < (bx2))) && (((_x968).ay1) < (by2))) && (((_x968).ay2) > (by1))) {\n",
              "                break;\n",
              "            } else if ((_x968) == (_root967)) {\n",
              "                _root967 = (_x968)._right8;\n",
              "                _x968 = (_x968)._right8;\n",
              "            } else {\n",
              "                if ((!(((_x968)._right8) == null)) && ((((true) && ((((_x968)._right8)._min_ax12) < (bx2))) && ((((_x968)._right8)._min_ay13) < (by2))) && ((((_x968)._right8)._max_ay24) > (by1)))) {\n",
              "                    if ((_x968) == (_root967)) {\n",
              "                        _root967 = (_x968)._right8;\n",
              "                    }\n",
              "                    _x968 = (_x968)._right8;\n",
              "                } else {\n",
              "                    _descend969 = false;\n",
              "                    _from_left970 = (!(((_x968)._parent9) == null)) && ((_x968) == (((_x968)._parent9)._left7));\n",
              "                    _x968 = (_x968)._parent9;\n",
              "                }\n",
              "            }\n",
              "        } else if (_from_left970) {\n",
              "            if (false) {\n",
              "                _x968 = null;\n",
              "                break;\n",
              "            } else if ((((true) && (((_x968).ax1) < (bx2))) && (((_x968).ay1) < (by2))) && (((_x968).ay2) > (by1))) {\n",
              "                break;\n",
              "            } else if ((!(((_x968)._right8) == null)) && ((((true) && ((((_x968)._right8)._min_ax12) < (bx2))) && ((((_x968)._right8)._min_ay13) < (by2))) && ((((_x968)._right8)._max_ay24) > (by1)))) {\n",
              "                _descend969 = true;\n",
              "                if ((_x968) == (_root967)) {\n",
              "                    _root967 = (_x968)._right8;\n",
              "                }\n",
              "                _x968 = (_x968)._right8;\n",
              "            } else if ((_x968) == (_root967)) {\n",
              "                _x968 = null;\n",
              "                break;\n",
              "            } else {\n",
              "                _descend969 = false;\n",
              "                _from_left970 = (!(((_x968)._parent9) == null)) && ((_x968) == (((_x968)._parent9)._left7));\n",
              "                _x968 = (_x968)._parent9;\n",
              "            }\n",
              "        } else {\n",
              "            if ((_x968) == (_root967)) {\n",
              "                _x968 = null;\n",
              "                break;\n",
              "            } else {\n",
              "                _descend969 = false;\n",
              "                _from_left970 = (!(((_x968)._parent9) == null)) && ((_x968) == (((_x968)._parent9)._left7));\n",
              "                _x968 = (_x968)._parent9;\n",
              "            }\n",
              "        }\n",
              "    }\n",
              "    var _prev_cursor5 = null;\n",
              "    var _cursor6 = _x968;\n",
              "    for (; ;) {\n",
              "        if (!(!((_cursor6) == null))) break;\n",
              "        var _name971 = _cursor6;\n",
              "        /* ADVANCE */\n",
              "        _prev_cursor5 = _cursor6;\n",
              "        do {\n",
              "            var _right_min972 = null;\n",
              "            if ((!(((_cursor6)._right8) == null)) && ((((true) && ((((_cursor6)._right8)._min_ax12) < (bx2))) && ((((_cursor6)._right8)._min_ay13) < (by2))) && ((((_cursor6)._right8)._max_ay24) > (by1)))) {\n",
              "                var _root973 = (_cursor6)._right8;\n",
              "                var _x974 = _root973;\n",
              "                var _descend975 = true;\n",
              "                var _from_left976 = true;\n",
              "                while (true) {\n",
              "                    if ((_x974) == null) {\n",
              "                        _x974 = null;\n",
              "                        break;\n",
              "                    }\n",
              "                    if (_descend975) {\n",
              "                        /* too small? */\n",
              "                        if ((false) || (((_x974).ax2) <= (bx1))) {\n",
              "                            if ((!(((_x974)._right8) == null)) && ((((true) && ((((_x974)._right8)._min_ax12) < (bx2))) && ((((_x974)._right8)._min_ay13) < (by2))) && ((((_x974)._right8)._max_ay24) > (by1)))) {\n",
              "                                if ((_x974) == (_root973)) {\n",
              "                                    _root973 = (_x974)._right8;\n",
              "                                }\n",
              "                                _x974 = (_x974)._right8;\n",
              "                            } else if ((_x974) == (_root973)) {\n",
              "                                _x974 = null;\n",
              "                                break;\n",
              "                            } else {\n",
              "                                _descend975 = false;\n",
              "                                _from_left976 = (!(((_x974)._parent9) == null)) && ((_x974) == (((_x974)._parent9)._left7));\n",
              "                                _x974 = (_x974)._parent9;\n",
              "                            }\n",
              "                        } else if ((!(((_x974)._left7) == null)) && ((((true) && ((((_x974)._left7)._min_ax12) < (bx2))) && ((((_x974)._left7)._min_ay13) < (by2))) && ((((_x974)._left7)._max_ay24) > (by1)))) {\n",
              "                            _x974 = (_x974)._left7;\n",
              "                            /* too large? */\n",
              "                        } else if (false) {\n",
              "                            if ((_x974) == (_root973)) {\n",
              "                                _x974 = null;\n",
              "                                break;\n",
              "                            } else {\n",
              "                                _descend975 = false;\n",
              "                                _from_left976 = (!(((_x974)._parent9) == null)) && ((_x974) == (((_x974)._parent9)._left7));\n",
              "                                _x974 = (_x974)._parent9;\n",
              "                            }\n",
              "                            /* node ok? */\n",
              "                        } else if ((((true) && (((_x974).ax1) < (bx2))) && (((_x974).ay1) < (by2))) && (((_x974).ay2) > (by1))) {\n",
              "                            break;\n",
              "                        } else if ((_x974) == (_root973)) {\n",
              "                            _root973 = (_x974)._right8;\n",
              "                            _x974 = (_x974)._right8;\n",
              "                        } else {\n",
              "                            if ((!(((_x974)._right8) == null)) && ((((true) && ((((_x974)._right8)._min_ax12) < (bx2))) && ((((_x974)._right8)._min_ay13) < (by2))) && ((((_x974)._right8)._max_ay24) > (by1)))) {\n",
              "                                if ((_x974) == (_root973)) {\n",
              "                                    _root973 = (_x974)._right8;\n",
              "                                }\n",
              "                                _x974 = (_x974)._right8;\n",
              "                            } else {\n",
              "                                _descend975 = false;\n",
              "                                _from_left976 = (!(((_x974)._parent9) == null)) && ((_x974) == (((_x974)._parent9)._left7));\n",
              "                                _x974 = (_x974)._parent9;\n",
              "                            }\n",
              "                        }\n",
              "                    } else if (_from_left976) {\n",
              "                        if (false) {\n",
              "                            _x974 = null;\n",
              "                            break;\n",
              "                        } else if ((((true) && (((_x974).ax1) < (bx2))) && (((_x974).ay1) < (by2))) && (((_x974).ay2) > (by1))) {\n",
              "                            break;\n",
              "                        } else if ((!(((_x974)._right8) == null)) && ((((true) && ((((_x974)._right8)._min_ax12) < (bx2))) && ((((_x974)._right8)._min_ay13) < (by2))) && ((((_x974)._right8)._max_ay24) > (by1)))) {\n",
              "                            _descend975 = true;\n",
              "                            if ((_x974) == (_root973)) {\n",
              "                                _root973 = (_x974)._right8;\n",
              "                            }\n",
              "                            _x974 = (_x974)._right8;\n",
              "                        } else if ((_x974) == (_root973)) {\n",
              "                            _x974 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend975 = false;\n",
              "                            _from_left976 = (!(((_x974)._parent9) == null)) && ((_x974) == (((_x974)._parent9)._left7));\n",
              "                            _x974 = (_x974)._parent9;\n",
              "                        }\n",
              "                    } else {\n",
              "                        if ((_x974) == (_root973)) {\n",
              "                            _x974 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend975 = false;\n",
              "                            _from_left976 = (!(((_x974)._parent9) == null)) && ((_x974) == (((_x974)._parent9)._left7));\n",
              "                            _x974 = (_x974)._parent9;\n",
              "                        }\n",
              "                    }\n",
              "                }\n",
              "                _right_min972 = _x974;\n",
              "            }\n",
              "            if (!((_right_min972) == null)) {\n",
              "                _cursor6 = _right_min972;\n",
              "                break;\n",
              "            } else {\n",
              "                while ((!(((_cursor6)._parent9) == null)) && ((_cursor6) == (((_cursor6)._parent9)._right8))) {\n",
              "                    _cursor6 = (_cursor6)._parent9;\n",
              "                }\n",
              "                _cursor6 = (_cursor6)._parent9;\n",
              "                if ((!((_cursor6) == null)) && (false)) {\n",
              "                    _cursor6 = null;\n",
              "                }\n",
              "            }\n",
              "        } while ((!((_cursor6) == null)) && (!((((true) && (((_cursor6).ax1) < (bx2))) && (((_cursor6).ay1) < (by2))) && (((_cursor6).ay2) > (by1)))));\n",
              "        if (__callback(_name971)) {\n",
              "            var _to_remove977 = _prev_cursor5;\n",
              "            var _parent978 = (_to_remove977)._parent9;\n",
              "            var _left979 = (_to_remove977)._left7;\n",
              "            var _right980 = (_to_remove977)._right8;\n",
              "            var _new_x981;\n",
              "            if (((_left979) == null) && ((_right980) == null)) {\n",
              "                _new_x981 = null;\n",
              "                /* replace _to_remove977 with _new_x981 in _parent978 */\n",
              "                if (!((_parent978) == null)) {\n",
              "                    if (((_parent978)._left7) == (_to_remove977)) {\n",
              "                        (_parent978)._left7 = _new_x981;\n",
              "                    } else {\n",
              "                        (_parent978)._right8 = _new_x981;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_new_x981) == null)) {\n",
              "                    (_new_x981)._parent9 = _parent978;\n",
              "                }\n",
              "            } else if ((!((_left979) == null)) && ((_right980) == null)) {\n",
              "                _new_x981 = _left979;\n",
              "                /* replace _to_remove977 with _new_x981 in _parent978 */\n",
              "                if (!((_parent978) == null)) {\n",
              "                    if (((_parent978)._left7) == (_to_remove977)) {\n",
              "                        (_parent978)._left7 = _new_x981;\n",
              "                    } else {\n",
              "                        (_parent978)._right8 = _new_x981;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_new_x981) == null)) {\n",
              "                    (_new_x981)._parent9 = _parent978;\n",
              "                }\n",
              "            } else if (((_left979) == null) && (!((_right980) == null))) {\n",
              "                _new_x981 = _right980;\n",
              "                /* replace _to_remove977 with _new_x981 in _parent978 */\n",
              "                if (!((_parent978) == null)) {\n",
              "                    if (((_parent978)._left7) == (_to_remove977)) {\n",
              "                        (_parent978)._left7 = _new_x981;\n",
              "                    } else {\n",
              "                        (_parent978)._right8 = _new_x981;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_new_x981) == null)) {\n",
              "                    (_new_x981)._parent9 = _parent978;\n",
              "                }\n",
              "            } else {\n",
              "                var _root982 = (_to_remove977)._right8;\n",
              "                var _x983 = _root982;\n",
              "                var _descend984 = true;\n",
              "                var _from_left985 = true;\n",
              "                while (true) {\n",
              "                    if ((_x983) == null) {\n",
              "                        _x983 = null;\n",
              "                        break;\n",
              "                    }\n",
              "                    if (_descend984) {\n",
              "                        /* too small? */\n",
              "                        if (false) {\n",
              "                            if ((!(((_x983)._right8) == null)) && (true)) {\n",
              "                                if ((_x983) == (_root982)) {\n",
              "                                    _root982 = (_x983)._right8;\n",
              "                                }\n",
              "                                _x983 = (_x983)._right8;\n",
              "                            } else if ((_x983) == (_root982)) {\n",
              "                                _x983 = null;\n",
              "                                break;\n",
              "                            } else {\n",
              "                                _descend984 = false;\n",
              "                                _from_left985 = (!(((_x983)._parent9) == null)) && ((_x983) == (((_x983)._parent9)._left7));\n",
              "                                _x983 = (_x983)._parent9;\n",
              "                            }\n",
              "                        } else if ((!(((_x983)._left7) == null)) && (true)) {\n",
              "                            _x983 = (_x983)._left7;\n",
              "                            /* too large? */\n",
              "                        } else if (false) {\n",
              "                            if ((_x983) == (_root982)) {\n",
              "                                _x983 = null;\n",
              "                                break;\n",
              "                            } else {\n",
              "                                _descend984 = false;\n",
              "                                _from_left985 = (!(((_x983)._parent9) == null)) && ((_x983) == (((_x983)._parent9)._left7));\n",
              "                                _x983 = (_x983)._parent9;\n",
              "                            }\n",
              "                            /* node ok? */\n",
              "                        } else if (true) {\n",
              "                            break;\n",
              "                        } else if ((_x983) == (_root982)) {\n",
              "                            _root982 = (_x983)._right8;\n",
              "                            _x983 = (_x983)._right8;\n",
              "                        } else {\n",
              "                            if ((!(((_x983)._right8) == null)) && (true)) {\n",
              "                                if ((_x983) == (_root982)) {\n",
              "                                    _root982 = (_x983)._right8;\n",
              "                                }\n",
              "                                _x983 = (_x983)._right8;\n",
              "                            } else {\n",
              "                                _descend984 = false;\n",
              "                                _from_left985 = (!(((_x983)._parent9) == null)) && ((_x983) == (((_x983)._parent9)._left7));\n",
              "                                _x983 = (_x983)._parent9;\n",
              "                            }\n",
              "                        }\n",
              "                    } else if (_from_left985) {\n",
              "                        if (false) {\n",
              "                            _x983 = null;\n",
              "                            break;\n",
              "                        } else if (true) {\n",
              "                            break;\n",
              "                        } else if ((!(((_x983)._right8) == null)) && (true)) {\n",
              "                            _descend984 = true;\n",
              "                            if ((_x983) == (_root982)) {\n",
              "                                _root982 = (_x983)._right8;\n",
              "                            }\n",
              "                            _x983 = (_x983)._right8;\n",
              "                        } else if ((_x983) == (_root982)) {\n",
              "                            _x983 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend984 = false;\n",
              "                            _from_left985 = (!(((_x983)._parent9) == null)) && ((_x983) == (((_x983)._parent9)._left7));\n",
              "                            _x983 = (_x983)._parent9;\n",
              "                        }\n",
              "                    } else {\n",
              "                        if ((_x983) == (_root982)) {\n",
              "                            _x983 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend984 = false;\n",
              "                            _from_left985 = (!(((_x983)._parent9) == null)) && ((_x983) == (((_x983)._parent9)._left7));\n",
              "                            _x983 = (_x983)._parent9;\n",
              "                        }\n",
              "                    }\n",
              "                }\n",
              "                _new_x981 = _x983;\n",
              "                var _mp986 = (_x983)._parent9;\n",
              "                var _mr987 = (_x983)._right8;\n",
              "                /* replace _x983 with _mr987 in _mp986 */\n",
              "                if (!((_mp986) == null)) {\n",
              "                    if (((_mp986)._left7) == (_x983)) {\n",
              "                        (_mp986)._left7 = _mr987;\n",
              "                    } else {\n",
              "                        (_mp986)._right8 = _mr987;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_mr987) == null)) {\n",
              "                    (_mr987)._parent9 = _mp986;\n",
              "                }\n",
              "                /* replace _to_remove977 with _x983 in _parent978 */\n",
              "                if (!((_parent978) == null)) {\n",
              "                    if (((_parent978)._left7) == (_to_remove977)) {\n",
              "                        (_parent978)._left7 = _x983;\n",
              "                    } else {\n",
              "                        (_parent978)._right8 = _x983;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_x983) == null)) {\n",
              "                    (_x983)._parent9 = _parent978;\n",
              "                }\n",
              "                /* replace null with _left979 in _x983 */\n",
              "                (_x983)._left7 = _left979;\n",
              "                if (!((_left979) == null)) {\n",
              "                    (_left979)._parent9 = _x983;\n",
              "                }\n",
              "                /* replace _mr987 with (_to_remove977)._right8 in _x983 */\n",
              "                (_x983)._right8 = (_to_remove977)._right8;\n",
              "                if (!(((_to_remove977)._right8) == null)) {\n",
              "                    ((_to_remove977)._right8)._parent9 = _x983;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval988 = (_x983).ax1;\n",
              "                var _child989 = (_x983)._left7;\n",
              "                if (!((_child989) == null)) {\n",
              "                    var _val990 = (_child989)._min_ax12;\n",
              "                    _augval988 = ((_augval988) < (_val990)) ? (_augval988) : (_val990);\n",
              "                }\n",
              "                var _child991 = (_x983)._right8;\n",
              "                if (!((_child991) == null)) {\n",
              "                    var _val992 = (_child991)._min_ax12;\n",
              "                    _augval988 = ((_augval988) < (_val992)) ? (_augval988) : (_val992);\n",
              "                }\n",
              "                (_x983)._min_ax12 = _augval988;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval993 = (_x983).ay1;\n",
              "                var _child994 = (_x983)._left7;\n",
              "                if (!((_child994) == null)) {\n",
              "                    var _val995 = (_child994)._min_ay13;\n",
              "                    _augval993 = ((_augval993) < (_val995)) ? (_augval993) : (_val995);\n",
              "                }\n",
              "                var _child996 = (_x983)._right8;\n",
              "                if (!((_child996) == null)) {\n",
              "                    var _val997 = (_child996)._min_ay13;\n",
              "                    _augval993 = ((_augval993) < (_val997)) ? (_augval993) : (_val997);\n",
              "                }\n",
              "                (_x983)._min_ay13 = _augval993;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval998 = (_x983).ay2;\n",
              "                var _child999 = (_x983)._left7;\n",
              "                if (!((_child999) == null)) {\n",
              "                    var _val1000 = (_child999)._max_ay24;\n",
              "                    _augval998 = ((_augval998) < (_val1000)) ? (_val1000) : (_augval998);\n",
              "                }\n",
              "                var _child1001 = (_x983)._right8;\n",
              "                if (!((_child1001) == null)) {\n",
              "                    var _val1002 = (_child1001)._max_ay24;\n",
              "                    _augval998 = ((_augval998) < (_val1002)) ? (_val1002) : (_augval998);\n",
              "                }\n",
              "                (_x983)._max_ay24 = _augval998;\n",
              "                (_x983)._height10 = 1 + ((((((_x983)._left7) == null) ? (-1) : (((_x983)._left7)._height10)) > ((((_x983)._right8) == null) ? (-1) : (((_x983)._right8)._height10))) ? ((((_x983)._left7) == null) ? (-1) : (((_x983)._left7)._height10)) : ((((_x983)._right8) == null) ? (-1) : (((_x983)._right8)._height10)));\n",
              "                var _cursor1003 = _mp986;\n",
              "                var _changed1004 = true;\n",
              "                while ((_changed1004) && (!((_cursor1003) == (_parent978)))) {\n",
              "                    var _old__min_ax121005 = (_cursor1003)._min_ax12;\n",
              "                    var _old__min_ay131006 = (_cursor1003)._min_ay13;\n",
              "                    var _old__max_ay241007 = (_cursor1003)._max_ay24;\n",
              "                    var _old_height1008 = (_cursor1003)._height10;\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval1009 = (_cursor1003).ax1;\n",
              "                    var _child1010 = (_cursor1003)._left7;\n",
              "                    if (!((_child1010) == null)) {\n",
              "                        var _val1011 = (_child1010)._min_ax12;\n",
              "                        _augval1009 = ((_augval1009) < (_val1011)) ? (_augval1009) : (_val1011);\n",
              "                    }\n",
              "                    var _child1012 = (_cursor1003)._right8;\n",
              "                    if (!((_child1012) == null)) {\n",
              "                        var _val1013 = (_child1012)._min_ax12;\n",
              "                        _augval1009 = ((_augval1009) < (_val1013)) ? (_augval1009) : (_val1013);\n",
              "                    }\n",
              "                    (_cursor1003)._min_ax12 = _augval1009;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval1014 = (_cursor1003).ay1;\n",
              "                    var _child1015 = (_cursor1003)._left7;\n",
              "                    if (!((_child1015) == null)) {\n",
              "                        var _val1016 = (_child1015)._min_ay13;\n",
              "                        _augval1014 = ((_augval1014) < (_val1016)) ? (_augval1014) : (_val1016);\n",
              "                    }\n",
              "                    var _child1017 = (_cursor1003)._right8;\n",
              "                    if (!((_child1017) == null)) {\n",
              "                        var _val1018 = (_child1017)._min_ay13;\n",
              "                        _augval1014 = ((_augval1014) < (_val1018)) ? (_augval1014) : (_val1018);\n",
              "                    }\n",
              "                    (_cursor1003)._min_ay13 = _augval1014;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval1019 = (_cursor1003).ay2;\n",
              "                    var _child1020 = (_cursor1003)._left7;\n",
              "                    if (!((_child1020) == null)) {\n",
              "                        var _val1021 = (_child1020)._max_ay24;\n",
              "                        _augval1019 = ((_augval1019) < (_val1021)) ? (_val1021) : (_augval1019);\n",
              "                    }\n",
              "                    var _child1022 = (_cursor1003)._right8;\n",
              "                    if (!((_child1022) == null)) {\n",
              "                        var _val1023 = (_child1022)._max_ay24;\n",
              "                        _augval1019 = ((_augval1019) < (_val1023)) ? (_val1023) : (_augval1019);\n",
              "                    }\n",
              "                    (_cursor1003)._max_ay24 = _augval1019;\n",
              "                    (_cursor1003)._height10 = 1 + ((((((_cursor1003)._left7) == null) ? (-1) : (((_cursor1003)._left7)._height10)) > ((((_cursor1003)._right8) == null) ? (-1) : (((_cursor1003)._right8)._height10))) ? ((((_cursor1003)._left7) == null) ? (-1) : (((_cursor1003)._left7)._height10)) : ((((_cursor1003)._right8) == null) ? (-1) : (((_cursor1003)._right8)._height10)));\n",
              "                    _changed1004 = false;\n",
              "                    _changed1004 = (_changed1004) || (!((_old__min_ax121005) == ((_cursor1003)._min_ax12)));\n",
              "                    _changed1004 = (_changed1004) || (!((_old__min_ay131006) == ((_cursor1003)._min_ay13)));\n",
              "                    _changed1004 = (_changed1004) || (!((_old__max_ay241007) == ((_cursor1003)._max_ay24)));\n",
              "                    _changed1004 = (_changed1004) || (!((_old_height1008) == ((_cursor1003)._height10)));\n",
              "                    _cursor1003 = (_cursor1003)._parent9;\n",
              "                }\n",
              "            }\n",
              "            var _cursor1024 = _parent978;\n",
              "            var _changed1025 = true;\n",
              "            while ((_changed1025) && (!((_cursor1024) == (null)))) {\n",
              "                var _old__min_ax121026 = (_cursor1024)._min_ax12;\n",
              "                var _old__min_ay131027 = (_cursor1024)._min_ay13;\n",
              "                var _old__max_ay241028 = (_cursor1024)._max_ay24;\n",
              "                var _old_height1029 = (_cursor1024)._height10;\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval1030 = (_cursor1024).ax1;\n",
              "                var _child1031 = (_cursor1024)._left7;\n",
              "                if (!((_child1031) == null)) {\n",
              "                    var _val1032 = (_child1031)._min_ax12;\n",
              "                    _augval1030 = ((_augval1030) < (_val1032)) ? (_augval1030) : (_val1032);\n",
              "                }\n",
              "                var _child1033 = (_cursor1024)._right8;\n",
              "                if (!((_child1033) == null)) {\n",
              "                    var _val1034 = (_child1033)._min_ax12;\n",
              "                    _augval1030 = ((_augval1030) < (_val1034)) ? (_augval1030) : (_val1034);\n",
              "                }\n",
              "                (_cursor1024)._min_ax12 = _augval1030;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval1035 = (_cursor1024).ay1;\n",
              "                var _child1036 = (_cursor1024)._left7;\n",
              "                if (!((_child1036) == null)) {\n",
              "                    var _val1037 = (_child1036)._min_ay13;\n",
              "                    _augval1035 = ((_augval1035) < (_val1037)) ? (_augval1035) : (_val1037);\n",
              "                }\n",
              "                var _child1038 = (_cursor1024)._right8;\n",
              "                if (!((_child1038) == null)) {\n",
              "                    var _val1039 = (_child1038)._min_ay13;\n",
              "                    _augval1035 = ((_augval1035) < (_val1039)) ? (_augval1035) : (_val1039);\n",
              "                }\n",
              "                (_cursor1024)._min_ay13 = _augval1035;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval1040 = (_cursor1024).ay2;\n",
              "                var _child1041 = (_cursor1024)._left7;\n",
              "                if (!((_child1041) == null)) {\n",
              "                    var _val1042 = (_child1041)._max_ay24;\n",
              "                    _augval1040 = ((_augval1040) < (_val1042)) ? (_val1042) : (_augval1040);\n",
              "                }\n",
              "                var _child1043 = (_cursor1024)._right8;\n",
              "                if (!((_child1043) == null)) {\n",
              "                    var _val1044 = (_child1043)._max_ay24;\n",
              "                    _augval1040 = ((_augval1040) < (_val1044)) ? (_val1044) : (_augval1040);\n",
              "                }\n",
              "                (_cursor1024)._max_ay24 = _augval1040;\n",
              "                (_cursor1024)._height10 = 1 + ((((((_cursor1024)._left7) == null) ? (-1) : (((_cursor1024)._left7)._height10)) > ((((_cursor1024)._right8) == null) ? (-1) : (((_cursor1024)._right8)._height10))) ? ((((_cursor1024)._left7) == null) ? (-1) : (((_cursor1024)._left7)._height10)) : ((((_cursor1024)._right8) == null) ? (-1) : (((_cursor1024)._right8)._height10)));\n",
              "                _changed1025 = false;\n",
              "                _changed1025 = (_changed1025) || (!((_old__min_ax121026) == ((_cursor1024)._min_ax12)));\n",
              "                _changed1025 = (_changed1025) || (!((_old__min_ay131027) == ((_cursor1024)._min_ay13)));\n",
              "                _changed1025 = (_changed1025) || (!((_old__max_ay241028) == ((_cursor1024)._max_ay24)));\n",
              "                _changed1025 = (_changed1025) || (!((_old_height1029) == ((_cursor1024)._height10)));\n",
              "                _cursor1024 = (_cursor1024)._parent9;\n",
              "            }\n",
              "            if (((this)._root1) == (_to_remove977)) {\n",
              "                (this)._root1 = _new_x981;\n",
              "            }\n",
              "            _prev_cursor5 = null;\n",
              "        }\n",
              "    };\n",
              "}\n",
              "; \n",
              " \n",
              " function merge(ranges) { //via https://stackoverflow.com/questions/26390938/merge-arrays-with-overlapping-values\n",
              "    var result = [], last;\n",
              "\n",
              "    ranges.sort(function (a, b) {\n",
              "        return a[0] - b[0] || a[1] - b[1]\n",
              "    }).forEach(function (r) {\n",
              "        if (!last || r[0] > last[1])\n",
              "            result.push(last = r);\n",
              "        else if (r[1] > last[1])\n",
              "            last[1] = r[1];\n",
              "    });\n",
              "\n",
              "    return result;\n",
              "}\n",
              "\n",
              "buildViz = function (d3) {\n",
              "    return function (widthInPixels = 1000,\n",
              "                     heightInPixels = 600,\n",
              "                     max_snippets = null,\n",
              "                     color = null,\n",
              "                     sortByDist = true,\n",
              "                     useFullDoc = false,\n",
              "                     greyZeroScores = false,\n",
              "                     asianMode = false,\n",
              "                     nonTextFeaturesMode = false,\n",
              "                     showCharacteristic = true,\n",
              "                     wordVecMaxPValue = false,\n",
              "                     saveSvgButton = false,\n",
              "                     reverseSortScoresForNotCategory = false,\n",
              "                     minPVal = 0.1,\n",
              "                     pValueColors = false,\n",
              "                     xLabelText = null,\n",
              "                     yLabelText = null,\n",
              "                     fullData = null,\n",
              "                     showTopTerms = true,\n",
              "                     showNeutral = false,\n",
              "                     getTooltipContent = null,\n",
              "                     xAxisValues = null,\n",
              "                     yAxisValues = null,\n",
              "                     colorFunc = null,\n",
              "                     showAxes = true,\n",
              "                     showExtra = false,\n",
              "                     doCensorPoints = true,\n",
              "                     centerLabelsOverPoints = false,\n",
              "                     xAxisLabels = null,\n",
              "                     yAxisLabels = null,\n",
              "                     topic_model_preview_size = 10,\n",
              "                     verticalLines = null,\n",
              "                     horizontal_line_y_position = null,\n",
              "                     vertical_line_x_position = null,\n",
              "                     unifiedContexts = false,\n",
              "                     showCategoryHeadings = true,\n",
              "                     showCrossAxes = true,\n",
              "                     divName = 'd3-div-1',\n",
              "                     alternativeTermFunc = null,\n",
              "                     includeAllContexts = false,\n",
              "                     showAxesAndCrossHairs = false,\n",
              "                     x_axis_values_format = '.3f',\n",
              "                     y_axis_values_format = '.3f',\n",
              "                     matchFullLine = false,\n",
              "                     maxOverlapping = -1,\n",
              "                     showCorpusStats = true,\n",
              "                     sortDocLabelsByName = false,\n",
              "                     alwaysJump = true,\n",
              "                     highlightSelectedCategory = false,\n",
              "                     showDiagonal = false,\n",
              "                     useGlobalScale = false,\n",
              "                     enableTermCategoryDescription = true,\n",
              "                     getCustomTermHtml = null,\n",
              "                     headerNames = null,\n",
              "                     headerSortingAlgos = null,\n",
              "                     ignoreCategories = false,\n",
              "                     backgroundLabels = null,\n",
              "                     labelPriorityColumn = null,\n",
              "                     textColorColumn = undefined,\n",
              "                     suppressTextColumn = undefined,\n",
              "                     backgroundColor = undefined,\n",
              "                     censorPointColumn = undefined,\n",
              "                     rightOrderColumn = undefined,\n",
              "                     subwordEncoding = null,\n",
              "                     topTermsLength = 14,\n",
              "                     topTermsLeftBuffer = 0,\n",
              "                     getColumnHeaderHTML = null,\n",
              "                     termWord = 'Term',\n",
              "                     showTermEtc = true,\n",
              "                     sortContextsByMeta = false,\n",
              "                     suppressCircles = true,\n",
              "                     showChart = true,\n",
              "    ) {\n",
              "        function formatTermForDisplay(term) {\n",
              "            if (subwordEncoding === 'RoBERTa' && (term.charCodeAt(0) === 288 || term.charCodeAt(0) === 289))\n",
              "                term = '_' + term.substr(1, term.length - 1);\n",
              "            return term;\n",
              "        }\n",
              "\n",
              "        //var divName = 'd3-div-1';\n",
              "        // Set the dimensions of the canvas / graph\n",
              "        var padding = {top: 30, right: 20, bottom: 30, left: 50};\n",
              "        if (!showAxes) {\n",
              "            padding = {top: 30, right: 20, bottom: 30, left: 50};\n",
              "        }\n",
              "        var margin = padding,\n",
              "            width = widthInPixels - margin.left - margin.right,\n",
              "            height = heightInPixels - margin.top - margin.bottom;\n",
              "        fullData.data.forEach(function (x, i) {\n",
              "            x.i = i\n",
              "        });\n",
              "\n",
              "        // Set the ranges\n",
              "        var x = d3.scaleLinear().range([0, width]);\n",
              "        var y = d3.scaleLinear().range([height, 0]);\n",
              "\n",
              "        if (unifiedContexts) {\n",
              "            document.querySelectorAll('#' + divName + '-' + 'notcol')\n",
              "                .forEach(function (x) {\n",
              "                    x.style.display = 'none'\n",
              "                });\n",
              "            document.querySelectorAll('.' + divName + '-' + 'contexts')\n",
              "                .forEach(function (x) {\n",
              "                    x.style.width = '90%'\n",
              "                });\n",
              "        } else if (showNeutral) {\n",
              "            if (showExtra) {\n",
              "                document.querySelectorAll('.' + divName + '-' + 'contexts')\n",
              "                    .forEach(function (x) {\n",
              "                        x.style.width = '25%'\n",
              "                        x.style.float = 'left'\n",
              "                    });\n",
              "\n",
              "                ['notcol', 'neutcol', 'extracol'].forEach(function (columnName) {\n",
              "                    document.querySelectorAll('#' + divName + '-' + columnName)\n",
              "                        .forEach(function (x) {\n",
              "                            x.style.display = 'inline'\n",
              "                            x.style.float = 'left'\n",
              "                            x.style.width = '25%'\n",
              "                        });\n",
              "                })\n",
              "\n",
              "            } else {\n",
              "                document.querySelectorAll('.' + divName + '-' + 'contexts')\n",
              "                    .forEach(function (x) {\n",
              "                        x.style.width = '33%'\n",
              "                        x.style.float = 'left'\n",
              "                    });\n",
              "\n",
              "                ['notcol', 'neutcol'].forEach(function (columnName) {\n",
              "                    document.querySelectorAll('#' + divName + '-' + columnName)\n",
              "                        .forEach(function (x) {\n",
              "                            x.style.display = 'inline'\n",
              "                            x.style.float = 'left'\n",
              "                            x.style.width = '33%'\n",
              "                        });\n",
              "                })\n",
              "\n",
              "\n",
              "            }\n",
              "        } else {\n",
              "            document.querySelectorAll('.' + divName + '-' + 'contexts')\n",
              "                .forEach(function (x) {\n",
              "                    x.style.width = '45%'\n",
              "                    //x.style.display = 'inline'\n",
              "                    x.style.float = 'left'\n",
              "                });\n",
              "\n",
              "            ['notcol'].forEach(function (columnName) {\n",
              "                document.querySelectorAll('#' + divName + '-' + columnName)\n",
              "                    .forEach(function (x) {\n",
              "                        //x.style.display = 'inline'\n",
              "                        x.style.float = 'left'\n",
              "                        x.style.width = '45%'\n",
              "                    });\n",
              "            })\n",
              "        }\n",
              "\n",
              "        var yAxis = null;\n",
              "        var xAxis = null;\n",
              "\n",
              "        function axisLabelerFactory(axis) {\n",
              "            if ((axis == \"x\" && xLabelText == null)\n",
              "                || (axis == \"y\" && yLabelText == null))\n",
              "                return function (d, i) {\n",
              "                    return [\"Infrequent\", \"Average\", \"Frequent\"][i];\n",
              "                };\n",
              "\n",
              "            return function (d, i) {\n",
              "                return [\"Low\", \"Medium\", \"High\"][i];\n",
              "            }\n",
              "        }\n",
              "\n",
              "\n",
              "        function bs(ar, x) {\n",
              "            function bsa(s, e) {\n",
              "                var mid = Math.floor((s + e) / 2);\n",
              "                var midval = ar[mid];\n",
              "                if (s == e) {\n",
              "                    return s;\n",
              "                }\n",
              "                if (midval == x) {\n",
              "                    return mid;\n",
              "                } else if (midval < x) {\n",
              "                    return bsa(mid + 1, e);\n",
              "                } else {\n",
              "                    return bsa(s, mid);\n",
              "                }\n",
              "            }\n",
              "\n",
              "            return bsa(0, ar.length);\n",
              "        }\n",
              "\n",
              "\n",
              "        console.log(\"fullData\");\n",
              "        console.log(fullData);\n",
              "\n",
              "\n",
              "        var sortedX = fullData.data.map(x => x).sort(function (a, b) {\n",
              "            return a.x < b.x ? -1 : (a.x == b.x ? 0 : 1);\n",
              "        }).map(function (x) {\n",
              "            return x.x\n",
              "        });\n",
              "\n",
              "        var sortedOx = fullData.data.map(x => x).sort(function (a, b) {\n",
              "            return a.ox < b.ox ? -1 : (a.ox == b.ox ? 0 : 1);\n",
              "        }).map(function (x) {\n",
              "            return x.ox\n",
              "        });\n",
              "\n",
              "        var sortedY = fullData.data.map(x => x).sort(function (a, b) {\n",
              "            return a.y < b.y ? -1 : (a.y == b.y ? 0 : 1);\n",
              "        }).map(function (x) {\n",
              "            return x.y\n",
              "        });\n",
              "\n",
              "        var sortedOy = fullData.data.map(x => x).sort(function (a, b) {\n",
              "            return a.oy < b.oy ? -1 : (a.oy == b.oy ? 0 : 1);\n",
              "        }).map(function (x) {\n",
              "            return x.oy\n",
              "        });\n",
              "        console.log(fullData.data[0])\n",
              "\n",
              "        function labelWithZScore(axis, axisName, tickPoints, axis_values_format) {\n",
              "            var myVals = axisName === 'x' ? sortedOx : sortedOy;\n",
              "            var myPlotedVals = axisName === 'x' ? sortedX : sortedY;\n",
              "            var ticks = tickPoints.map(function (x) {\n",
              "                return myPlotedVals[bs(myVals, x)]\n",
              "            });\n",
              "            return axis.tickValues(ticks).tickFormat(\n",
              "                function (d, i) {\n",
              "                    return d3.format(axis_values_format)(tickPoints[i]);\n",
              "                })\n",
              "        }\n",
              "\n",
              "        if (xAxisValues) {\n",
              "            xAxis = labelWithZScore(d3.axisBottom(x), 'x', xAxisValues, x_axis_values_format);\n",
              "        } else if (xAxisLabels) {\n",
              "            xAxis = d3.axisBottom(x)\n",
              "                .ticks(xAxisLabels.length)\n",
              "                .tickFormat(function (d, i) {\n",
              "                    return xAxisLabels[i];\n",
              "                });\n",
              "        } else {\n",
              "            xAxis = d3.axisBottom(x).ticks(3).tickFormat(axisLabelerFactory('x'));\n",
              "        }\n",
              "        if (yAxisValues) {\n",
              "            yAxis = labelWithZScore(d3.axisLeft(y), 'y', yAxisValues, y_axis_values_format);\n",
              "        } else if (yAxisLabels) {\n",
              "            yAxis = d3.axisLeft(y)\n",
              "                .ticks(yAxisLabels.length)\n",
              "                .tickFormat(function (d, i) {\n",
              "                    return yAxisLabels[i];\n",
              "                });\n",
              "        } else {\n",
              "            yAxis = d3.axisLeft(y).ticks(3).tickFormat(axisLabelerFactory('y'));\n",
              "        }\n",
              "\n",
              "        // var label = d3.select(\"body\").append(\"div\")\n",
              "        var label = d3.select('#' + divName).append(\"div\")\n",
              "            .attr(\"class\", \"label\");\n",
              "\n",
              "\n",
              "        var interpolateLightGreys = d3.interpolate(d3.rgb(230, 230, 230),\n",
              "            d3.rgb(130, 130, 130));\n",
              "        // setup fill color\n",
              "        if (color == null) {\n",
              "            color = d3.interpolateRdYlBu;\n",
              "        }\n",
              "        if ((headerNames !== undefined && headerNames !== null)\n",
              "            && (headerSortingAlgos !== undefined && headerSortingAlgos !== null)) {\n",
              "            showTopTerms = true;\n",
              "        }\n",
              "\n",
              "        var pixelsToAddToWidth = 200;\n",
              "        if (!showTopTerms && !showCharacteristic) {\n",
              "            pixelsToAddToWidth = 0;\n",
              "        }\n",
              "\n",
              "        if (backgroundColor !== undefined) {\n",
              "            document.body.style.backgroundColor = backgroundColor;\n",
              "        }\n",
              "\n",
              "        // Adds the svg canvas\n",
              "        // var svg = d3.select(\"body\")\n",
              "        svg = d3.select('#' + divName)\n",
              "            .append(\"svg\")\n",
              "            .attr(\"width\", width + margin.left + margin.right + pixelsToAddToWidth)\n",
              "            .attr(\"height\", height + margin.top + margin.bottom)\n",
              "            .append(\"g\")\n",
              "            .attr(\"transform\",\n",
              "                \"translate(\" + margin.left + \",\" + margin.top + \")\");\n",
              "\n",
              "\n",
              "        origSVGLeft = svg.node().getBoundingClientRect().left;\n",
              "        origSVGTop = svg.node().getBoundingClientRect().top;\n",
              "        var lastCircleSelected = null;\n",
              "\n",
              "        function getCorpusWordCounts() {\n",
              "            var binaryLabels = fullData.docs.labels.map(function (label) {\n",
              "                return 1 * (fullData.docs.categories[label] != fullData.info.category_internal_name);\n",
              "            });\n",
              "            var wordCounts = {}; // word -> [cat counts, not-cat-counts]\n",
              "            var wordCountSums = [0, 0];\n",
              "            fullData.docs.texts.forEach(function (text, i) {\n",
              "                text.toLowerCase().trim().split(/\\W+/).forEach(function (word) {\n",
              "                    if (word.trim() !== '') {\n",
              "                        if (!(word in wordCounts))\n",
              "                            wordCounts[word] = [0, 0];\n",
              "                        wordCounts[word][binaryLabels[i]]++;\n",
              "                        wordCountSums[binaryLabels[i]]++;\n",
              "                    }\n",
              "                })\n",
              "            });\n",
              "            return {\n",
              "                avgDocLen: (wordCountSums[0] + wordCountSums[1]) / fullData.docs.texts.length,\n",
              "                counts: wordCounts,\n",
              "                sums: wordCountSums,\n",
              "                uniques: [[0, 0]].concat(Object.keys(wordCounts).map(function (key) {\n",
              "                    return wordCounts[key];\n",
              "                })).reduce(function (a, b) {\n",
              "                    return [a[0] + (b[0] > 0), a[1] + (b[1] > 0)]\n",
              "                })\n",
              "            };\n",
              "        }\n",
              "\n",
              "        function getContextWordCounts(query) {\n",
              "            var wordCounts = {};\n",
              "            var wordCountSums = [0, 0];\n",
              "            var priorCountSums = [0, 0];\n",
              "            gatherTermContexts(termDict[query])\n",
              "                .contexts\n",
              "                .forEach(function (contextSet, categoryIdx) {\n",
              "                    contextSet.forEach(function (context) {\n",
              "                        context.snippets.forEach(function (snippet) {\n",
              "                            var tokens = snippet.toLowerCase().trim().replace('<b>', '').replace('</b>', '').split(/\\W+/);\n",
              "                            var matchIndices = [];\n",
              "                            tokens.forEach(function (word, i) {\n",
              "                                if (word === query) matchIndices.push(i)\n",
              "                            });\n",
              "                            tokens.forEach(function (word, i) {\n",
              "                                if (word.trim() !== '') {\n",
              "                                    var isValid = false;\n",
              "                                    for (var matchI in matchIndices) {\n",
              "                                        if (Math.abs(i - matchI) < 3) {\n",
              "                                            isValid = true;\n",
              "                                            break\n",
              "                                        }\n",
              "                                    }\n",
              "                                    if (isValid) {\n",
              "                                        //console.log([word, i, matchI, isValid]);\n",
              "                                        if (!(word in wordCounts)) {\n",
              "                                            var priorCounts = corpusWordCounts.counts[word]\n",
              "                                            wordCounts[word] = [0, 0].concat(priorCounts);\n",
              "                                            priorCountSums[0] += priorCounts[0];\n",
              "                                            priorCountSums[1] += priorCounts[1];\n",
              "                                        }\n",
              "                                        wordCounts[word][categoryIdx]++;\n",
              "                                        wordCountSums[categoryIdx]++;\n",
              "                                    }\n",
              "                                }\n",
              "                            })\n",
              "                        })\n",
              "                    })\n",
              "                });\n",
              "            return {\n",
              "                counts: wordCounts,\n",
              "                priorSums: priorCountSums,\n",
              "                sums: wordCountSums,\n",
              "                uniques: [[0, 0]].concat(Object.keys(wordCounts).map(function (key) {\n",
              "                    return wordCounts[key];\n",
              "                })).reduce(function (a, b) {\n",
              "                    return [a[0] + (b[0] > 0), a[1] + (b[1] > 0)];\n",
              "                })\n",
              "            }\n",
              "\n",
              "        }\n",
              "\n",
              "        function denseRank(ar) {\n",
              "            var markedAr = ar.map((x, i) => [x, i]).sort((a, b) => a[0] - b[0]);\n",
              "            var curRank = 1\n",
              "            var rankedAr = markedAr.map(\n",
              "                function (x, i) {\n",
              "                    if (i > 0 && x[0] != markedAr[i - 1][0]) {\n",
              "                        curRank++;\n",
              "                    }\n",
              "                    return [curRank, x[0], x[1]];\n",
              "                }\n",
              "            )\n",
              "            return rankedAr.map(x => x).sort((a, b) => (a[2] - b[2])).map(x => x[0]);\n",
              "        }\n",
              "\n",
              "\n",
              "        function getDenseRanks(fullData, categoryNum) {\n",
              "            console.log(\"GETTING DENSE RANKS\")\n",
              "            console.log(\"CAT NUM \" + categoryNum)\n",
              "            console.log(\"CAT NAME \" + fullData.docs.categories[categoryNum])\n",
              "            console.log(fullData)\n",
              "\n",
              "            var fgFreqs = Array(fullData.data.length).fill(0);\n",
              "            var bgFreqs = Array(fullData.data.length).fill(0);\n",
              "            var categoryTermCounts = fullData.termCounts[categoryNum];\n",
              "\n",
              "            Object.keys(categoryTermCounts).forEach(\n",
              "                key => fgFreqs[key] = categoryTermCounts[key][0]\n",
              "            )\n",
              "            fullData.termCounts.forEach(\n",
              "                function (categoryTermCounts, otherCategoryNum) {\n",
              "                    if (otherCategoryNum != categoryNum) {\n",
              "                        Object.keys(categoryTermCounts).forEach(\n",
              "                            key => bgFreqs[key] += categoryTermCounts[key][0]\n",
              "                        )\n",
              "                    }\n",
              "                }\n",
              "            )\n",
              "            var fgDenseRanks = denseRank(fgFreqs);\n",
              "            var bgDenseRanks = denseRank(bgFreqs);\n",
              "\n",
              "            var maxfgDenseRanks = Math.max(...fgDenseRanks);\n",
              "            var minfgDenseRanks = Math.min(...fgDenseRanks);\n",
              "            var scalefgDenseRanks = fgDenseRanks.map(\n",
              "                x => (x - minfgDenseRanks) / (maxfgDenseRanks - minfgDenseRanks)\n",
              "            )\n",
              "\n",
              "            var maxbgDenseRanks = Math.max(...bgDenseRanks);\n",
              "            var minbgDenseRanks = Math.min(...bgDenseRanks);\n",
              "            var scalebgDenseRanks = bgDenseRanks.map(\n",
              "                x => (x - minbgDenseRanks) / (maxbgDenseRanks - minbgDenseRanks)\n",
              "            )\n",
              "\n",
              "            return {\n",
              "                'fg': scalefgDenseRanks,\n",
              "                'bg': scalebgDenseRanks,\n",
              "                'bgFreqs': bgFreqs,\n",
              "                'fgFreqs': fgFreqs,\n",
              "                'term': fullData.data.sort((a, b) => a.i - b.i).map(x => x.term)\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function getCategoryDenseRankScores(fullData, categoryNum) {\n",
              "            var denseRanks = getDenseRanks(fullData, categoryNum)\n",
              "            return denseRanks.fg.map((x, i) => x - denseRanks.bg[i]);\n",
              "        }\n",
              "\n",
              "        function getTermCounts(fullData) {\n",
              "            var counts = Array(fullData.data.length).fill(0);\n",
              "            fullData.termCounts.forEach(\n",
              "                function (categoryTermCounts) {\n",
              "                    Object.keys(categoryTermCounts).forEach(\n",
              "                        key => counts[key] = categoryTermCounts[key][0]\n",
              "                    )\n",
              "                }\n",
              "            )\n",
              "            return counts;\n",
              "        }\n",
              "\n",
              "        function getContextWordLORIPs(query) {\n",
              "            var contextWordCounts = getContextWordCounts(query);\n",
              "            var ni_k = contextWordCounts.sums[0];\n",
              "            var nj_k = contextWordCounts.sums[1];\n",
              "            var n = ni_k + nj_k;\n",
              "            //var ai_k0 = contextWordCounts.priorSums[0] + contextWordCounts.priorSums[1];\n",
              "            //var aj_k0 = contextWordCounts.priorSums[0] + contextWordCounts.priorSums[1];\n",
              "            var a0 = 0.00001 //corpusWordCounts.avgDocLen;\n",
              "            var a_k0 = Object.keys(contextWordCounts.counts)\n",
              "                .map(function (x) {\n",
              "                    var counts = contextWordCounts.counts[x];\n",
              "                    return a0 * (counts[2] + counts[3]) /\n",
              "                        (contextWordCounts.priorSums[0] + contextWordCounts.priorSums[1]);\n",
              "                })\n",
              "                .reduce(function (a, b) {\n",
              "                    return a + b\n",
              "                });\n",
              "            var ai_k0 = a_k0 / ni_k;\n",
              "            var aj_k0 = a_k0 / nj_k;\n",
              "            var scores = Object.keys(contextWordCounts.counts).map(\n",
              "                function (word) {\n",
              "                    var countData = contextWordCounts.counts[word];\n",
              "                    var yi = countData[0];\n",
              "                    var yj = countData[1];\n",
              "                    //var ai = countData[2];\n",
              "                    //var aj = countData[3];\n",
              "                    //var ai = countData[2] + countData[3];\n",
              "                    //var aj = ai;\n",
              "                    //var ai = (countData[2] + countData[3]) * a0/ni_k;\n",
              "                    //var aj = (countData[2] + countData[3]) * a0/nj_k;\n",
              "                    var ai = a0 * (countData[2] + countData[3]) /\n",
              "                        (contextWordCounts.priorSums[0] + contextWordCounts.priorSums[1]);\n",
              "                    var aj = ai;\n",
              "                    var deltahat_i_j =\n",
              "                        +Math.log((yi + ai) * 1. / (ni_k + ai_k0 - yi - ai))\n",
              "                        - Math.log((yj + aj) * 1. / (nj_k + aj_k0 - yj - aj));\n",
              "                    var var_deltahat_i_j = 1. / (yi + ai) + 1. / (ni_k + ai_k0 - yi - ai)\n",
              "                        + 1. / (yj + aj) + 1. / (nj_k + aj_k0 - yj - aj);\n",
              "                    var zeta_ij = deltahat_i_j / Math.sqrt(var_deltahat_i_j);\n",
              "                    return [word, yi, yj, ai, aj, ai_k0, zeta_ij];\n",
              "                }\n",
              "            ).sort(function (a, b) {\n",
              "                return b[5] - a[5];\n",
              "            });\n",
              "            return scores;\n",
              "        }\n",
              "\n",
              "        function getContextWordSFS(query) {\n",
              "            // from https://stackoverflow.com/questions/14846767/std-normal-cdf-normal-cdf-or-error-function\n",
              "            function cdf(x, mean, variance) {\n",
              "                return 0.5 * (1 + erf((x - mean) / (Math.sqrt(2 * variance))));\n",
              "            }\n",
              "\n",
              "            function erf(x) {\n",
              "                // save the sign of x\n",
              "                var sign = (x >= 0) ? 1 : -1;\n",
              "                x = Math.abs(x);\n",
              "\n",
              "                // constants\n",
              "                var a1 = 0.254829592;\n",
              "                var a2 = -0.284496736;\n",
              "                var a3 = 1.421413741;\n",
              "                var a4 = -1.453152027;\n",
              "                var a5 = 1.061405429;\n",
              "                var p = 0.3275911;\n",
              "\n",
              "                // A&S formula 7.1.26\n",
              "                var t = 1.0 / (1.0 + p * x);\n",
              "                var y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.exp(-x * x);\n",
              "                return sign * y; // erf(-x) = -erf(x);\n",
              "            }\n",
              "\n",
              "            function scale(a) {\n",
              "                return Math.log(a + 0.0000001);\n",
              "            }\n",
              "\n",
              "            var contextWordCounts = getContextWordCounts(query);\n",
              "            var wordList = Object.keys(contextWordCounts.counts).map(function (word) {\n",
              "                return contextWordCounts.counts[word].concat([word]);\n",
              "            });\n",
              "            var cat_freq_xbar = wordList.map(function (x) {\n",
              "                return scale(x[0])\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var cat_freq_var = wordList.map(function (x) {\n",
              "                return Math.pow((scale(x[0]) - cat_freq_xbar), 2);\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var cat_prec_xbar = wordList.map(function (x) {\n",
              "                return scale(x[0] / (x[0] + x[1]));\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var cat_prec_var = wordList.map(function (x) {\n",
              "                return Math.pow((scale(x[0] / (x[0] + x[1])) - cat_prec_xbar), 2);\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "\n",
              "            var ncat_freq_xbar = wordList.map(function (x) {\n",
              "                return scale(x[0])\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var ncat_freq_var = wordList.map(function (x) {\n",
              "                return Math.pow((scale(x[0]) - ncat_freq_xbar), 2);\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var ncat_prec_xbar = wordList.map(function (x) {\n",
              "                return scale(x[0] / (x[0] + x[1]));\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var ncat_prec_var = wordList.map(function (x) {\n",
              "                return Math.pow((scale(x[0] / (x[0] + x[1])) - ncat_prec_xbar), 2);\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "\n",
              "            function scaledFScore(cnt, other, freq_xbar, freq_var, prec_xbar, prec_var) {\n",
              "                var beta = 1.5;\n",
              "                var normFreq = cdf(scale(cnt), freq_xbar, freq_var);\n",
              "                var normPrec = cdf(scale(cnt / (cnt + other)), prec_xbar, prec_var);\n",
              "                return (1 + Math.pow(beta, 2)) * normFreq * normPrec / (Math.pow(beta, 2) * normFreq + normPrec);\n",
              "            }\n",
              "\n",
              "            var sfs = wordList.map(function (x) {\n",
              "                cat_sfs = scaledFScore(x[0], x[1], cat_freq_xbar,\n",
              "                    cat_freq_var, cat_prec_xbar, cat_prec_var);\n",
              "                ncat_sfs = scaledFScore(x[1], x[0], ncat_freq_xbar,\n",
              "                    ncat_freq_var, ncat_prec_xbar, ncat_prec_var);\n",
              "                return [cat_sfs > ncat_sfs ? cat_sfs : -ncat_sfs].concat(x);\n",
              "\n",
              "            }).sort(function (a, b) {\n",
              "                return b[0] - a[0];\n",
              "            });\n",
              "            return sfs;\n",
              "        }\n",
              "\n",
              "        function deselectLastCircle() {\n",
              "            if (lastCircleSelected) {\n",
              "                lastCircleSelected.style[\"stroke\"] = null;\n",
              "                lastCircleSelected = null;\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function getSentenceBoundaries(text) {\n",
              "            // !!! need to use spacy's sentence splitter\n",
              "            if (asianMode) {\n",
              "                var sentenceRe = /\\n/gmi;\n",
              "            } else {\n",
              "                var sentenceRe = /\\(?[^\\.\\?\\!\\n\\b]+[\\n\\.!\\?]\\)?/g;\n",
              "            }\n",
              "            var offsets = [];\n",
              "            var match;\n",
              "            while ((match = sentenceRe.exec(text)) != null) {\n",
              "                offsets.push(match.index);\n",
              "            }\n",
              "            offsets.push(text.length);\n",
              "            return offsets;\n",
              "        }\n",
              "\n",
              "        function getMatchingSnippet(text, boundaries, start, end) {\n",
              "            var sentenceStart = null;\n",
              "            var sentenceEnd = null;\n",
              "            for (var i in boundaries) {\n",
              "                var position = boundaries[i];\n",
              "                if (position <= start && (sentenceStart == null || position > sentenceStart)) {\n",
              "                    sentenceStart = position;\n",
              "                }\n",
              "                if (position >= end) {\n",
              "                    sentenceEnd = position;\n",
              "                    break;\n",
              "                }\n",
              "            }\n",
              "            var snippet = (text.slice(sentenceStart, start) + \"<b>\" + text.slice(start, end)\n",
              "                + \"</b>\" + text.slice(end, sentenceEnd)).trim();\n",
              "            if (sentenceStart == null) {\n",
              "                sentenceStart = 0;\n",
              "            }\n",
              "            return {'snippet': snippet, 'sentenceStart': sentenceStart};\n",
              "        }\n",
              "\n",
              "        function gatherTermContexts(d, includeAll = true) {\n",
              "            var category_name = fullData['info']['category_name'];\n",
              "            var not_category_name = fullData['info']['not_category_name'];\n",
              "            var matches = [[], [], [], []];\n",
              "\n",
              "            if (fullData.docs === undefined) return matches;\n",
              "            if (!nonTextFeaturesMode) {\n",
              "                return searchInText(d, includeAll);\n",
              "            } else {\n",
              "                return searchInExtraFeatures(d, includeAll);\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function searchInExtraFeatures(d) {\n",
              "            var matches = [[], [], [], []];\n",
              "            var term = d.term;\n",
              "            var categoryNum = fullData.docs.categories.indexOf(fullData.info.category_internal_name);\n",
              "            var notCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.not_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "            var neutralCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.neutral_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "            var extraCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.extra_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "\n",
              "            var pattern = null;\n",
              "            if ('metalists' in fullData && term in fullData.metalists) {\n",
              "                // from https://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex\n",
              "                function escapeRegExp(str) {\n",
              "                    return str.replace(/[\\\\?\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|\\']/g, \"\\\\$&\");\n",
              "                }\n",
              "\n",
              "                console.log('term');\n",
              "                console.log(term);\n",
              "                pattern = new RegExp(\n",
              "                    '(\\\\W|^)(' + fullData.metalists[term].map(escapeRegExp).join('|') + ')(\\\\W|$)',\n",
              "                    'gim'\n",
              "                );\n",
              "            }\n",
              "            for (var i in fullData.docs.extra) {\n",
              "                if (term in fullData.docs.extra[i]) {\n",
              "                    var strength = fullData.docs.extra[i][term] /\n",
              "                        Object.values(fullData.docs.extra[i]).reduce(\n",
              "                            function (a, b) {\n",
              "                                return a + b\n",
              "                            });\n",
              "\n",
              "                    var docLabel = fullData.docs.labels[i];\n",
              "                    var numericLabel = -1;\n",
              "                    if (docLabel == categoryNum) {\n",
              "                        numericLabel = 0;\n",
              "                    } else if (notCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 1;\n",
              "                    } else if (neutralCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 2;\n",
              "                    } else if (extraCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 3;\n",
              "                    }\n",
              "                    if (numericLabel == -1) {\n",
              "                        continue;\n",
              "                    }\n",
              "                    var text = fullData.docs.texts[i];\n",
              "\n",
              "                    if (fullData.offsets !== undefined) {\n",
              "\n",
              "                        if (fullData.offsets[term] !== undefined && fullData.offsets[term][i] !== undefined) {\n",
              "                            let curMatch = {\n",
              "                                'id': i,\n",
              "                                'snippets': [],\n",
              "                                'strength': strength,\n",
              "                                'docLabel': docLabel,\n",
              "                                'meta': fullData.docs.meta ? fullData.docs.meta[i] : \"\"\n",
              "                            }\n",
              "\n",
              "                            // remove duplicate offsets\n",
              "                            // merge overlapping offsets\n",
              "                            let offsets = merge(fullData.offsets[term][i]);\n",
              "\n",
              "                            var snippetPadding = 100;\n",
              "                            if(useFullDoc) {\n",
              "                                snippetPadding = 100000000000000;\n",
              "                            }\n",
              "\n",
              "                            let offsetChunks = [];\n",
              "                            let curChunk = [];\n",
              "                            for (let j = 0; j < offsets.length; j++) {\n",
              "                                //if (j > 0 && (offsets[j][0] - offsets[j - 1][1] >= snippetPadding)) {\n",
              "                                if (j > 0 && (offsets[j][0] - curChunk[0][1] >= snippetPadding)) {\n",
              "                                    offsetChunks.push(curChunk);\n",
              "                                    curChunk = []\n",
              "                                }\n",
              "                                curChunk.push(offsets[j])\n",
              "                            }\n",
              "                            offsetChunks.push(curChunk);\n",
              "\n",
              "                            console.log()\n",
              "                            let highlightOpen = '<b style=\"background-color: lightgoldenrodyellow\">';\n",
              "                            let highlightClose = '</b>';\n",
              "\n",
              "                            offsetChunks.map(\n",
              "                                function (curOffsets) {\n",
              "                                    if (curOffsets.length > 0) {\n",
              "                                        let offsetStart = curOffsets[0][0]\n",
              "                                        let offsetEnd = curOffsets[curOffsets.length - 1][1];\n",
              "                                        let spanStart = Math.max(0, offsetStart - snippetPadding);\n",
              "                                        let spanEnd = Math.min(offsetEnd + snippetPadding, text.length);\n",
              "                                        let snippet = text.substr(spanStart, spanEnd - spanStart);\n",
              "                                        console.log(\"Snippet\")\n",
              "                                        console.log(snippet)\n",
              "                                        console.log(\"curOffsets\")\n",
              "                                        console.log(curOffsets)\n",
              "                                        curOffsets.reverse().forEach(\n",
              "                                            function (offset) {\n",
              "                                                let curOffsetStart = offset[0] - spanStart;\n",
              "                                                let curOffsetEnd = offset[1] - spanStart;\n",
              "\n",
              "                                                snippet = (\n",
              "                                                    snippet.substr(0, curOffsetStart)\n",
              "                                                    + highlightOpen\n",
              "                                                    + snippet.substr(curOffsetStart, curOffsetEnd - curOffsetStart)\n",
              "                                                    + highlightClose\n",
              "                                                    + snippet.substr(curOffsetEnd, snippet.length - curOffsetEnd)\n",
              "                                                )\n",
              "                                            }\n",
              "                                        )\n",
              "\n",
              "                                        if (spanStart > 0)\n",
              "                                            snippet = '...' + snippet;\n",
              "                                        if (snippetPadding < text.length - offsetEnd)\n",
              "                                            snippet = snippet + '...'\n",
              "                                        curMatch.snippets.push(snippet)\n",
              "                                    }\n",
              "                                }\n",
              "                            )\n",
              "                            matches[numericLabel].push(curMatch);\n",
              "\n",
              "                        }\n",
              "                    } else {\n",
              "\n",
              "                        if (!useFullDoc)\n",
              "                            text = text.slice(0, 300);\n",
              "                        if (pattern !== null) {\n",
              "\n",
              "\n",
              "                            text = text.replace(pattern, '<b>$&</b>');\n",
              "                        }\n",
              "                        let curMatch = {\n",
              "                            'id': i,\n",
              "                            'snippets': [text],\n",
              "                            'strength': strength,\n",
              "                            'docLabel': docLabel,\n",
              "                            'meta': fullData.docs.meta ? fullData.docs.meta[i] : \"\"\n",
              "                        }\n",
              "\n",
              "                        matches[numericLabel].push(curMatch);\n",
              "                    }\n",
              "                }\n",
              "            }\n",
              "            for (var i in [0, 1]) {\n",
              "                if(sortContextsByMeta) {\n",
              "                    matches[i] = matches[i].sort(function (a, b) {\n",
              "                        return a.meta < b.meta ? 1 : -1\n",
              "                    })\n",
              "                } else {\n",
              "                    matches[i] = matches[i].sort(function (a, b) {\n",
              "                        return a.strength < b.strength ? 1 : -1\n",
              "                    })\n",
              "                }\n",
              "            }\n",
              "            return {'contexts': matches, 'info': d};\n",
              "        }\n",
              "\n",
              "        // from https://mathiasbynens.be/notes/es-unicode-property-escapes#emoji\n",
              "        var emojiRE = (/(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC69\\uDC6E\\uDC70-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3D\\uDD3E\\uDDD1-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])?|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDEEB\\uDEEC\\uDEF4-\\uDEF8]|\\uD83E[\\uDD10-\\uDD3A\\uDD3C-\\uDD3E\\uDD40-\\uDD45\\uDD47-\\uDD4C\\uDD50-\\uDD6B\\uDD80-\\uDD97\\uDDC0\\uDDD0-\\uDDE6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEF8]|\\uD83E[\\uDD10-\\uDD3A\\uDD3C-\\uDD3E\\uDD40-\\uDD45\\uDD47-\\uDD4C\\uDD50-\\uDD6B\\uDD80-\\uDD97\\uDDC0\\uDDD0-\\uDDE6])\\uFE0F/g);\n",
              "\n",
              "        function isEmoji(str) {\n",
              "            if (str.match(emojiRE)) return true;\n",
              "            return false;\n",
              "        }\n",
              "\n",
              "        function displayObscuredTerms(obscuredTerms, data, term, termInfo, div = '#' + divName + '-' + 'overlapped-terms') {\n",
              "            d3.select('#' + divName + '-' + 'overlapped-terms')\n",
              "                .selectAll('div')\n",
              "                .remove();\n",
              "            d3.select(div)\n",
              "                .selectAll('div')\n",
              "                .remove();\n",
              "            if (obscuredTerms.length > 1 && maxOverlapping !== 0) {\n",
              "                var obscuredDiv = d3.select(div)\n",
              "                    .append('div')\n",
              "                    .attr(\"class\", \"obscured\")\n",
              "                    .style('align', 'center')\n",
              "                    .style('text-align', 'center')\n",
              "                    .html(\"<b>\\\"\" + term + \"\\\" obstructs</b>: \");\n",
              "                obscuredTerms.map(\n",
              "                    function (term, i) {\n",
              "                        if (maxOverlapping === -1 || i < maxOverlapping) {\n",
              "                            makeWordInteractive(\n",
              "                                data,\n",
              "                                svg,\n",
              "                                obscuredDiv.append(\"text\").text(term),\n",
              "                                term,\n",
              "                                data.filter(t => t.term === term)[0],//termInfo\n",
              "                                false\n",
              "                            );\n",
              "                            if (i < obscuredTerms.length - 1\n",
              "                                && (maxOverlapping === -1 || i < maxOverlapping - 1)) {\n",
              "                                obscuredDiv.append(\"text\").text(\", \");\n",
              "                            }\n",
              "                        } else if (i === maxOverlapping && i !== obscuredTerms.length - 1) {\n",
              "                            obscuredDiv.append(\"text\").text(\"...\");\n",
              "                        }\n",
              "                    }\n",
              "                )\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function displayLineChart(termInfo, contexts) {\n",
              "            var divid = \"#\" + divName + \"-lineplot\",\n",
              "                margin = {top: 10, right: 30, bottom: 30, left: 80},\n",
              "                width = parseInt(0.9*widthInPixels) - margin.left - margin.right,\n",
              "                height = 200 - margin.top - margin.bottom;\n",
              "            d3.select(divid).selectAll(\"*\").remove();\n",
              "\n",
              "            // append the svg object to the body of the page\n",
              "            var basesvg = d3.select(divid)\n",
              "              .append(\"svg\")\n",
              "                .attr(\"width\", width + margin.left + margin.right)\n",
              "                .attr(\"height\", height + margin.top + margin.bottom)\n",
              "             var linesvg = basesvg.append(\"g\")\n",
              "                .attr(\"transform\",\n",
              "                      \"translate(\" + margin.left + \",\" + margin.top + \")\")\n",
              "\n",
              "            var docLabelCounts = fullData.docs.labels.reduce(\n",
              "                function (map, label) {\n",
              "                    map[label] = (map[label] || 0) + 1;\n",
              "                    return map;\n",
              "                },\n",
              "                Object.create(null)\n",
              "            );\n",
              "            var numMatches = Object.create(null);\n",
              "            var allContexts = contexts[0].concat(contexts[1]).concat(contexts[2]).concat(contexts[3]);\n",
              "            allContexts.forEach(function (singleDoc) {\n",
              "               numMatches[singleDoc.docLabel] = (numMatches[singleDoc.docLabel] || 0) + 1;\n",
              "            });\n",
              "            var docLabelCountsSorted = Object.keys(docLabelCounts).map(key => ({\n",
              "               \"label\": fullData.docs.categories[key],\n",
              "               \"labelNum\": key,\n",
              "               \"matches\": numMatches[key] || 0,\n",
              "               \"overall\": docLabelCounts[key],\n",
              "               'percent': (numMatches[key] || 0) * 100. / docLabelCounts[key]\n",
              "               })\n",
              "            ).sort(function (a, b) {\n",
              "               return a['label'] < b['label'] ? -1 : a['label'] > b['label'] ? 1 : 0\n",
              "            }).map((v, idx) => ({...v, idx: idx}));\n",
              "\n",
              "            var chartData = d3.entries(docLabelCountsSorted);\n",
              "\n",
              "            var chartx = d3.scaleLinear()\n",
              "               .domain(d3.extent(docLabelCountsSorted, function(d) { return d.idx; }))\n",
              "               .range([ 0, width ]);\n",
              "\n",
              "            linesvg.append(\"g\")\n",
              "               .attr(\"transform\", \"translate(0,\" + height + \")\")\n",
              "               .call(d3.axisBottom(chartx)\n",
              "                     .ticks(5)\n",
              "                     .tickFormat(function(d,i) {return docLabelCountsSorted[d].label}));\n",
              "\n",
              "\n",
              "            var charty = d3.scaleLinear()\n",
              "                .domain([0, d3.max(docLabelCountsSorted, function(d) { return +d.percent; })])\n",
              "                .range([ height, 0 ]);\n",
              "\n",
              "            linesvg.append(\"g\").call(d3.axisLeft(charty));\n",
              "\n",
              "            linesvg.append(\"text\")\n",
              "                .attr(\"transform\", \"rotate(-90)\")\n",
              "                .attr(\"x\", 0 - (height / 2))\n",
              "                .attr(\"y\", -40)\n",
              "                .attr(\"dy\", \"1em\")\n",
              "                .style(\"text-anchor\", \"middle\")\n",
              "                .text(\"% documents\");\n",
              "\n",
              "\n",
              "            basesvg.\n",
              "                on(\"pointerenter pointermove\", function(d) {\n",
              "                    var matrix = this.getScreenCTM()\n",
              "                        .translate(+ this.getAttribute(\"cx\"), + this.getAttribute(\"cy\"));\n",
              "                    var mousePosition = d3.mouse(this);\n",
              "                    var clickedIndex = Math.round(chartx.invert(d3.mouse(this)[0] - margin.left));\n",
              "                    var clickedInfo = docLabelCountsSorted[clickedIndex];\n",
              "                    var clickedLabel = clickedInfo.label;\n",
              "                    console.log(clickedInfo)\n",
              "                    chartTooltip.transition().duration(0).style('opacity', 0);\n",
              "                    chartTooltip.transition()\n",
              "                        .duration(0)\n",
              "                        .style(\"opacity\", 1)\n",
              "                        .style(\"z-index\", 10000000)\n",
              "                    var yChartPos = charty(clickedInfo.percent)\n",
              "                    chartTooltip.html(\n",
              "                        clickedLabel + '<br/>Matched docs: ' + clickedInfo.matches\n",
              "                        + ' of ' + clickedInfo.overall + '<br/>' + parseFloat(clickedInfo.percent).toFixed(4) + \"%\"\n",
              "                    ).style(\"left\", (window.pageXOffset + matrix.e + mousePosition[0] - margin.left) + \"px\")\n",
              "                     .style(\"top\", (window.pageYOffset + matrix.f + yChartPos - 60) + \"px\")\n",
              "                }).on('pointerleave', function () {\n",
              "                    chartTooltip.transition().duration(0).style('opacity', 0)\n",
              "                }).on(\"click\", function(d, i) {\n",
              "                    var mousePosition = d3.mouse(this);\n",
              "                    var clickedIndex = Math.round(chartx.invert(mousePosition[0] - margin.left));\n",
              "                    var clickedInfo = docLabelCountsSorted[clickedIndex];\n",
              "                    var clickedLabel = clickedInfo.label;\n",
              "                    console.log(\"clicked\"); console.log(mousePosition);\n",
              "                    console.log(clickedLabel);\n",
              "                    console.log(clickedInfo);\n",
              "                    window.location.hash = divId + 'egory' + clickedIndex;\n",
              "                    chartTooltip.transition().duration(0).style('opacity', 0)\n",
              "                })\n",
              "\n",
              "            console.log(chartData)\n",
              "            var valueline = d3.line()\n",
              "                .x(function (d) {\n",
              "                    return chartx(d.idx);\n",
              "                })\n",
              "                .y(function (d) {\n",
              "                    return charty(d.percent);\n",
              "                });\n",
              "\n",
              "            linesvg.append(\"path\")\n",
              "                .attr(\"class\", \"line\")\n",
              "                //.style(\"stroke-dasharray\", \"5,5\")\n",
              "                //.style(\"stroke\", \"#cccccc\")\n",
              "                //.style(\"stroke-width\", \"1px\")\n",
              "                .attr(\"fill\", \"none\")\n",
              "                .attr(\"stroke\", function(d){ return '#0000FF' })\n",
              "                .attr(\"stroke-width\", 1)\n",
              "                .attr(\"d\", valueline(docLabelCountsSorted.sort((a, b) => b.x - a.x)))\n",
              "            var chartTooltip = d3.select('#' + divName)\n",
              "                .append(\"div\")\n",
              "                .attr(\"class\", \"tooltipscore\")\n",
              "                .style(\"opacity\", 0);\n",
              "\n",
              "        }\n",
              "\n",
              "        function displayTermContexts(data, termInfo, jump = alwaysJump, includeAll = false) {\n",
              "            var contexts = termInfo.contexts;\n",
              "            var info = termInfo.info;\n",
              "            var notmatches = termInfo.notmatches;\n",
              "            if (contexts[0].length + contexts[1].length + contexts[2].length + contexts[3].length == 0) {\n",
              "                //return null;\n",
              "            }\n",
              "            //!!! Future feature: context words\n",
              "            //var contextWords = getContextWordSFS(info.term);\n",
              "            //var contextWords = getContextWordLORIPs(info.term);\n",
              "            //var categoryNames = [fullData.info.category_name,\n",
              "            //    fullData.info.not_category_name];\n",
              "            var catInternalName = fullData.info.category_internal_name;\n",
              "\n",
              "\n",
              "            function addSnippets(contexts, divId, isMatch = true) {\n",
              "                var meta = contexts.meta ? contexts.meta : '&nbsp;';\n",
              "                var headClass = 'snippet_meta docLabel' + contexts.docLabel;\n",
              "                var snippetClass = 'snippet docLabel' + contexts.docLabel;\n",
              "                if (!isMatch) {\n",
              "                    headClass = 'snippet_meta not_match docLabel' + contexts.docLabel;\n",
              "                    snippetClass = 'snippet not_match docLabel' + contexts.docLabel;\n",
              "                }\n",
              "                d3.select(divId)\n",
              "                    .append(\"div\")\n",
              "                    .attr('class', headClass)\n",
              "                    .html(meta);\n",
              "                contexts.snippets.forEach(function (snippet) {\n",
              "                    d3.select(divId)\n",
              "                        .append(\"div\")\n",
              "                        .attr('class', snippetClass)\n",
              "                        .html(snippet);\n",
              "                });\n",
              "\n",
              "            }\n",
              "\n",
              "\n",
              "\n",
              "            if (ignoreCategories) {\n",
              "                divId = '#' + divName + '-' + 'cat';\n",
              "\n",
              "                var numMatches = Object.create(null);\n",
              "                var temp = d3.select(divId).selectAll(\"div\").remove();\n",
              "                var allContexts = contexts[0].concat(contexts[1]).concat(contexts[2]).concat(contexts[3]);\n",
              "                var allNotMatches = [];\n",
              "                if (notmatches !== undefined)\n",
              "                    allNotMatches = notmatches[0].concat(notmatches[1]).concat(notmatches[2]).concat(notmatches[3]);\n",
              "                d3.select('#' + divName + '-' + 'categoryinfo').selectAll(\"div\").remove();\n",
              "                var numDocs = fullData.docs.texts.length.toLocaleString('en');\n",
              "                var numMatches = allContexts.length;\n",
              "                d3.select(divId)\n",
              "                    .append(\"div\")\n",
              "                    .attr('class', 'topic_preview')\n",
              "                    .attr('text-align', \"center\")\n",
              "                    .html(\n",
              "                        \"Matched \" + numMatches + \" out of \" + numDocs + ' documents: '\n",
              "                        + parseFloat(100 * parseInt(numMatches) / parseInt(numDocs)).toFixed(4) + '%'\n",
              "                    );\n",
              "\n",
              "                if (allContexts.length > 0) {\n",
              "                    var headerClassName = 'text_header';\n",
              "                    allContexts.forEach(function (singleDoc) {\n",
              "                        addSnippets(singleDoc, divId);\n",
              "                    });\n",
              "                    if (includeAll) {\n",
              "                        allNotMatches.forEach(function (singleDoc) {\n",
              "                            addSnippets(singleDoc, divId, false);\n",
              "                        });\n",
              "                    }\n",
              "                }\n",
              "\n",
              "            } else if (unifiedContexts)\n",
              "             {\n",
              "                divId = '#' + divName + '-' + 'cat';\n",
              "                var docLabelCounts = fullData.docs.labels.reduce(\n",
              "                    function (map, label) {\n",
              "                        map[label] = (map[label] || 0) + 1;\n",
              "                        return map;\n",
              "                    },\n",
              "                    Object.create(null)\n",
              "                );\n",
              "                var numMatches = Object.create(null);\n",
              "                var temp = d3.select(divId).selectAll(\"div\").remove();\n",
              "                var allContexts = contexts[0].concat(contexts[1]).concat(contexts[2]).concat(contexts[3]);\n",
              "                allContexts.forEach(function (singleDoc) {\n",
              "                    numMatches[singleDoc.docLabel] = (numMatches[singleDoc.docLabel] || 0) + 1;\n",
              "                });\n",
              "                var allNotMatches = [];\n",
              "                if (notmatches !== undefined)\n",
              "                    allNotMatches = notmatches[0].concat(notmatches[1]).concat(notmatches[2]).concat(notmatches[3]);\n",
              "                displayLineChart(termInfo, contexts)\n",
              "                /*contexts.forEach(function(context) {\n",
              "                     context.forEach(function (singleDoc) {\n",
              "                         numMatches[singleDoc.docLabel] = (numMatches[singleDoc.docLabel]||0) + 1;\n",
              "                         addSnippets(singleDoc, divId);\n",
              "                     });\n",
              "                 });*/\n",
              "                console.log(\"ORDERING !!!!!\");\n",
              "                console.log(fullData.info.category_name);\n",
              "                console.log(sortDocLabelsByName);\n",
              "                var docLabelCountsSorted = Object.keys(docLabelCounts).map(key => (\n",
              "                    {\n",
              "                        \"label\": fullData.docs.categories[key],\n",
              "                        \"labelNum\": key,\n",
              "                        \"matches\": numMatches[key] || 0,\n",
              "                        \"overall\": docLabelCounts[key],\n",
              "                        'percent': (numMatches[key] || 0) * 100. / docLabelCounts[key]\n",
              "                    }))\n",
              "                    .sort(function (a, b) {\n",
              "                        if (highlightSelectedCategory) {\n",
              "                            if (a['label'] === fullData.info.category_name) {\n",
              "                                return -1;\n",
              "                            }\n",
              "                            if (b['label'] === fullData.info.category_name) {\n",
              "                                return 1;\n",
              "                            }\n",
              "                        }\n",
              "                        if (sortDocLabelsByName) {\n",
              "                            return a['label'] < b['label'] ? 1 : a['label'] > b['label'] ? -1 : 0;\n",
              "                        } else {\n",
              "                            return b.percent - a.percent;\n",
              "                        }\n",
              "                    });\n",
              "\n",
              "                console.log(\"docLabelCountsSorted\")\n",
              "                console.log(docLabelCountsSorted);\n",
              "                console.log(numMatches)\n",
              "                console.log('#' + divName + '-' + 'categoryinfo')\n",
              "                d3.select('#' + divName + '-' + 'categoryinfo').selectAll(\"div\").remove();\n",
              "                if (showCategoryHeadings) {\n",
              "                    d3.select('#' + divName + '-' + 'categoryinfo').attr('display', 'inline');\n",
              "                }\n",
              "\n",
              "                function getCategoryStatsHTML(counts) {\n",
              "                    return counts.matches + \" document\"\n",
              "                        + (counts.matches == 1 ? \"\" : \"s\") + \" out of \" + counts.overall + ': '\n",
              "                        + counts['percent'].toFixed(2) + '%';\n",
              "                }\n",
              "\n",
              "                function getCategoryInlineHeadingHTML(counts) {\n",
              "                    return '<a name=\"' + divName + '-category'\n",
              "                        + counts.labelNum + '\"></a>'\n",
              "                        + (ignoreCategories ? \"\" : counts.label + \": \") + \"<span class=topic_preview>\"\n",
              "                        + getCategoryStatsHTML(counts)\n",
              "                        + \"</span>\";\n",
              "                }\n",
              "\n",
              "\n",
              "                docLabelCountsSorted.forEach(function (counts) {\n",
              "                    var htmlToAdd = \"\";\n",
              "                    if (!ignoreCategories) {\n",
              "                        htmlToAdd += \"<b>\" + counts.label + \"</b>: \" + getCategoryStatsHTML(counts);\n",
              "                    }\n",
              "\n",
              "                    if (counts.matches > 0) {\n",
              "                        var headerClassName = 'text_header';\n",
              "                        if ((counts.label === fullData.info.category_name) && highlightSelectedCategory) {\n",
              "                            d3.select(divId)\n",
              "                                .append('div')\n",
              "                                .attr('class', 'separator')\n",
              "                                .html(\"<b>Selected category</b>\");\n",
              "                        }\n",
              "                        d3.select(divId)\n",
              "                            .append(\"div\")\n",
              "                            .attr('class', headerClassName)\n",
              "                            .html(getCategoryInlineHeadingHTML(counts));\n",
              "\n",
              "                        allContexts\n",
              "                            .filter(singleDoc => singleDoc.docLabel == counts.labelNum)\n",
              "                            .forEach(function (singleDoc) {\n",
              "                                addSnippets(singleDoc, divId);\n",
              "                            });\n",
              "                        if (includeAll) {\n",
              "                            allNotMatches\n",
              "                                .filter(singleDoc => singleDoc.docLabel == counts.labelNum)\n",
              "                                .forEach(function (singleDoc) {\n",
              "                                    addSnippets(singleDoc, divId, false);\n",
              "                                });\n",
              "                        }\n",
              "                        if ((counts.label === fullData.info.category_name) && highlightSelectedCategory) {\n",
              "                            d3.select(divId).append('div').attr('class', 'separator').html(\"<b>End selected category</b>\");\n",
              "                            d3.select(divId).append('div').html(\"<br />\");\n",
              "                        }\n",
              "                    }\n",
              "\n",
              "\n",
              "                    if (showCategoryHeadings) {\n",
              "                        d3.select('#' + divName + '-' + 'categoryinfo')\n",
              "                            .attr('display', 'inline')\n",
              "                            .append('div')\n",
              "                            .html(htmlToAdd)\n",
              "                            .on(\"click\", function () {\n",
              "                                window.location.hash = '#' + divName + '-' + 'category' + counts.labelNum\n",
              "                            });\n",
              "                    }\n",
              "\n",
              "                })\n",
              "\n",
              "\n",
              "            } else\n",
              "             {\n",
              "                var contextColumns = [\n",
              "                    fullData.info.category_internal_name,\n",
              "                    fullData.info.not_category_name\n",
              "                ];\n",
              "                if (showNeutral) {\n",
              "                    if ('neutral_category_name' in fullData.info) {\n",
              "                        contextColumns.push(fullData.info.neutral_category_name)\n",
              "                    } else {\n",
              "                        contextColumns.push(\"Neutral\")\n",
              "                    }\n",
              "                    if (showExtra) {\n",
              "                        if ('extra_category_name' in fullData.info) {\n",
              "                            contextColumns.push(fullData.info.extra_category_name)\n",
              "                        } else {\n",
              "                            contextColumns.push(\"Extra\")\n",
              "                        }\n",
              "                    }\n",
              "\n",
              "                }\n",
              "                contextColumns.map(\n",
              "                    function (catName, catIndex) {\n",
              "                        if (max_snippets != null) {\n",
              "                            var contextsToDisplay = contexts[catIndex].slice(0, max_snippets);\n",
              "                        }\n",
              "                        //var divId = catName == catInternalName ? '#cat' : '#notcat';\n",
              "                        var divId = null\n",
              "                        if (fullData.info.category_internal_name == catName) {\n",
              "                            divId = '#' + divName + '-' + 'cat'\n",
              "                        } else if (fullData.info.not_category_name == catName) {\n",
              "                            divId = '#' + divName + '-' + 'notcat'\n",
              "                        } else if (fullData.info.neutral_category_name == catName) {\n",
              "                            divId = '#' + divName + '-' + 'neut';\n",
              "                        } else if (fullData.info.extra_category_name == catName) {\n",
              "                            divId = '#' + divName + '-' + 'extra'\n",
              "                        } else {\n",
              "                            return;\n",
              "                        }\n",
              "\n",
              "                        var temp = d3.select(divId).selectAll(\"div\").remove();\n",
              "                        contexts[catIndex].forEach(function (context) {\n",
              "                            addSnippets(context, divId);\n",
              "                        });\n",
              "                        if (includeAll) {\n",
              "                            notmatches[catIndex].forEach(function (context) {\n",
              "                                addSnippets(context, divId, false);\n",
              "                            });\n",
              "                        }\n",
              "                    }\n",
              "                );\n",
              "            }\n",
              "\n",
              "            var obscuredTerms = getObscuredTerms(data, termInfo.info);\n",
              "            displayObscuredTerms(obscuredTerms, data, info.term, info, '#' + divName + '-' + 'overlapped-terms-clicked');\n",
              "\n",
              "            d3.select('#' + divName + '-' + 'termstats')\n",
              "                .selectAll(\"div\")\n",
              "                .remove();\n",
              "            var termHtml = termWord + ': <b>' + formatTermForDisplay(info.term) + '</b>';\n",
              "            if ('metalists' in fullData && info.term in fullData.metalists) {\n",
              "                termHtml = 'Topic: <b>' + formatTermForDisplay(info.term) + '</b>';\n",
              "            }\n",
              "            if (getCustomTermHtml !== null) {\n",
              "                termHtml = getCustomTermHtml(info);\n",
              "            }\n",
              "            d3.select('#' + divName + '-' + 'termstats')\n",
              "                .append('div')\n",
              "                .attr(\"class\", \"snippet_header\")\n",
              "                .html(termHtml);\n",
              "            if ('metalists' in fullData && info.term in fullData.metalists && topic_model_preview_size > 0) {\n",
              "                d3.select('#' + divName + '-' + 'termstats')\n",
              "                    .attr(\"class\", \"topic_preview\")\n",
              "                    .append('div')\n",
              "                    .html(\"<b>Topic preview</b>: \"\n",
              "                        + fullData.metalists[info.term]\n",
              "                            .slice(0, topic_model_preview_size)\n",
              "                            .reduce(function (x, y) {\n",
              "                                return x + ', ' + y\n",
              "                            }));\n",
              "            }\n",
              "            if ('metadescriptions' in fullData && info.term in fullData.metadescriptions) {\n",
              "                d3.select('#' + divName + '-' + 'termstats')\n",
              "                    .attr(\"class\", \"topic_preview\")\n",
              "                    .append('div')\n",
              "                    .html(\"<b>Description</b>: \" + fullData.metadescriptions[info.term]);\n",
              "            }\n",
              "            var message = '';\n",
              "            var cat_name = fullData.info.category_name;\n",
              "            var ncat_name = fullData.info.not_category_name;\n",
              "\n",
              "\n",
              "            var numCatDocs = fullData.docs.labels\n",
              "                .map(function (x) {\n",
              "                    return (x == fullData.docs.categories.indexOf(\n",
              "                        fullData.info.category_internal_name)) + 0\n",
              "                })\n",
              "                .reduce(function (a, b) {\n",
              "                    return a + b;\n",
              "                }, 0);\n",
              "\n",
              "            var notCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.not_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "\n",
              "\n",
              "            var numNCatDocs = fullData.docs.labels\n",
              "                .map(function (x) {\n",
              "                    return notCategoryNumList.indexOf(x) > -1\n",
              "                })\n",
              "                .reduce(function (a, b) {\n",
              "                    return a + b;\n",
              "                }, 0);\n",
              "\n",
              "\n",
              "\n",
              "            function getFrequencyDescription(name, count25k, count, ndocs) {\n",
              "                var desc = name;\n",
              "                if (!enableTermCategoryDescription) {\n",
              "                    return desc + ':';\n",
              "                }\n",
              "                desc += ' frequency: <div class=text_subhead>' + count25k + ' per 25,000 terms</div>';\n",
              "                if (!isNaN(Math.round(ndocs))) {\n",
              "                    desc += '<div class=text_subhead>' + Math.round(ndocs) + ' per 1,000 docs</div>';\n",
              "                }\n",
              "                if (count == 0) {\n",
              "                    desc += '<u>Not found in any ' + name + ' documents.</u>';\n",
              "                } else {\n",
              "                    if (!isNaN(Math.round(ndocs))) {\n",
              "                        desc += '<u>Some of the ' + count + ' mentions:</u>';\n",
              "                    } else {\n",
              "                        desc += count + ' mentions';\n",
              "                    }\n",
              "                }\n",
              "                /*\n",
              "                desc += '<br><b>Discriminative:</b> ';\n",
              "\n",
              "                desc += contextWords\n",
              "                    .slice(cat_name === name ? 0 : contextWords.length - 3,\n",
              "                        cat_name === name ? 3 : contextWords.length)\n",
              "                    .filter(function (x) {\n",
              "                        //return Math.abs(x[5]) > 1.96;\n",
              "                        return true;\n",
              "                    })\n",
              "                    .map(function (x) {return x.join(', ')}).join('<br>');\n",
              "                */\n",
              "                return desc;\n",
              "            }\n",
              "\n",
              "            if (!unifiedContexts && !ignoreCategories) {\n",
              "                console.log(\"NOT UNIFIED CONTEXTS\")\n",
              "                let catHeader = \"\";\n",
              "                let nCatHeader = \"\";\n",
              "                if (getColumnHeaderHTML === null) {\n",
              "                    catHeader = getFrequencyDescription(\n",
              "                        cat_name,\n",
              "                        info.cat25k,\n",
              "                        info.cat,\n",
              "                        termInfo.contexts[0].length * 1000 / numCatDocs\n",
              "                    )\n",
              "                    nCatHeader = getFrequencyDescription(\n",
              "                        ncat_name,\n",
              "                        info.ncat25k,\n",
              "                        info.ncat,\n",
              "                        termInfo.contexts[1].length * 1000 / numNCatDocs\n",
              "                    )\n",
              "\n",
              "                } else {\n",
              "                    catHeader = getColumnHeaderHTML(0, termInfo, fullData)\n",
              "                    nCatHeader = getColumnHeaderHTML(1, termInfo, fullData)\n",
              "                }\n",
              "\n",
              "                d3.select('#' + divName + '-' + 'cathead')\n",
              "                    .style('fill', color(1))\n",
              "                    .html(catHeader);\n",
              "                d3.select('#' + divName + '-' + 'notcathead')\n",
              "                    .style('fill', color(0))\n",
              "                    .html(nCatHeader);\n",
              "                if (showNeutral) {\n",
              "                    var numList = fullData.docs.categories.map(function (x, i) {\n",
              "                        if (fullData.info.neutral_category_internal_names.indexOf(x) > -1) {\n",
              "                            return i;\n",
              "                        } else {\n",
              "                            return -1;\n",
              "                        }\n",
              "                    }).filter(function (x) {\n",
              "                        return x > -1\n",
              "                    });\n",
              "\n",
              "                    var numDocs = fullData.docs.labels\n",
              "                        .map(function (x) {\n",
              "                            return numList.indexOf(x) > -1\n",
              "                        })\n",
              "                        .reduce(function (a, b) {\n",
              "                            return a + b;\n",
              "                        }, 0);\n",
              "\n",
              "                    let neutHeader = '';\n",
              "                    if (getColumnHeaderHTML === null) {\n",
              "                        neutHeader = getFrequencyDescription(\n",
              "                            fullData.info.neutral_category_name,\n",
              "                            info.neut25k,\n",
              "                            info.neut,\n",
              "                            termInfo.contexts[2].length * 1000 / numDocs\n",
              "                        )\n",
              "                    } else {\n",
              "                        neutHeader = getColumnHeaderHTML(2, termInfo, fullData);\n",
              "                    }\n",
              "\n",
              "                    d3.select(\"#\" + divName + \"-neuthead\")\n",
              "                        .style('fill', color(0))\n",
              "                        .html(neutHeader);\n",
              "\n",
              "                    if (showExtra) {\n",
              "                        var numList = fullData.docs.categories.map(function (x, i) {\n",
              "                            if (fullData.info.extra_category_internal_names.indexOf(x) > -1) {\n",
              "                                return i;\n",
              "                            } else {\n",
              "                                return -1;\n",
              "                            }\n",
              "                        }).filter(function (x) {\n",
              "                            return x > -1\n",
              "                        });\n",
              "\n",
              "                        var numDocs = fullData.docs.labels\n",
              "                            .map(function (x) {\n",
              "                                return numList.indexOf(x) > -1\n",
              "                            })\n",
              "                            .reduce(function (a, b) {\n",
              "                                return a + b;\n",
              "                            }, 0);\n",
              "\n",
              "                        let extraHeader = '';\n",
              "                        if (getColumnHeaderHTML === null) {\n",
              "                            extraHeader = getFrequencyDescription(\n",
              "                                fullData.info.extra_category_name,\n",
              "                                info.extra25k,\n",
              "                                info.extra,\n",
              "                                termInfo.contexts[3].length * 1000 / numDocs\n",
              "                            )\n",
              "                        } else {\n",
              "                            extraHeader = getColumnHeaderHTML(3, termInfo, fullData);\n",
              "                        }\n",
              "\n",
              "                        d3.select(\"#\" + divName + \"-extrahead\")\n",
              "                            .style('fill', color(0))\n",
              "                            .html(extraHeader);\n",
              "\n",
              "                    }\n",
              "                }\n",
              "            } else if (unifiedContexts && !ignoreCategories) {\n",
              "                // extra unified context code goes here\n",
              "                console.log(\"docLabelCountsSorted\")\n",
              "                console.log(docLabelCountsSorted)\n",
              "\n",
              "                docLabelCountsSorted.forEach(function (counts) {\n",
              "                    var htmlToAdd = (ignoreCategories ? \"\" : \"<b>\" + counts.label + \"</b>: \") + getCategoryStatsHTML(counts);\n",
              "                    if (showCategoryHeadings) {\n",
              "                        d3.select('#' + divName + '-' + 'contexts')\n",
              "                            .append('div')\n",
              "                            .html(htmlToAdd)\n",
              "                            .on(\"click\", function () {\n",
              "                                window.location.hash = '#' + divName + '-' + 'category' + counts.labelNum\n",
              "                            });\n",
              "                    }\n",
              "                })\n",
              "            }\n",
              "            if (jump) {\n",
              "                if (window.location.hash === '#' + divName + '-' + 'snippets') {\n",
              "                    window.location.hash = '#' + divName + '-' + 'snippetsalt';\n",
              "                } else {\n",
              "                    window.location.hash = '#' + divName + '-' + 'snippets';\n",
              "                }\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function searchInText(d, includeAll = true) {\n",
              "            function stripNonWordChars(term) {\n",
              "                //d.term.replace(\" \", \"[^\\\\w]+\")\n",
              "            }\n",
              "\n",
              "            function removeUnderScoreJoin(term) {\n",
              "                /*\n",
              "                '_ _asjdklf_jaksdlf_jaksdfl skld_Jjskld asdfjkl_sjkdlf'\n",
              "                  ->\n",
              "                \"_ _asjdklf jaksdlf jaksdfl skld Jjskld asdfjkl_sjkdlf\"\n",
              "                 */\n",
              "                return term.replace(/(\\w+)(_)(\\w+)/, \"$1 $3\")\n",
              "                    .replace(/(\\w+)(_)(\\w+)/, \"$1 $3\")\n",
              "                    .replace(/(\\w+)(_)(\\w+)/, \"$1 $3\");\n",
              "            }\n",
              "\n",
              "            function buildMatcher(term) {\n",
              "\n",
              "\n",
              "                var boundary = '(?:\\\\W|^|$)';\n",
              "                var wordSep = \"[^\\\\w]+\";\n",
              "                if (asianMode) {\n",
              "                    boundary = '( |$|^)';\n",
              "                    wordSep = ' ';\n",
              "                }\n",
              "                if (isEmoji(term)) {\n",
              "                    boundary = '';\n",
              "                    wordSep = '';\n",
              "                }\n",
              "                if (matchFullLine) {\n",
              "                    boundary = '($|^)';\n",
              "                }\n",
              "                var termToRegex = term;\n",
              "\n",
              "\n",
              "                // https://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex\n",
              "                function escapeRegExp(string) {\n",
              "                    return string.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\,\\\\\\^\\$\\|\\'#?]/g, \"\\\\$&\");\n",
              "                    //return string.replace(/[\\?#.*+^${}()|[\\]\\\\]'\\%/g, '\\\\$&'); // $& means the whole matched string\n",
              "                }\n",
              "\n",
              "                /*\n",
              "                ['[', ']', '(', ')', '{', '}', '^', '$', '|', '?', '\"',\n",
              "                    '*', '+', '-', '=', '~', '`', '{'].forEach(function (a) {\n",
              "                    termToRegex = termToRegex.replace(a, '\\\\\\\\' + a)\n",
              "                });\n",
              "                ['.', '#'].forEach(function(a) {termToRegex = termToRegex.replace(a, '\\\\' + a)})\n",
              "                */\n",
              "                termToRegex = escapeRegExp(termToRegex);\n",
              "                console.log(\"termToRegex\")\n",
              "                console.log(termToRegex)\n",
              "\n",
              "                var regexp = new RegExp(boundary + '('\n",
              "                    + removeUnderScoreJoin(\n",
              "                        termToRegex.replace(' ', wordSep, 'gim')\n",
              "                    ) + ')' + boundary, 'gim');\n",
              "                console.log(regexp);\n",
              "\n",
              "                if (subwordEncoding === 'RoBERTa' || subwordEncoding === 'BERT') {\n",
              "                    if (term.charCodeAt(0) === 288 || term.charCodeAt(0) === 289) {\n",
              "                        // Starts with character Ġ indicating it's a word start\n",
              "                        regexp = new RegExp(boundary + escapeRegExp(term.substr(1, term.length)), 'gim');\n",
              "                    } else if (subwordEncoding == 'BERT' && term.charAt(0) === '#' && term.charAt(1) === '#') {\n",
              "                        regexp = new RegExp(boundary + escapeRegExp(term.substr(2, term.length)), 'gim');\n",
              "                    } else {\n",
              "                        regexp = new RegExp(\"\\w\" + escapeRegExp(term), 'gim');\n",
              "                    }\n",
              "                }\n",
              "\n",
              "                if (subwordEncoding === 'BERT') {\n",
              "                    if (term.charCodeAt(0) === 288 || term.charCodeAt(0) === 289) {\n",
              "                        // Starts with character Ġ indicating it's a word start\n",
              "                        regexp = new RegExp(boundary + escapeRegExp(term.substr(1, term.length)), 'gim');\n",
              "                    } else {\n",
              "                        regexp = new RegExp(\"\\w\" + escapeRegExp(term), 'gim');\n",
              "                    }\n",
              "                }\n",
              "\n",
              "                try {\n",
              "                    regexp.exec('X');\n",
              "                } catch (err) {\n",
              "                    console.log(\"Can't search \" + term);\n",
              "                    console.log(err);\n",
              "                    return null;\n",
              "                }\n",
              "                return regexp;\n",
              "            }\n",
              "\n",
              "            var matches = [[], [], [], []];\n",
              "            var notmatches = [[], [], [], []];\n",
              "            var pattern = buildMatcher(d.term);\n",
              "            var categoryNum = fullData.docs.categories.indexOf(fullData.info.category_internal_name);\n",
              "            var notCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.not_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "            var neutralCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.neutral_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "            var extraCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.extra_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "            console.log('extraCategoryNumList')\n",
              "            console.log(extraCategoryNumList);\n",
              "            console.log(\"categoryNum\");\n",
              "            console.log(categoryNum);\n",
              "            console.log(\"categoryNum\");\n",
              "            if (pattern !== null) {\n",
              "                for (var i in fullData.docs.texts) {\n",
              "                    //var numericLabel = 1 * (fullData.docs.categories[fullData.docs.labels[i]] != fullData.info.category_internal_name);\n",
              "\n",
              "                    var docLabel = fullData.docs.labels[i];\n",
              "                    var numericLabel = -1;\n",
              "                    if (docLabel == categoryNum) {\n",
              "                        numericLabel = 0;\n",
              "                    } else if (notCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 1;\n",
              "                    } else if (neutralCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 2;\n",
              "                    } else if (extraCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 3;\n",
              "                    }\n",
              "                    if (numericLabel == -1) {\n",
              "                        continue;\n",
              "                    }\n",
              "\n",
              "                    var text = removeUnderScoreJoin(fullData.docs.texts[i]);\n",
              "                    //var pattern = new RegExp(\"\\\\b(\" + stripNonWordChars(d.term) + \")\\\\b\", \"gim\");\n",
              "                    var match;\n",
              "                    var sentenceOffsets = null;\n",
              "                    var lastSentenceStart = null;\n",
              "                    var matchFound = false;\n",
              "                    var curMatch = {'id': i, 'snippets': [], 'notsnippets': [], 'docLabel': docLabel};\n",
              "                    if (fullData.docs.meta) {\n",
              "                        curMatch['meta'] = fullData.docs.meta[i];\n",
              "                    }\n",
              "\n",
              "                    while ((match = pattern.exec(text)) != null) {\n",
              "                        if (sentenceOffsets == null) {\n",
              "                            sentenceOffsets = getSentenceBoundaries(text);\n",
              "                        }\n",
              "                        var foundSnippet = getMatchingSnippet(text, sentenceOffsets,\n",
              "                            match.index, pattern.lastIndex);\n",
              "                        if (foundSnippet.sentenceStart == lastSentenceStart) continue; // ensure we don't duplicate sentences\n",
              "                        lastSentenceStart = foundSnippet.sentenceStart;\n",
              "                        curMatch.snippets.push(foundSnippet.snippet);\n",
              "                        matchFound = true;\n",
              "                    }\n",
              "                    if (matchFound) {\n",
              "                        if (useFullDoc) {\n",
              "                            curMatch.snippets = [\n",
              "                                text\n",
              "                                    .replace(/\\n$/g, '\\n\\n')\n",
              "                                    .replace(\n",
              "                                        //new RegExp(\"\\\\b(\" + d.term.replace(\" \", \"[^\\\\w]+\") + \")\\\\b\",\n",
              "                                        //    'gim'),\n",
              "                                        pattern,\n",
              "                                        '<b>$&</b>')\n",
              "                            ];\n",
              "                        }\n",
              "                        matches[numericLabel].push(curMatch);\n",
              "                    } else {\n",
              "                        if (includeAll) {\n",
              "                            curMatch.snippets = [\n",
              "                                text.replace(/\\n$/g, '\\n\\n')\n",
              "                            ];\n",
              "                            notmatches[numericLabel].push(curMatch);\n",
              "                        }\n",
              "\n",
              "                    }\n",
              "                }\n",
              "            }\n",
              "            var toRet = {\n",
              "                'contexts': matches,\n",
              "                'notmatches': notmatches,\n",
              "                'info': d,\n",
              "                'docLabel': docLabel\n",
              "            };\n",
              "            return toRet;\n",
              "        }\n",
              "\n",
              "        function getDefaultTooltipContent(d) {\n",
              "            var term = formatTermForDisplay(d.term);\n",
              "\n",
              "            var message = term + \"<br/>\" + d.cat25k + \":\" + d.ncat25k + \" per 25k words\";\n",
              "            message += '<br/>score: ' + d.os.toFixed(5);\n",
              "            return message;\n",
              "        }\n",
              "\n",
              "        function getDefaultTooltipContentWithoutScore(d) {\n",
              "            var term = formatTermForDisplay(d.term);\n",
              "\n",
              "            var message = term + \"<br/>\" + d.cat25k + \":\" + d.ncat25k + \" per 25k words\";\n",
              "            return message;\n",
              "        }\n",
              "\n",
              "        function getObscuredTerms(data, d) {\n",
              "            //data = fullData['data']\n",
              "            var matches = (data.filter(function (term) {\n",
              "                    return term.x === d.x && term.y === d.y && (term.display === undefined || term.display === true);\n",
              "                }).map(function (term) {\n",
              "                    return formatTermForDisplay(term.term)\n",
              "                }).sort()\n",
              "            );\n",
              "            return matches;\n",
              "        }\n",
              "\n",
              "        function showTooltip(data, d, pageX, pageY, showObscured = true) {\n",
              "            deselectLastCircle();\n",
              "\n",
              "            var obscuredTerms = getObscuredTerms(data, d);\n",
              "            var message = '';\n",
              "            console.log(\"!!!!! \" + obscuredTerms.length)\n",
              "            console.log(showObscured)\n",
              "            if (obscuredTerms.length > 1 && showObscured)\n",
              "                displayObscuredTerms(obscuredTerms, data, d.term, d);\n",
              "            if (getTooltipContent !== null) {\n",
              "                message += getTooltipContent(d);\n",
              "            } else {\n",
              "                if (sortByDist) {\n",
              "                    message += getDefaultTooltipContentWithoutScore(d);\n",
              "                } else {\n",
              "                    message += getDefaultTooltipContent(d);\n",
              "                }\n",
              "            }\n",
              "            pageX -= (svg.node().getBoundingClientRect().left) - origSVGLeft;\n",
              "            pageY -= (svg.node().getBoundingClientRect().top) - origSVGTop;\n",
              "            tooltip.transition()\n",
              "                .duration(0)\n",
              "                .style(\"opacity\", 1)\n",
              "                .style(\"z-index\", 10000000);\n",
              "            tooltip.html(message)\n",
              "                .style(\"left\", (pageX - 40) + \"px\")\n",
              "                .style(\"top\", (pageY - 85 > 0 ? pageY - 85 : 0) + \"px\");\n",
              "            tooltip.on('click', function () {\n",
              "                tooltip.transition()\n",
              "                    .style('opacity', 0)\n",
              "            }).on('mouseout', function () {\n",
              "                tooltip.transition().style('opacity', 0)\n",
              "            });\n",
              "        }\n",
              "\n",
              "        handleSearch = function (event) {\n",
              "            var searchTerm = document\n",
              "                .getElementById(this.divName + \"-searchTerm\")\n",
              "                .value;\n",
              "            handleSearchTerm(searchTerm);\n",
              "            return false;\n",
              "        };\n",
              "\n",
              "        function highlightTerm(searchTerm, showObscured) {\n",
              "            deselectLastCircle();\n",
              "            var cleanedTerm = searchTerm.toLowerCase()\n",
              "                .replace(\"'\", \" '\")\n",
              "                .trim();\n",
              "            if (this.termDict[cleanedTerm] === undefined) {\n",
              "                cleanedTerm = searchTerm.replace(\"'\", \" '\").trim();\n",
              "            }\n",
              "            if (this.termDict[cleanedTerm] !== undefined) {\n",
              "                showToolTipForTerm(this.data, this.svg, cleanedTerm, this.termDict[cleanedTerm], showObscured);\n",
              "            }\n",
              "            return cleanedTerm;\n",
              "        }\n",
              "\n",
              "        function handleSearchTerm(searchTerm, jump = false) {\n",
              "            console.log(\"Handle search term.\");\n",
              "            console.log(searchTerm);\n",
              "            console.log(\"this\");\n",
              "            console.log(this)\n",
              "            highlighted = highlightTerm.call(this, searchTerm, true);\n",
              "            console.log(\"found searchTerm\");\n",
              "            console.log(searchTerm);\n",
              "            if (this.termDict[searchTerm] != null) {\n",
              "                var runDisplayTermContexts = true;\n",
              "                if (alternativeTermFunc != null) {\n",
              "                    runDisplayTermContexts = this.alternativeTermFunc(this.termDict[searchTerm]);\n",
              "                }\n",
              "                if (runDisplayTermContexts) {\n",
              "                    displayTermContexts(\n",
              "                        this.data,\n",
              "                        this.gatherTermContexts(this.termDict[searchTerm], this.includeAllContexts),\n",
              "                        alwaysJump,\n",
              "                        this.includeAllContexts\n",
              "                    );\n",
              "                }\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function getCircleForSearchTerm(mysvg, searchTermInfo) {\n",
              "            var circle = mysvg;\n",
              "            if (circle.tagName !== \"circle\") { // need to clean this thing up\n",
              "                circle = mysvg._groups[0][searchTermInfo.ci];\n",
              "                if (circle === undefined || circle.tagName != 'circle') {\n",
              "                    if (mysvg._groups[0].children !== undefined) {\n",
              "                        circle = mysvg._groups[0].children[searchTermInfo.ci];\n",
              "                    }\n",
              "                }\n",
              "                if (circle === undefined || circle.tagName != 'circle') {\n",
              "                    if (mysvg._groups[0][0].children !== undefined) {\n",
              "                        circle = Array.prototype.filter.call(\n",
              "                            mysvg._groups[0][0].children,\n",
              "                            x => (x.tagName == \"circle\" && x.__data__['term'] == searchTermInfo.term)\n",
              "                        )[0];\n",
              "                    }\n",
              "                }\n",
              "                if ((circle === undefined || circle.tagName != 'circle') && mysvg._groups[0][0].children !== undefined) {\n",
              "                    circle = mysvg._groups[0][0].children[searchTermInfo.ci];\n",
              "                }\n",
              "            }\n",
              "            return circle;\n",
              "        }\n",
              "\n",
              "        function showToolTipForTerm(data, mysvg, searchTerm, searchTermInfo, showObscured = true) {\n",
              "            //var searchTermInfo = termDict[searchTerm];\n",
              "            console.log(\"showing tool tip\")\n",
              "            console.log(searchTerm)\n",
              "            console.log(searchTermInfo)\n",
              "            if (searchTermInfo === undefined) {\n",
              "                console.log(\"can't show\")\n",
              "                d3.select(\"#\" + divName + \"-alertMessage\")\n",
              "                    .text(searchTerm + \" didn't make it into the visualization.\");\n",
              "            } else {\n",
              "                d3.select(\"#\" + divName + \"-alertMessage\").text(\"\");\n",
              "                var circle = getCircleForSearchTerm(mysvg, searchTermInfo);\n",
              "                if (circle) {\n",
              "                    var mySVGMatrix = circle.getScreenCTM().translate(circle.cx.baseVal.value, circle.cy.baseVal.value);\n",
              "                    var pageX = mySVGMatrix.e;\n",
              "                    var pageY = mySVGMatrix.f;\n",
              "                    circle.style[\"stroke\"] = \"black\";\n",
              "                    //@@@@@ try to move to front\n",
              "                    //var circlePos = circle.position();\n",
              "                    //var el = circle.node()\n",
              "                    //showTooltip(searchTermInfo, pageX, pageY, circle.cx.baseVal.value, circle.cx.baseVal.value);\n",
              "                    showTooltip(\n",
              "                        data,\n",
              "                        searchTermInfo,\n",
              "                        pageX,\n",
              "                        pageY,\n",
              "                        showObscured\n",
              "                    );\n",
              "\n",
              "                    lastCircleSelected = circle;\n",
              "                }\n",
              "\n",
              "            }\n",
              "        };\n",
              "\n",
              "\n",
              "        function makeWordInteractive(data, svg, domObj, term, termInfo, showObscured = true) {\n",
              "            return domObj\n",
              "                .on(\"mouseover\", function (d) {\n",
              "                    showToolTipForTerm(data, svg, term, termInfo, showObscured);\n",
              "                    d3.select(this).style(\"stroke\", \"black\");\n",
              "                })\n",
              "                .on(\"mouseout\", function (d) {\n",
              "                    tooltip.transition()\n",
              "                        .duration(0)\n",
              "                        .style(\"opacity\", 0);\n",
              "                    d3.select(this).style(\"stroke\", null);\n",
              "                    if (showObscured) {\n",
              "                        d3.select('#' + divName + '-' + 'overlapped-terms')\n",
              "                            .selectAll('div')\n",
              "                            .remove();\n",
              "                    }\n",
              "                })\n",
              "                .on(\"click\", function (d) {\n",
              "                    var runDisplayTermContexts = true;\n",
              "                    if (alternativeTermFunc != null) {\n",
              "                        runDisplayTermContexts = alternativeTermFunc(termInfo);\n",
              "                    }\n",
              "                    if (runDisplayTermContexts) {\n",
              "                        displayTermContexts(data, gatherTermContexts(termInfo, includeAllContexts),\n",
              "                        alwaysJump, includeAllContexts);\n",
              "                    }\n",
              "                });\n",
              "        }\n",
              "\n",
              "\n",
              "        function processData(fullData) {\n",
              "\n",
              "            modelInfo = fullData['info'];\n",
              "            /*\n",
              "             categoryTermList.data(modelInfo['category_terms'])\n",
              "             .enter()\n",
              "             .append(\"li\")\n",
              "             .text(function(d) {return d;});\n",
              "             */\n",
              "            var data = fullData['data'];\n",
              "            termDict = Object();\n",
              "            data.forEach(function (x, i) {\n",
              "                termDict[x.term] = x;\n",
              "                //!!!\n",
              "                //termDict[x.term].i = i;\n",
              "            });\n",
              "\n",
              "            var padding = 0.1;\n",
              "            if (showAxes || showAxesAndCrossHairs) {\n",
              "                padding = 0.1;\n",
              "            }\n",
              "\n",
              "            // Scale the range of the data.  Add some space on either end.\n",
              "            if (useGlobalScale) {\n",
              "                var axisMax = Math.max(\n",
              "                    d3.max(data, function (d) {\n",
              "                        return d.x;\n",
              "                    }),\n",
              "                    d3.max(data, function (d) {\n",
              "                        return d.y;\n",
              "                    }),\n",
              "                )\n",
              "                var axisMin = Math.min(\n",
              "                    d3.min(data, function (d) {\n",
              "                        return d.x;\n",
              "                    }),\n",
              "                    d3.min(data, function (d) {\n",
              "                        return d.y;\n",
              "                    }),\n",
              "                )\n",
              "                axisMin = axisMin - (axisMax - axisMin) * padding;\n",
              "                axisMax = axisMax + (axisMax - axisMin) * padding;\n",
              "                x.domain([axisMin, axisMax]);\n",
              "                y.domain([axisMin, axisMax]);\n",
              "            } else {\n",
              "                var xMax = d3.max(data, function (d) {\n",
              "                    return d.x;\n",
              "                });\n",
              "                var yMax = d3.max(data, function (d) {\n",
              "                    return d.y;\n",
              "                })\n",
              "                x.domain([-1 * padding, xMax + padding]);\n",
              "                y.domain([-1 * padding, yMax + padding]);\n",
              "            }\n",
              "\n",
              "            /*\n",
              "             data.sort(function (a, b) {\n",
              "             return Math.abs(b.os) - Math.abs(a.os)\n",
              "             });\n",
              "             */\n",
              "\n",
              "\n",
              "            //var rangeTree = null; // keep boxes of all points and labels here\n",
              "            var rectHolder = new RectangleHolder();\n",
              "            var axisRectHolder = new RectangleHolder();\n",
              "            // Add the scatterplot\n",
              "            data.forEach(function (d, i) {\n",
              "                d.ci = i\n",
              "            });\n",
              "\n",
              "            //console.log('XXXXX'); console.log(data)\n",
              "\n",
              "\n",
              "            function getFilter(data) {\n",
              "                return data.filter(d => d.display === undefined || d.display === true);\n",
              "            }\n",
              "\n",
              "\n",
              "            var mysvg = svg\n",
              "                .selectAll(\"dot\")\n",
              "                .data(getFilter(data))\n",
              "                //.filter(function (d) {return d.display === undefined || d.display === true})\n",
              "                .enter()\n",
              "                .append(\"circle\")\n",
              "                .attr(\"r\", function (d) {\n",
              "                    if (suppressCircles) return 0;\n",
              "                    if (pValueColors && d.p) {\n",
              "                        return (d.p >= 1 - minPVal || d.p <= minPVal) ? 2 : 1.75;\n",
              "                    }\n",
              "                    return 2;\n",
              "                })\n",
              "                .attr(\"cx\", function (d) {\n",
              "                    return x(d.x);\n",
              "                })\n",
              "                .attr(\"cy\", function (d) {\n",
              "                    return y(d.y);\n",
              "                })\n",
              "                .style(\"fill\", function (d) {\n",
              "                    //.attr(\"fill\", function (d) {\n",
              "                    if (colorFunc) {\n",
              "                        return colorFunc(d);\n",
              "                    } else if (greyZeroScores && d.os == 0) {\n",
              "                        return d3.rgb(230, 230, 230);\n",
              "                    } else if (pValueColors && d.p) {\n",
              "                        if (d.p >= 1 - minPVal) {\n",
              "                            return wordVecMaxPValue ? d3.interpolateYlGnBu(d.s) : color(d.s);\n",
              "                        } else if (d.p <= minPVal) {\n",
              "                            return wordVecMaxPValue ? d3.interpolateYlGnBu(d.s) : color(d.s);\n",
              "                        } else {\n",
              "                            return interpolateLightGreys(d.s);\n",
              "                        }\n",
              "                    } else {\n",
              "                        return color(d.s);\n",
              "                    }\n",
              "                })\n",
              "                .on(\"mouseover\", function (d) {\n",
              "                    /*var mySVGMatrix = circle.getScreenCTM()n\n",
              "                        .translate(circle.cx.baseVal.value, circle.cy.baseVal.value);\n",
              "                    var pageX = mySVGMatrix.e;\n",
              "                    var pageY = mySVGMatrix.f;*/\n",
              "\n",
              "                    /*showTooltip(\n",
              "                        d,\n",
              "                        d3.event.pageX,\n",
              "                        d3.event.pageY\n",
              "                    );*/\n",
              "                    console.log(\"point MOUSOEVER\")\n",
              "                    console.log(d)\n",
              "                    showToolTipForTerm(data, this, d.term, d, true);\n",
              "                    d3.select(this).style(\"stroke\", \"black\");\n",
              "                })\n",
              "                .on(\"click\", function (d) {\n",
              "                    var runDisplayTermContexts = true;\n",
              "                    if (alternativeTermFunc != null) {\n",
              "                        runDisplayTermContexts = alternativeTermFunc(d);\n",
              "                    }\n",
              "                    if (runDisplayTermContexts) {\n",
              "                        displayTermContexts(data, gatherTermContexts(d), alwaysJump, includeAllContexts);\n",
              "                    }\n",
              "                })\n",
              "                .on(\"mouseout\", function (d) {\n",
              "                    tooltip.transition()\n",
              "                        .duration(0)\n",
              "                        .style(\"opacity\", 0);\n",
              "                    d3.select(this).style(\"stroke\", null);\n",
              "                    d3.select('#' + divName + '-' + 'overlapped-terms')\n",
              "                        .selectAll('div')\n",
              "                        .remove();\n",
              "                })\n",
              "\n",
              "\n",
              "            coords = Object();\n",
              "\n",
              "            var pointStore = [];\n",
              "            var pointRects = [];\n",
              "\n",
              "            function censorPoints(datum, getX, getY) {\n",
              "                if (suppressCircles !== true) {\n",
              "                    var term = datum.term;\n",
              "                    var curLabel = svg.append(\"text\")\n",
              "                        .attr(\"x\", x(getX(datum)))\n",
              "                        .attr(\"y\", y(getY(datum)) + 3)\n",
              "                        .attr(\"text-anchor\", \"middle\")\n",
              "                        .text(\"x\");\n",
              "                    var bbox = curLabel.node().getBBox();\n",
              "                    var borderToRemove = .5;\n",
              "                    var x1 = bbox.x + borderToRemove,\n",
              "                        y1 = bbox.y + borderToRemove,\n",
              "                        x2 = bbox.x + bbox.width - borderToRemove,\n",
              "                        y2 = bbox.y + bbox.height - borderToRemove;\n",
              "                    //rangeTree = insertRangeTree(rangeTree, x1, y1, x2, y2, '~~' + term);\n",
              "                    var pointRect = new Rectangle(x1, y1, x2, y2);\n",
              "                    pointRects.push(pointRect);\n",
              "                    rectHolder.add(pointRect);\n",
              "                    pointStore.push([x1, y1]);\n",
              "                    pointStore.push([x2, y1]);\n",
              "                    pointStore.push([x1, y2]);\n",
              "                    pointStore.push([x2, y2]);\n",
              "                    curLabel.remove();\n",
              "                }\n",
              "            }\n",
              "            console.log(\"SUPPRESS CIRCLE\"); console.log(suppressCircles)\n",
              "            function censorCircle(xCoord, yCoord) {\n",
              "                if (suppressCircles !== true) {\n",
              "                    console.log(\"DO NOT SUPRs\")\n",
              "                    var curLabel = svg.append(\"text\")\n",
              "                        .attr(\"x\", x(xCoord))\n",
              "                        .attr(\"y\", y(yCoord) + 3)\n",
              "                        .attr(\"text-anchor\", \"middle\")\n",
              "                        .text(\"x\");\n",
              "                    var bbox = curLabel.node().getBBox();\n",
              "                    var borderToRemove = .5;\n",
              "                    var x1 = bbox.x + borderToRemove,\n",
              "                        y1 = bbox.y + borderToRemove,\n",
              "                        x2 = bbox.x + bbox.width - borderToRemove,\n",
              "                        y2 = bbox.y + bbox.height - borderToRemove;\n",
              "                    var pointRect = new Rectangle(x1, y1, x2, y2);\n",
              "                    pointRects.push(pointRect);\n",
              "                    rectHolder.add(pointRect);\n",
              "                    pointStore.push([x1, y1]);\n",
              "                    pointStore.push([x2, y1]);\n",
              "                    pointStore.push([x1, y2]);\n",
              "                    pointStore.push([x2, y2]);\n",
              "                    curLabel.remove();\n",
              "                }\n",
              "            }\n",
              "\n",
              "            var configs = [\n",
              "                {'anchor': 'end', 'group': 1, 'xoff': -5, 'yoff': -3, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'end', 'group': 1, 'xoff': -5, 'yoff': 10, 'alignment-baseline': 'ideographic'},\n",
              "\n",
              "                {'anchor': 'end', 'group': 2, 'xoff': 10, 'yoff': 15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'end', 'group': 2, 'xoff': -10, 'yoff': -15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'end', 'group': 2, 'xoff': 10, 'yoff': -15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'end', 'group': 2, 'xoff': -10, 'yoff': 15, 'alignment-baseline': 'ideographic'},\n",
              "\n",
              "                {'anchor': 'start', 'group': 1, 'xoff': 3, 'yoff': 10, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'start', 'group': 1, 'xoff': 3, 'yoff': -3, 'alignment-baseline': 'ideographic'},\n",
              "\n",
              "                {'anchor': 'start', 'group': 2, 'xoff': 5, 'yoff': 10, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'start', 'group': 2, 'xoff': 5, 'yoff': -3, 'alignment-baseline': 'ideographic'},\n",
              "\n",
              "                {'anchor': 'start', 'group': 3, 'xoff': 10, 'yoff': 15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'start', 'group': 3, 'xoff': -10, 'yoff': -15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'start', 'group': 3, 'xoff': 10, 'yoff': -15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'start', 'group': 3, 'xoff': -10, 'yoff': 15, 'alignment-baseline': 'ideographic'},\n",
              "            ];\n",
              "            if (centerLabelsOverPoints) {\n",
              "                console.log(\"CENTERING LABEL\")\n",
              "                configs = [{'anchor': 'middle', 'xoff': 0, 'yoff': 0, 'alignment-baseline': 'middle'}];\n",
              "            }\n",
              "            console.log(\"CONFIGS\")\n",
              "            console.log(configs)\n",
              "\n",
              "            function labelPointsIfPossible(datum, myX, myY) {\n",
              "                if (suppressTextColumn !== undefined\n",
              "                    && datum.etc !== undefined\n",
              "                    && datum.etc[suppressTextColumn] === true) {\n",
              "                    return false;\n",
              "                }\n",
              "\n",
              "                var term = datum.term;\n",
              "                if (datum.x > datum.y) {\n",
              "                    configs.sort((a, b) => a.anchor == 'end' && b.anchor == 'end'\n",
              "                        ? a.group - b.group : (a.anchor == 'end') - (b.anchor == 'end'));\n",
              "                } else {\n",
              "                    configs.sort((a, b) => a.anchor == 'start' && b.anchor == 'start'\n",
              "                        ? a.group - b.group : (a.anchor == 'start') - (b.anchor == 'start'));\n",
              "                }\n",
              "                var matchedElement = null;\n",
              "\n",
              "                var termColor = 'rgb(0,0,0)';\n",
              "                if (textColorColumn !== undefined && datum.etc !== undefined && datum.etc[textColorColumn] !== undefined) {\n",
              "                    termColor = datum.etc[textColorColumn];\n",
              "                }\n",
              "                term = formatTermForDisplay(term);\n",
              "\n",
              "                for (var configI in configs) {\n",
              "                    var config = configs[configI];\n",
              "                    var curLabel = svg.append(\"text\")\n",
              "                        //.attr(\"x\", x(data[i].x) + config['xoff'])\n",
              "                        //.attr(\"y\", y(data[i].y) + config['yoff'])\n",
              "                        .attr(\"x\", x(myX) + config['xoff'])\n",
              "                        .attr(\"y\", y(myY) + config['yoff'])\n",
              "                        .attr('class', 'label')\n",
              "                        .attr('class', 'pointlabel')\n",
              "                        .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                        .attr('font-size', '10px')\n",
              "                        .attr(\"text-anchor\", config['anchor'])\n",
              "                        .attr(\"alignment-baseline\", config['alignment'])\n",
              "                        .attr(\"fill\", termColor)\n",
              "                        .text(term);\n",
              "                    var bbox = curLabel.node().getBBox();\n",
              "                    var borderToRemove = doCensorPoints ? 0.5 : .25;\n",
              "\n",
              "                    var x1 = bbox.x + borderToRemove,\n",
              "                        y1 = bbox.y + borderToRemove,\n",
              "                        x2 = bbox.x + bbox.width - borderToRemove,\n",
              "                        y2 = bbox.y + bbox.height - borderToRemove;\n",
              "                    //matchedElement = searchRangeTree(rangeTree, x1, y1, x2, y2);\n",
              "                    var matchedElement = false;\n",
              "                    rectHolder.findMatchingRectangles(x1, y1, x2, y2, function (elem) {\n",
              "                        matchedElement = true;\n",
              "                        return false;\n",
              "                    });\n",
              "                    if (matchedElement) {\n",
              "                        curLabel.remove();\n",
              "                    } else {\n",
              "                        curLabel = makeWordInteractive(data, svg, curLabel, term, datum);\n",
              "                        break;\n",
              "                    }\n",
              "                }\n",
              "\n",
              "                if (!matchedElement) {\n",
              "                    coords[term] = [x1, y1, x2, y2];\n",
              "                    //rangeTree = insertRangeTree(rangeTree, x1, y1, x2, y2, term);\n",
              "                    var labelRect = new Rectangle(x1, y1, x2, y2)\n",
              "                    rectHolder.add(labelRect);\n",
              "                    pointStore.push([x1, y1]);\n",
              "                    pointStore.push([x2, y1]);\n",
              "                    pointStore.push([x1, y2]);\n",
              "                    pointStore.push([x2, y2]);\n",
              "                    return {label: curLabel, rect: labelRect};\n",
              "                } else {\n",
              "                    //curLabel.remove();\n",
              "                    return false;\n",
              "                }\n",
              "\n",
              "            }\n",
              "\n",
              "            var radius = 2;\n",
              "\n",
              "            function euclideanDistanceSort(a, b) {\n",
              "                var aCatDist = a.x * a.x + (1 - a.y) * (1 - a.y);\n",
              "                var aNotCatDist = a.y * a.y + (1 - a.x) * (1 - a.x);\n",
              "                var bCatDist = b.x * b.x + (1 - b.y) * (1 - b.y);\n",
              "                var bNotCatDist = b.y * b.y + (1 - b.x) * (1 - b.x);\n",
              "                return (Math.min(aCatDist, aNotCatDist) > Math.min(bCatDist, bNotCatDist)) * 2 - 1;\n",
              "            }\n",
              "\n",
              "            function euclideanDistanceSortForCategory(a, b) {\n",
              "                var aCatDist = a.x * a.x + (1 - a.y) * (1 - a.y);\n",
              "                var bCatDist = b.x * b.x + (1 - b.y) * (1 - b.y);\n",
              "                return (aCatDist > bCatDist) * 2 - 1;\n",
              "            }\n",
              "\n",
              "            function euclideanDistanceSortForNotCategory(a, b) {\n",
              "                var aNotCatDist = a.y * a.y + (1 - a.x) * (1 - a.x);\n",
              "                var bNotCatDist = b.y * b.y + (1 - b.x) * (1 - b.x);\n",
              "                return (aNotCatDist > bNotCatDist) * 2 - 1;\n",
              "            }\n",
              "\n",
              "            function scoreSort(a, b) {\n",
              "                return a.s - b.s;\n",
              "            }\n",
              "\n",
              "            function scoreSortReverse(a, b) {\n",
              "                return b.s - a.s;\n",
              "            }\n",
              "\n",
              "            function backgroundScoreSort(a, b) {\n",
              "                if (b.bg === a.bg)\n",
              "                    return (b.cat + b.ncat) - (a.cat + a.ncat);\n",
              "                return b.bg - a.bg;\n",
              "            }\n",
              "\n",
              "            function arePointsPredictiveOfDifferentCategories(a, b) {\n",
              "                var aCatDist = a.x * a.x + (1 - a.y) * (1 - a.y);\n",
              "                var bCatDist = b.x * b.x + (1 - b.y) * (1 - b.y);\n",
              "                var aNotCatDist = a.y * a.y + (1 - a.x) * (1 - a.x);\n",
              "                var bNotCatDist = b.y * b.y + (1 - b.x) * (1 - b.x);\n",
              "                var aGood = aCatDist < aNotCatDist;\n",
              "                var bGood = bCatDist < bNotCatDist;\n",
              "                return {aGood: aGood, bGood: bGood};\n",
              "            }\n",
              "\n",
              "            function scoreSortForCategory(a, b) {\n",
              "                var __ret = arePointsPredictiveOfDifferentCategories(a, b);\n",
              "                if (sortByDist) {\n",
              "                    var aGood = __ret.aGood;\n",
              "                    var bGood = __ret.bGood;\n",
              "                    if (aGood && !bGood) return -1;\n",
              "                    if (!aGood && bGood) return 1;\n",
              "                }\n",
              "                return b.s - a.s;\n",
              "            }\n",
              "\n",
              "            function scoreSortForNotCategory(a, b) {\n",
              "                var __ret = arePointsPredictiveOfDifferentCategories(a, b);\n",
              "                if (sortByDist) {\n",
              "                    var aGood = __ret.aGood;\n",
              "                    var bGood = __ret.bGood;\n",
              "                    if (aGood && !bGood) return 1;\n",
              "                    if (!aGood && bGood) return -1;\n",
              "                }\n",
              "                if (reverseSortScoresForNotCategory)\n",
              "                    return a.s - b.s;\n",
              "                else\n",
              "                    return b.s - a.s;\n",
              "            }\n",
              "\n",
              "            var sortedData = data.map(x => x).sort(sortByDist ? euclideanDistanceSort : scoreSort);\n",
              "            if (doCensorPoints) {\n",
              "                for (var i in sortedData) {\n",
              "                    var d = sortedData[i];\n",
              "                    if(censorPointColumn === undefined || (\n",
              "                        d.etc !== undefined && (d.etc[censorPointColumn] === false\n",
              "                                                || df.etc[censorPointColumn] === undefined))) {\n",
              "                        censorPoints(\n",
              "                            d,\n",
              "                            function (d) {\n",
              "                                return d.x\n",
              "                            },\n",
              "                            function (d) {\n",
              "                                return d.y\n",
              "                            }\n",
              "                        );\n",
              "                    }\n",
              "\n",
              "                }\n",
              "            }\n",
              "\n",
              "\n",
              "            function registerFigureBBox(curLabel, axis = false) {\n",
              "                var bbox = curLabel.node().getBBox();\n",
              "                var borderToRemove = 1.5;\n",
              "                var x1 = bbox.x + borderToRemove,\n",
              "                    y1 = bbox.y + borderToRemove,\n",
              "                    x2 = bbox.x + bbox.width - borderToRemove,\n",
              "                    y2 = bbox.y + bbox.height - borderToRemove;\n",
              "                var rect = new Rectangle(x1, y1, x2, y2)\n",
              "                if (axis) {\n",
              "                    axisRectHolder.add(rect)\n",
              "                } else {\n",
              "                    rectHolder.add(rect);\n",
              "                }\n",
              "                //return insertRangeTree(rangeTree, x1, y1, x2, y2, '~~_other_');\n",
              "            }\n",
              "\n",
              "            function drawXLabel(svg, labelText) {\n",
              "                return svg.append(\"text\")\n",
              "                    .attr(\"class\", \"x label\")\n",
              "                    .attr(\"text-anchor\", \"end\")\n",
              "                    .attr(\"x\", width)\n",
              "                    .attr(\"y\", height - 6)\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr('font-size', '10px')\n",
              "                    .text(labelText);\n",
              "            }\n",
              "\n",
              "            function drawYLabel(svg, labelText) {\n",
              "                return svg.append(\"text\")\n",
              "                    .attr(\"class\", \"y label\")\n",
              "                    .attr(\"text-anchor\", \"end\")\n",
              "                    .attr(\"y\", 6)\n",
              "                    .attr(\"dy\", \".75em\")\n",
              "                    .attr(\"transform\", \"rotate(-90)\")\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr('font-size', '10px')\n",
              "                    .text(labelText);\n",
              "            }\n",
              "\n",
              "            d3.selection.prototype.moveToBack = function () {\n",
              "                return this.each(function () {\n",
              "                    var firstChild = this.parentNode.firstChild;\n",
              "                    if (firstChild) {\n",
              "                        this.parentNode.insertBefore(this, firstChild);\n",
              "                    }\n",
              "                });\n",
              "            };\n",
              "\n",
              "\n",
              "            if (verticalLines) {\n",
              "                if (typeof (verticalLines) === \"number\") {\n",
              "                    verticalLines = [verticalLines]; // r likes to make single element vectors doubles; this is a hackish workaround\n",
              "                }\n",
              "                for (i in verticalLines) {\n",
              "                    svg.append(\"g\")\n",
              "                        .attr(\"transform\", \"translate(\" + x(verticalLines[i]) + \", 1)\")\n",
              "                        .append(\"line\")\n",
              "                        .attr(\"y2\", height)\n",
              "                        .style(\"stroke\", \"#dddddd\")\n",
              "                        .style(\"stroke-width\", \"1px\")\n",
              "                        .moveToBack();\n",
              "                }\n",
              "            }\n",
              "\n",
              "            if (fullData['line'] !== undefined) {\n",
              "                var valueline = d3.line()\n",
              "                    .x(function (d) {\n",
              "                        return x(d.x);\n",
              "                    })\n",
              "                    .y(function (d) {\n",
              "                        return y(d.y);\n",
              "                    });\n",
              "                fullData.line = fullData.line.sort((a, b) => b.x - a.x);\n",
              "                svg.append(\"path\")\n",
              "                    .attr(\"class\", \"line\")\n",
              "                    .style(\"stroke-dasharray\", \"5,5\")\n",
              "                    .style(\"stroke\", \"#3b719f\")\n",
              "                    .style(\"stroke-width\", \"1.25px\")\n",
              "                    .attr(\"d\", valueline(fullData['line'])).moveToBack();\n",
              "            }\n",
              "            if (showAxes || showAxesAndCrossHairs) {\n",
              "\n",
              "                var myXAxis = svg.append(\"g\")\n",
              "                    .attr(\"class\", \"x axis\")\n",
              "                    .attr(\"transform\", \"translate(0,\" + height + \")\")\n",
              "                    .call(xAxis);\n",
              "\n",
              "                //rangeTree = registerFigureBBox(myXAxis);\n",
              "\n",
              "\n",
              "                var xLabel = drawXLabel(svg, getLabelText('x'));\n",
              "\n",
              "                //console.log('xLabel');\n",
              "                //console.log(xLabel);\n",
              "\n",
              "                //rangeTree = registerFigureBBox(xLabel);\n",
              "                // Add the Y Axis\n",
              "\n",
              "                if (!yAxisValues) {\n",
              "                    var myYAxis = svg.append(\"g\")\n",
              "                        .attr(\"class\", \"y axis\")\n",
              "                        .call(yAxis)\n",
              "                        .selectAll(\"text\")\n",
              "                        .style(\"text-anchor\", \"end\")\n",
              "                        .attr(\"dx\", \"30px\")\n",
              "                        .attr(\"dy\", \"-13px\")\n",
              "                        .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                        .attr('font-size', '10px')\n",
              "                        .attr(\"transform\", \"rotate(-90)\");\n",
              "                } else {\n",
              "                    var myYAxis = svg.append(\"g\")\n",
              "                        .attr(\"class\", \"y axis\")\n",
              "                        .call(yAxis)\n",
              "                        .selectAll(\"text\")\n",
              "                        .style(\"text-anchor\", \"end\")\n",
              "                        .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                        .attr('font-size', '10px');\n",
              "                }\n",
              "                registerFigureBBox(myYAxis, true);\n",
              "                registerFigureBBox(myXAxis, true);\n",
              "\n",
              "                function getLabelText(axis) {\n",
              "                    if (axis == 'y') {\n",
              "                        if (yLabelText == null)\n",
              "                            return modelInfo['category_name'] + \" Frequency\";\n",
              "                        else\n",
              "                            return yLabelText;\n",
              "                    } else {\n",
              "                        if (xLabelText == null)\n",
              "                            return modelInfo['not_category_name'] + \" Frequency\";\n",
              "                        else\n",
              "                            return xLabelText;\n",
              "                    }\n",
              "                }\n",
              "\n",
              "                var yLabel = drawYLabel(svg, getLabelText('y'))\n",
              "\n",
              "            }\n",
              "\n",
              "            if (!showAxes || showAxesAndCrossHairs) {\n",
              "                horizontal_line_y_position_translated = 0.5;\n",
              "                if (horizontal_line_y_position !== null) {\n",
              "                    var loOy = null, hiOy = null, loY = null, hiY = null;\n",
              "                    for (i in fullData.data) {\n",
              "                        var curOy = fullData.data[i].oy;\n",
              "                        if (curOy < horizontal_line_y_position && (curOy > loOy || loOy === null)) {\n",
              "                            loOy = curOy;\n",
              "                            loY = fullData.data[i].y\n",
              "                        }\n",
              "                        if (curOy > horizontal_line_y_position && (curOy < hiOy || hiOy === null)) {\n",
              "                            hiOy = curOy;\n",
              "                            hiY = fullData.data[i].y\n",
              "                        }\n",
              "                    }\n",
              "                    horizontal_line_y_position_translated = loY + (hiY - loY) / 2.\n",
              "                    if (loY === null) {\n",
              "                        horizontal_line_y_position_translated = 0;\n",
              "                    }\n",
              "                }\n",
              "                if (vertical_line_x_position === null) {\n",
              "                    vertical_line_x_position_translated = 0.5;\n",
              "                } else {\n",
              "                    if (vertical_line_x_position !== null) {\n",
              "                        var loOx = null, hiOx = null, loX = null, hiX = null;\n",
              "                        for (i in fullData.data) {\n",
              "                            var curOx = fullData.data[i].ox;\n",
              "                            if (curOx < vertical_line_x_position && (curOx > loOx || loOx === null)) {\n",
              "                                loOx = curOx;\n",
              "                                loX = fullData.data[i].x;\n",
              "                            }\n",
              "                            if (curOx > vertical_line_x_position && (curOx < hiOx || hiOx === null)) {\n",
              "                                hiOx = curOx;\n",
              "                                hiX = fullData.data[i].x\n",
              "                            }\n",
              "                        }\n",
              "                        vertical_line_x_position_translated = loX + (hiX - loX) / 2.\n",
              "                        if (loX === null) {\n",
              "                            vertical_line_x_position_translated = 0;\n",
              "                        }\n",
              "                    }\n",
              "                }\n",
              "                if (showCrossAxes) {\n",
              "                    var x_line = svg.append(\"g\")\n",
              "                        .attr(\"transform\", \"translate(0, \" + y(horizontal_line_y_position_translated) + \")\")\n",
              "                        .append(\"line\")\n",
              "                        .attr(\"x2\", width)\n",
              "                        .style(\"stroke\", \"#cccccc\")\n",
              "                        .style(\"stroke-width\", \"1px\")\n",
              "                        .moveToBack();\n",
              "                    var y_line = svg.append(\"g\")\n",
              "                        .attr(\"transform\", \"translate(\" + x(vertical_line_x_position_translated) + \", 0)\")\n",
              "                        .append(\"line\")\n",
              "                        .attr(\"y2\", height)\n",
              "                        .style(\"stroke\", \"#cccccc\")\n",
              "                        .style(\"stroke-width\", \"1px\")\n",
              "                        .moveToBack();\n",
              "                }\n",
              "            }\n",
              "\n",
              "            if (showDiagonal) {\n",
              "                var diagonal = svg.append(\"g\")\n",
              "                    .append(\"line\")\n",
              "                    .attr(\"x1\", 0)\n",
              "                    .attr(\"y1\", height)\n",
              "                    .attr(\"x2\", width)\n",
              "                    .attr(\"y2\", 0)\n",
              "                    .style(\"stroke-dasharray\", \"5,5\")\n",
              "                    .style(\"stroke\", \"#cccccc\")\n",
              "                    .style(\"stroke-width\", \"1px\")\n",
              "                    .moveToBack();\n",
              "            }\n",
              "\n",
              "            if (horizontal_line_y_position !== null) {\n",
              "                console.log(\"Height\"); console.log(height); console.log(margin)\n",
              "                var horizontal = svg.append(\"g\")\n",
              "                    .append(\"line\")\n",
              "                    .attr(\"x1\", 0)\n",
              "                    .attr(\"y1\", (height)/2 + 3)\n",
              "                    .attr(\"x2\", width)\n",
              "                    .attr(\"y2\", (height)/2 + 3)\n",
              "                    .style(\"stroke-dasharray\", \"5,5\")\n",
              "                    .style(\"stroke\", \"#cccccc\")\n",
              "                    .style(\"stroke-width\", \"1px\")\n",
              "                    .moveToBack();\n",
              "            }\n",
              "\n",
              "            function showWordList(word, termDataList, xOffset = null) {\n",
              "                var maxWidth = word.node().getBBox().width;\n",
              "                var wordObjList = [];\n",
              "                for (var i in termDataList) {\n",
              "                    var datum = termDataList[i];\n",
              "                    var curTerm = datum.term;\n",
              "                    word = (function (word, curTerm) {\n",
              "                        var termColor = 'rgb(0,0,0)';\n",
              "                        if (textColorColumn !== undefined && datum.etc !== undefined && datum.etc[textColorColumn] !== undefined) {\n",
              "                            console.log(\"tcc\" + 'datum.etc[textColorColumn]')\n",
              "                            termColor = datum.etc[textColorColumn];\n",
              "                            if(termColor[0] !== '#')\n",
              "                                termColor = '#' + termColor;\n",
              "                        }\n",
              "                        var curWordPrinted = svg.append(\"text\")\n",
              "                            .attr(\"text-anchor\", \"start\")\n",
              "                            .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                            .attr('font-size', '12px')\n",
              "                            .attr(\"fill\", termColor)\n",
              "                            .attr(\"x\", xOffset == null ? word.node().getBBox().x : xOffset)\n",
              "                            .attr(\"y\", word.node().getBBox().y\n",
              "                                + 2 * word.node().getBBox().height)\n",
              "                            .text(formatTermForDisplay(curTerm));\n",
              "                        wordObjList.push(curWordPrinted)\n",
              "                        return makeWordInteractive(\n",
              "                            termDataList, //data,\n",
              "                            svg,\n",
              "                            curWordPrinted,\n",
              "                            curTerm,\n",
              "                            termDataList[i]);\n",
              "                    })(word, curTerm);\n",
              "                    if (word.node().getBBox().width > maxWidth)\n",
              "                        maxWidth = word.node().getBBox().width;\n",
              "                    registerFigureBBox(word);\n",
              "                }\n",
              "                return {\n",
              "                    'word': word,\n",
              "                    'maxWidth': maxWidth,\n",
              "                    'wordObjList': wordObjList\n",
              "                };\n",
              "            }\n",
              "\n",
              "            function pickEuclideanDistanceSortAlgo(category) {\n",
              "                if (category == true) return euclideanDistanceSortForCategory;\n",
              "                return euclideanDistanceSortForNotCategory;\n",
              "            }\n",
              "\n",
              "            function pickScoreSortAlgo(isTopPane) {\n",
              "                console.log(\"PICK SCORE ALGO\")\n",
              "                console.log(isTopPane)\n",
              "                if (isTopPane === true) {\n",
              "                    if (headerSortingAlgos !== null && headerSortingAlgos['upper'] !== undefined)\n",
              "                        return headerSortingAlgos['upper'];\n",
              "                    return scoreSortForCategory;\n",
              "                } else {\n",
              "                    if (headerSortingAlgos !== null && headerSortingAlgos['lower'] !== undefined)\n",
              "                        return headerSortingAlgos['lower'];\n",
              "                    return scoreSortForNotCategory;\n",
              "                }\n",
              "\n",
              "            }\n",
              "\n",
              "            function pickTermSortingAlgorithm(isUpperPane) {\n",
              "                if (sortByDist) return pickEuclideanDistanceSortAlgo(isUpperPane);\n",
              "                return pickScoreSortAlgo(isUpperPane);\n",
              "            }\n",
              "\n",
              "            function showAssociatedWordList(data, word, header, isUpperPane, xOffset, length = topTermsLength) {\n",
              "                var sortedData = null;\n",
              "                var sortingAlgo = pickTermSortingAlgorithm(isUpperPane);\n",
              "                console.log(\"showAssociatedWordList\");\n",
              "                console.log(header);\n",
              "                console.log(\"WORD\");\n",
              "                console.log(word)\n",
              "                sortedData = data.filter(term => (term.display === undefined || term.display === true)).sort(sortingAlgo);\n",
              "                if (wordVecMaxPValue) {\n",
              "                    function signifTest(x) {\n",
              "                        if (isUpperPane)\n",
              "                            return x.p >= 1 - minPVal;\n",
              "                        return x.p <= minPVal;\n",
              "                    }\n",
              "\n",
              "                    sortedData = sortedData.filter(signifTest)\n",
              "                }\n",
              "                return showWordList(word, sortedData.slice(0, length), xOffset);\n",
              "\n",
              "            }\n",
              "\n",
              "            var characteristicXOffset = width;\n",
              "\n",
              "            function showCatHeader(startingOffset, catName, registerFigureBBox) {\n",
              "                var catHeader = svg.append(\"text\")\n",
              "                    .attr(\"text-anchor\", \"start\")\n",
              "                    .attr(\"x\", startingOffset //width\n",
              "                    )\n",
              "                    .attr(\"dy\", \"6px\")\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr('font-size', '12px')\n",
              "                    .attr('font-weight', 'bolder')\n",
              "                    .attr('font-decoration', 'underline')\n",
              "                    .text(catName\n",
              "                        //\"Top \" + fullData['info']['category_name']\n",
              "                    );\n",
              "                registerFigureBBox(catHeader);\n",
              "                return catHeader;\n",
              "            }\n",
              "\n",
              "            function showNotCatHeader(startingOffset, word, notCatName) {\n",
              "                console.log(\"showNotCatHeader\")\n",
              "                return svg.append(\"text\")\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr('font-size', '12px')\n",
              "                    .attr('font-weight', 'bolder')\n",
              "                    .attr('font-decoration', 'underline')\n",
              "                    .attr(\"text-anchor\", \"start\")\n",
              "                    .attr(\"x\", startingOffset)\n",
              "                    .attr(\"y\", word.node().getBBox().y + 3 * word.node().getBBox().height)\n",
              "                    .text(notCatName);\n",
              "            }\n",
              "\n",
              "            function showTopTermsPane(data,\n",
              "                                      registerFigureBBox,\n",
              "                                      showAssociatedWordList,\n",
              "                                      upperHeaderName,\n",
              "                                      lowerHeaderName,\n",
              "                                      startingOffset) {\n",
              "                data = data.filter(term => (term.display === undefined || term.display === true));\n",
              "                //var catHeader = showCatHeader(startingOffset, catName, registerFigureBBox);\n",
              "                var catHeader = svg.append(\"text\")\n",
              "                    .attr(\"text-anchor\", \"start\")\n",
              "                    .attr(\"x\", startingOffset)\n",
              "                    .attr(\"dy\", \"6px\")\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr('font-size', '12px')\n",
              "                    .attr('font-weight', 'bolder')\n",
              "                    .attr('font-decoration', 'underline')\n",
              "                    .text(upperHeaderName\n",
              "                        //\"Top \" + fullData['info']['category_name']\n",
              "                    );\n",
              "                registerFigureBBox(catHeader);\n",
              "                var maxWidth = catHeader.node().getBBox().width\n",
              "                var word = catHeader;\n",
              "                var wordListData = showAssociatedWordList(data, word, catHeader, true, startingOffset);\n",
              "                word = wordListData.word;\n",
              "                maxWidth = Math.max(wordListData.maxWidth, maxWidth)\n",
              "\n",
              "                var notCatHeader = showNotCatHeader(startingOffset, word, lowerHeaderName);\n",
              "                word = notCatHeader;\n",
              "                maxWidth = Math.max(notCatHeader.node().getBBox().width, maxWidth)\n",
              "                console.log(\"characteristicXOffset\", characteristicXOffset)\n",
              "                console.log(catHeader.node().getBBox().x + maxWidth + 10)\n",
              "                console.log(notCatHeader.node().getBBox().x + maxWidth + 10)\n",
              "\n",
              "                var notWordListData = showAssociatedWordList(data, word, notCatHeader, false, startingOffset);\n",
              "                word = wordListData.word;\n",
              "                if (wordListData.maxWidth > maxWidth) {\n",
              "                    maxWidth = wordListData.maxWidth;\n",
              "                }\n",
              "                /*\n",
              "                characteristicXOffset = Math.max(\n",
              "                    catHeader.node().getBBox().x + maxWidth + 10,\n",
              "                    notCatHeader.node().getBBox().x + maxWidth + 10\n",
              "                )*/\n",
              "                characteristicXOffset = catHeader.node().getBBox().x + Math.max(notWordListData.maxWidth, maxWidth) + 10\n",
              "\n",
              "                return {\n",
              "                    wordListData, notWordListData,\n",
              "                    word, maxWidth, characteristicXOffset, startingOffset,\n",
              "                    catHeader, notCatHeader, registerFigureBBox\n",
              "                };\n",
              "            }\n",
              "\n",
              "            var payload = Object();\n",
              "            if (showTopTerms) {\n",
              "                var upperHeaderName = \"Top \" + fullData['info']['category_name'];\n",
              "                var lowerHeaderName = \"Top \" + fullData['info']['not_category_name'];\n",
              "                if (headerNames !== null) {\n",
              "                    if (headerNames.upper !== undefined)\n",
              "                        upperHeaderName = headerNames.upper;\n",
              "                    if (headerNames.lower !== undefined)\n",
              "                        lowerHeaderName = headerNames.lower;\n",
              "                }\n",
              "                payload.topTermsPane = showTopTermsPane(\n",
              "                    data,\n",
              "                    registerFigureBBox,\n",
              "                    showAssociatedWordList,\n",
              "                    upperHeaderName,\n",
              "                    lowerHeaderName,\n",
              "                    width + topTermsLeftBuffer\n",
              "                );\n",
              "                payload.showTopTermsPane = showTopTermsPane;\n",
              "                payload.showAssociatedWordList = showAssociatedWordList;\n",
              "                payload.showWordList = showWordList;\n",
              "\n",
              "                /*var wordListData = topTermsPane.wordListData;\n",
              "                var word = topTermsPane.word;\n",
              "                var maxWidth = topTermsPane.maxWidth;\n",
              "                var catHeader = topTermsPane.catHeader;\n",
              "                var notCatHeader = topTermsPane.notCatHeader;\n",
              "                var startingOffset = topTermsPane.startingOffset;*/\n",
              "                characteristicXOffset = payload.topTermsPane.characteristicXOffset;\n",
              "            }\n",
              "\n",
              "\n",
              "            //if ((!nonTextFeaturesMode && !asianMode && showCharacteristic)\n",
              "            if (showCharacteristic\n",
              "                || (headerNames !== null && headerNames.right !== undefined)) {\n",
              "                var sortMethod = backgroundScoreSort;\n",
              "                var title = 'Characteristic';\n",
              "                if (headerNames !== null && headerNames.right !== undefined) {\n",
              "                    title = headerNames.right;\n",
              "                }\n",
              "                if (wordVecMaxPValue) {\n",
              "                    title = 'Most similar';\n",
              "                    sortMethod = scoreSortReverse;\n",
              "                } else if (data.reduce(function (a, b) {\n",
              "                    return a + b.bg\n",
              "                }, 0) === 0) {\n",
              "                    title = 'Most frequent';\n",
              "                }\n",
              "                word = svg.append(\"text\")\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr(\"text-anchor\", \"start\")\n",
              "                    .attr('font-size', '12px')\n",
              "                    .attr('font-weight', 'bolder')\n",
              "                    .attr('font-decoration', 'underline')\n",
              "                    .attr(\"x\", characteristicXOffset)\n",
              "                    .attr(\"dy\", \"6px\")\n",
              "                    .text(title);\n",
              "\n",
              "                var rightSortMethod = sortMethod;\n",
              "                if (rightOrderColumn !== undefined && rightOrderColumn !== null) {\n",
              "                    rightSortMethod = ((a, b) => b.etc[rightOrderColumn] - a.etc[rightOrderColumn]);\n",
              "                }\n",
              "\n",
              "                var wordListData = showWordList(\n",
              "                    word,\n",
              "                    data.filter(term => (term.display === undefined || term.display === true))\n",
              "                        .sort(rightSortMethod).slice(0, topTermsLength * 2 + 2),\n",
              "                    characteristicXOffset\n",
              "                );\n",
              "\n",
              "                word = wordListData.word;\n",
              "                maxWidth = wordListData.maxWidth;\n",
              "                console.log(maxWidth);\n",
              "                console.log(word.node().getBBox().x + maxWidth);\n",
              "\n",
              "                svg.attr('width', word.node().getBBox().x + 3 * maxWidth + 10);\n",
              "            }\n",
              "\n",
              "            function performPartialLabeling(\n",
              "                data,\n",
              "                existingLabels,\n",
              "                getX,\n",
              "                getY,\n",
              "                labelPriorityFunction = ((a, b) => Math.min(a.x, 1 - a.x, a.y, 1 - a.y) - Math.min(b.x, 1 - b.x, b.y, 1 - b.y))\n",
              "            ) {\n",
              "                for (i in existingLabels) {\n",
              "                    rectHolder.remove(existingLabels[i].rect);\n",
              "                    existingLabels[i].label.remove();\n",
              "                }\n",
              "\n",
              "                var labeledPoints = [];\n",
              "\n",
              "                //var filteredData = data.filter(d=>d.display === undefined || d.display === true);\n",
              "                //for (var i = 0; i < filteredData.length; i++) {\n",
              "                data.sort(labelPriorityFunction).forEach(function (datum, i) {\n",
              "                    //console.log(datum.i, datum.ci, i)\n",
              "                    //var label = labelPointsIfPossible(i, getX(filteredData[i]), getY(filteredData[i]));\n",
              "                    if (datum.display === undefined || datum.display === true) {\n",
              "                        var label = labelPointsIfPossible(datum, getX(datum), getY(datum));\n",
              "                        if (label !== false) {\n",
              "                            //console.log(\"labeled\")\n",
              "                            labeledPoints.push(label)\n",
              "                        }\n",
              "                    }\n",
              "                    //if (labelPointsIfPossible(i), true) numPointsLabeled++;\n",
              "                })\n",
              "                return labeledPoints;\n",
              "            }\n",
              "\n",
              "            //var labeledPoints = performPartialLabeling();\n",
              "            var labeledPoints = [];\n",
              "            var labelPriorityFunction = ((a, b) => Math.min(a.x, 1 - a.x, a.y, 1 - a.y) - Math.min(b.x, 1 - b.x, b.y, 1 - b.y))\n",
              "            if (labelPriorityColumn !== undefined && labelPriorityColumn !== null) {\n",
              "                labelPriorityFunction = (a, b) => b.etc[labelPriorityColumn] - a.etc[labelPriorityColumn];\n",
              "            }\n",
              "\n",
              "            labeledPoints = performPartialLabeling(\n",
              "                data,\n",
              "                labeledPoints,\n",
              "                function (d) {\n",
              "                    return d.x\n",
              "                },\n",
              "                function (d) {\n",
              "                    return d.y\n",
              "                },\n",
              "                labelPriorityFunction\n",
              "            );\n",
              "\n",
              "            if (backgroundLabels !== null) {\n",
              "                backgroundLabels.map(\n",
              "                    function (label) {\n",
              "                        svg.append(\"text\")\n",
              "                            .attr(\"x\", x(label.X))\n",
              "                            .attr(\"y\", y(label.Y))\n",
              "                            .attr(\"text-anchor\", \"middle\")\n",
              "                            .style(\"font-size\", \"30\")\n",
              "                            .style(\"fill\", \"rgb(200,200,200)\")\n",
              "                            .text(label.Text)\n",
              "                            .lower()\n",
              "                            .on('mouseover', function (d) {\n",
              "                                d3.select(this).style('stroke', 'black').style('stroke-width', '1px').raise()\n",
              "                            })\n",
              "                            .on('mouseout', function (d) {\n",
              "                                d3.select(this).style('stroke-width', '0px').style('fill', 'rgb(200,200,200)').lower()\n",
              "                            })\n",
              "                    }\n",
              "                )\n",
              "            }\n",
              "\n",
              "\n",
              "            /*\n",
              "            // pointset has to be sorted by X\n",
              "            function convex(pointset) {\n",
              "                function _cross(o, a, b) {\n",
              "                    return (a[0] - o[0]) * (b[1] - o[1]) - (a[1] - o[1]) * (b[0] - o[0]);\n",
              "                }\n",
              "\n",
              "                function _upperTangent(pointset) {\n",
              "                    var lower = [];\n",
              "                    for (var l = 0; l < pointset.length; l++) {\n",
              "                        while (lower.length >= 2 && (_cross(lower[lower.length - 2], lower[lower.length - 1], pointset[l]) <= 0)) {\n",
              "                            lower.pop();\n",
              "                        }\n",
              "                        lower.push(pointset[l]);\n",
              "                    }\n",
              "                    lower.pop();\n",
              "                    return lower;\n",
              "                }\n",
              "\n",
              "                function _lowerTangent(pointset) {\n",
              "                    var reversed = pointset.reverse(),\n",
              "                        upper = [];\n",
              "                    for (var u = 0; u < reversed.length; u++) {\n",
              "                        while (upper.length >= 2 && (_cross(upper[upper.length - 2], upper[upper.length - 1], reversed[u]) <= 0)) {\n",
              "                            upper.pop();\n",
              "                        }\n",
              "                        upper.push(reversed[u]);\n",
              "                    }\n",
              "                    upper.pop();\n",
              "                    return upper;\n",
              "                }\n",
              "\n",
              "                var convex,\n",
              "                    upper = _upperTangent(pointset),\n",
              "                    lower = _lowerTangent(pointset);\n",
              "                convex = lower.concat(upper);\n",
              "                convex.push(pointset[0]);\n",
              "                return convex;\n",
              "            }\n",
              "\n",
              "            console.log(\"POINTSTORE\")\n",
              "            console.log(pointStore);\n",
              "            pointStore.sort();\n",
              "            var convexHull = convex(pointStore);\n",
              "            var minX = convexHull.sort(function (a,b) {\n",
              "                return a[0] < b[0] ? -1 : 1;\n",
              "            })[0][0];\n",
              "            var minY = convexHull.sort(function (a,b) {\n",
              "                return a[1] < b[1] ? -1 : 1;\n",
              "            })[0][0];\n",
              "            //svg.append(\"text\").text(\"BLAH BLAH\").attr(\"text-anchor\", \"middle\").attr(\"cx\", x(0)).attr(\"y\", minY);\n",
              "            console.log(\"POINTSTORE\")\n",
              "            console.log(pointStore);\n",
              "            console.log(convexHull);\n",
              "            for (i in convexHull) {\n",
              "                var i = parseInt(i);\n",
              "                if (i + 1 == convexHull.length) {\n",
              "                    var nextI = 0;\n",
              "                } else {\n",
              "                    var nextI = i + 1;\n",
              "                }\n",
              "                console.log(i, ',', nextI);\n",
              "                svg.append(\"line\")\n",
              "                    .attr(\"x2\", width)\n",
              "                    .style(\"stroke\", \"#cc0000\")\n",
              "                    .style(\"stroke-width\", \"1px\")\n",
              "                    .attr(\"x1\", convexHull[i][0])     // x position of the first end of the line\n",
              "                    .attr(\"y1\", convexHull[i][1])      // y position of the first end of the line\n",
              "                    .attr(\"x2\", convexHull[nextI][0])     // x position of the second end of the line\n",
              "                    .attr(\"y2\", convexHull[nextI][1]);    // y position of the second end of the line\n",
              "            }*/\n",
              "\n",
              "            function populateCorpusStats() {\n",
              "                var wordCounts = {};\n",
              "                var docCounts = {}\n",
              "                fullData.docs.labels.forEach(function (x, i) {\n",
              "                    var cnt = (\n",
              "                        fullData.docs.texts[i]\n",
              "                            .trim()\n",
              "                            .replace(/['\";:,.?¿\\-!¡]+/g, '')\n",
              "                            .match(/\\S+/g) || []\n",
              "                    ).length;\n",
              "                    var name = null;\n",
              "                    if (unifiedContexts) {\n",
              "                        var name = fullData.docs.categories[x];\n",
              "                        wordCounts[name] = wordCounts[name] ? wordCounts[name] + cnt : cnt;\n",
              "                    } else {\n",
              "                        if (fullData.docs.categories[x] == fullData.info.category_internal_name) {\n",
              "                            name = fullData.info.category_name;\n",
              "                        } else if (fullData.info.not_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.not_category_name;\n",
              "                        } else if (fullData.info.neutral_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.neutral_category_name;\n",
              "                        } else if (fullData.info.extra_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.extra_category_name;\n",
              "                        }\n",
              "                        if (name) {\n",
              "                            wordCounts[name] = wordCounts[name] ? wordCounts[name] + cnt : cnt\n",
              "                        }\n",
              "                    }\n",
              "                    //!!!\n",
              "\n",
              "                });\n",
              "                fullData.docs.labels.forEach(function (x) {\n",
              "\n",
              "                    if (unifiedContexts) {\n",
              "                        var name = fullData.docs.categories[x];\n",
              "                        docCounts[name] = docCounts[name] ? docCounts[name] + 1 : 1\n",
              "                    } else {\n",
              "                        var name = null;\n",
              "                        if (fullData.docs.categories[x] == fullData.info.category_internal_name) {\n",
              "                            name = fullData.info.category_name;\n",
              "                        } else if (fullData.info.not_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.not_category_name;\n",
              "                        } else if (fullData.info.neutral_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.neutral_category_name;\n",
              "                        } else if (fullData.info.extra_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.extra_category_name;\n",
              "                        }\n",
              "                        if (name) {\n",
              "                            docCounts[name] = docCounts[name] ? docCounts[name] + 1 : 1\n",
              "                        }\n",
              "                    }\n",
              "                });\n",
              "                console.log(\"docCounts\");\n",
              "                console.log(docCounts)\n",
              "                var messages = [];\n",
              "                if (ignoreCategories) {\n",
              "                    var wordCount = getCorpusWordCounts();\n",
              "                    messages.push(\n",
              "                        '<b>Document count: </b>' + fullData.docs.texts.length.toLocaleString('en') +\n",
              "                        '; <b>word count: </b>'\n",
              "                        + wordCount['sums'].reduce((a, b) => a + b, 0).toLocaleString('en')\n",
              "                    )\n",
              "                } else if (unifiedContexts) {\n",
              "                    fullData.docs.categories.forEach(function (x, i) {\n",
              "                        if (docCounts[x] > 0) {\n",
              "                            var message = '<b>' + x + '</b>: ';\n",
              "                            message += 'document count: '\n",
              "                                + Number(docCounts[x]).toLocaleString('en')\n",
              "                                + '; word count: '\n",
              "                                + Number(wordCounts[x]).toLocaleString('en')\n",
              "                            messages.push(message);\n",
              "                        }\n",
              "                    });\n",
              "                } else {\n",
              "                    [fullData.info.category_name,\n",
              "                        fullData.info.not_category_name,\n",
              "                        fullData.info.neutral_category_name,\n",
              "                        fullData.info.extra_category_name].forEach(function (x, i) {\n",
              "                        if (docCounts[x] > 0) {\n",
              "                            messages.push('<b>' + x + '</b> document count: '\n",
              "                                + Number(docCounts[x]).toLocaleString('en')\n",
              "                                + '; word count: '\n",
              "                                + Number(wordCounts[x]).toLocaleString('en'));\n",
              "                        }\n",
              "                    });\n",
              "                }\n",
              "\n",
              "                if (showCorpusStats) {\n",
              "                    d3.select('#' + divName + '-' + 'corpus-stats')\n",
              "                        .style('width', width + margin.left + margin.right + 200)\n",
              "                        .append('div')\n",
              "                        .html(messages.join('<br />'));\n",
              "                }\n",
              "            }\n",
              "\n",
              "\n",
              "            if (fullData.docs) {\n",
              "                populateCorpusStats();\n",
              "            }\n",
              "\n",
              "            if (saveSvgButton) {\n",
              "                // from https://stackoverflow.com/questions/23218174/how-do-i-save-export-an-svg-file-after-creating-an-svg-with-d3-js-ie-safari-an\n",
              "                var svgElement = document.getElementById(divName);\n",
              "\n",
              "                var serializer = new XMLSerializer();\n",
              "                var source = serializer.serializeToString(svgElement);\n",
              "\n",
              "                if (!source.match(/^<svg[^>]+xmlns=\"http\\:\\/\\/www\\.w3\\.org\\/2000\\/svg\"/)) {\n",
              "                    source = source.replace(/^<svg/, '<svg xmlns=\"https://www.w3.org/2000/svg\"');\n",
              "                }\n",
              "                if (!source.match(/^<svg[^>]+\"http\\:\\/\\/www\\.w3\\.org\\/1999\\/xlink\"/)) {\n",
              "                    source = source.replace(/^<svg/, '<svg xmlns:xlink=\"https://www.w3.org/1999/xlink\"');\n",
              "                }\n",
              "\n",
              "                source = '<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n' + source;\n",
              "\n",
              "                var url = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(source);\n",
              "\n",
              "                var downloadLink = document.createElement(\"a\");\n",
              "                downloadLink.href = url;\n",
              "                downloadLink.download = fullData['info']['category_name'] + \".svg\";\n",
              "                downloadLink.innerText = 'Download SVG';\n",
              "                document.body.appendChild(downloadLink);\n",
              "\n",
              "            }\n",
              "\n",
              "            function rerender(xCoords, yCoords, color) {\n",
              "                labeledPoints.forEach(function (p) {\n",
              "                    p.label.remove();\n",
              "                    rectHolder.remove(p.rect);\n",
              "                });\n",
              "                pointRects.forEach(function (rect) {\n",
              "                    rectHolder.remove(rect);\n",
              "                });\n",
              "                pointRects = []\n",
              "                /*\n",
              "                var circles = d3.select('#' + divName).selectAll('circle')\n",
              "                    .attr(\"cy\", function (d) {return y(yCoords[d.i])})\n",
              "                    .transition(0)\n",
              "                    .attr(\"cx\", function (d) {return x(xCoords[d.i])})\n",
              "                    .transition(0);\n",
              "                */\n",
              "                d3.select('#' + divName).selectAll(\"dot\").remove();\n",
              "                d3.select('#' + divName).selectAll(\"circle\").remove();\n",
              "                console.log(this.fullData)\n",
              "                console.log(this)\n",
              "                console.log(\"X/Y coords\")\n",
              "                console.log(this.fullData.data.filter(d => d.display === undefined || d.display === true).map(d => [d.x, d.y]))\n",
              "                var circles = this.svg//.select('#' + divName)\n",
              "                    .selectAll(\"dot\")\n",
              "                    .data(this.fullData.data.filter(d => d.display === undefined || d.display === true))\n",
              "                    //.filter(function (d) {return d.display === undefined || d.display === true})\n",
              "                    .enter()\n",
              "                    .append(\"circle\")\n",
              "                    .attr(\"cy\", d => d.y)\n",
              "                    .attr(\"cx\", d => d.x)\n",
              "                    .attr(\"r\", d => 2)\n",
              "                    .on(\"mouseover\", function (d) {\n",
              "                        /*var mySVGMatrix = circle.getScreenCTM()n\n",
              "                            .translate(circle.cx.baseVal.value, circle.cy.baseVal.value);\n",
              "                        var pageX = mySVGMatrix.e;\n",
              "                        var pageY = mySVGMatrix.f;*/\n",
              "\n",
              "                        /*showTooltip(\n",
              "                            d,\n",
              "                            d3.event.pageX,\n",
              "                            d3.event.pageY\n",
              "                        );*/\n",
              "                        showToolTipForTerm(data, this, d.term, d, true);\n",
              "                        d3.select(this).style(\"stroke\", \"black\");\n",
              "                    })\n",
              "                    .on(\"click\", function (d) {\n",
              "                        var runDisplayTermContexts = true;\n",
              "                        if (alternativeTermFunc != null) {\n",
              "                            runDisplayTermContexts = alternativeTermFunc(d);\n",
              "                        }\n",
              "                        if (runDisplayTermContexts) {\n",
              "                            displayTermContexts(data, gatherTermContexts(d), alwaysJump, includeAllContexts);\n",
              "                        }\n",
              "                    })\n",
              "                    .on(\"mouseout\", function (d) {\n",
              "                        tooltip.transition()\n",
              "                            .duration(0)\n",
              "                            .style(\"opacity\", 0);\n",
              "                        d3.select(this).style(\"stroke\", null);\n",
              "                        d3.select('#' + divName + '-' + 'overlapped-terms')\n",
              "                            .selectAll('div')\n",
              "                            .remove();\n",
              "                    });\n",
              "\n",
              "                if (color !== null) {\n",
              "                    console.log(\"COLOR\")\n",
              "                    console.log(color)\n",
              "                    circles.style(\"fill\", d => color(d));\n",
              "                }\n",
              "                xCoords.forEach((xCoord, i) => censorCircle(xCoord, yCoords[i]))\n",
              "                labeledPoints = [];\n",
              "                labeledPoints = performPartialLabeling(\n",
              "                    this.fullData.data,\n",
              "                    labeledPoints,\n",
              "                    (d => d.ox), //function (d) {return xCoords[d.ci]},\n",
              "                    (d => d.oy) //function (d) {return yCoords[d.ci]}\n",
              "\n",
              "                );\n",
              "            }\n",
              "\n",
              "            //return [performPartialLabeling, labeledPoints];\n",
              "            return {\n",
              "                ...payload,\n",
              "                ...{\n",
              "                    'rerender': rerender,\n",
              "                    'performPartialLabeling': performPartialLabeling,\n",
              "                    'showToolTipForTerm': showToolTipForTerm,\n",
              "                    'svg': svg,\n",
              "                    'data': data,\n",
              "                    'xLabel': xLabel,\n",
              "                    'yLabel': yLabel,\n",
              "                    'drawXLabel': drawXLabel,\n",
              "                    'drawYLabel': drawYLabel,\n",
              "                    'populateCorpusStats': populateCorpusStats\n",
              "                }\n",
              "            };\n",
              "        }\n",
              "\n",
              "\n",
              "        //fullData = getDataAndInfo();\n",
              "        if (fullData.docs) {\n",
              "            var corpusWordCounts = getCorpusWordCounts();\n",
              "        }\n",
              "        var payload = processData(fullData);\n",
              "\n",
              "        // The tool tip is down here in order to make sure it has the highest z-index\n",
              "        var tooltip = d3.select('#' + divName)\n",
              "            .append(\"div\")\n",
              "            //.attr(\"class\", getTooltipContent == null && sortByDist ? \"tooltip\" : \"tooltipscore\")\n",
              "            .attr(\"class\", \"tooltipscore\")\n",
              "            .style(\"opacity\", 0);\n",
              "\n",
              "        plotInterface = {}\n",
              "        if (payload.topTermsPane) {\n",
              "            plotInterface.topTermsPane = payload.topTermsPane;\n",
              "            plotInterface.showTopTermsPane = payload.showTopTermsPane;\n",
              "            plotInterface.showAssociatedWordList = payload.showAssociatedWordList;\n",
              "        }\n",
              "        plotInterface.includeAllContexts = includeAllContexts;\n",
              "        plotInterface.divName = divName;\n",
              "        plotInterface.displayTermContexts = displayTermContexts;\n",
              "        plotInterface.gatherTermContexts = gatherTermContexts;\n",
              "        plotInterface.xLabel = payload.xLabel;\n",
              "        plotInterface.yLabel = payload.yLabel;\n",
              "        plotInterface.drawXLabel = payload.drawXLabel;\n",
              "        plotInterface.drawYLabel = payload.drawYLabel;\n",
              "        plotInterface.svg = payload.svg;\n",
              "        plotInterface.termDict = termDict;\n",
              "        plotInterface.showToolTipForTerm = payload.showToolTipForTerm;\n",
              "        plotInterface.fullData = fullData;\n",
              "        plotInterface.data = payload.data;\n",
              "        plotInterface.rerender = payload.rerender;\n",
              "        plotInterface.populateCorpusStats = payload.populateCorpusStats;\n",
              "        plotInterface.handleSearch = handleSearch;\n",
              "        plotInterface.handleSearchTerm = handleSearchTerm;\n",
              "        plotInterface.highlightTerm = highlightTerm;\n",
              "        plotInterface.y = y;\n",
              "        plotInterface.x = x;\n",
              "        plotInterface.tooltip = tooltip;\n",
              "        plotInterface.alternativeTermFunc = alternativeTermFunc;\n",
              "\n",
              "        plotInterface.showTooltipSimple = function (term) {\n",
              "            plotInterface.showToolTipForTerm(\n",
              "                plotInterface.data,\n",
              "                plotInterface.svg,\n",
              "                term.replace(\"'\", \"\\\\'\"),\n",
              "                plotInterface.termDict[term.replace(\"'\", \"\\\\'\")]\n",
              "            )\n",
              "        };\n",
              "\n",
              "        plotInterface.drawCategoryAssociation = function (category, otherCategory = null) {\n",
              "            console.log(\"+++++++ Entering drawCategoryAssociation\")\n",
              "            console.log(\"Category: \" + category)\n",
              "            console.log(\"Other Category: \" + otherCategory)\n",
              "            var categoryNum = this.fullData.info.categories.indexOf(category);\n",
              "\n",
              "            var otherCategoryNum = null;\n",
              "            if (otherCategory !== null)\n",
              "                otherCategoryNum = this.fullData.info.categories.indexOf(otherCategory);\n",
              "\n",
              "            console.log(\"cat/other: \" + category + \"/\" + otherCategory + \" ::: \" + categoryNum + \"/\" + otherCategoryNum)\n",
              "\n",
              "            console.log(\"Full Data\")\n",
              "            console.log(this.fullData)\n",
              "            /*\n",
              "            var rawLogTermCounts = getTermCounts(this.fullData).map(Math.log);\n",
              "            var maxRawLogTermCounts = Math.max(...rawLogTermCounts);\n",
              "            var minRawLogTermCounts = Math.min(...rawLogTermCounts);\n",
              "            var logTermCounts = rawLogTermCounts.map(\n",
              "                x => (x - minRawLogTermCounts) / maxRawLogTermCounts\n",
              "            )\n",
              "            */\n",
              "\n",
              "            //var rawScores = getCategoryDenseRankScores(this.fullData, categoryNum);\n",
              "            //console.log(\"RAW SCORES\")\n",
              "            //console.log(rawScores);\n",
              "            /*\n",
              "            function logOddsRatioUninformativeDirichletPrior(fgFreqs, bgFreqs, alpha) {\n",
              "                var fgVocabSize = fgFreqs.reduce((x,y) => x+y);\n",
              "                var fgL = fgFreqs.map(x => (x + alpha)/((1+alpha)*fgVocabSize - x - alpha))\n",
              "                var bgVocabSize = bgFreqs.reduce((x,y) => x+y);\n",
              "                var bgL = bgFreqs.map(x => (x + alpha)/((1+alpha)*bgVocabSize - x - alpha))\n",
              "                var pooledVar = fgFreqs.map(function(x, i) {\n",
              "                    return (\n",
              "                        1/(x + alpha)\n",
              "                        + 1/((1+alpha)*fgVocabSize - x - alpha)\n",
              "                        + 1/(bgFreqs[i] + alpha)\n",
              "                        + 1/((1+alpha)*bgVocabSize - bgFreqs[i] - alpha))\n",
              "                })\n",
              "                return pooledVar.map(function(x, i) {\n",
              "                    return (Math.log(fgL[i]) - Math.log(bgL[i]))/x;\n",
              "                })\n",
              "            }\n",
              "            var rawScores = logOddsRatioUninformativeDirichletPrior(\n",
              "                denseRanks.fgFreqs, denseRanks.bgFreqs, 0.01);\n",
              "            */\n",
              "\n",
              "\n",
              "            var denseRanks = getDenseRanks(this.fullData, categoryNum)\n",
              "            if (otherCategoryNum !== null) {\n",
              "                var otherDenseRanks = getDenseRanks(this.fullData, otherCategoryNum);\n",
              "                denseRanks.bg = otherDenseRanks.fg;\n",
              "                denseRanks.bgFreqs = otherDenseRanks.fgFreqs;\n",
              "            }\n",
              "\n",
              "            var rawScores = denseRanks.fg.map((x, i) => x - denseRanks.bg[i]);\n",
              "            var minRawScores = Math.min(...rawScores);\n",
              "            var maxRawScores = Math.max(...rawScores);\n",
              "\n",
              "            var scores = rawScores.map(\n",
              "                function (rawScore) {\n",
              "                    if (rawScore == 0) {\n",
              "                        return 0.5;\n",
              "                    } else if (rawScore > 0) {\n",
              "                        return rawScore / (2. * maxRawScores) + 0.5;\n",
              "                    } else if (rawScore < 0) {\n",
              "                        return 0.5 - rawScore / (2. * minRawScores);\n",
              "                    }\n",
              "                }\n",
              "            )\n",
              "            var fgFreqSum = denseRanks.fgFreqs.reduce((a, b) => a + b, 0)\n",
              "            var bgFreqSum = denseRanks.bgFreqs.reduce((a, b) => a + b, 0)\n",
              "\n",
              "            //!!! OLD and good\n",
              "            var ox = denseRanks.bg;\n",
              "            var oy = denseRanks.fg;\n",
              "\n",
              "            var oxmax = Math.max(...ox)\n",
              "            var oxmin = Math.min(...ox)\n",
              "            var ox = ox.map(x => (x - oxmin) / (oxmax - oxmin))\n",
              "            var oymax = Math.max(...oy)\n",
              "            var oymin = Math.min(...oy)\n",
              "            var oy = oy.map(x => (x - oymin) / (oymax - oymin))\n",
              "            //var ox = logTermCounts\n",
              "            //var oy = scores;\n",
              "            var xf = this.x;\n",
              "            var yf = this.y;\n",
              "\n",
              "            this.fullData.data = this.fullData.data.map(function (term, i) {\n",
              "                //term.ci = i;\n",
              "                term.s = scores[term.i];\n",
              "                term.os = rawScores[term.i];\n",
              "                term.cat = denseRanks.fgFreqs[term.i];\n",
              "                term.ncat = denseRanks.bgFreqs[term.i];\n",
              "                term.cat25k = parseInt(denseRanks.fgFreqs[term.i] * 25000 / fgFreqSum);\n",
              "                term.ncat25k = parseInt(denseRanks.bgFreqs[term.i] * 25000 / bgFreqSum);\n",
              "                term.x = xf(ox[term.i]) // logTermCounts[term.i];\n",
              "                term.y = yf(oy[term.i]) // scores[term.i];\n",
              "                term.ox = ox[term.i];\n",
              "                term.oy = oy[term.i];\n",
              "                term.display = true;\n",
              "                return term;\n",
              "            })\n",
              "\n",
              "            // Feature selection\n",
              "            var targetTermsToShow = 1500;\n",
              "\n",
              "            var sortedBg = denseRanks.bg.map((x, i) => [x, i]).sort((a, b) => b[0] - a[0]).map(x => x[1]).slice(0, parseInt(targetTermsToShow / 2));\n",
              "            var sortedFg = denseRanks.fg.map((x, i) => [x, i]).sort((a, b) => b[0] - a[0]).map(x => x[1]).slice(0, parseInt(targetTermsToShow / 2));\n",
              "            var sortedScores = denseRanks.fg.map((x, i) => [x, i]).sort((a, b) => b[0] - a[0]).map(x => x[1]);\n",
              "            var myFullData = this.fullData\n",
              "\n",
              "            sortedBg.concat(sortedFg)//.concat(sortedScores.slice(0, parseInt(targetTermsToShow/2))).concat(sortedScores.slice(-parseInt(targetTermsToShow/4)))\n",
              "                .forEach(function (i) {\n",
              "                    myFullData.data[i].display = true;\n",
              "                })\n",
              "\n",
              "            console.log('newly filtered')\n",
              "            console.log(myFullData)\n",
              "\n",
              "            // begin rescaling to ignore hidden terms\n",
              "            /*\n",
              "            function scaleDenseRanks(ranks) {\n",
              "                var max = Math.max(...ranks);\n",
              "                return ranks.map(x=>x/max)\n",
              "            }\n",
              "            var filteredData = myFullData.data.filter(d=>d.display);\n",
              "            var catRanks = scaleDenseRanks(denseRank(filteredData.map(d=>d.cat)))\n",
              "            var ncatRanks = scaleDenseRanks(denseRank(filteredData.map(d=>d.ncat)))\n",
              "            var rawScores = catRanks.map((x,i) => x - ncatRanks[i]);\n",
              "            function stretch_0_1(scores) {\n",
              "                var max = 1.*Math.max(...rawScores);\n",
              "                var min = -1.*Math.min(...rawScores);\n",
              "                return scores.map(function(x, i) {\n",
              "                    if(x == 0) return 0.5;\n",
              "                    if(x > 0) return (x/max + 1)/2;\n",
              "                    return (x/min + 1)/2;\n",
              "                })\n",
              "            }\n",
              "            var scores = stretch_0_1(rawScores);\n",
              "            console.log(scores)\n",
              "            filteredData.forEach(function(d, i) {\n",
              "                d.x = xf(catRanks[i]);\n",
              "                d.y = yf(ncatRanks[i]);\n",
              "                d.ox = catRanks[i];\n",
              "                d.oy = ncatRanks[i];\n",
              "                d.s = scores[i];\n",
              "                d.os = rawScores[i];\n",
              "            });\n",
              "            console.log(\"rescaled\");\n",
              "            */\n",
              "            // end rescaling\n",
              "\n",
              "\n",
              "            this.rerender(//denseRanks.bg,\n",
              "                fullData.data.map(x => x.ox), //ox\n",
              "                //denseRanks.fg,\n",
              "                fullData.data.map(x => x.oy), //oy,\n",
              "                d => d3.interpolateRdYlBu(d.s));\n",
              "            if (this.yLabel !== undefined) {\n",
              "                this.yLabel.remove()\n",
              "            }\n",
              "            if (this.xLabel !== undefined) {\n",
              "                this.xLabel.remove()\n",
              "            }\n",
              "            var leftName = this.fullData.info.categories[categoryNum];\n",
              "            var bottomName = \"Not \" + this.fullData.info.categories[categoryNum];\n",
              "            if (otherCategoryNum !== null) {\n",
              "                bottomName = this.fullData.info.categories[otherCategoryNum];\n",
              "            }\n",
              "\n",
              "\n",
              "            this.yLabel = this.drawYLabel(this.svg, leftName + ' Frequncy Rank')\n",
              "            this.xLabel = this.drawXLabel(this.svg, bottomName + ' Frequency Rank')\n",
              "            if (this.topTermsPane !== undefined) {\n",
              "                this.topTermsPane.catHeader.remove()\n",
              "                this.topTermsPane.notCatHeader.remove()\n",
              "                this.topTermsPane.wordListData.wordObjList.map(x => x.remove())\n",
              "                this.topTermsPane.notWordListData.wordObjList.map(x => x.remove())\n",
              "            }\n",
              "            this.showWordList = payload.showWordList;\n",
              "\n",
              "\n",
              "            this.showAssociatedWordList = function (\n",
              "                data,\n",
              "                word,\n",
              "                header,\n",
              "                isUpperPane,\n",
              "                xOffset = this.topTermsPane.startingOffset,\n",
              "                length = 14\n",
              "            ) {\n",
              "                var sortedData = null;\n",
              "                if (!isUpperPane) {\n",
              "                    sortedData = data.map(x => x).sort((a, b) => scores[a.i] - scores[b.i])\n",
              "                } else {\n",
              "                    sortedData = data.map(x => x).sort((a, b) => scores[b.i] - scores[a.i])\n",
              "                }\n",
              "                console.log('sortedData');\n",
              "                console.log(isUpperPane);\n",
              "                console.log(sortedData.slice(0, length))\n",
              "                console.log(payload)\n",
              "                console.log(word)\n",
              "                return payload.showWordList(word, sortedData.slice(0, length), xOffset);\n",
              "            }\n",
              "            if (this.topTermsPane !== undefined)\n",
              "                this.topTermsPane = payload.showTopTermsPane(\n",
              "                    this.data,\n",
              "                    this.topTermsPane.registerFigureBBox,\n",
              "                    this.showAssociatedWordList,\n",
              "                    \"Top \" + leftName,\n",
              "                    \"Top \" + bottomName,\n",
              "                    this.topTermsPane.startingOffset\n",
              "                )\n",
              "\n",
              "            fullData.info.category_name = leftName;\n",
              "            fullData.info.not_category_name = bottomName;\n",
              "            fullData.info.category_internal_name = this.fullData.info.categories[categoryNum];\n",
              "            if (otherCategoryNum === null) {\n",
              "                fullData.info.not_category_internal_names = this.fullData.info.categories\n",
              "                    .filter(x => x !== this.fullData.info.categories[categoryNum]);\n",
              "            } else {\n",
              "                fullData.info.not_category_internal_names = this.fullData.info.categories\n",
              "                    .filter(x => x === this.fullData.info.categories[otherCategoryNum]);\n",
              "\n",
              "                fullData.info.neutral_category_internal_names = this.fullData.info.categories\n",
              "                    .filter(x => (x !== this.fullData.info.categories[categoryNum]\n",
              "                        && x !== this.fullData.info.categories[otherCategoryNum]));\n",
              "                fullData.info.neutral_category_name = \"All Others\";\n",
              "\n",
              "            }\n",
              "            console.log(\"fullData.info.not_category_internal_names\");\n",
              "            console.log(fullData.info.not_category_internal_names);\n",
              "            ['snippets', 'snippetsalt', 'termstats',\n",
              "                'overlapped-terms-clicked', 'categoryinfo',\n",
              "                'cathead', 'cat', 'corpus-stats', 'notcathead',\n",
              "                'notcat', 'neuthead', 'neut'\n",
              "            ].forEach(function (divSubName) {\n",
              "                var mydiv = '#' + divName + '-' + divSubName;\n",
              "                console.log(\"Clearing\");\n",
              "                console.log(mydiv);\n",
              "                d3.select(mydiv).selectAll(\"*\").remove();\n",
              "                d3.select(mydiv).html(\"\");\n",
              "\n",
              "            });\n",
              "            this.populateCorpusStats();\n",
              "\n",
              "            console.log(fullData)\n",
              "        };\n",
              "\n",
              "        plotInterface.yAxisLogCounts = function (termInfo) {\n",
              "            console.log(\"yAxisLogCounts\");\n",
              "            console.log(termInfo)\n",
              "            //var categoryNum = this.fullData.docs.categories.indexOf(categoryName);\n",
              "            //console.log(\"CatNum\"); console.log(categoryNum)\n",
              "            var categoryNum = termInfo.i;\n",
              "\n",
              "            var denseRanks = getDenseRanks(this.fullData, categoryNum)\n",
              "            console.log(\"denseRanks\")\n",
              "            console.log(denseRanks);\n",
              "\n",
              "            var rawScores = denseRanks.fg.map((x, i) => x - denseRanks.bg[i]);\n",
              "            var minRawScores = Math.min(...rawScores);\n",
              "            var maxRawScores = Math.max(...rawScores);\n",
              "\n",
              "            var scores = rawScores.map(\n",
              "                function (rawScore) {\n",
              "                    if (rawScore == 0) {\n",
              "                        return 0.5;\n",
              "                    } else if (rawScore > 0) {\n",
              "                        return rawScore / (2. * maxRawScores) + 0.5;\n",
              "                    } else if (rawScore < 0) {\n",
              "                        return 0.5 - rawScore / (2. * minRawScores);\n",
              "                    }\n",
              "                }\n",
              "            )\n",
              "            var fgFreqSum = denseRanks.fgFreqs.reduce((a, b) => a + b, 0)\n",
              "            var bgFreqSum = denseRanks.bgFreqs.reduce((a, b) => a + b, 0)\n",
              "\n",
              "            var oy = denseRanks.fgFreqs.map(count => Math.log(count + 1) / Math.log(2))\n",
              "\n",
              "            var oymax = Math.max(...oy)\n",
              "            var oymin = Math.min(...oy)\n",
              "            oy = oy.map(y => (y - oymin) / (oymax - oymin))\n",
              "            var xf = this.x;\n",
              "            var yf = this.y;\n",
              "            var ox = this.fullData.data.map(term => term.ox);\n",
              "            var oxmax = Math.max(...ox)\n",
              "            var oxmin = Math.min(...ox)\n",
              "            ox = ox.map(y => (y - oxmin) / (oxmax - oxmin))\n",
              "\n",
              "\n",
              "            this.fullData.data = this.fullData.data.map(function (term, i) {\n",
              "                term.s = 1;//scores[i];\n",
              "                term.os = rawScores[i];\n",
              "                term.cat = denseRanks.fgFreqs[i];\n",
              "                term.ncat = denseRanks.bgFreqs[i];\n",
              "                term.cat25k = parseInt(denseRanks.fgFreqs[i] * 25000 / fgFreqSum);\n",
              "                term.ncat25k = parseInt(denseRanks.bgFreqs[i] * 25000 / bgFreqSum);\n",
              "                //term.x = xf(term.ox) // scores[term.i];\n",
              "                //term.ox = term.ox;\n",
              "                term.y = yf(oy[i]) // scores[term.i];\n",
              "                term.oy = oy[i];\n",
              "                term.x = xf(ox[i]) // scores[term.i];\n",
              "                term.ox = ox[i];\n",
              "                term.display = true;\n",
              "                return term;\n",
              "            })\n",
              "\n",
              "\n",
              "            this.rerender(//denseRanks.bg,\n",
              "                this.fullData.data.map(point => point.ox), //ox\n",
              "                this.fullData.data.map(point => point.oy), //oy,\n",
              "                d => d3.interpolateRdYlBu(d.s)\n",
              "            );\n",
              "\n",
              "            if (this.yLabel !== undefined) {\n",
              "                this.yLabel.remove()\n",
              "                this.yLabel = this.drawYLabel(this.svg, this.fullData.info.categories[categoryNum] + ' log freq.')\n",
              "            }\n",
              "\n",
              "            if (this.topTermsPane !== undefined) {\n",
              "                this.topTermsPane.catHeader.remove()\n",
              "                this.topTermsPane.notCatHeader.remove()\n",
              "                this.topTermsPane.wordListData.wordObjList.map(x => x.remove())\n",
              "                this.topTermsPane.notWordListData.wordObjList.map(x => x.remove())\n",
              "            }\n",
              "            this.showWordList = payload.showWordList;\n",
              "\n",
              "\n",
              "            this.showAssociatedWordList = function (data, word, header, isUpperPane, xOffset = this.topTermsPane.startingOffset, length = 14) {\n",
              "                var sortedData = null;\n",
              "                if (!isUpperPane) {\n",
              "                    sortedData = data.map(x => x).sort((a, b) => scores[a.i] - scores[b.i])\n",
              "                } else {\n",
              "                    sortedData = data.map(x => x).sort((a, b) => scores[b.i] - scores[a.i])\n",
              "                }\n",
              "                console.log('sortedData');\n",
              "                console.log(isUpperPane);\n",
              "                console.log(sortedData.slice(0, length))\n",
              "                console.log(payload)\n",
              "                console.log(word)\n",
              "                return payload.showWordList(word, sortedData.slice(0, length), xOffset);\n",
              "            }\n",
              "            var leftName = this.fullData.info.categories[categoryNum];\n",
              "            var bottomName = \"Not \" + this.fullData.info.categories[categoryNum];\n",
              "\n",
              "            if (this.topTermsPane !== undefined)\n",
              "                this.topTermsPane = payload.showTopTermsPane(\n",
              "                    this.data,\n",
              "                    this.topTermsPane.registerFigureBBox,\n",
              "                    this.showAssociatedWordList,\n",
              "                    \"Top \" + leftName,\n",
              "                    \"Top \" + bottomName,\n",
              "                    this.topTermsPane.startingOffset\n",
              "                )\n",
              "\n",
              "            fullData.info.category_name = leftName;\n",
              "            fullData.info.not_category_name = bottomName;\n",
              "            fullData.info.category_internal_name = this.fullData.info.categories[categoryNum];\n",
              "            fullData.info.not_category_internal_names = this.fullData.info.categories\n",
              "                .filter(x => x !== this.fullData.info.categories[categoryNum]);\n",
              "\n",
              "            console.log(\"fullData.info.not_category_internal_names\");\n",
              "            console.log(fullData.info.not_category_internal_names);\n",
              "            ['snippets', 'snippetsalt', 'termstats',\n",
              "                'overlapped-terms-clicked', 'categoryinfo',\n",
              "                'cathead', 'cat', 'corpus-stats', 'notcathead',\n",
              "                'notcat', 'neuthead', 'neut'\n",
              "            ].forEach(function (divSubName) {\n",
              "                var mydiv = '#' + divName + '-' + divSubName;\n",
              "                console.log(\"Clearing\");\n",
              "                console.log(mydiv);\n",
              "                d3.select(mydiv).selectAll(\"*\").remove();\n",
              "                d3.select(mydiv).html(\"\");\n",
              "\n",
              "            });\n",
              "            this.populateCorpusStats();\n",
              "        };\n",
              "\n",
              "        return plotInterface\n",
              "    };\n",
              "}(d3);\n",
              "\n",
              "; \n",
              " \n",
              " // Adapted from https://www.w3schools.com/howto/howto_js_autocomplete.asp\n",
              "function autocomplete(inputField, autocompleteValues, myPlotInterface) {\n",
              "    var currentFocus; // current position in autocomplete list.\n",
              "\n",
              "    inputField.addEventListener(\"input\", function (e) {\n",
              "        var matchedCandidateListDiv, matchedCandidateDiv, i, userInput = this.value;\n",
              "\n",
              "        closeAllLists();\n",
              "        if (!userInput) {\n",
              "            return false;\n",
              "        }\n",
              "        currentFocus = -1;\n",
              "\n",
              "        matchedCandidateListDiv = document.createElement(\"div\");\n",
              "        matchedCandidateListDiv.setAttribute(\"id\", this.id + \"autocomplete-list\");\n",
              "        matchedCandidateListDiv.setAttribute(\"class\", \"autocomplete-items\");\n",
              "\n",
              "        this.parentNode.appendChild(matchedCandidateListDiv);\n",
              "        autocompleteValues.map(function (candidate) {\n",
              "            var candidatePrefix = candidate.substr(0, userInput.length);\n",
              "            if (candidatePrefix.toLowerCase() === userInput.toLowerCase()) {\n",
              "                matchedCandidateDiv = document.createElement(\"div\");\n",
              "                matchedCandidateDiv.innerHTML = \"<strong>\" + candidatePrefix + \"</strong>\";\n",
              "                matchedCandidateDiv.innerHTML += candidate.substr(userInput.length);\n",
              "                matchedCandidateDiv.innerHTML += '<input type=hidden value=\"' + encodeURIComponent(candidate) + '\">';\n",
              "                matchedCandidateDiv.addEventListener(\"click\", function (e) {\n",
              "                    console.log(\"CLICK\")\n",
              "                    console.log(this.getElementsByTagName(\"input\")[0].value)\n",
              "                    inputField.value = decodeURIComponent(this.getElementsByTagName(\"input\")[0].value);\n",
              "                    console.log(inputField.value)\n",
              "                    closeAllLists();\n",
              "                    myPlotInterface.handleSearchTerm(inputField.value);\n",
              "                });\n",
              "                matchedCandidateListDiv.appendChild(matchedCandidateDiv);\n",
              "            }\n",
              "        });\n",
              "    });\n",
              "\n",
              "    inputField.addEventListener(\"keydown\", function (keyboardEvent) {\n",
              "\n",
              "        var candidateDivList = document.getElementById(this.id + \"autocomplete-list\");\n",
              "\n",
              "        if (!candidateDivList)\n",
              "            return true;\n",
              "\n",
              "        var selectedCandidate = Array.prototype.find.call(\n",
              "            candidateDivList.children,\n",
              "            x => x.className !== \"\"\n",
              "        );\n",
              "\n",
              "        if (keyboardEvent.keyCode === 40 || keyboardEvent.keyCode === 9) { // down or tab\n",
              "            keyboardEvent.preventDefault();\n",
              "            currentFocus++;\n",
              "            addActive(candidateDivList.getElementsByTagName(\"div\"));\n",
              "        } else if (keyboardEvent.keyCode === 38) { //up\n",
              "            currentFocus--;\n",
              "            addActive(candidateDivList.getElementsByTagName(\"div\"));\n",
              "        } else if (keyboardEvent.keyCode === 13) { // enter\n",
              "            keyboardEvent.preventDefault();\n",
              "            var selectedTerm = inputField.value;\n",
              "            console.log(\"selected term\");console.log(selectedTerm);\n",
              "            console.log(myPlotInterface);\n",
              "            //if (selectedCandidate)\n",
              "            //    selectedTerm = selectedCandidate.children[1].value;\n",
              "            myPlotInterface.handleSearchTerm(selectedTerm);\n",
              "            closeAllLists(null);\n",
              "        } else if (keyboardEvent.keyCode === 27) { // esc\n",
              "            closeAllLists(null);\n",
              "        }\n",
              "    });\n",
              "\n",
              "    function addActive(candidateDivList) {\n",
              "        if (!candidateDivList) return false;\n",
              "\n",
              "        removeActive(candidateDivList);\n",
              "\n",
              "        if (currentFocus >= candidateDivList.length)\n",
              "            currentFocus = 0;\n",
              "        if (currentFocus < 0)\n",
              "            currentFocus = (candidateDivList.length - 1);\n",
              "\n",
              "        candidateDivList[currentFocus].classList.add(\"autocomplete-active\");\n",
              "\n",
              "        var selectedCandidate = Array.prototype.find.call(\n",
              "            candidateDivList,\n",
              "            x => x.className !== \"\"\n",
              "        );\n",
              "\n",
              "        if (selectedCandidate) {\n",
              "            var candidateValue = decodeURIComponent(selectedCandidate.children[1].value);\n",
              "\n",
              "            myPlotInterface.highlightTerm(candidateValue);\n",
              "            inputField.value = candidateValue;\n",
              "        }\n",
              "\n",
              "    }\n",
              "\n",
              "    function removeActive(candidateDivList) {\n",
              "        Array.prototype.find.call(\n",
              "            candidateDivList,\n",
              "            x => x.classList.remove(\"autocomplete-active\")\n",
              "        );\n",
              "    }\n",
              "\n",
              "    function closeAllLists(elmnt) {\n",
              "        /*close all autocomplete lists in the document,\n",
              "        except the one passed as an argument:*/\n",
              "        var x = document.getElementsByClassName(\"autocomplete-items\");\n",
              "        for (var i = 0; i < x.length; i++) {\n",
              "            if (elmnt != x[i] && elmnt != inputField) {\n",
              "                x[i].parentNode.removeChild(x[i]);\n",
              "            }\n",
              "        }\n",
              "    }\n",
              "\n",
              "    /*execute a function when someone clicks in the document:*/\n",
              "    document.addEventListener(\"click\", function (e) {\n",
              "        closeAllLists(e.target);\n",
              "    });\n",
              "}\n",
              "\n",
              "function getDataAndInfo() { return{\"info\": {\"category_name\": \"\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u30b7\\u30b9\\u30c6\\u30e0\", \"not_category_name\": \"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u2160\", \"category_terms\": [\"\\u8a66\\u9a13\", \"\\u304b\", \"\\u306a\\u3044\", \"\\u6388\\u696d\", \"\\u30fb\", \"\\u3082\", \"\\u3044\", \"\\u3066\", \"\\u3066 \\u3044\", \"\\u601d\\u3044\"], \"not_category_terms\": [\"\\u3053\\u3068\", \"\\u3067\\u304d\", \"\\u305f\", \"\\u3053\\u306e\", \"\\u3067\", \"\\u304b\\u3089\", \"\\u3092\", \"\\u306e\", \"\\u304c\", \"\\u3084\"], \"category_internal_name\": \"\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u30b7\\u30b9\\u30c6\\u30e0\", \"not_category_internal_names\": [\"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u2160\"], \"categories\": [\"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u2160\", \"\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u30b7\\u30b9\\u30c6\\u30e0\"], \"neutral_category_internal_names\": [], \"extra_category_internal_names\": [], \"neutral_category_name\": \"Neutral\", \"extra_category_name\": \"Extra\"}, \"data\": [{\"x\": 0.46, \"y\": 0.06, \"ox\": 0.46, \"oy\": 0.06, \"term\": \"\\u8aac\\u660e\", \"cat25k\": 144, \"ncat25k\": 221, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 8, \"ncat\": 2, \"s\": 0.18, \"os\": 0.06677265500794913, \"bg\": 0.0}, {\"x\": 0.96, \"y\": 0.96, \"ox\": 0.96, \"oy\": 0.96, \"term\": \"\\u304c\", \"cat25k\": 1815, \"ncat25k\": 2323, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 101, \"ncat\": 21, \"s\": 0.16, \"os\": 0.06359300476947538, \"bg\": 0.0}, {\"x\": 0.48, \"y\": 0.78, \"ox\": 0.48, \"oy\": 0.78, \"term\": \"\\u306a\\u3044\", \"cat25k\": 575, \"ncat25k\": 221, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 32, \"ncat\": 2, \"s\": 0.9600000000000001, \"os\": 0.4992050874403815, \"bg\": 0.0}, {\"x\": 0.26, \"y\": 0.08, \"ox\": 0.26, \"oy\": 0.08, \"term\": \"\\u305f\\u308a\", \"cat25k\": 144, \"ncat25k\": 111, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 8, \"ncat\": 1, \"s\": 0.32, \"os\": 0.12559618441971385, \"bg\": 0.0}, {\"x\": 0.8, \"y\": 0.82, \"ox\": 0.8, \"oy\": 0.82, \"term\": \"\\u3057\", \"cat25k\": 935, \"ncat25k\": 885, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 52, \"ncat\": 8, \"s\": 0.48000000000000004, \"os\": 0.22734499205087444, \"bg\": 0.0}, {\"x\": 1.0, \"y\": 0.94, \"ox\": 1.0, \"oy\": 0.94, \"term\": \"\\u305f\", \"cat25k\": 1528, \"ncat25k\": 3097, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 85, \"ncat\": 28, \"s\": 0.04, \"os\": -0.08108108108108103, \"bg\": 0.0}, {\"x\": 0.98, \"y\": 1.0, \"ox\": 0.98, \"oy\": 1.0, \"term\": \"\\u306e\", \"cat25k\": 2193, \"ncat25k\": 2876, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 122, \"ncat\": 26, \"s\": 0.14, \"os\": 0.05882352941176472, \"bg\": 0.0}, {\"x\": 0.94, \"y\": 0.88, \"ox\": 0.94, \"oy\": 0.88, \"term\": \"\\u3067\", \"cat25k\": 1132, \"ncat25k\": 1881, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 63, \"ncat\": 17, \"s\": 0.08, \"os\": 0.014308426073131986, \"bg\": 0.0}, {\"x\": 0.86, \"y\": 0.98, \"ox\": 0.86, \"oy\": 0.98, \"term\": \"\\u3066\", \"cat25k\": 1869, \"ncat25k\": 996, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 104, \"ncat\": 9, \"s\": 0.86, \"os\": 0.38473767885532595, \"bg\": 0.0}, {\"x\": 0.9, \"y\": 0.84, \"ox\": 0.9, \"oy\": 0.84, \"term\": \"\\u306f\", \"cat25k\": 988, \"ncat25k\": 1438, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 55, \"ncat\": 13, \"s\": 0.22000000000000003, \"os\": 0.07790143084260726, \"bg\": 0.0}, {\"x\": 0.28, \"y\": 0.1, \"ox\": 0.28, \"oy\": 0.1, \"term\": \"\\u3070\", \"cat25k\": 144, \"ncat25k\": 111, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 8, \"ncat\": 1, \"s\": 0.32, \"os\": 0.12559618441971385, \"bg\": 0.0}, {\"x\": 0.92, \"y\": 0.86, \"ox\": 0.92, \"oy\": 0.86, \"term\": \"\\u3092\", \"cat25k\": 1024, \"ncat25k\": 1770, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 57, \"ncat\": 16, \"s\": 0.12000000000000002, \"os\": 0.04610492845786973, \"bg\": 0.0}, {\"x\": 0.78, \"y\": 0.7, \"ox\": 0.78, \"oy\": 0.7, \"term\": \"\\u8ab2\\u984c\", \"cat25k\": 413, \"ncat25k\": 664, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 23, \"ncat\": 6, \"s\": 0.42000000000000004, \"os\": 0.1828298887122417, \"bg\": 0.0}, {\"x\": 0.66, \"y\": 0.0, \"ox\": 0.66, \"oy\": 0.0, \"term\": \"\\u3067\\u304d\", \"cat25k\": 108, \"ncat25k\": 442, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 6, \"ncat\": 4, \"s\": 0.02, \"os\": -0.10492845786963434, \"bg\": 0.0}, {\"x\": 0.64, \"y\": 0.02, \"ox\": 0.64, \"oy\": 0.02, \"term\": \"\\u3053\\u306e\", \"cat25k\": 126, \"ncat25k\": 332, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 7, \"ncat\": 3, \"s\": 0.060000000000000005, \"os\": -0.019077901430842592, \"bg\": 0.0}, {\"x\": 0.88, \"y\": 0.92, \"ox\": 0.88, \"oy\": 0.92, \"term\": \"\\u306b\", \"cat25k\": 1510, \"ncat25k\": 1106, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 84, \"ncat\": 10, \"s\": 0.58, \"os\": 0.2448330683624801, \"bg\": 0.0}, {\"x\": 0.5, \"y\": 0.04, \"ox\": 0.5, \"oy\": 0.04, \"term\": \"\\u304b\\u3089\", \"cat25k\": 126, \"ncat25k\": 221, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 7, \"ncat\": 2, \"s\": 0.1, \"os\": 0.0397456279809221, \"bg\": 0.0}, {\"x\": 0.3, \"y\": 0.12, \"ox\": 0.3, \"oy\": 0.12, \"term\": \"\\u96e3\\u6613\\u5ea6\", \"cat25k\": 144, \"ncat25k\": 111, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 8, \"ncat\": 1, \"s\": 0.32, \"os\": 0.12559618441971385, \"bg\": 0.0}, {\"x\": 0.32, \"y\": 0.26, \"ox\": 0.32, \"oy\": 0.26, \"term\": \"\\u3055\", \"cat25k\": 180, \"ncat25k\": 111, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 10, \"ncat\": 1, \"s\": 0.4, \"os\": 0.1796502384737679, \"bg\": 0.0}, {\"x\": 0.34, \"y\": 0.14, \"ox\": 0.34, \"oy\": 0.14, \"term\": \"\\u305f\\u3081\", \"cat25k\": 144, \"ncat25k\": 111, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 8, \"ncat\": 1, \"s\": 0.32, \"os\": 0.12559618441971385, \"bg\": 0.0}, {\"x\": 0.82, \"y\": 0.9, \"ox\": 0.82, \"oy\": 0.9, \"term\": \"\\u3068\", \"cat25k\": 1258, \"ncat25k\": 885, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 70, \"ncat\": 8, \"s\": 0.7599999999999999, \"os\": 0.33545310015898255, \"bg\": 0.0}, {\"x\": 0.84, \"y\": 0.44, \"ox\": 0.84, \"oy\": 0.44, \"term\": \"\\u3053\\u3068\", \"cat25k\": 252, \"ncat25k\": 885, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 14, \"ncat\": 8, \"s\": 0.0, \"os\": -0.15103338632750396, \"bg\": 0.0}, {\"x\": 0.52, \"y\": 0.66, \"ox\": 0.52, \"oy\": 0.66, \"term\": \"\\u601d\\u3044\", \"cat25k\": 359, \"ncat25k\": 221, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 20, \"ncat\": 2, \"s\": 0.82, \"os\": 0.3640699523052464, \"bg\": 0.0}, {\"x\": 0.76, \"y\": 0.72, \"ox\": 0.76, \"oy\": 0.72, \"term\": \"\\u307e\\u3059\", \"cat25k\": 413, \"ncat25k\": 553, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 23, \"ncat\": 5, \"s\": 0.5599999999999999, \"os\": 0.24165341812400637, \"bg\": 0.0}, {\"x\": 0.54, \"y\": 0.6, \"ox\": 0.54, \"oy\": 0.6, \"term\": \"\\u3068 \\u601d\\u3044\", \"cat25k\": 341, \"ncat25k\": 221, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 19, \"ncat\": 2, \"s\": 0.78, \"os\": 0.33704292527821933, \"bg\": 0.0}, {\"x\": 0.56, \"y\": 0.5, \"ox\": 0.56, \"oy\": 0.5, \"term\": \"\\u601d\\u3044 \\u307e\\u3059\", \"cat25k\": 288, \"ncat25k\": 221, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 16, \"ncat\": 2, \"s\": 0.6, \"os\": 0.2559618441971383, \"bg\": 0.0}, {\"x\": 0.68, \"y\": 0.74, \"ox\": 0.68, \"oy\": 0.74, \"term\": \"\\u3067\\u3059\", \"cat25k\": 431, \"ncat25k\": 442, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 24, \"ncat\": 4, \"s\": 0.74, \"os\": 0.32750397456279806, \"bg\": 0.0}, {\"x\": 0.58, \"y\": 0.16, \"ox\": 0.58, \"oy\": 0.16, \"term\": \"\\u3084\", \"cat25k\": 144, \"ncat25k\": 221, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 8, \"ncat\": 2, \"s\": 0.18, \"os\": 0.06677265500794913, \"bg\": 0.0}, {\"x\": 0.7, \"y\": 0.8, \"ox\": 0.7, \"oy\": 0.8, \"term\": \"\\u3082\", \"cat25k\": 629, \"ncat25k\": 442, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 35, \"ncat\": 4, \"s\": 0.9, \"os\": 0.4085850556438792, \"bg\": 0.0}, {\"x\": 0.36, \"y\": 0.62, \"ox\": 0.36, \"oy\": 0.62, \"term\": \"\\u3044\", \"cat25k\": 341, \"ncat25k\": 111, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 19, \"ncat\": 1, \"s\": 0.88, \"os\": 0.39586645468998405, \"bg\": 0.0}, {\"x\": 0.38, \"y\": 0.56, \"ox\": 0.38, \"oy\": 0.56, \"term\": \"\\u3066 \\u3044\", \"cat25k\": 324, \"ncat25k\": 111, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 18, \"ncat\": 1, \"s\": 0.84, \"os\": 0.3688394276629571, \"bg\": 0.0}, {\"x\": 0.4, \"y\": 0.34, \"ox\": 0.4, \"oy\": 0.34, \"term\": \"\\u5185\\u5bb9\", \"cat25k\": 216, \"ncat25k\": 111, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 12, \"ncat\": 1, \"s\": 0.5, \"os\": 0.23370429252782196, \"bg\": 0.0}, {\"x\": 0.72, \"y\": 0.46, \"ox\": 0.72, \"oy\": 0.46, \"term\": \"\\u307e\\u3057\", \"cat25k\": 270, \"ncat25k\": 442, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 15, \"ncat\": 4, \"s\": 0.28, \"os\": 0.11128775834658189, \"bg\": 0.0}, {\"x\": 0.74, \"y\": 0.48, \"ox\": 0.74, \"oy\": 0.48, \"term\": \"\\u307e\\u3057 \\u305f\", \"cat25k\": 270, \"ncat25k\": 442, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 15, \"ncat\": 4, \"s\": 0.28, \"os\": 0.11128775834658189, \"bg\": 0.0}, {\"x\": 0.42, \"y\": 0.52, \"ox\": 0.42, \"oy\": 0.52, \"term\": \"\\u306a\", \"cat25k\": 288, \"ncat25k\": 111, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 16, \"ncat\": 1, \"s\": 0.72, \"os\": 0.314785373608903, \"bg\": 0.0}, {\"x\": 0.44, \"y\": 0.54, \"ox\": 0.44, \"oy\": 0.54, \"term\": \"\\u308c\", \"cat25k\": 306, \"ncat25k\": 111, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 17, \"ncat\": 1, \"s\": 0.8, \"os\": 0.3418124006359301, \"bg\": 0.0}, {\"x\": 0.6, \"y\": 0.18, \"ox\": 0.6, \"oy\": 0.18, \"term\": \"\\u3088\\u3046\", \"cat25k\": 162, \"ncat25k\": 221, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 9, \"ncat\": 2, \"s\": 0.24000000000000002, \"os\": 0.09379968203497616, \"bg\": 0.0}, {\"x\": 0.62, \"y\": 0.2, \"ox\": 0.62, \"oy\": 0.2, \"term\": \"\\u8b1b\\u7fa9\", \"cat25k\": 162, \"ncat25k\": 221, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 9, \"ncat\": 2, \"s\": 0.24000000000000002, \"os\": 0.09379968203497616, \"bg\": 0.0}, {\"x\": 0.0, \"y\": 0.58, \"ox\": 0.0, \"oy\": 0.58, \"term\": \"\\u30fb\", \"cat25k\": 324, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 18, \"ncat\": 0, \"s\": 0.9199999999999999, \"os\": 0.4276629570747218, \"bg\": 0.0}, {\"x\": 0.02, \"y\": 0.68, \"ox\": 0.02, \"oy\": 0.68, \"term\": \"\\u304b\", \"cat25k\": 377, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 21, \"ncat\": 0, \"s\": 0.98, \"os\": 0.5087440381558028, \"bg\": 0.0}, {\"x\": 0.04, \"y\": 0.64, \"ox\": 0.04, \"oy\": 0.64, \"term\": \"\\u6388\\u696d\", \"cat25k\": 341, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 19, \"ncat\": 0, \"s\": 0.94, \"os\": 0.45468998410174877, \"bg\": 0.0}, {\"x\": 0.06, \"y\": 0.36, \"ox\": 0.06, \"oy\": 0.36, \"term\": \"\\u63a1\\u70b9\", \"cat25k\": 216, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 12, \"ncat\": 0, \"s\": 0.64, \"os\": 0.29252782193958665, \"bg\": 0.0}, {\"x\": 0.08, \"y\": 0.38, \"ox\": 0.08, \"oy\": 0.38, \"term\": \"\\u554f\\u984c\", \"cat25k\": 216, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 12, \"ncat\": 0, \"s\": 0.64, \"os\": 0.29252782193958665, \"bg\": 0.0}, {\"x\": 0.1, \"y\": 0.76, \"ox\": 0.1, \"oy\": 0.76, \"term\": \"\\u8a66\\u9a13\", \"cat25k\": 521, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 29, \"ncat\": 0, \"s\": 1.0, \"os\": 0.589825119236884, \"bg\": 0.0}, {\"x\": 0.12, \"y\": 0.4, \"ox\": 0.12, \"oy\": 0.4, \"term\": \"\\u3044\\u308b\", \"cat25k\": 216, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 12, \"ncat\": 0, \"s\": 0.64, \"os\": 0.29252782193958665, \"bg\": 0.0}, {\"x\": 0.14, \"y\": 0.42, \"ox\": 0.14, \"oy\": 0.42, \"term\": \"\\u3066 \\u3044\\u308b\", \"cat25k\": 216, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 12, \"ncat\": 0, \"s\": 0.64, \"os\": 0.29252782193958665, \"bg\": 0.0}, {\"x\": 0.16, \"y\": 0.32, \"ox\": 0.16, \"oy\": 0.32, \"term\": \"\\u3059\\u308b\", \"cat25k\": 198, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 11, \"ncat\": 0, \"s\": 0.62, \"os\": 0.2655007949125596, \"bg\": 0.0}, {\"x\": 0.18, \"y\": 0.28, \"ox\": 0.18, \"oy\": 0.28, \"term\": \"\\u3044\\u3046\", \"cat25k\": 180, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 10, \"ncat\": 0, \"s\": 0.52, \"os\": 0.2384737678855326, \"bg\": 0.0}, {\"x\": 0.2, \"y\": 0.3, \"ox\": 0.2, \"oy\": 0.3, \"term\": \"\\u3068 \\u3044\\u3046\", \"cat25k\": 180, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 10, \"ncat\": 0, \"s\": 0.52, \"os\": 0.2384737678855326, \"bg\": 0.0}, {\"x\": 0.22, \"y\": 0.22, \"ox\": 0.22, \"oy\": 0.22, \"term\": \"\\u3055 \\u308c\", \"cat25k\": 162, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 9, \"ncat\": 0, \"s\": 0.44000000000000006, \"os\": 0.21144674085850557, \"bg\": 0.0}, {\"x\": 0.24, \"y\": 0.24, \"ox\": 0.24, \"oy\": 0.24, \"term\": \"\\u70b9\", \"cat25k\": 162, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 9, \"ncat\": 0, \"s\": 0.44000000000000006, \"os\": 0.21144674085850557, \"bg\": 0.0}], \"docs\": {\"categories\": [\"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u2160\", \"\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u30b7\\u30b9\\u30c6\\u30e0\"], \"labels\": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], \"texts\": [\"\\u7279\\u306b\\u306a\\u3057\", \"\\u305f\\u307e\\u306b\\u8aac\\u660e\\u304c\\u306a\\u3044\\u30b3\\u30fc\\u30c9\\u304c\\u3042\\u3063\\u305f\\u308a\\u3057\\u305f\\u306e\\u3067\\u5c11\\u3057\\u6238\\u60d1\\u3063\\u305f\\u3002\\u3044\\u305a\\u308c\\u306f\\u3084\\u3063\\u3066\\u3044\\u304f\\u3082\\u306e\\u3067\\u306f\\u3042\\u308b\\u304c\\u3001\\u3001\\u3001\", \"\\u3067\\u304d\\u308c\\u3070\\u3001\\u5bfe\\u9762\\u3092\\u5897\\u3084\\u3057\\u3066\\u6b32\\u3057\\u3044\", \"\\u7279\\u306b\\u306a\\u3057\", \"\\u4ed6\\u4eba\\u306e\\u8ab2\\u984c\\u3092\\u5909\\u66f4\\u3067\\u304d\\u3066\\u3057\\u307e\\u3046\\u306e\\u304c\\u6016\\u3044\\u3002\", \"\\u7279\\u306b\\u306a\\u3057\", \"\\u7279\\u306b\\u306a\\u3057\", \"\\u5de5\\u5b66\\u90e8\\u306e7\\u3064\\u306e\\u30b3\\u30fc\\u30b9\\u306e\\u4e2d\\u3067\\u3053\\u306e\\u30b3\\u30fc\\u30b9\\u306b\\u6c7a\\u3081\\u305f\\u7406\\u7531\\u306e\\u4e00\\u3064\\u304c\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u3092\\u5b66\\u3079\\u308b\\u304b\\u3089\\u3067\\u3057\\u305f\\u3002\\u6545\\u306b\\u3001\\u6bce\\u65e5\\u304c\\u523a\\u6fc0\\u7684\\u3067\\u3057\\u305f\\u3002\\u307e\\u305f\\u3001\\u79c1\\u306b\\u3068\\u3063\\u3066\\u306f\\u8ab2\\u984c\\u306e\\u96e3\\u6613\\u5ea6\\u304c\\u9ad8\\u304f\\u3001\\u305d\\u308c\\u3092\\u5b8c\\u6210\\u3055\\u305b\\u308b\\u305f\\u3081\\u306b\\u4e88\\u7fd2\\u3068\\u5fa9\\u7fd2\\u3092\\u3053\\u306a\\u305b\\u305f\\u3053\\u3068\\u3067\\u3001\\u826f\\u3044\\u52c9\\u5f37\\u306e\\u5faa\\u74b0\\u304c\\u3067\\u304d\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"python\\u306e\\u57fa\\u790e\\u306e\\u57fa\\u790e\\u3092\\u5b66\\u3076\\u3053\\u3068\\u304c\\u3067\\u304d\\u305f\\u306e\\u3067\\u3088\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\", \"\\u30cd\\u30c3\\u30c8\\u3084YouTube\\u3067\\u8abf\\u3079\\u308b\\u3088\\u308a\\u3082\\u308f\\u304b\\u308a\\u3084\\u3059\\u3044\\u8aac\\u660e\\u3067\\u7406\\u89e3\\u3057\\u3084\\u3059\\u304b\\u3063\\u305f\\u3002\\r\\n\\u4ed6\\u4eba\\u306e\\u8ab2\\u984c\\u3092\\u898b\\u308b\\u3053\\u3068\\u304c\\u3067\\u304d\\u308b\\u306e\\u3067\\u81ea\\u5206\\u306e\\u30b3\\u30fc\\u30c9\\u3092\\u3088\\u308a\\u826f\\u304f\\u3057\\u3084\\u3059\\u3044\\u306e\\u304c\\u826f\\u3044\\u3068\\u601d\\u3063\\u305f\\u3002\", \"\\u8ab2\\u984c\\u306f\\u53cb\\u4eba\\u3068\\u5f37\\u529b\\u3057\\u3066\\u884c\\u3046\\u3053\\u3068\\u304c\\u8a8d\\u3081\\u3089\\u308c\\u3066\\u3044\\u3066\\u3068\\u3066\\u3082\\u52a9\\u304b\\u3063\\u305f\\u3002\", \"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u3092\\u5168\\u304f\\u89e6\\u3063\\u305f\\u3053\\u3068\\u304c\\u306a\\u304b\\u3063\\u305f\\u306e\\u3067\\u3068\\u3066\\u3082\\u96e3\\u3057\\u304b\\u3063\\u305f\\u3002\", \"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0II\\u3082\\u3088\\u308d\\u3057\\u304f\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\u3002\", \"python\\u306e\\u5185\\u5bb9\\u306f\\u4e88\\u60f3\\u3092\\u4e0a\\u56de\\u308b\\u307b\\u3069\\u306e\\u91cf\\u3060\\u3063\\u305f\\u306e\\u3067\\u3001\\u307e\\u3060\\u7406\\u89e3\\u5ea6\\u304c\\u5b8c\\u74a7\\u3068\\u306f\\u8a00\\u3048\\u306a\\u3044\\u72b6\\u6cc1\\u3067\\u3059\\u3002\\u590f\\u4f11\\u307f\\u306f\\u5fa9\\u7fd2\\u3092\\u3057\\u3066\\u3001\\uff12\\u5b66\\u671f\\u304b\\u3089\\u307e\\u305f\\u65b0\\u3057\\u3044\\u8a00\\u8a9e\\u3092\\u5b66\\u3093\\u3067\\u3044\\u304d\\u305f\\u3044\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"\\u8ab2\\u984c\\u306f\\u5b66\\u3073\\u306f\\u3058\\u3081\\u306b\\u3068\\u3063\\u3066\\u306f\\u96e3\\u3057\\u304b\\u3063\\u305f\\u3051\\u3069\\u9054\\u6210\\u611f\\u306fGOOD\", \"\\u8ab2\\u984c\\u3092\\u4e00\\u4eba\\u3067\\u3084\\u308b\\u306e\\u306f\\u5e8f\\u76e4\\u304c\\u7d50\\u69cb\\u304d\\u3064\\u304b\\u3063\\u305f\", \"\\u4f55\\u3082\\u77e5\\u3089\\u306a\\u304b\\u3063\\u305f\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u3092\\u697d\\u3057\\u304f\\u5b66\\u3076\\u3053\\u3068\\u304c\\u3067\\u304d\\u307e\\u3057\\u305f\\u3002\", \"\\u6bd4\\u8f03\\u7684\\u4eba\\u6c17\\u3067\\u4fee\\u5f97\\u304c\\u7c21\\u5358\\u306apython\\u3067\\u3059\\u3089\\u3053\\u306e\\u96e3\\u3057\\u3055\\u306a\\u3089\\u3001\\u5148\\u304c\\u601d\\u3044\\u3084\\u3089\\u308c\\u307e\\u3059\\u3002\", \"\\u79c1\\u306f\\u4eca\\u307e\\u3067\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u306b\\u89e6\\u308c\\u305f\\u3053\\u3068\\u304c\\u306a\\u304b\\u3063\\u305f\\u306e\\u3067\\u65b0\\u3057\\u3044\\u3053\\u3068\\u3092\\u899a\\u3048\\u308b\\u306e\\u306b\\u5fc5\\u6b7b\\u3067\\u3057\\u305f\\u3002\\u3067\\u3059\\u304c\\u3001\\u3067\\u304d\\u308b\\u3088\\u3046\\u306b\\u306a\\u3063\\u305f\\u6642\\u306f\\u9054\\u6210\\u611f\\u304c\\u3042\\u308a\\u307e\\u3057\\u305f\\u3057\\u3001\\u3053\\u306e\\u6280\\u8853\\u3084\\u77e5\\u8b58\\u3092\\u3055\\u3089\\u306b\\u751f\\u304b\\u3057\\u305f\\u3044\\u3068\\u601d\\u3046\\u3088\\u3046\\u306b\\u306a\\u308a\\u307e\\u3057\\u305f\\u3002\\u7576\\u9593\\u5148\\u751f\\u306e\\u8b1b\\u7fa9\\u306f\\u697d\\u3057\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\u3042\\u308a\\u304c\\u3068\\u3046\\u3054\\u3056\\u3044\\u307e\\u3057\\u305f\\u3002\\u5f8c\\u671f\\u306e\\u8b1b\\u7fa9\\u3067\\u3082\\u304a\\u4e16\\u8a71\\u306b\\u306a\\u308b\\u3068\\u601d\\u3046\\u306e\\u3067\\u3001\\u3088\\u308d\\u3057\\u304f\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\u3002\", \"\\u914d\\u5e03\\u8cc7\\u6599\\u306b\\u9593\\u9055\\u3044\\u304c\\u3042\\u3063\\u305f\\u3088\\u3046\\u306b\\u898b\\u3048\\u307e\\u3057\\u305f\\u3002\", \"\\u30fb\\u6559\\u79d1\\u66f8\\u304c\\u5fc5\\u8981\\u306a\\u306e\\u304b\\u5fc5\\u8981\\u3067\\u306a\\u3044\\u306e\\u304b\\u304c\\u66d6\\u6627\\u306a\\u307e\\u307e\\u6388\\u696d\\u304c\\u59cb\\u307e\\u308a\\u3001\\u975e\\u5e38\\u306b\\u4e0d\\u5b89\\u3060\\u3063\\u305f\\u305f\\u3081\\u3001\\u6559\\u79d1\\u66f8\\u304c\\u5fc5\\u9808\\u304b\\u305d\\u3046\\u3067\\u306a\\u3044\\u306e\\u304b\\u306f\\u6700\\u521d\\u306b\\u306f\\u3063\\u304d\\u308a\\u3057\\u3066\\u6b32\\u3057\\u3044\\u3002\\r\\n\\u30fb\\u8ab2\\u984c\\u3092\\u51fa\\u3059\\u3060\\u3051\\u51fa\\u3055\\u305b\\u3066\\u304a\\u3044\\u3066\\u3001\\u63a1\\u70b9\\u3082\\u305b\\u305a\\u3001\\u3069\\u3046\\u3044\\u3063\\u305f\\u89e3\\u7b54\\u304c\\u6b63\\u3057\\u3044\\u306e\\u304b\\u3068\\u3044\\u3063\\u305f\\u6307\\u91dd\\u3082\\u51fa\\u3059\\u306e\\u304c\\u3068\\u3066\\u3082\\u9045\\u3044\\u3002\\u8ab2\\u984c\\u306f\\u89e3\\u304f\\u3060\\u3051\\u3067\\u306f\\u77e5\\u8b58\\u306e\\u5b9a\\u7740\\u306b\\u3064\\u306a\\u304c\\u3089\\u306a\\u3044\\u3068\\u601d\\u3044\\u307e\\u3059\\u304c\\u3001\\u305d\\u3053\\u3089\\u3078\\u3093\\u306f\\u3069\\u3046\\u306a\\u3093\\u3067\\u3057\\u3087\\u3046\\u304b\\u3002\\r\\n\\u30fb\\u914d\\u5e03\\u8cc7\\u6599\\u3068\\u3057\\u3066\\u3001\\u904e\\u53bb\\u554f\\u3082\\u914d\\u5e03\\u3057\\u3066\\u304f\\u308c\\u308b\\u3068\\u3068\\u3066\\u3082\\u52a9\\u304b\\u308b\\u306a\\u3001\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u3054\\u691c\\u8a0e\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\u3002\", \"\\u6388\\u696d\\u53ca\\u3073\\u8cc7\\u6599\\u3092\\u5b8c\\u74a7\\u306b\\u7406\\u89e3\\u3057\\u3066\\u3082\\u7d76\\u5bfe\\u308f\\u304b\\u3089\\u306a\\u3044\\u554f\\u984c\\u304c\\u3042\\u3063\\u305f\\u306e\\u3067\\uff0c\\u6d41\\u77f3\\u306b\\u8a66\\u9a13\\u306e\\u5185\\u5bb9\\u306f\\u8cc7\\u6599\\u5185\\u5bb9\\u3084\\u6388\\u696d\\u3092\\u7406\\u89e3\\u3057\\u3066\\u3044\\u308c\\u3070\\u89e3\\u3051\\u308b\\u5185\\u5bb9\\u306e\\u307f\\u3067\\u69cb\\u6210\\u3057\\u3066\\u6b32\\u3057\\u304b\\u3063\\u305f\\uff0e\", \"\\u30fb\\u4e2d\\u9593\\u30c6\\u30b9\\u30c8\\u3092\\u5ef6\\u671f\\u3057\\u7d9a\\u3051\\u3001\\u6700\\u7d42\\u7684\\u306b\\u4e2d\\u9593\\u30fb\\u671f\\u672b\\u8a66\\u9a13\\u3092\\uff12\\u9031\\u7d9a\\u3051\\u3066\\u3084\\u308b\\u3053\\u3068\\u3068\\u306a\\u308a\\u3001\\u8a08\\u753b\\u6027\\u304c\\u6b20\\u3051\\u3066\\u3044\\u308b\\u3002\\r\\n\\u30fb\\u914d\\u5e03\\u8cc7\\u6599\\u306e\\u8aa4\\u5b57\\u8131\\u5b57\\u304c\\u591a\\u3059\\u304e\\u308b\\u3002\", \"\\u6559\\u79d1\\u66f8\\u304c\\u304b\\u306a\\u308a\\u7c21\\u6f54\\u306a\\u307e\\u3068\\u3081\\u65b9\\u3092\\u3057\\u3066\\u3044\\u308b\\u306e\\u3067\\u3001\\u5148\\u751f\\u306e\\u89e3\\u8aac\\u306f\\u6559\\u79d1\\u66f8\\u306e\\u5185\\u5bb9\\u3092\\u88dc\\u5f37\\u3059\\u308b\\u5f62\\u3067\\u8aac\\u660e\\u3057\\u3066\\u6b32\\u3057\\u304b\\u3063\\u305f\\u3002\", \"webclass\\u306e\\u914d\\u5e03\\u8cc7\\u6599\\u306f\\u30c0\\u30a6\\u30f3\\u30ed\\u30fc\\u30c9\\u3067\\u304d\\u308b\\u3088\\u3046\\u306b\\u3057\\u3066\\u6b32\\u3057\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\u5f8c\\u3001\\u305d\\u306ewebclass\\u306e\\u914d\\u5e03\\u8cc7\\u6599\\u3067\\u306f1\\u30da\\u30fc\\u30b8\\u306b4\\u679a\\u306e\\u30b9\\u30e9\\u30a4\\u30c9\\u3068\\u3044\\u3046\\u69cb\\u9020\\u3060\\u3063\\u305f\\u305f\\u3081\\u3001\\u52c9\\u5f37\\u3059\\u308b\\u3068\\u304d\\u306b\\u4e0d\\u4fbf\\u3092\\u611f\\u3058\\u307e\\u3057\\u305f\\u3002\\u3067\\u304d\\u308c\\u30701\\u30da\\u30fc\\u30b8\\u306b1\\u679a\\u306e\\u30b9\\u30e9\\u30a4\\u30c9\\u3068\\u3044\\u3046\\u69cb\\u9020\\u306b\\u6539\\u5584\\u3057\\u3066\\u304f\\u308c\\u308c\\u3070\\u5e78\\u3044\\u3067\\u3059\\u3002\", \"\\u914d\\u5e03\\u8cc7\\u6599\\u306f1\\u30da\\u30fc\\u30b8\\u306b\\u3064\\u304d4\\u679a\\u5206\\u306e\\u30da\\u30fc\\u30b8\\u304c\\u6577\\u304d\\u8a70\\u3081\\u3089\\u308c\\u3066\\u3044\\u308b\\u305f\\u3081\\u3068\\u3066\\u3082\\u898b\\u8f9b\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\r\\n\\u307e\\u305f\\u3001\\u5148\\u751f\\u304c\\u3059\\u3050\\u306b\\u30e1\\u30fc\\u30eb\\u3092\\u8aad\\u3093\\u3067\\u304f\\u308c\\u306a\\u3044\\u3053\\u3068\\u304c\\u591a\\u304b\\u3063\\u305f\\u306e\\u3067\\u3001\\u305d\\u3053\\u306f\\u56f0\\u308a\\u307e\\u3057\\u305f\\u3002mattermost\\u306b\\u306f\\u30c1\\u30e3\\u30f3\\u30cd\\u30eb\\u3092\\u958b\\u8a2d\\u3057\\u3066\\u3044\\u306a\\u3044\\u306e\\u3067\\u30e1\\u30fc\\u30eb\\u3057\\u304b\\u9023\\u7d61\\u624b\\u6bb5\\u304c\\u306a\\u3044\\u306e\\u3067\\u3059\\u304c\\u3001\\u305d\\u306e\\u552f\\u4e00\\u306e\\u9023\\u7d61\\u624b\\u6bb5\\u304c\\u78ba\\u8a8d\\u3055\\u308c\\u306a\\u3044\\u3068\\u3044\\u3046\\u306e\\u306f\\u751f\\u5f92\\u306b\\u3068\\u3063\\u3066\\u3082\\u8f9b\\u3044\\u3068\\u3053\\u308d\\u304c\\u3042\\u308b\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u5148\\u751f\\u3082\\u591a\\u5fd9\\u3067\\u306f\\u3042\\u308b\\u3068\\u601d\\u308f\\u308c\\u307e\\u3059\\u304c\\u3001\\u662f\\u975e\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\u3002\", \"\\u66f8\\u304b\\u308c\\u3066\\u3044\\u308b\\u3053\\u3068\\u3084\\u5185\\u5bb9\\u3092\\u5148\\u751f\\u304c\\u6de1\\u3005\\u3068\\u30a2\\u30a6\\u30c8\\u30d7\\u30c3\\u30c8\\u3057\\u3066\\u3044\\u308b\\u3060\\u3051\\u3067,\\r\\n\\u751f\\u5f92\\u5074\\u304c\\u7f6e\\u3044\\u3066\\u3051\\u307c\\u308a\\u3060\\u3063\\u305f\\u3002\\u5b9f\\u969b\\u306b\\u8b1b\\u7fa9\\u306e\\u5f8c\\u3084\\u5f8c\\u65e5\\u3001\\u751f\\u5f92\\u540c\\u58eb\\u3067\\u3069\\u3046\\u3060\\u3063\\u305f\\uff1f\\u308f\\u304b\\u3063\\u305f\\uff1f\\u306a\\u3069\\u3068\\u8a71\\u3059\\u3053\\u3068\\u304c\\u3042\\u3063\\u305f\\u3002\", \"\\u30fb\\u6388\\u696d\\u306e\\u65b9\\u6cd5\\u81ea\\u4f53\\u306f\\u666e\\u901a\\u3067\\u3042\\u3063\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059(\\u677f\\u66f8\\u304c\\u82e5\\u5e72\\u898b\\u3065\\u3089\\u304b\\u3063\\u305f\\u304c\\u3001\\u30aa\\u30f3\\u30e9\\u30a4\\u30f3\\u306e\\u305f\\u3081\\u306b\\u677f\\u66f8\\u304c\\u6c5a\\u304b\\u3063\\u305f\\u308a\\u3059\\u308b\\u3053\\u3068\\u306a\\u3069\\u306f\\u3057\\u3087\\u3046\\u304c\\u306a\\u3044\\u3068\\u601d\\u3044\\u307e\\u3057\\u305f)\\u3002\", \"\\u30b9\\u30e9\\u30a4\\u30c9\\u304c1\\u30da\\u30fc\\u30b8\\u306b4\\u5206\\u5272\\u3057\\u3066\\u5165\\u3063\\u3066\\u3044\\u308b\\u306e\\u306f\\u62e1\\u5927\\u3057\\u306a\\u3051\\u308c\\u3070\\u306a\\u3089\\u306a\\u3044\\u306e\\u3067\\u898b\\u3065\\u3089\\u3044\\u3067\\u3059\\u3002\", \"\\u30fb\\u8cc7\\u6599\\u306e\\u8aac\\u660e\\u3067\\u8272\\u30da\\u30f3\\u3092\\u4f7f\\u3046\\u3068\\u304d\\u3001\\u8cc7\\u6599\\u306e\\u4e0a\\u304b\\u3089\\u66f8\\u304f\\u306e\\u3092\\u3084\\u3081\\u3066\\u307b\\u3057\\u3044\\u3002\\u5b57\\u304c\\u6c5a\\u3044\\u4e0a\\u306b\\u3001\\u8cc7\\u6599\\u306e\\u6587\\u5b57\\u3068\\u91cd\\u306a\\u3063\\u3066\\u8aad\\u307f\\u3065\\u3089\\u3044\\u3002\\r\\n\\u30fb\\u4e88\\u7fd2\\u3092\\u3057\\u3066\\u8aac\\u660e\\u3092\\u805e\\u3044\\u3066\\u3082\\u3001\\u4f55\\u3092\\u8a00\\u3063\\u3066\\u3044\\u308b\\u304b\\u308f\\u304b\\u3089\\u306a\\u3044\\u304b\\u3089\\u3001\\u982d\\u306b\\u5165\\u3063\\u3066\\u3053\\u306a\\u3044\\u3002\\u3082\\u3046\\u5c11\\u3057\\u306f\\u3063\\u304d\\u308a\\u3068\\u8a71\\u3057\\u3066\\u307b\\u3057\\u3044\\u3002\", \"\\u30de\\u30a6\\u30b9\\u3067\\u306e\\u30e1\\u30e2\\u66f8\\u304d\\u306f\\u5c11\\u3057\\u898b\\u3065\\u3089\\u304b\\u3063\\u305f\\u3002\", \"\\u6388\\u696d\\u8cc7\\u6599\\u306f\\u308f\\u304b\\u308a\\u3084\\u3059\\u304f\\u3001\\u5fa9\\u7fd2\\u3057\\u3084\\u3059\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\u305f\\u3060\\u3001\\u53e3\\u982d\\u3067\\u306e\\u8aac\\u660e\\u304c\\u308f\\u304b\\u308a\\u306b\\u304f\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\u7279\\u306b\\u3001\\u5f8c\\u534a\\u306e\\u30a2\\u30bb\\u30f3\\u30d6\\u30e9\\u8a00\\u8a9e\\u306e\\u3068\\u3053\\u308d\\u306f\\u8aac\\u660e\\u304c\\u5c11\\u306a\\u304f\\u611f\\u3058\\u307e\\u3057\\u305f\\u3002\", \"\\u8ab2\\u984c\\u306e\\u70b9\\u6570\\u3092\\u65e9\\u3081\\u306b\\u516c\\u958b\\u3057\\u3066\\u3082\\u3089\\u3048\\u308b\\u3068\\u3088\\u304b\\u3063\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\r\\n\\u307e\\u305f\\u3001\\u8a66\\u9a13\\u306b\\u95a2\\u3057\\u3066\\u7591\\u554f\\u70b9\\u3092\\u30e1\\u30fc\\u30eb\\u306b\\u9001\\u3063\\u3066\\u3044\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u304c\\u3001\\u305d\\u308c\\u306b\\u56de\\u7b54\\u3057\\u3066\\u3044\\u305f\\u3060\\u3051\\u308b\\u3068\\u3088\\u304b\\u3063\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"\\u65e9\\u3081\\u306e\\u8ab2\\u984c\\u306e\\u63a1\\u70b9\\u3092\\u304a\\u9858\\u3044\\u3057\\u305f\\u3044\\u3067\\u3059\", \"\\u8ab2\\u984c\\u306b\\u3064\\u3044\\u3066\\u306f\\u89e3\\u7b54\\u3068\\u89e3\\u8aac\\u304c\\u3057\\u3070\\u3089\\u304f\\u660e\\u793a\\u3055\\u308c\\u305a\\u3001\\u89e3\\u7b54\\u81ea\\u4f53\\u306f\\u8a66\\u9a13\\u306e1,2\\u9031\\u9593\\u307b\\u3069\\u524d\\u306b\\u516c\\u958b\\u3055\\u308c\\u305f\\u3082\\u306e\\u306e\\u89e3\\u8aac\\u304c\\u306a\\u3044\\u305f\\u3081\\u7406\\u89e3\\u304c\\u3057\\u3065\\u3089\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\r\\n\\u8a66\\u9a13\\u306b\\u3064\\u3044\\u3066\\u306f\\u3001\\u7279\\u306b\\u671f\\u672b\\u8a66\\u9a13\\u306b\\u3064\\u3044\\u3066\\u306a\\u306e\\u3067\\u3059\\u304c\\u3001\\u5927\\u534a\\u306e\\u4eba\\u304c\\u52c9\\u5f37\\u3067\\u304d\\u3066\\u3044\\u306a\\u3044\\u3067\\u3042\\u308d\\u3046\\u5206\\u91ce\\u306e\\u554f\\u984c\\u304c\\u51fa\\u3055\\u308c\\u305f\\u3068\\u3044\\u3046\\u3053\\u3068\\u3068\\u554f\\u984c\\u306e\\u91cf\\u304c\\u305d\\u308c\\u306a\\u308a\\u306b\\u591a\\u304b\\u3063\\u305f\\u305f\\u3081\\u306b\\u975e\\u5e38\\u306b\\u96e3\\u3057\\u304f\\u611f\\u3058\\u307e\\u3057\\u305f\\u3002\\u5b9f\\u969b\\u306e\\u30af\\u30e9\\u30b9\\u5e73\\u5747\\u70b9\\u3082\\u4f4e\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\r\\n\\u307e\\u305f\\u3001\\u4e2d\\u9593\\u8a66\\u9a13\\u3068\\u671f\\u672b\\u8a66\\u9a13\\u30922\\u9031\\u9023\\u7d9a\\u3067\\u5b9f\\u65bd\\u3059\\u308b\\u306e\\u306f\\u6765\\u5e74\\u4ee5\\u964d\\u306e\\u6388\\u696d\\u3067\\u306f\\u3084\\u3081\\u3066\\u3044\\u305f\\u3060\\u304d\\u305f\\u3044\\u3067\\u3059\\u3002\\u3069\\u3046\\u3057\\u3066\\u3082\\u5bfe\\u9762\\u3067\\u5b9f\\u65bd\\u3067\\u304d\\u306a\\u3044\\u306e\\u306a\\u3089\\u3059\\u3050\\u306b\\u30aa\\u30f3\\u30e9\\u30a4\\u30f3\\u306b\\u5207\\u308a\\u66ff\\u3048\\u3066\\u4e2d\\u9593\\u8a66\\u9a13\\u306e\\u671f\\u9593\\u5185\\u306b\\u5b9f\\u65bd\\u3059\\u308b\\u3079\\u304d\\u3060\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u5927\\u5909\\u3067\\u3057\\u305f\\u3002\\r\\n\\u6700\\u5f8c\\u306b\\u8ab2\\u984c\\u3068\\u8a66\\u9a13\\u306b\\u8a55\\u4fa1\\u65b9\\u6cd5\\u306a\\u306e\\u3067\\u3059\\u304c\\u3001webclass\\u3067\\u306e\\u5b8c\\u5168\\u89e3\\u7b54\\u578b\\u306e\\u305f\\u3081\\u63a1\\u70b9\\u304c\\u5c11\\u3057\\u53b3\\u3057\\u3044\\u3068\\u611f\\u3058\\u307e\\u3057\\u305f\\u3002\\u305d\\u3053\\u3082\\u3067\\u304d\\u308c\\u3070\\u4f55\\u3089\\u304b\\u306e\\u5f62\\u3067\\u6539\\u5584\\u3057\\u3066\\u3044\\u305f\\u3060\\u3051\\u308b\\u3068\\u3044\\u3044\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"\\u8ab2\\u984c\\u306e\\u8a55\\u4fa1\\u3001\\u3069\\u306e\\u70b9\\u304c\\u9593\\u9055\\u3063\\u3066\\u3044\\u3064\\u306e\\u304b\\u306a\\u3069\\u306e\\u30d5\\u30a3\\u30fc\\u30c9\\u30d0\\u30c3\\u30af\\u304c\\u9045\\u304b\\u3063\\u305f\\u308a\\u3001\\u306a\\u304b\\u3063\\u305f\\u308a\\u3057\\u305f\\r\\n\\u8a66\\u9a13\\u306b\\u95a2\\u3057\\u3066\\u306f\\u3001\\u6700\\u7d42\\u9031\\u3068\\u305d\\u306e\\u524d\\u306e\\u9031\\u3068\\uff12\\u9031\\u306b\\u304b\\u3051\\u3066\\u671f\\u672b\\u8a66\\u9a13\\u3068\\u4e2d\\u9593\\u8a66\\u9a13\\u3092\\u884c\\u306a\\u3063\\u305f\\u3002\\u305d\\u308c\\u306b\\u3088\\u308a\\u6e96\\u5099\\u304c\\u307e\\u307e\\u306a\\u3089\\u306a\\u304b\\u3063\\u305f\\u308a\\u3001\\u5c11\\u3057\\u6388\\u696d\\u3088\\u308a\\u3082\\u4e0a\\u306e\\u3082\\u306e\\u304c\\u51fa\\u305f\\u308a\\u3057\\u3066\\u3044\\u305f\", \"\\u8a66\\u9a13\\u306e\\u554f\\u984c\\u6587\\u304c\\u5206\\u304b\\u308a\\u96e3\\u304b\\u3063\\u305f\", \"\\u30fb\\u8ab2\\u984c\\u306e\\u70b9\\u6570\\u304c\\u3001\\u3053\\u306e\\u8b1b\\u7fa9\\u304c\\u5168\\u3066\\u7d42\\u308f\\u3063\\u305f\\u306e\\u306b\\u672a\\u3060\\u3059\\u3079\\u3066\\u63a1\\u70b9\\u3055\\u308c\\u3066\\u3044\\u306a\\u3044\\u70b9\\u304c\\u4e0d\\u670d\\u3002\\u53d7\\u8b1b\\u8005\\u304c\\u591a\\u3044\\u3060\\u3068\\u304b\\u3001\\u63a1\\u70b9\\u3059\\u308b\\u5074\\u3082\\u5fd9\\u3057\\u3044\\u3060\\u3068\\u304b\\u8272\\u3005\\u3042\\u308b\\u3068\\u601d\\u3044\\u307e\\u3059\\u304c\\u3001\\u305d\\u3082\\u305d\\u3082\\u63a1\\u70b9\\u3059\\u308b\\u5074\\u304c\\u634c\\u304d\\u304d\\u308c\\u306a\\u3044\\u307b\\u3069\\u8ab2\\u984c\\u3092\\u51fa\\u3057\\u3066\\u3044\\u308b\\u3068\\u3044\\u3046\\u73fe\\u72b6\\u306f\\u9069\\u5207\\u3067\\u3057\\u3087\\u3046\\u304b\\u3002\\r\\n\\u30fb\\u81ea\\u8eab\\u306e\\u52aa\\u529b\\u4e0d\\u8db3\\u304b\\u3082\\u3057\\u308c\\u307e\\u305b\\u3093\\u304c\\u3001\\u7387\\u76f4\\u306b\\u8a00\\u3063\\u3066\\u8a66\\u9a13\\u306e\\u96e3\\u6613\\u5ea6\\u304c\\u96e3\\u3057\\u3044\\u3002\\u8ab2\\u984c\\u3067\\u89e3\\u3044\\u305f\\u554f\\u984c\\u3068\\u6bd4\\u3079\\u3066\\u3082\\u96e3\\u6613\\u5ea6\\u304c\\u6570\\u6bb5\\u9055\\u3046\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u3053\\u306e\\u6388\\u696d\\u3067\\u306f\\u300c\\u914d\\u5e03\\u8cc7\\u6599\\u300d\\u300c\\u8ab2\\u984c\\u300d\\u300c\\u666e\\u6bb5\\u306e\\u8b1b\\u7fa9\\u300d\\u304c\\u4e3b\\u306b\\u63d0\\u4f9b\\u3055\\u308c\\u307e\\u3057\\u305f\\u304c\\u3001\\u305d\\u308c\\u3089\\u3092\\u7528\\u3044\\u3066\\u52c9\\u5f37\\u3092\\u3057\\u3001\\u307e\\u305f\\u8db3\\u308a\\u306a\\u3044\\u3068\\u601d\\u3063\\u305f\\u3068\\u3053\\u308d\\u3092\\u81ea\\u5206\\u3067\\u8abf\\u3079\\u3066\\u5b66\\u7fd2\\u3057\\u3066\\u3082\\u3001\\u8a66\\u9a13\\u3067\\u601d\\u3046\\u3088\\u3046\\u306a\\u70b9\\u304c\\u53d6\\u308c\\u307e\\u305b\\u3093\\u3067\\u3057\\u305f\\u3002\\u306a\\u306e\\u3067\\u8a66\\u9a13\\u96e3\\u6613\\u5ea6\\u306e\\u9ad8\\u3055\\u306b\\u306f\\u4e0d\\u6e80\\u304c\\u6b8b\\u308a\\u307e\\u3059\\u3002\\r\\n\\u30fb\\u8a55\\u4fa1\\u65b9\\u6cd5\\u306e\\u8ab2\\u984c20%\\u3001\\u30c6\\u30b9\\u30c840+40=80%\\u306f\\u4ed6\\u306e\\u6388\\u696d\\u3067\\u3082\\u3088\\u304f\\u898b\\u3089\\u308c\\u308b\\u914d\\u5206\\u306a\\u306e\\u3067\\u3001\\u305d\\u308c\\u81ea\\u4f53\\u306b\\u306f\\u4e0d\\u6e80\\u306f\\u3042\\u308a\\u307e\\u305b\\u3093\\u3002\\u3057\\u304b\\u3057\\u3001\\u5148\\u307b\\u3069\\u66f8\\u3044\\u305f\\u901a\\u308a\\u3001\\u8ab2\\u984c\\u304c\\u63a1\\u70b9\\u3055\\u308c\\u306a\\u3044\\u70b9\\u3084\\u3001\\u8a66\\u9a13\\u306e\\u96e3\\u6613\\u5ea6\\u306b\\u4e0d\\u6e80\\u304c\\u3042\\u308b\\u305f\\u3081\\u3001\\u7d50\\u679c\\u7684\\u306b\\u3053\\u306e\\u914d\\u5206\\u3082\\u826f\\u304f\\u306a\\u3044\\u306e\\u3067\\u306f\\u306a\\u3044\\u304b\\u3001\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"\\u8a66\\u9a13\\u3067\\u9078\\u629e\\u5f0f\\u3067\\u306a\\u3044\\u306e\\u306b\\u81ea\\u52d5\\u63a1\\u70b9\\u3092\\u4f7f\\u3046\\u306e\\u306f\\u3084\\u3081\\u3066\\u307b\\u3057\\u3044\\u3067\\u3059\\u3002\\r\\n\\u30d7\\u30ed\\u30b0\\u30e9\\u30e0\\u306e\\u52b9\\u7387\\u306a\\u3069\\u3001\\u554f\\u984c\\u306b\\u66f8\\u304b\\u308c\\u3066\\u3044\\u306a\\u3044\\u6761\\u4ef6\\u304c\\u3042\\u308b\\u306e\\u3082\\u826f\\u304f\\u306a\\u3044\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u5b66\\u751f\\u5168\\u54e1\\u304c\\u6280\\u8853\\u8005\\u3068\\u3057\\u3066\\u3069\\u3093\\u306a\\u30d7\\u30ed\\u30b0\\u30e9\\u30e0\\u3092\\u4f5c\\u308b\\u306e\\u304c\\u5f53\\u7136\\u304b\\u306a\\u3069\\u5fb9\\u5e95\\u3057\\u3066\\u982d\\u306b\\u5165\\u3063\\u3066\\u3044\\u308b\\u308f\\u3051\\u3067\\u306f\\u3042\\u308a\\u307e\\u305b\\u3093\\u3002\\r\\n\\u66f8\\u304b\\u308c\\u3066\\u3044\\u306a\\u3044\\u3053\\u3068\\u307e\\u3067\\u6c72\\u307f\\u53d6\\u3089\\u306a\\u3051\\u308c\\u30700\\u70b9\\u3068\\u3055\\u308c\\u305f\\u306e\\u3067\\u306f\\u7406\\u4e0d\\u5c3d\\u3067\\u3059\\u3002\", \"\\u8a66\\u9a13\\u5185\\u5bb9\\u306b\\u521d\\u3081\\u3066\\u898b\\u308b\\u554f\\u984c\\u304c\\u3042\\u3063\\u305f\\uff0e\\u3055\\u3089\\u306b\\u305d\\u306e\\u5f8c\\u306e\\u89e3\\u8aac\\u3082\\u3042\\u307e\\u308a\\u306a\\u304b\\u3063\\u305f\\u306e\\u3067\\u96e3\\u6613\\u5ea6\\u304c\\u4ed6\\u306e\\u6388\\u696d\\u306b\\u6bd4\\u3079\\u3066\\u9ad8\\u3059\\u304e\\u308b\\u3068\\u611f\\u3058\\u307e\\u3057\\u305f\\uff0e\\u305d\\u308c\\u306f\\uff0c\\u5185\\u5bb9\\u304c\\u96e3\\u3057\\u3044\\u3068\\u3044\\u3046\\u3088\\u308a\\u3082\\u6388\\u696d\\u3067\\u8a66\\u9a13\\u306b\\u51fa\\u308b\\u5185\\u5bb9\\u3092\\u7db2\\u7f85\\u3057\\u5207\\u308c\\u3066\\u3044\\u306a\\u3044\\u3053\\u3068\\u306b\\u3088\\u308b\\u3082\\u306e\\u3068\\u601d\\u3044\\u307e\\u3057\\u305f\\uff0e\\u9060\\u9694\\u306e\\u8a66\\u9a13\\u3067\\u3042\\u3063\\u305f\\u3053\\u3068\\u304c\\u5927\\u304d\\u3044\\u3068\\u3044\\u3046\\u3053\\u3068\\u306f\\u91cd\\u3005\\u627f\\u77e5\\u306e\\u4e0a\\u3067\\uff0c\\u554f\\u984c\\u5185\\u5bb9\\u304c\\u4f1d\\u308f\\u308a\\u8f9b\\u304b\\u3063\\u305f\\u306e\\u3067\\u4ed6\\u306e\\u6388\\u696d\\u306e\\u3088\\u3046\\u306b\\u3069\\u3046\\u306b\\u304b\\u5bfe\\u5fdc\\u3057\\u3066\\u6b32\\u3057\\u304b\\u3063\\u305f\\u3067\\u3059\\uff0e\\u307e\\u305f\\uff0c\\u5e73\\u5747\\u70b9\\u304c\\u4ed6\\u306e\\u6388\\u696d\\u3068\\u6bd4\\u3079\\u3066\\u4f4e\\u3059\\u304e\\u308b\\u306e\\u3067\\u8ffd\\u52a0\\u3067\\u8ab2\\u984c\\u306a\\u3069\\u304c\\u6b32\\u3057\\u304b\\u3063\\u305f\\u3067\\u3059\\uff0e\", \"\\u30fb\\u8ab2\\u984c\\u3092\\u51fa\\u3057\\u3066\\u3082\\u3001\\u89e3\\u7b54\\u3084\\u63a1\\u70b9\\u304c\\u51fa\\u306a\\u304f\\u3066\\u3068\\u3066\\u3082\\u56f0\\u308b\\u3002\\u8a66\\u9a13\\u306e\\u4e00\\u9031\\u9593\\u524d\\u306b\\u89e3\\u7b54\\u3092\\u51fa\\u3055\\u308c\\u3066\\u3082\\u3001\\u5b8c\\u74a7\\u306b\\u5fa9\\u7fd2\\u3067\\u304d\\u308b\\u308f\\u3051\\u304c\\u306a\\u3044\\u3002\\u524d\\u6301\\u3063\\u3066\\u5fa9\\u7fd2\\u3057\\u305f\\u3044\\u304b\\u3089\\u3001\\u8ab2\\u984c\\u306e\\u63d0\\u51fa\\u671f\\u9593\\u3092\\u904e\\u304e\\u305f\\u3089\\u3059\\u3050\\u306b\\u89e3\\u7b54\\u3092\\u51fa\\u3057\\u3066\\u307b\\u3057\\u3044\\u3002\\r\\n\\u30fbwebclass\\u3067\\u8a66\\u9a13\\u3092\\u3057\\u305f\\u3089\\u3001webclass\\u304c\\u6b62\\u307e\\u3063\\u3066\\u89e3\\u7b54\\u3067\\u304d\\u306a\\u304f\\u306a\\u3063\\u305f\\u5b66\\u751f\\u304c\\u591a\\u304f\\u3044\\u305f\\u3002\\u6628\\u5e74\\u3082\\u3053\\u306e\\u3088\\u3046\\u306a\\u4e8b\\u614b\\u304c\\u8d77\\u3053\\u3063\\u305f\\u3068\\u805e\\u3044\\u3066\\u3001\\u89e3\\u6c7a\\u7b56\\u3092\\u8003\\u3048\\u306a\\u304b\\u3063\\u305f\\u306e\\u304b\\u3068\\u7591\\u554f\\u306b\\u601d\\u3046\\u3002\\u3061\\u3083\\u3093\\u3068\\u3053\\u306e\\u554f\\u984c\\u3092\\u89e3\\u6c7a\\u3057\\u3066\\u304b\\u3089\\u3001\\u5b66\\u751f\\u304c\\u5b89\\u5fc3\\u3057\\u3066\\u8a66\\u9a13\\u3092\\u53d7\\u3051\\u3089\\u308c\\u308b\\u74b0\\u5883\\u3092\\u6574\\u3048\\u3066\\u307b\\u3057\\u3044\\u3002\", \"\\u8ab2\\u984c\\u306b\\u3064\\u3044\\u3066\\u306f\\u3001\\u63d0\\u51fa\\u671f\\u9650\\u5f8c\\u306b\\u9010\\u4e00\\u56de\\u7b54\\u3092\\u51fa\\u3057\\u3066\\u6b32\\u3057\\u304b\\u3063\\u305f\\u3002\\u524d\\u56de\\u306e\\u6388\\u696d\\u5185\\u5bb9\\u304c\\u7406\\u89e3\\u3067\\u304d\\u305f\\u304b\\u3092\\u6e2c\\u308b\\u57fa\\u6e96\\u304c\\u306a\\u304f\\u3001\\u308f\\u304b\\u3089\\u306a\\u3044\\u3053\\u3068\\u3092\\u305d\\u306e\\u307e\\u307e\\u306b\\u3057\\u3066\\u6b21\\u306e\\u8ab2\\u984c\\u306b\\u53d6\\u308a\\u7d44\\u3080\\u3053\\u3068\\u304c\\u7d9a\\u3044\\u3066\\u3057\\u307e\\u3063\\u305f\\u3002\", \"\\u8a66\\u9a13\\u306e\\u5b9f\\u65bd\\u65b9\\u6cd5\\u304c\\u60aa\\u304b\\u3063\\u305f\\u3002\\u6700\\u5f8c\\u306e\\uff12\\u9031\\u306b\\u4e2d\\u9593\\u8a66\\u9a13\\u3068\\u671f\\u672b\\u8a66\\u9a13\\u3092\\u3082\\u3063\\u3066\\u304d\\u305f\\u308a\\u3001Webclass\\u306e\\u63a1\\u70b9\\u30df\\u30b9\\u3084\\u554f\\u984c\\u8a2d\\u5b9a\\u306e\\u9593\\u9055\\u3044\\u3092\\u6307\\u6458\\u3059\\u308b\\u58f0\\u304c\\u3001\\u30c6\\u30b9\\u30c8\\u4e2d\\u306e\\u8cea\\u554f\\u7528Zoom\\u3067\\u3082\\u591a\\u304f\\u6319\\u304c\\u3063\\u3066\\u3044\\u305f\\u3002\", \"Zoom\\u306e\\u97f3\\u58f0\\u3001\\u8cc7\\u6599\\u753b\\u50cf\\u306e\\u753b\\u8cea\\u306a\\u3069\\u7279\\u306b\\u554f\\u984c\\u306a\\u304f\\u6388\\u696d\\u3092\\u53d7\\u3051\\u3089\\u308c\\u305f\\u3002\", \"\\u9ed2\\u677f\\u306a\\u3069\\u304c\\u306a\\u3044\\u30aa\\u30f3\\u30e9\\u30a4\\u30f3\\u3067\\u306e\\u8b1b\\u7fa9\\u3067\\u3057\\u305f\\u304c\\u3001\\u30b9\\u30e9\\u30a4\\u30c9\\u8cc7\\u6599\\u306b\\u76f4\\u63a5\\u8aac\\u660e\\u3092\\u66f8\\u3044\\u3066\\u3044\\u305f\\u306e\\u3067\\u5206\\u304b\\u308a\\u3084\\u3059\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\", \"\\u8b1b\\u7fa9\\u5168\\u4f53\\u306e\\u611f\\u60f3\\u3068\\u3057\\u3066\\u306f\\u3001\\u6bce\\u5e74\\u5358\\u4f4d\\u3092\\u843d\\u3068\\u3059\\u4eba\\u304c\\u591a\\u3044\\u3068\\u3044\\u3046\\u306e\\u3082\\u7d0d\\u5f97\\u3067\\u304d\\u308b\\u96e3\\u3057\\u3055\\u3060\\u3063\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u751f\\u5f92\\u306b\\u3068\\u3063\\u3066\\u4e0d\\u89aa\\u5207\\u306a\\u70b9\\u304c\\u591a\\u304f\\u3001\\u672c\\u5f53\\u306b\\u524d\\u5e74\\u5ea6\\u307e\\u3067\\u306e\\u751f\\u5f92\\u304b\\u3089\\u306e\\u8981\\u671b\\u306f\\u3061\\u3083\\u3093\\u3068\\u53d6\\u308a\\u5165\\u308c\\u3089\\u308c\\u3066\\u3044\\u308b\\u306e\\u3060\\u308d\\u3046\\u304b\\u3068\\u7591\\u554f\\u306b\\u601d\\u3044\\u307e\\u3057\\u305f\\u3002\\r\\n\\u8b1b\\u7fa9\\u306e\\u96e3\\u6613\\u5ea6\\u3092\\u7c21\\u5358\\u306b\\u3057\\u3066\\u307b\\u3057\\u3044\\u3068\\u3044\\u3046\\u308f\\u3051\\u3067\\u306f\\u306a\\u304f\\u3001\\u4eca\\u5f8c\\u5c11\\u3057\\u3067\\u3082\\u751f\\u5f92\\u306b\\u89aa\\u5207\\u306a\\u6388\\u696d\\u306b\\u3057\\u3066\\u3082\\u3089\\u3048\\u308c\\u3070\\u5358\\u4f4d\\u3082\\u53d6\\u308a\\u3084\\u3059\\u304f\\u306a\\u308b\\u306e\\u304b\\u306a\\u3068\\u3044\\u3046\\u98a8\\u306b\\u611f\\u3058\\u307e\\u3057\\u305f\\u3002\\r\\n\\u8b1b\\u7fa9\\u3067\\u5b66\\u3093\\u3060\\u5185\\u5bb9\\u81ea\\u4f53\\u306f\\u3068\\u3066\\u3082\\u826f\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\", \"\\u53d7\\u8b1b\\u524d\\u304b\\u3089\\u5642\\u306f\\u805e\\u3044\\u3066\\u3044\\u305f\\u306e\\u3067\\u5fc3\\u3057\\u3066\\u304b\\u304b\\u3063\\u305f\\u3064\\u3082\\u308a\\u3067\\u3059\\u304c\\u3001\\u305d\\u308c\\u3067\\u3082\\u601d\\u308f\\u305a\\u30af\\u30bd\\u30b2\\u30fc\\u3068\\u53eb\\u3073\\u305f\\u304f\\u306a\\u308b\\u3088\\u3046\\u306a\\u96e3\\u6613\\u5ea6\\u3067\\u3057\\u305f\\u3002\\u3053\\u308c\\u306e\\u6050\\u308d\\u3057\\u3044\\u3068\\u3053\\u308d\\u306f\\u3001\\u8ab2\\u984c\\u3084\\u6388\\u696d\\u3067\\u51fa\\u3055\\u308c\\u305f\\u554f\\u984c\\u306f\\u89e3\\u3051\\u308b\\u306e\\u3067\\u3059\\u304c\\u3001\\u4e2d\\u9593\\u30fb\\u671f\\u672b\\u30c6\\u30b9\\u30c8\\u3067\\u6025\\u6fc0\\u306b\\u96e3\\u6613\\u5ea6\\u304c\\u8df3\\u306d\\u4e0a\\u304c\\u308b\\u3068\\u3053\\u308d\\u3067\\u3059\\u306d\\u3002\\r\\n\\r\\n\\u305b\\u3081\\u3066\\u904e\\u53bb\\u554f\\u3092\\u914d\\u5e03\\u3057\\u3066\\u304f\\u308c\\u305f\\u308a\\u3059\\u308b\\u3068\\u3001\\u751f\\u5f92\\u5074\\u3068\\u3057\\u3066\\u306f\\u30c6\\u30b9\\u30c8\\u306b\\u5411\\u3051\\u3066\\u306e\\u52c9\\u5f37\\u304c\\u6357\\u308b\\u3060\\u3051\\u3067\\u306a\\u304f\\u3001\\u6388\\u696d\\u3067\\u3082\\u8981\\u70b9\\u3092\\u3057\\u3063\\u304b\\u308a\\u62bc\\u3055\\u3048\\u3066\\u52c9\\u5f37\\u3067\\u304d\\u305f\\u308a\\u3059\\u308b\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"\\u8ab2\\u984c\\u306f\\u3059\\u3079\\u3066\\u51fa\\u3057\\u307e\\u3057\\u305f\\u304c\\uff0c\\u304a\\u305d\\u3089\\u304f\\u70b9\\u6570\\u304c\\u5f8c\\u6570\\u70b9\\u8db3\\u308a\\u306a\\u3044\\u3068\\u601d\\u3044\\uff0c\\u5168\\u4f53\\u7684\\u306b\\u3068\\u3066\\u3082\\u5f8c\\u6094\\u3057\\u3066\\u3044\\u307e\\u3059\\uff0e\\u4e0a\\u306e\\u3088\\u3046\\u306b\\u4e0d\\u6e80\\u3092\\u66f8\\u304d\\u307e\\u3057\\u305f\\u304c\\uff0c\\u5b9f\\u969b\\u306f\\u30c6\\u30b9\\u30c8\\u3067\\u7406\\u89e3\\u3059\\u3079\\u304d\\uff0c\\u51fa\\u6765\\u308b\\u3079\\u304d\\u90e8\\u5206\\u3092\\u30df\\u30b9\\u305b\\u305a\\u306b\\u5168\\u3066\\u53d6\\u308c\\u3066\\u3044\\u308c\\u3070\\u304a\\u305d\\u3089\\u304f\\u70b9\\u304c\\u8db3\\u308a\\u3066\\u3044\\u305f\\u3060\\u308d\\u3046\\u3053\\u3068\\u3082\\u4e8b\\u5b9f\\u3067\\u3059\\uff0e\\u6765\\u5e74\\u306f\\u5bfe\\u9762\\u3067\\u3067\\u304d\\u308b\\u3053\\u3068\\u3092\\u671b\\u307f\\uff0c\\u305d\\u306e\\u969b\\u306b\\u306f\\u9ad8\\u5f97\\u70b9\\u3067\\u5358\\u4f4d\\u304c\\u53d6\\u308c\\u308b\\u3088\\u3046\\u306b\\u5fa9\\u7fd2\\u3084\\u81ea\\u5b66\\u3092\\u3055\\u3089\\u306b\\u5897\\u3084\\u3057\\u3066\\u5148\\u751f\\u306b\\u3082\\u8cea\\u554f\\u3092\\u3059\\u308b\\u3088\\u3046\\u306b\\u3057\\u305f\\u3044\\u3068\\u8003\\u3048\\u3066\\u3044\\u307e\\u3059\\uff0e\\u6765\\u5e74\\u3082\\u3088\\u308d\\u3057\\u304f\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\uff0e\", \"\\u30fb\\u3053\\u306e\\u6388\\u696d\\u306f\\u5358\\u4f4d\\u3092\\u843d\\u3068\\u3059\\u5b66\\u751f\\u304c\\u591a\\u3044\\u3068\\u805e\\u3044\\u305f\\u304c\\u3001\\u305d\\u306e\\u901a\\u308a\\u3060\\u3068\\u601d\\u3046\\u3002\\u5148\\u751f\\u306e\\u8aac\\u660e\\u304c\\u3001\\u4e88\\u7fd2\\u3092\\u3057\\u3066\\u3044\\u3066\\u3082\\u308f\\u304b\\u308a\\u3065\\u3089\\u3044\\u3057\\u3001\\u8ab2\\u984c\\u30fb\\u8a66\\u9a13\\u306e\\u5185\\u5bb9\\u3082\\u96e3\\u3057\\u3044\\u3002\\r\\n\\u30fb\\u8ab2\\u984c\\u306e\\u63a1\\u70b9\\u304c\\u307e\\u3060\\u3055\\u308c\\u3066\\u3044\\u306a\\u3044\\u3002\\u5fd9\\u3057\\u3044\\u306e\\u306f\\u5b66\\u751f\\u7686\\u627f\\u77e5\\u3057\\u3066\\u3044\\u308b\\u304c\\u30015\\u6708\\u51fa\\u3057\\u305f\\u8ab2\\u984c\\u3067\\u3059\\u3089\\u63a1\\u70b9\\u3055\\u308c\\u3066\\u3044\\u306a\\u3044\\u306e\\u306f\\u3044\\u304b\\u304c\\u306a\\u3082\\u306e\\u304b\\u3068\\u601d\\u3046\\u3002\", \"\\u307e\\u308f\\u308a\\u306e\\u53d7\\u8b1b\\u3057\\u3066\\u3044\\u308b\\u751f\\u5f92\\u9593\\u3067\\u3082\\u3001\\u308f\\u304b\\u308a\\u306b\\u304f\\u3044\\u3068\\u8a00\\u308f\\u308c\\u3066\\u3044\\u305f\\u8b1b\\u7fa9\\u3067\\u3057\\u305f\\u3002\\u6b21\\u5e74\\u5ea6\\u304b\\u3089\\u306f\\u308f\\u304b\\u308a\\u3084\\u3059\\u3044\\u8aac\\u660e\\u3092\\u3057\\u3066\\u3042\\u3052\\u3066\\u6b32\\u3057\\u3044\\u3067\\u3059\\u3002\", \"\\u30cf\\u30fc\\u30c9\\u30a6\\u30a7\\u30a2\\u306b\\u95a2\\u3057\\u3066\\u306f\\u3042\\u308b\\u7a0b\\u5ea6\\u306e\\u77e5\\u8b58\\u306f\\u3042\\u308a\\u307e\\u3057\\u305f\\u304c\\u3001\\u30bd\\u30d5\\u30c8\\u30a6\\u30a7\\u30a2\\u306f\\u3053\\u306e\\u8b1b\\u7fa9\\u3067\\u30a2\\u30bb\\u30f3\\u30d6\\u30eb\\u306b\\u521d\\u3081\\u3066\\u89e6\\u308c\\u3066\\u307f\\u3066\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u306e\\u4e2d\\u8eab\\u306e\\u52d5\\u304d\\u3092\\u5c11\\u3057\\u3060\\u3051\\u7406\\u89e3\\u3067\\u304d\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\"]}}; }\n",
              "plotInterface = buildViz(1000,\n",
              "600,\n",
              "null,\n",
              "null,\n",
              "false,\n",
              "false,\n",
              "false,\n",
              "false,\n",
              "false,\n",
              "true,\n",
              "false,\n",
              "false,\n",
              "true,\n",
              "0.1,\n",
              "false,\n",
              "undefined,\n",
              "undefined,\n",
              "getDataAndInfo(),\n",
              "true,\n",
              "false,\n",
              "null,\n",
              "null,\n",
              "null,\n",
              "null,\n",
              "true,\n",
              "false,\n",
              "true,\n",
              "false,\n",
              "null,\n",
              "null,\n",
              "10,\n",
              "null,\n",
              "null,\n",
              "null,\n",
              "false,\n",
              "true,\n",
              "true,\n",
              "undefined,\n",
              "null,\n",
              "false,\n",
              "false,\n",
              "\".3f\",\n",
              "\".3f\",\n",
              "false,\n",
              "-1,\n",
              "true,\n",
              "false,\n",
              "true,\n",
              "false,\n",
              "false,\n",
              "false,\n",
              "true,\n",
              "null,\n",
              "null,\n",
              "null,\n",
              "false,\n",
              "null,\n",
              "undefined,\n",
              "undefined,\n",
              "undefined,\n",
              "undefined,\n",
              "undefined,\n",
              "undefined,\n",
              "undefined,\n",
              "14,\n",
              "0,\n",
              "null,\n",
              "\"Term\",\n",
              "true,\n",
              "false,\n",
              "false,\n",
              "false);\n",
              "\n",
              "\n",
              "autocomplete(\n",
              "    document.getElementById('searchInput'),\n",
              "    plotInterface.data.map(x => x.term).sort(),\n",
              "    plotInterface\n",
              ");\n",
              "\n",
              "</script>\n"
            ]
          },
          "metadata": {},
          "execution_count": 13
        }
      ],
      "source": [
        "import scattertext as st\n",
        "\n",
        "# 用意したdataframeと、比較対象カテゴリを保存している列(title)、Docを保存している列(doc)を指定。\n",
        "corpus = st.CorpusFromParsedDocuments(new_df, category_col='title', parsed_col='doc').build()\n",
        "\n",
        "# 上記で用意した corpusと、比較対象したいカテゴリ名（title1, title2）を指定。\n",
        "html = st.produce_scattertext_explorer(corpus, category=title1, category_name=title1, not_category_name=title2)\n",
        "\n",
        "# 生成されたHTMLを描画。\n",
        "from IPython.display import display, HTML\n",
        "HTML(html)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "metadata": {
        "id": "j0Xpg8rnjp6e"
      },
      "outputs": [],
      "source": [
        "with open('sample.html', 'w') as f:\n",
        "    f.write(html)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "id": "awC7QZaRjp6e",
        "outputId": "cc68ad96-efb4-4fd6-9011-f1fb62cfdc3f"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "<br>"
            ]
          },
          "metadata": {}
        }
      ],
      "source": [
        "display(HTML(\"<br>\"))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "BCYLB8d2jp6e"
      },
      "source": [
        "### 前処理あり\n",
        "コメント文をそのまま処理してしまうと観察したくない単語（助詞など）が多々現れているため、傾向を掴みづらい結果となってしまった。これまでにも見てきたように品詞を指定して観察するとしよう。このためには、(1) new_df['comment'] に含まれるコメントを事前に分かち書きし、そのタイミングで品詞判定をして不要語を削除する方法と、(2) scattertext側でオプション指定する方法がある。ここでは(2)の方法を眺めてみよう。\n",
        "\n",
        "scattertext側で品詞指定するには、(a) コメント文そのもの、(b) 解析器(spacy.nlp)、(c) 解析クラスを用意する必要がある。(a) は new_df['comment'] をそのまま用いれば良い。(b)は既に用意している nlp を用いれば良い。(c)については [st.FeatsFromSpacyDoc](https://github.com/JasonKessler/scattertext/blob/master/scattertext/features/FeatsFromSpacyDoc.py) を継承した子クラスを作成し、その中で解析方法を書く必要がある。\n",
        "\n",
        "- NOTE\n",
        "    - 先程は処理済みDoc型を利用するため st.CorpusFromParsedDocuments() を利用した。今回はテキストと解析機を渡して scattertext 内部で処理するため、st.CorpusFromPandas() を利用している。"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 759
        },
        "id": "Mr8Q6Uoujp6e",
        "outputId": "235cf6be-3f96-40c9-f01a-0ab04b740ce6"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ],
            "text/html": [
              "<!-- some code adapted from www.degeneratestate.org/static/metal_lyrics/metal_line.html -->\n",
              "<!-- <!DOCTYPE html>\n",
              "<meta content=\"utf-8\"> -->\n",
              "<style> /* set the CSS */\n",
              "\n",
              "body {\n",
              "  font: 12px Arial;\n",
              "}\n",
              "\n",
              "svg {\n",
              "  font: 12px Helvetica;\n",
              "}\n",
              "\n",
              "path {\n",
              "  stroke: steelblue;\n",
              "  stroke-width: 2;\n",
              "  fill: none;\n",
              "}\n",
              "\n",
              ".grid line {\n",
              "  stroke: lightgrey;\n",
              "  stroke-opacity: 0.4;\n",
              "  shape-rendering: crispEdges;\n",
              "}\n",
              "\n",
              ".grid path {\n",
              "  stroke-width: 0;\n",
              "}\n",
              "\n",
              ".axis path,\n",
              ".axis lineper {\n",
              "  fill: none;\n",
              "  stroke: grey;\n",
              "  stroke-width: 1;\n",
              "  shape-rendering: crispEdges;\n",
              "}\n",
              "\n",
              "div.tooltip {\n",
              "  position: absolute;\n",
              "  text-align: center;\n",
              "  width: 150px;\n",
              "  height: 28px;\n",
              "  padding: 2px;\n",
              "  font: 12px sans-serif;\n",
              "  background: lightsteelblue;\n",
              "  border: 0px;\n",
              "  border-radius: 8px;\n",
              "  pointer-events: none;\n",
              "}\n",
              "\n",
              "div.tooltipscore {\n",
              "  position: absolute;\n",
              "  text-align: center;\n",
              "  width: 150px;\n",
              "  height: 50px;\n",
              "  padding: 2px;\n",
              "  font: 10px sans-serif;\n",
              "  background: lightsteelblue;\n",
              "  border: 0px;\n",
              "  border-radius: 8px;\n",
              "  pointer-events: none;\n",
              "}\n",
              "\n",
              ".category_header {\n",
              "  font: 12px sans-serif;\n",
              "  font-weight: bolder;\n",
              "  text-decoration: underline;\n",
              "}\n",
              "\n",
              "div.label {\n",
              "  color: rgb(252, 251, 253);\n",
              "  color: rgb(63, 0, 125);\n",
              "  color: rgb(158, 155, 201);\n",
              "\n",
              "  position: absolute;\n",
              "  text-align: left;\n",
              "  padding: 1px;\n",
              "  border-spacing: 1px;\n",
              "  font: 10px sans-serif;\n",
              "  font-family: Sans-Serif;\n",
              "  border: 0;\n",
              "  pointer-events: none;\n",
              "}\n",
              "/*\n",
              "input {\n",
              "  border: 1px dotted #ccc;\n",
              "  background: white;\n",
              "  font-family: monospace;\n",
              "  padding: 10px 20px;\n",
              "  font-size: 14px;\n",
              "  margin: 20px 10px 30px 0;\n",
              "  color: darkred;\n",
              "}*/\n",
              "\n",
              ".alert {\n",
              "  font-family: monospace;\n",
              "  padding: 10px 20px;\n",
              "  font-size: 14px;\n",
              "  margin: 20px 10px 30px 0;\n",
              "  color: darkred;\n",
              "}\n",
              "\n",
              "ul.top_terms li {\n",
              "  padding-right: 20px;\n",
              "  font-size: 30pt;\n",
              "  color: red;\n",
              "}\n",
              "/*\n",
              "input:focus {\n",
              "  background-color: lightyellow;\n",
              "  outline: none;\n",
              "}*/\n",
              "\n",
              ".snippet {\n",
              "  padding-bottom: 10px;\n",
              "  padding-left: 5px;\n",
              "  padding-right: 5px;\n",
              "  white-space: pre-wrap;\n",
              "}\n",
              "\n",
              ".snippet_header {\n",
              "  font-size: 20px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "  font-weight: bolder;\n",
              "  #text-decoration: underline;\n",
              "  text-align: center;\n",
              "  border-bottom-width: 10px;\n",
              "  border-bottom-color: #888888;\n",
              "  padding-bottom: 10px;\n",
              "}\n",
              "\n",
              ".topic_preview {\n",
              "  font-size: 12px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "  text-align: center;\n",
              "  padding-bottom: 10px;\n",
              "  font-weight: normal;\n",
              "  text-decoration: none;\n",
              "}\n",
              "\n",
              "\n",
              "#d3-div-1-categoryinfo {\n",
              "  font-size: 12px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "  text-align: center;\n",
              "  padding-bottom: 10px;    \n",
              "\n",
              "}\n",
              "\n",
              "\n",
              "#d3-div-1-title-div {\n",
              "  font-size: 20px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "  text-align: center;\n",
              "}\n",
              "\n",
              ".text_header {\n",
              "  font: 18px sans-serif;\n",
              "  font-size: 18px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "\n",
              "  font-weight: bolder;\n",
              "  text-decoration: underline;\n",
              "  text-align: center;\n",
              "  color: darkblue;\n",
              "  padding-bottom: 10px;\n",
              "}\n",
              "\n",
              ".text_subheader {\n",
              "  font-size: 14px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "\n",
              "  text-align: center;\n",
              "}\n",
              "\n",
              ".snippet_meta {\n",
              "  border-top: 3px solid #4588ba;\n",
              "  font-size: 12px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "  color: darkblue;\n",
              "}\n",
              "\n",
              ".not_match {\n",
              "    background-color: #F0F8FF;\n",
              "}\n",
              "    \n",
              ".contexts {\n",
              "  width: 45%;\n",
              "  float: left;\n",
              "}\n",
              "\n",
              ".neut_display {\n",
              "  display: none;\n",
              "  float: left\n",
              "}\n",
              "\n",
              ".scattertext {\n",
              "  font-size: 10px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "}\n",
              "\n",
              ".label {\n",
              "  font-size: 10px;\n",
              "  font-family: Helvetica, Arial, Sans-Serif;\n",
              "}\n",
              "\n",
              ".obscured {\n",
              "  /*font-size: 14px;\n",
              "  font-weight: normal;\n",
              "  color: dimgrey;\n",
              "  font-family: Helvetica;*/\n",
              "  text-align: center;\n",
              "}\n",
              "\n",
              ".small_label {\n",
              "  font-size: 10px;\n",
              "}\n",
              "\n",
              "#d3-div-1-corpus-stats {\n",
              "  text-align: center;\n",
              "}\n",
              "\n",
              "#d3-div-1-cat {\n",
              "}\n",
              "\n",
              "#d3-div-1-notcat {\n",
              "}\n",
              "\n",
              "#d3-div-1-neut {\n",
              "}\n",
              "\n",
              "#d3-div-1-neutcol {\n",
              "  display: none;\n",
              "}\n",
              "/* Adapted from https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_autocomplete */\n",
              "\n",
              ".autocomplete {\n",
              "  position: relative;\n",
              "  display: inline-block;\n",
              "}\n",
              "\n",
              "input {\n",
              "  border: 1px solid transparent;\n",
              "  background-color: #f1f1f1;\n",
              "  padding: 10px;\n",
              "  font-size: 16px;\n",
              "}\n",
              "\n",
              "input[type=text] {\n",
              "  background-color: #f1f1f1;\n",
              "  width: 100%;\n",
              "}\n",
              "\n",
              "input[type=submit] {\n",
              "  background-color: DodgerBlue;\n",
              "  color: #fff;\n",
              "  cursor: pointer;\n",
              "}\n",
              "\n",
              ".autocomplete-items {\n",
              "  position: absolute;\n",
              "  border: 2px solid #d4d4d4;\n",
              "  border-bottom: none;\n",
              "  border-top: none;\n",
              "  z-index: 99;\n",
              "  /*position the autocomplete items to be the same width as the container:*/\n",
              "  top: 100%;\n",
              "  left: 0;\n",
              "  right: 0;\n",
              "}\n",
              "\n",
              ".autocomplete-items div {\n",
              "  padding: 10px;\n",
              "  cursor: pointer;\n",
              "  background-color: #fff;\n",
              "  border-bottom: 2px solid #d4d4d4;\n",
              "}\n",
              "\n",
              "/*when hovering an item:*/\n",
              ".autocomplete-items div:hover {\n",
              "  background-color: #e9e9e9;\n",
              "}\n",
              "\n",
              "/*when navigating through the items using the arrow keys:*/\n",
              ".autocomplete-active {\n",
              "  background-color: DodgerBlue !important;\n",
              "  color: #ffffff;\n",
              "}\n",
              "</style>\n",
              "\n",
              "<script src=\"https://cdnjs.cloudflare.com/ajax/libs/d3/4.6.0/d3.min.js\" charset=\"utf-8\"></script>\n",
              "<script src=\"https://d3js.org/d3-scale-chromatic.v1.min.js\" charset=\"utf-8\"></script>\n",
              "\n",
              "<!-- INSERT SEMIOTIC SQUARE -->\n",
              "<!--<a onclick=\"maxFreq = Math.log(data.map(d => d.cat + d.ncat).reduce((a,b) => Math.max(a,b))); plotInterface.redrawPoints(0.1, d => (Math.log(d.ncat + d.cat)/maxFreq), d => d.s, false); plotInterface.redrawPoints(0.1, d => (Math.log(d.ncat + d.cat)/maxFreq), d => d.s, true)\">View Score Plot</a>-->\n",
              "<span id=\"d3-div-1-title-div\"></span>\n",
              "<div class=\"scattertext\" id=\"d3-div-1\" style=\"float: left\"></div>\n",
              "<div style=\"floag: left;\">\n",
              "    <div autocomplete=\"off\">\n",
              "        <div class=\"autocomplete\">\n",
              "            <input id=\"searchInput\" type=\"text\" placeholder=\"Search the chart\">\n",
              "        </div>\n",
              "    </div>\n",
              "</div>\n",
              "<br/>\n",
              "<div id=\"d3-div-1-corpus-stats\"></div>\n",
              "<div id=\"d3-div-1-overlapped-terms\"></div>\n",
              "<a name=\"d3-div-1-snippets\"></a>\n",
              "<a name=\"d3-div-1-snippetsalt\"></a>\n",
              "<div id=\"d3-div-1-termstats\"></div>\n",
              "<div id=\"d3-div-1-overlapped-terms-clicked\"></div>\n",
              "<div id=\"d3-div-1-categoryinfo\" style=\"display: hidden\"></div>\n",
              "<div id=\"d3-div-2\">\n",
              "  <div class=\"d3-div-1-contexts\">\n",
              "    <div class=\"snippet_header\" id=\"d3-div-1-cathead\"></div>\n",
              "    <div class=\"snippet\" id=\"d3-div-1-cat\"></div>\n",
              "  </div>\n",
              "  <div id=\"d3-div-1-notcol\" class=\"d3-div-1-contexts\">\n",
              "    <div class=\"snippet_header\" id=\"d3-div-1-notcathead\"></div>\n",
              "    <div class=\"snippet\" id=\"d3-div-1-notcat\"></div>\n",
              "  </div>\n",
              "  <div id=\"d3-div-1-neutcol\" class=\"d3-div-1-contexts\">\n",
              "    <div class=\"snippet_header\" id=\"d3-div-1-neuthead\"></div>\n",
              "    <div class=\"snippet\" id=\"d3-div-1-neut\"></div>\n",
              "  </div>\n",
              "</div>\n",
              "<script charset=\"utf-8\">\n",
              "    // Created using Cozy: github.com/uwplse/cozy\n",
              "function Rectangle(ax1, ay1, ax2, ay2) {\n",
              "    this.ax1 = ax1;\n",
              "    this.ay1 = ay1;\n",
              "    this.ax2 = ax2;\n",
              "    this.ay2 = ay2;\n",
              "    this._left7 = undefined;\n",
              "    this._right8 = undefined;\n",
              "    this._parent9 = undefined;\n",
              "    this._min_ax12 = undefined;\n",
              "    this._min_ay13 = undefined;\n",
              "    this._max_ay24 = undefined;\n",
              "    this._height10 = undefined;\n",
              "}\n",
              "function RectangleHolder() {\n",
              "    this.my_size = 0;\n",
              "    (this)._root1 = null;\n",
              "}\n",
              "RectangleHolder.prototype.size = function () {\n",
              "    return this.my_size;\n",
              "};\n",
              "RectangleHolder.prototype.add = function (x) {\n",
              "    ++this.my_size;\n",
              "    var _idx69 = (x).ax2;\n",
              "    (x)._left7 = null;\n",
              "    (x)._right8 = null;\n",
              "    (x)._min_ax12 = (x).ax1;\n",
              "    (x)._min_ay13 = (x).ay1;\n",
              "    (x)._max_ay24 = (x).ay2;\n",
              "    (x)._height10 = 0;\n",
              "    var _previous70 = null;\n",
              "    var _current71 = (this)._root1;\n",
              "    var _is_left72 = false;\n",
              "    while (!((_current71) == null)) {\n",
              "        _previous70 = _current71;\n",
              "        if ((_idx69) < ((_current71).ax2)) {\n",
              "            _current71 = (_current71)._left7;\n",
              "            _is_left72 = true;\n",
              "        } else {\n",
              "            _current71 = (_current71)._right8;\n",
              "            _is_left72 = false;\n",
              "        }\n",
              "    }\n",
              "    if ((_previous70) == null) {\n",
              "        (this)._root1 = x;\n",
              "    } else {\n",
              "        (x)._parent9 = _previous70;\n",
              "        if (_is_left72) {\n",
              "            (_previous70)._left7 = x;\n",
              "        } else {\n",
              "            (_previous70)._right8 = x;\n",
              "        }\n",
              "    }\n",
              "    var _cursor73 = (x)._parent9;\n",
              "    var _changed74 = true;\n",
              "    while ((_changed74) && (!((_cursor73) == (null)))) {\n",
              "        var _old__min_ax1275 = (_cursor73)._min_ax12;\n",
              "        var _old__min_ay1376 = (_cursor73)._min_ay13;\n",
              "        var _old__max_ay2477 = (_cursor73)._max_ay24;\n",
              "        var _old_height78 = (_cursor73)._height10;\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval79 = (_cursor73).ax1;\n",
              "        var _child80 = (_cursor73)._left7;\n",
              "        if (!((_child80) == null)) {\n",
              "            var _val81 = (_child80)._min_ax12;\n",
              "            _augval79 = ((_augval79) < (_val81)) ? (_augval79) : (_val81);\n",
              "        }\n",
              "        var _child82 = (_cursor73)._right8;\n",
              "        if (!((_child82) == null)) {\n",
              "            var _val83 = (_child82)._min_ax12;\n",
              "            _augval79 = ((_augval79) < (_val83)) ? (_augval79) : (_val83);\n",
              "        }\n",
              "        (_cursor73)._min_ax12 = _augval79;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval84 = (_cursor73).ay1;\n",
              "        var _child85 = (_cursor73)._left7;\n",
              "        if (!((_child85) == null)) {\n",
              "            var _val86 = (_child85)._min_ay13;\n",
              "            _augval84 = ((_augval84) < (_val86)) ? (_augval84) : (_val86);\n",
              "        }\n",
              "        var _child87 = (_cursor73)._right8;\n",
              "        if (!((_child87) == null)) {\n",
              "            var _val88 = (_child87)._min_ay13;\n",
              "            _augval84 = ((_augval84) < (_val88)) ? (_augval84) : (_val88);\n",
              "        }\n",
              "        (_cursor73)._min_ay13 = _augval84;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval89 = (_cursor73).ay2;\n",
              "        var _child90 = (_cursor73)._left7;\n",
              "        if (!((_child90) == null)) {\n",
              "            var _val91 = (_child90)._max_ay24;\n",
              "            _augval89 = ((_augval89) < (_val91)) ? (_val91) : (_augval89);\n",
              "        }\n",
              "        var _child92 = (_cursor73)._right8;\n",
              "        if (!((_child92) == null)) {\n",
              "            var _val93 = (_child92)._max_ay24;\n",
              "            _augval89 = ((_augval89) < (_val93)) ? (_val93) : (_augval89);\n",
              "        }\n",
              "        (_cursor73)._max_ay24 = _augval89;\n",
              "        (_cursor73)._height10 = 1 + ((((((_cursor73)._left7) == null) ? (-1) : (((_cursor73)._left7)._height10)) > ((((_cursor73)._right8) == null) ? (-1) : (((_cursor73)._right8)._height10))) ? ((((_cursor73)._left7) == null) ? (-1) : (((_cursor73)._left7)._height10)) : ((((_cursor73)._right8) == null) ? (-1) : (((_cursor73)._right8)._height10)));\n",
              "        _changed74 = false;\n",
              "        _changed74 = (_changed74) || (!((_old__min_ax1275) == ((_cursor73)._min_ax12)));\n",
              "        _changed74 = (_changed74) || (!((_old__min_ay1376) == ((_cursor73)._min_ay13)));\n",
              "        _changed74 = (_changed74) || (!((_old__max_ay2477) == ((_cursor73)._max_ay24)));\n",
              "        _changed74 = (_changed74) || (!((_old_height78) == ((_cursor73)._height10)));\n",
              "        _cursor73 = (_cursor73)._parent9;\n",
              "    }\n",
              "    /* rebalance AVL tree */\n",
              "    var _cursor94 = x;\n",
              "    var _imbalance95;\n",
              "    while (!(((_cursor94)._parent9) == null)) {\n",
              "        _cursor94 = (_cursor94)._parent9;\n",
              "        (_cursor94)._height10 = 1 + ((((((_cursor94)._left7) == null) ? (-1) : (((_cursor94)._left7)._height10)) > ((((_cursor94)._right8) == null) ? (-1) : (((_cursor94)._right8)._height10))) ? ((((_cursor94)._left7) == null) ? (-1) : (((_cursor94)._left7)._height10)) : ((((_cursor94)._right8) == null) ? (-1) : (((_cursor94)._right8)._height10)));\n",
              "        _imbalance95 = ((((_cursor94)._left7) == null) ? (-1) : (((_cursor94)._left7)._height10)) - ((((_cursor94)._right8) == null) ? (-1) : (((_cursor94)._right8)._height10));\n",
              "        if ((_imbalance95) > (1)) {\n",
              "            if ((((((_cursor94)._left7)._left7) == null) ? (-1) : ((((_cursor94)._left7)._left7)._height10)) < (((((_cursor94)._left7)._right8) == null) ? (-1) : ((((_cursor94)._left7)._right8)._height10))) {\n",
              "                /* rotate ((_cursor94)._left7)._right8 */\n",
              "                var _a96 = (_cursor94)._left7;\n",
              "                var _b97 = (_a96)._right8;\n",
              "                var _c98 = (_b97)._left7;\n",
              "                /* replace _a96 with _b97 in (_a96)._parent9 */\n",
              "                if (!(((_a96)._parent9) == null)) {\n",
              "                    if ((((_a96)._parent9)._left7) == (_a96)) {\n",
              "                        ((_a96)._parent9)._left7 = _b97;\n",
              "                    } else {\n",
              "                        ((_a96)._parent9)._right8 = _b97;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b97) == null)) {\n",
              "                    (_b97)._parent9 = (_a96)._parent9;\n",
              "                }\n",
              "                /* replace _c98 with _a96 in _b97 */\n",
              "                (_b97)._left7 = _a96;\n",
              "                if (!((_a96) == null)) {\n",
              "                    (_a96)._parent9 = _b97;\n",
              "                }\n",
              "                /* replace _b97 with _c98 in _a96 */\n",
              "                (_a96)._right8 = _c98;\n",
              "                if (!((_c98) == null)) {\n",
              "                    (_c98)._parent9 = _a96;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval99 = (_a96).ax1;\n",
              "                var _child100 = (_a96)._left7;\n",
              "                if (!((_child100) == null)) {\n",
              "                    var _val101 = (_child100)._min_ax12;\n",
              "                    _augval99 = ((_augval99) < (_val101)) ? (_augval99) : (_val101);\n",
              "                }\n",
              "                var _child102 = (_a96)._right8;\n",
              "                if (!((_child102) == null)) {\n",
              "                    var _val103 = (_child102)._min_ax12;\n",
              "                    _augval99 = ((_augval99) < (_val103)) ? (_augval99) : (_val103);\n",
              "                }\n",
              "                (_a96)._min_ax12 = _augval99;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval104 = (_a96).ay1;\n",
              "                var _child105 = (_a96)._left7;\n",
              "                if (!((_child105) == null)) {\n",
              "                    var _val106 = (_child105)._min_ay13;\n",
              "                    _augval104 = ((_augval104) < (_val106)) ? (_augval104) : (_val106);\n",
              "                }\n",
              "                var _child107 = (_a96)._right8;\n",
              "                if (!((_child107) == null)) {\n",
              "                    var _val108 = (_child107)._min_ay13;\n",
              "                    _augval104 = ((_augval104) < (_val108)) ? (_augval104) : (_val108);\n",
              "                }\n",
              "                (_a96)._min_ay13 = _augval104;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval109 = (_a96).ay2;\n",
              "                var _child110 = (_a96)._left7;\n",
              "                if (!((_child110) == null)) {\n",
              "                    var _val111 = (_child110)._max_ay24;\n",
              "                    _augval109 = ((_augval109) < (_val111)) ? (_val111) : (_augval109);\n",
              "                }\n",
              "                var _child112 = (_a96)._right8;\n",
              "                if (!((_child112) == null)) {\n",
              "                    var _val113 = (_child112)._max_ay24;\n",
              "                    _augval109 = ((_augval109) < (_val113)) ? (_val113) : (_augval109);\n",
              "                }\n",
              "                (_a96)._max_ay24 = _augval109;\n",
              "                (_a96)._height10 = 1 + ((((((_a96)._left7) == null) ? (-1) : (((_a96)._left7)._height10)) > ((((_a96)._right8) == null) ? (-1) : (((_a96)._right8)._height10))) ? ((((_a96)._left7) == null) ? (-1) : (((_a96)._left7)._height10)) : ((((_a96)._right8) == null) ? (-1) : (((_a96)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval114 = (_b97).ax1;\n",
              "                var _child115 = (_b97)._left7;\n",
              "                if (!((_child115) == null)) {\n",
              "                    var _val116 = (_child115)._min_ax12;\n",
              "                    _augval114 = ((_augval114) < (_val116)) ? (_augval114) : (_val116);\n",
              "                }\n",
              "                var _child117 = (_b97)._right8;\n",
              "                if (!((_child117) == null)) {\n",
              "                    var _val118 = (_child117)._min_ax12;\n",
              "                    _augval114 = ((_augval114) < (_val118)) ? (_augval114) : (_val118);\n",
              "                }\n",
              "                (_b97)._min_ax12 = _augval114;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval119 = (_b97).ay1;\n",
              "                var _child120 = (_b97)._left7;\n",
              "                if (!((_child120) == null)) {\n",
              "                    var _val121 = (_child120)._min_ay13;\n",
              "                    _augval119 = ((_augval119) < (_val121)) ? (_augval119) : (_val121);\n",
              "                }\n",
              "                var _child122 = (_b97)._right8;\n",
              "                if (!((_child122) == null)) {\n",
              "                    var _val123 = (_child122)._min_ay13;\n",
              "                    _augval119 = ((_augval119) < (_val123)) ? (_augval119) : (_val123);\n",
              "                }\n",
              "                (_b97)._min_ay13 = _augval119;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval124 = (_b97).ay2;\n",
              "                var _child125 = (_b97)._left7;\n",
              "                if (!((_child125) == null)) {\n",
              "                    var _val126 = (_child125)._max_ay24;\n",
              "                    _augval124 = ((_augval124) < (_val126)) ? (_val126) : (_augval124);\n",
              "                }\n",
              "                var _child127 = (_b97)._right8;\n",
              "                if (!((_child127) == null)) {\n",
              "                    var _val128 = (_child127)._max_ay24;\n",
              "                    _augval124 = ((_augval124) < (_val128)) ? (_val128) : (_augval124);\n",
              "                }\n",
              "                (_b97)._max_ay24 = _augval124;\n",
              "                (_b97)._height10 = 1 + ((((((_b97)._left7) == null) ? (-1) : (((_b97)._left7)._height10)) > ((((_b97)._right8) == null) ? (-1) : (((_b97)._right8)._height10))) ? ((((_b97)._left7) == null) ? (-1) : (((_b97)._left7)._height10)) : ((((_b97)._right8) == null) ? (-1) : (((_b97)._right8)._height10)));\n",
              "                if (!(((_b97)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval129 = ((_b97)._parent9).ax1;\n",
              "                    var _child130 = ((_b97)._parent9)._left7;\n",
              "                    if (!((_child130) == null)) {\n",
              "                        var _val131 = (_child130)._min_ax12;\n",
              "                        _augval129 = ((_augval129) < (_val131)) ? (_augval129) : (_val131);\n",
              "                    }\n",
              "                    var _child132 = ((_b97)._parent9)._right8;\n",
              "                    if (!((_child132) == null)) {\n",
              "                        var _val133 = (_child132)._min_ax12;\n",
              "                        _augval129 = ((_augval129) < (_val133)) ? (_augval129) : (_val133);\n",
              "                    }\n",
              "                    ((_b97)._parent9)._min_ax12 = _augval129;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval134 = ((_b97)._parent9).ay1;\n",
              "                    var _child135 = ((_b97)._parent9)._left7;\n",
              "                    if (!((_child135) == null)) {\n",
              "                        var _val136 = (_child135)._min_ay13;\n",
              "                        _augval134 = ((_augval134) < (_val136)) ? (_augval134) : (_val136);\n",
              "                    }\n",
              "                    var _child137 = ((_b97)._parent9)._right8;\n",
              "                    if (!((_child137) == null)) {\n",
              "                        var _val138 = (_child137)._min_ay13;\n",
              "                        _augval134 = ((_augval134) < (_val138)) ? (_augval134) : (_val138);\n",
              "                    }\n",
              "                    ((_b97)._parent9)._min_ay13 = _augval134;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval139 = ((_b97)._parent9).ay2;\n",
              "                    var _child140 = ((_b97)._parent9)._left7;\n",
              "                    if (!((_child140) == null)) {\n",
              "                        var _val141 = (_child140)._max_ay24;\n",
              "                        _augval139 = ((_augval139) < (_val141)) ? (_val141) : (_augval139);\n",
              "                    }\n",
              "                    var _child142 = ((_b97)._parent9)._right8;\n",
              "                    if (!((_child142) == null)) {\n",
              "                        var _val143 = (_child142)._max_ay24;\n",
              "                        _augval139 = ((_augval139) < (_val143)) ? (_val143) : (_augval139);\n",
              "                    }\n",
              "                    ((_b97)._parent9)._max_ay24 = _augval139;\n",
              "                    ((_b97)._parent9)._height10 = 1 + (((((((_b97)._parent9)._left7) == null) ? (-1) : ((((_b97)._parent9)._left7)._height10)) > (((((_b97)._parent9)._right8) == null) ? (-1) : ((((_b97)._parent9)._right8)._height10))) ? (((((_b97)._parent9)._left7) == null) ? (-1) : ((((_b97)._parent9)._left7)._height10)) : (((((_b97)._parent9)._right8) == null) ? (-1) : ((((_b97)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b97;\n",
              "                }\n",
              "            }\n",
              "            /* rotate (_cursor94)._left7 */\n",
              "            var _a144 = _cursor94;\n",
              "            var _b145 = (_a144)._left7;\n",
              "            var _c146 = (_b145)._right8;\n",
              "            /* replace _a144 with _b145 in (_a144)._parent9 */\n",
              "            if (!(((_a144)._parent9) == null)) {\n",
              "                if ((((_a144)._parent9)._left7) == (_a144)) {\n",
              "                    ((_a144)._parent9)._left7 = _b145;\n",
              "                } else {\n",
              "                    ((_a144)._parent9)._right8 = _b145;\n",
              "                }\n",
              "            }\n",
              "            if (!((_b145) == null)) {\n",
              "                (_b145)._parent9 = (_a144)._parent9;\n",
              "            }\n",
              "            /* replace _c146 with _a144 in _b145 */\n",
              "            (_b145)._right8 = _a144;\n",
              "            if (!((_a144) == null)) {\n",
              "                (_a144)._parent9 = _b145;\n",
              "            }\n",
              "            /* replace _b145 with _c146 in _a144 */\n",
              "            (_a144)._left7 = _c146;\n",
              "            if (!((_c146) == null)) {\n",
              "                (_c146)._parent9 = _a144;\n",
              "            }\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval147 = (_a144).ax1;\n",
              "            var _child148 = (_a144)._left7;\n",
              "            if (!((_child148) == null)) {\n",
              "                var _val149 = (_child148)._min_ax12;\n",
              "                _augval147 = ((_augval147) < (_val149)) ? (_augval147) : (_val149);\n",
              "            }\n",
              "            var _child150 = (_a144)._right8;\n",
              "            if (!((_child150) == null)) {\n",
              "                var _val151 = (_child150)._min_ax12;\n",
              "                _augval147 = ((_augval147) < (_val151)) ? (_augval147) : (_val151);\n",
              "            }\n",
              "            (_a144)._min_ax12 = _augval147;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval152 = (_a144).ay1;\n",
              "            var _child153 = (_a144)._left7;\n",
              "            if (!((_child153) == null)) {\n",
              "                var _val154 = (_child153)._min_ay13;\n",
              "                _augval152 = ((_augval152) < (_val154)) ? (_augval152) : (_val154);\n",
              "            }\n",
              "            var _child155 = (_a144)._right8;\n",
              "            if (!((_child155) == null)) {\n",
              "                var _val156 = (_child155)._min_ay13;\n",
              "                _augval152 = ((_augval152) < (_val156)) ? (_augval152) : (_val156);\n",
              "            }\n",
              "            (_a144)._min_ay13 = _augval152;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval157 = (_a144).ay2;\n",
              "            var _child158 = (_a144)._left7;\n",
              "            if (!((_child158) == null)) {\n",
              "                var _val159 = (_child158)._max_ay24;\n",
              "                _augval157 = ((_augval157) < (_val159)) ? (_val159) : (_augval157);\n",
              "            }\n",
              "            var _child160 = (_a144)._right8;\n",
              "            if (!((_child160) == null)) {\n",
              "                var _val161 = (_child160)._max_ay24;\n",
              "                _augval157 = ((_augval157) < (_val161)) ? (_val161) : (_augval157);\n",
              "            }\n",
              "            (_a144)._max_ay24 = _augval157;\n",
              "            (_a144)._height10 = 1 + ((((((_a144)._left7) == null) ? (-1) : (((_a144)._left7)._height10)) > ((((_a144)._right8) == null) ? (-1) : (((_a144)._right8)._height10))) ? ((((_a144)._left7) == null) ? (-1) : (((_a144)._left7)._height10)) : ((((_a144)._right8) == null) ? (-1) : (((_a144)._right8)._height10)));\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval162 = (_b145).ax1;\n",
              "            var _child163 = (_b145)._left7;\n",
              "            if (!((_child163) == null)) {\n",
              "                var _val164 = (_child163)._min_ax12;\n",
              "                _augval162 = ((_augval162) < (_val164)) ? (_augval162) : (_val164);\n",
              "            }\n",
              "            var _child165 = (_b145)._right8;\n",
              "            if (!((_child165) == null)) {\n",
              "                var _val166 = (_child165)._min_ax12;\n",
              "                _augval162 = ((_augval162) < (_val166)) ? (_augval162) : (_val166);\n",
              "            }\n",
              "            (_b145)._min_ax12 = _augval162;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval167 = (_b145).ay1;\n",
              "            var _child168 = (_b145)._left7;\n",
              "            if (!((_child168) == null)) {\n",
              "                var _val169 = (_child168)._min_ay13;\n",
              "                _augval167 = ((_augval167) < (_val169)) ? (_augval167) : (_val169);\n",
              "            }\n",
              "            var _child170 = (_b145)._right8;\n",
              "            if (!((_child170) == null)) {\n",
              "                var _val171 = (_child170)._min_ay13;\n",
              "                _augval167 = ((_augval167) < (_val171)) ? (_augval167) : (_val171);\n",
              "            }\n",
              "            (_b145)._min_ay13 = _augval167;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval172 = (_b145).ay2;\n",
              "            var _child173 = (_b145)._left7;\n",
              "            if (!((_child173) == null)) {\n",
              "                var _val174 = (_child173)._max_ay24;\n",
              "                _augval172 = ((_augval172) < (_val174)) ? (_val174) : (_augval172);\n",
              "            }\n",
              "            var _child175 = (_b145)._right8;\n",
              "            if (!((_child175) == null)) {\n",
              "                var _val176 = (_child175)._max_ay24;\n",
              "                _augval172 = ((_augval172) < (_val176)) ? (_val176) : (_augval172);\n",
              "            }\n",
              "            (_b145)._max_ay24 = _augval172;\n",
              "            (_b145)._height10 = 1 + ((((((_b145)._left7) == null) ? (-1) : (((_b145)._left7)._height10)) > ((((_b145)._right8) == null) ? (-1) : (((_b145)._right8)._height10))) ? ((((_b145)._left7) == null) ? (-1) : (((_b145)._left7)._height10)) : ((((_b145)._right8) == null) ? (-1) : (((_b145)._right8)._height10)));\n",
              "            if (!(((_b145)._parent9) == null)) {\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval177 = ((_b145)._parent9).ax1;\n",
              "                var _child178 = ((_b145)._parent9)._left7;\n",
              "                if (!((_child178) == null)) {\n",
              "                    var _val179 = (_child178)._min_ax12;\n",
              "                    _augval177 = ((_augval177) < (_val179)) ? (_augval177) : (_val179);\n",
              "                }\n",
              "                var _child180 = ((_b145)._parent9)._right8;\n",
              "                if (!((_child180) == null)) {\n",
              "                    var _val181 = (_child180)._min_ax12;\n",
              "                    _augval177 = ((_augval177) < (_val181)) ? (_augval177) : (_val181);\n",
              "                }\n",
              "                ((_b145)._parent9)._min_ax12 = _augval177;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval182 = ((_b145)._parent9).ay1;\n",
              "                var _child183 = ((_b145)._parent9)._left7;\n",
              "                if (!((_child183) == null)) {\n",
              "                    var _val184 = (_child183)._min_ay13;\n",
              "                    _augval182 = ((_augval182) < (_val184)) ? (_augval182) : (_val184);\n",
              "                }\n",
              "                var _child185 = ((_b145)._parent9)._right8;\n",
              "                if (!((_child185) == null)) {\n",
              "                    var _val186 = (_child185)._min_ay13;\n",
              "                    _augval182 = ((_augval182) < (_val186)) ? (_augval182) : (_val186);\n",
              "                }\n",
              "                ((_b145)._parent9)._min_ay13 = _augval182;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval187 = ((_b145)._parent9).ay2;\n",
              "                var _child188 = ((_b145)._parent9)._left7;\n",
              "                if (!((_child188) == null)) {\n",
              "                    var _val189 = (_child188)._max_ay24;\n",
              "                    _augval187 = ((_augval187) < (_val189)) ? (_val189) : (_augval187);\n",
              "                }\n",
              "                var _child190 = ((_b145)._parent9)._right8;\n",
              "                if (!((_child190) == null)) {\n",
              "                    var _val191 = (_child190)._max_ay24;\n",
              "                    _augval187 = ((_augval187) < (_val191)) ? (_val191) : (_augval187);\n",
              "                }\n",
              "                ((_b145)._parent9)._max_ay24 = _augval187;\n",
              "                ((_b145)._parent9)._height10 = 1 + (((((((_b145)._parent9)._left7) == null) ? (-1) : ((((_b145)._parent9)._left7)._height10)) > (((((_b145)._parent9)._right8) == null) ? (-1) : ((((_b145)._parent9)._right8)._height10))) ? (((((_b145)._parent9)._left7) == null) ? (-1) : ((((_b145)._parent9)._left7)._height10)) : (((((_b145)._parent9)._right8) == null) ? (-1) : ((((_b145)._parent9)._right8)._height10)));\n",
              "            } else {\n",
              "                (this)._root1 = _b145;\n",
              "            }\n",
              "            _cursor94 = (_cursor94)._parent9;\n",
              "        } else if ((_imbalance95) < (-1)) {\n",
              "            if ((((((_cursor94)._right8)._left7) == null) ? (-1) : ((((_cursor94)._right8)._left7)._height10)) > (((((_cursor94)._right8)._right8) == null) ? (-1) : ((((_cursor94)._right8)._right8)._height10))) {\n",
              "                /* rotate ((_cursor94)._right8)._left7 */\n",
              "                var _a192 = (_cursor94)._right8;\n",
              "                var _b193 = (_a192)._left7;\n",
              "                var _c194 = (_b193)._right8;\n",
              "                /* replace _a192 with _b193 in (_a192)._parent9 */\n",
              "                if (!(((_a192)._parent9) == null)) {\n",
              "                    if ((((_a192)._parent9)._left7) == (_a192)) {\n",
              "                        ((_a192)._parent9)._left7 = _b193;\n",
              "                    } else {\n",
              "                        ((_a192)._parent9)._right8 = _b193;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b193) == null)) {\n",
              "                    (_b193)._parent9 = (_a192)._parent9;\n",
              "                }\n",
              "                /* replace _c194 with _a192 in _b193 */\n",
              "                (_b193)._right8 = _a192;\n",
              "                if (!((_a192) == null)) {\n",
              "                    (_a192)._parent9 = _b193;\n",
              "                }\n",
              "                /* replace _b193 with _c194 in _a192 */\n",
              "                (_a192)._left7 = _c194;\n",
              "                if (!((_c194) == null)) {\n",
              "                    (_c194)._parent9 = _a192;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval195 = (_a192).ax1;\n",
              "                var _child196 = (_a192)._left7;\n",
              "                if (!((_child196) == null)) {\n",
              "                    var _val197 = (_child196)._min_ax12;\n",
              "                    _augval195 = ((_augval195) < (_val197)) ? (_augval195) : (_val197);\n",
              "                }\n",
              "                var _child198 = (_a192)._right8;\n",
              "                if (!((_child198) == null)) {\n",
              "                    var _val199 = (_child198)._min_ax12;\n",
              "                    _augval195 = ((_augval195) < (_val199)) ? (_augval195) : (_val199);\n",
              "                }\n",
              "                (_a192)._min_ax12 = _augval195;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval200 = (_a192).ay1;\n",
              "                var _child201 = (_a192)._left7;\n",
              "                if (!((_child201) == null)) {\n",
              "                    var _val202 = (_child201)._min_ay13;\n",
              "                    _augval200 = ((_augval200) < (_val202)) ? (_augval200) : (_val202);\n",
              "                }\n",
              "                var _child203 = (_a192)._right8;\n",
              "                if (!((_child203) == null)) {\n",
              "                    var _val204 = (_child203)._min_ay13;\n",
              "                    _augval200 = ((_augval200) < (_val204)) ? (_augval200) : (_val204);\n",
              "                }\n",
              "                (_a192)._min_ay13 = _augval200;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval205 = (_a192).ay2;\n",
              "                var _child206 = (_a192)._left7;\n",
              "                if (!((_child206) == null)) {\n",
              "                    var _val207 = (_child206)._max_ay24;\n",
              "                    _augval205 = ((_augval205) < (_val207)) ? (_val207) : (_augval205);\n",
              "                }\n",
              "                var _child208 = (_a192)._right8;\n",
              "                if (!((_child208) == null)) {\n",
              "                    var _val209 = (_child208)._max_ay24;\n",
              "                    _augval205 = ((_augval205) < (_val209)) ? (_val209) : (_augval205);\n",
              "                }\n",
              "                (_a192)._max_ay24 = _augval205;\n",
              "                (_a192)._height10 = 1 + ((((((_a192)._left7) == null) ? (-1) : (((_a192)._left7)._height10)) > ((((_a192)._right8) == null) ? (-1) : (((_a192)._right8)._height10))) ? ((((_a192)._left7) == null) ? (-1) : (((_a192)._left7)._height10)) : ((((_a192)._right8) == null) ? (-1) : (((_a192)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval210 = (_b193).ax1;\n",
              "                var _child211 = (_b193)._left7;\n",
              "                if (!((_child211) == null)) {\n",
              "                    var _val212 = (_child211)._min_ax12;\n",
              "                    _augval210 = ((_augval210) < (_val212)) ? (_augval210) : (_val212);\n",
              "                }\n",
              "                var _child213 = (_b193)._right8;\n",
              "                if (!((_child213) == null)) {\n",
              "                    var _val214 = (_child213)._min_ax12;\n",
              "                    _augval210 = ((_augval210) < (_val214)) ? (_augval210) : (_val214);\n",
              "                }\n",
              "                (_b193)._min_ax12 = _augval210;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval215 = (_b193).ay1;\n",
              "                var _child216 = (_b193)._left7;\n",
              "                if (!((_child216) == null)) {\n",
              "                    var _val217 = (_child216)._min_ay13;\n",
              "                    _augval215 = ((_augval215) < (_val217)) ? (_augval215) : (_val217);\n",
              "                }\n",
              "                var _child218 = (_b193)._right8;\n",
              "                if (!((_child218) == null)) {\n",
              "                    var _val219 = (_child218)._min_ay13;\n",
              "                    _augval215 = ((_augval215) < (_val219)) ? (_augval215) : (_val219);\n",
              "                }\n",
              "                (_b193)._min_ay13 = _augval215;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval220 = (_b193).ay2;\n",
              "                var _child221 = (_b193)._left7;\n",
              "                if (!((_child221) == null)) {\n",
              "                    var _val222 = (_child221)._max_ay24;\n",
              "                    _augval220 = ((_augval220) < (_val222)) ? (_val222) : (_augval220);\n",
              "                }\n",
              "                var _child223 = (_b193)._right8;\n",
              "                if (!((_child223) == null)) {\n",
              "                    var _val224 = (_child223)._max_ay24;\n",
              "                    _augval220 = ((_augval220) < (_val224)) ? (_val224) : (_augval220);\n",
              "                }\n",
              "                (_b193)._max_ay24 = _augval220;\n",
              "                (_b193)._height10 = 1 + ((((((_b193)._left7) == null) ? (-1) : (((_b193)._left7)._height10)) > ((((_b193)._right8) == null) ? (-1) : (((_b193)._right8)._height10))) ? ((((_b193)._left7) == null) ? (-1) : (((_b193)._left7)._height10)) : ((((_b193)._right8) == null) ? (-1) : (((_b193)._right8)._height10)));\n",
              "                if (!(((_b193)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval225 = ((_b193)._parent9).ax1;\n",
              "                    var _child226 = ((_b193)._parent9)._left7;\n",
              "                    if (!((_child226) == null)) {\n",
              "                        var _val227 = (_child226)._min_ax12;\n",
              "                        _augval225 = ((_augval225) < (_val227)) ? (_augval225) : (_val227);\n",
              "                    }\n",
              "                    var _child228 = ((_b193)._parent9)._right8;\n",
              "                    if (!((_child228) == null)) {\n",
              "                        var _val229 = (_child228)._min_ax12;\n",
              "                        _augval225 = ((_augval225) < (_val229)) ? (_augval225) : (_val229);\n",
              "                    }\n",
              "                    ((_b193)._parent9)._min_ax12 = _augval225;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval230 = ((_b193)._parent9).ay1;\n",
              "                    var _child231 = ((_b193)._parent9)._left7;\n",
              "                    if (!((_child231) == null)) {\n",
              "                        var _val232 = (_child231)._min_ay13;\n",
              "                        _augval230 = ((_augval230) < (_val232)) ? (_augval230) : (_val232);\n",
              "                    }\n",
              "                    var _child233 = ((_b193)._parent9)._right8;\n",
              "                    if (!((_child233) == null)) {\n",
              "                        var _val234 = (_child233)._min_ay13;\n",
              "                        _augval230 = ((_augval230) < (_val234)) ? (_augval230) : (_val234);\n",
              "                    }\n",
              "                    ((_b193)._parent9)._min_ay13 = _augval230;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval235 = ((_b193)._parent9).ay2;\n",
              "                    var _child236 = ((_b193)._parent9)._left7;\n",
              "                    if (!((_child236) == null)) {\n",
              "                        var _val237 = (_child236)._max_ay24;\n",
              "                        _augval235 = ((_augval235) < (_val237)) ? (_val237) : (_augval235);\n",
              "                    }\n",
              "                    var _child238 = ((_b193)._parent9)._right8;\n",
              "                    if (!((_child238) == null)) {\n",
              "                        var _val239 = (_child238)._max_ay24;\n",
              "                        _augval235 = ((_augval235) < (_val239)) ? (_val239) : (_augval235);\n",
              "                    }\n",
              "                    ((_b193)._parent9)._max_ay24 = _augval235;\n",
              "                    ((_b193)._parent9)._height10 = 1 + (((((((_b193)._parent9)._left7) == null) ? (-1) : ((((_b193)._parent9)._left7)._height10)) > (((((_b193)._parent9)._right8) == null) ? (-1) : ((((_b193)._parent9)._right8)._height10))) ? (((((_b193)._parent9)._left7) == null) ? (-1) : ((((_b193)._parent9)._left7)._height10)) : (((((_b193)._parent9)._right8) == null) ? (-1) : ((((_b193)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b193;\n",
              "                }\n",
              "            }\n",
              "            /* rotate (_cursor94)._right8 */\n",
              "            var _a240 = _cursor94;\n",
              "            var _b241 = (_a240)._right8;\n",
              "            var _c242 = (_b241)._left7;\n",
              "            /* replace _a240 with _b241 in (_a240)._parent9 */\n",
              "            if (!(((_a240)._parent9) == null)) {\n",
              "                if ((((_a240)._parent9)._left7) == (_a240)) {\n",
              "                    ((_a240)._parent9)._left7 = _b241;\n",
              "                } else {\n",
              "                    ((_a240)._parent9)._right8 = _b241;\n",
              "                }\n",
              "            }\n",
              "            if (!((_b241) == null)) {\n",
              "                (_b241)._parent9 = (_a240)._parent9;\n",
              "            }\n",
              "            /* replace _c242 with _a240 in _b241 */\n",
              "            (_b241)._left7 = _a240;\n",
              "            if (!((_a240) == null)) {\n",
              "                (_a240)._parent9 = _b241;\n",
              "            }\n",
              "            /* replace _b241 with _c242 in _a240 */\n",
              "            (_a240)._right8 = _c242;\n",
              "            if (!((_c242) == null)) {\n",
              "                (_c242)._parent9 = _a240;\n",
              "            }\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval243 = (_a240).ax1;\n",
              "            var _child244 = (_a240)._left7;\n",
              "            if (!((_child244) == null)) {\n",
              "                var _val245 = (_child244)._min_ax12;\n",
              "                _augval243 = ((_augval243) < (_val245)) ? (_augval243) : (_val245);\n",
              "            }\n",
              "            var _child246 = (_a240)._right8;\n",
              "            if (!((_child246) == null)) {\n",
              "                var _val247 = (_child246)._min_ax12;\n",
              "                _augval243 = ((_augval243) < (_val247)) ? (_augval243) : (_val247);\n",
              "            }\n",
              "            (_a240)._min_ax12 = _augval243;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval248 = (_a240).ay1;\n",
              "            var _child249 = (_a240)._left7;\n",
              "            if (!((_child249) == null)) {\n",
              "                var _val250 = (_child249)._min_ay13;\n",
              "                _augval248 = ((_augval248) < (_val250)) ? (_augval248) : (_val250);\n",
              "            }\n",
              "            var _child251 = (_a240)._right8;\n",
              "            if (!((_child251) == null)) {\n",
              "                var _val252 = (_child251)._min_ay13;\n",
              "                _augval248 = ((_augval248) < (_val252)) ? (_augval248) : (_val252);\n",
              "            }\n",
              "            (_a240)._min_ay13 = _augval248;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval253 = (_a240).ay2;\n",
              "            var _child254 = (_a240)._left7;\n",
              "            if (!((_child254) == null)) {\n",
              "                var _val255 = (_child254)._max_ay24;\n",
              "                _augval253 = ((_augval253) < (_val255)) ? (_val255) : (_augval253);\n",
              "            }\n",
              "            var _child256 = (_a240)._right8;\n",
              "            if (!((_child256) == null)) {\n",
              "                var _val257 = (_child256)._max_ay24;\n",
              "                _augval253 = ((_augval253) < (_val257)) ? (_val257) : (_augval253);\n",
              "            }\n",
              "            (_a240)._max_ay24 = _augval253;\n",
              "            (_a240)._height10 = 1 + ((((((_a240)._left7) == null) ? (-1) : (((_a240)._left7)._height10)) > ((((_a240)._right8) == null) ? (-1) : (((_a240)._right8)._height10))) ? ((((_a240)._left7) == null) ? (-1) : (((_a240)._left7)._height10)) : ((((_a240)._right8) == null) ? (-1) : (((_a240)._right8)._height10)));\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval258 = (_b241).ax1;\n",
              "            var _child259 = (_b241)._left7;\n",
              "            if (!((_child259) == null)) {\n",
              "                var _val260 = (_child259)._min_ax12;\n",
              "                _augval258 = ((_augval258) < (_val260)) ? (_augval258) : (_val260);\n",
              "            }\n",
              "            var _child261 = (_b241)._right8;\n",
              "            if (!((_child261) == null)) {\n",
              "                var _val262 = (_child261)._min_ax12;\n",
              "                _augval258 = ((_augval258) < (_val262)) ? (_augval258) : (_val262);\n",
              "            }\n",
              "            (_b241)._min_ax12 = _augval258;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval263 = (_b241).ay1;\n",
              "            var _child264 = (_b241)._left7;\n",
              "            if (!((_child264) == null)) {\n",
              "                var _val265 = (_child264)._min_ay13;\n",
              "                _augval263 = ((_augval263) < (_val265)) ? (_augval263) : (_val265);\n",
              "            }\n",
              "            var _child266 = (_b241)._right8;\n",
              "            if (!((_child266) == null)) {\n",
              "                var _val267 = (_child266)._min_ay13;\n",
              "                _augval263 = ((_augval263) < (_val267)) ? (_augval263) : (_val267);\n",
              "            }\n",
              "            (_b241)._min_ay13 = _augval263;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval268 = (_b241).ay2;\n",
              "            var _child269 = (_b241)._left7;\n",
              "            if (!((_child269) == null)) {\n",
              "                var _val270 = (_child269)._max_ay24;\n",
              "                _augval268 = ((_augval268) < (_val270)) ? (_val270) : (_augval268);\n",
              "            }\n",
              "            var _child271 = (_b241)._right8;\n",
              "            if (!((_child271) == null)) {\n",
              "                var _val272 = (_child271)._max_ay24;\n",
              "                _augval268 = ((_augval268) < (_val272)) ? (_val272) : (_augval268);\n",
              "            }\n",
              "            (_b241)._max_ay24 = _augval268;\n",
              "            (_b241)._height10 = 1 + ((((((_b241)._left7) == null) ? (-1) : (((_b241)._left7)._height10)) > ((((_b241)._right8) == null) ? (-1) : (((_b241)._right8)._height10))) ? ((((_b241)._left7) == null) ? (-1) : (((_b241)._left7)._height10)) : ((((_b241)._right8) == null) ? (-1) : (((_b241)._right8)._height10)));\n",
              "            if (!(((_b241)._parent9) == null)) {\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval273 = ((_b241)._parent9).ax1;\n",
              "                var _child274 = ((_b241)._parent9)._left7;\n",
              "                if (!((_child274) == null)) {\n",
              "                    var _val275 = (_child274)._min_ax12;\n",
              "                    _augval273 = ((_augval273) < (_val275)) ? (_augval273) : (_val275);\n",
              "                }\n",
              "                var _child276 = ((_b241)._parent9)._right8;\n",
              "                if (!((_child276) == null)) {\n",
              "                    var _val277 = (_child276)._min_ax12;\n",
              "                    _augval273 = ((_augval273) < (_val277)) ? (_augval273) : (_val277);\n",
              "                }\n",
              "                ((_b241)._parent9)._min_ax12 = _augval273;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval278 = ((_b241)._parent9).ay1;\n",
              "                var _child279 = ((_b241)._parent9)._left7;\n",
              "                if (!((_child279) == null)) {\n",
              "                    var _val280 = (_child279)._min_ay13;\n",
              "                    _augval278 = ((_augval278) < (_val280)) ? (_augval278) : (_val280);\n",
              "                }\n",
              "                var _child281 = ((_b241)._parent9)._right8;\n",
              "                if (!((_child281) == null)) {\n",
              "                    var _val282 = (_child281)._min_ay13;\n",
              "                    _augval278 = ((_augval278) < (_val282)) ? (_augval278) : (_val282);\n",
              "                }\n",
              "                ((_b241)._parent9)._min_ay13 = _augval278;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval283 = ((_b241)._parent9).ay2;\n",
              "                var _child284 = ((_b241)._parent9)._left7;\n",
              "                if (!((_child284) == null)) {\n",
              "                    var _val285 = (_child284)._max_ay24;\n",
              "                    _augval283 = ((_augval283) < (_val285)) ? (_val285) : (_augval283);\n",
              "                }\n",
              "                var _child286 = ((_b241)._parent9)._right8;\n",
              "                if (!((_child286) == null)) {\n",
              "                    var _val287 = (_child286)._max_ay24;\n",
              "                    _augval283 = ((_augval283) < (_val287)) ? (_val287) : (_augval283);\n",
              "                }\n",
              "                ((_b241)._parent9)._max_ay24 = _augval283;\n",
              "                ((_b241)._parent9)._height10 = 1 + (((((((_b241)._parent9)._left7) == null) ? (-1) : ((((_b241)._parent9)._left7)._height10)) > (((((_b241)._parent9)._right8) == null) ? (-1) : ((((_b241)._parent9)._right8)._height10))) ? (((((_b241)._parent9)._left7) == null) ? (-1) : ((((_b241)._parent9)._left7)._height10)) : (((((_b241)._parent9)._right8) == null) ? (-1) : ((((_b241)._parent9)._right8)._height10)));\n",
              "            } else {\n",
              "                (this)._root1 = _b241;\n",
              "            }\n",
              "            _cursor94 = (_cursor94)._parent9;\n",
              "        }\n",
              "    }\n",
              "};\n",
              "RectangleHolder.prototype.remove = function (x) {\n",
              "    --this.my_size;\n",
              "    var _parent288 = (x)._parent9;\n",
              "    var _left289 = (x)._left7;\n",
              "    var _right290 = (x)._right8;\n",
              "    var _new_x291;\n",
              "    if (((_left289) == null) && ((_right290) == null)) {\n",
              "        _new_x291 = null;\n",
              "        /* replace x with _new_x291 in _parent288 */\n",
              "        if (!((_parent288) == null)) {\n",
              "            if (((_parent288)._left7) == (x)) {\n",
              "                (_parent288)._left7 = _new_x291;\n",
              "            } else {\n",
              "                (_parent288)._right8 = _new_x291;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x291) == null)) {\n",
              "            (_new_x291)._parent9 = _parent288;\n",
              "        }\n",
              "    } else if ((!((_left289) == null)) && ((_right290) == null)) {\n",
              "        _new_x291 = _left289;\n",
              "        /* replace x with _new_x291 in _parent288 */\n",
              "        if (!((_parent288) == null)) {\n",
              "            if (((_parent288)._left7) == (x)) {\n",
              "                (_parent288)._left7 = _new_x291;\n",
              "            } else {\n",
              "                (_parent288)._right8 = _new_x291;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x291) == null)) {\n",
              "            (_new_x291)._parent9 = _parent288;\n",
              "        }\n",
              "    } else if (((_left289) == null) && (!((_right290) == null))) {\n",
              "        _new_x291 = _right290;\n",
              "        /* replace x with _new_x291 in _parent288 */\n",
              "        if (!((_parent288) == null)) {\n",
              "            if (((_parent288)._left7) == (x)) {\n",
              "                (_parent288)._left7 = _new_x291;\n",
              "            } else {\n",
              "                (_parent288)._right8 = _new_x291;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x291) == null)) {\n",
              "            (_new_x291)._parent9 = _parent288;\n",
              "        }\n",
              "    } else {\n",
              "        var _root292 = (x)._right8;\n",
              "        var _x293 = _root292;\n",
              "        var _descend294 = true;\n",
              "        var _from_left295 = true;\n",
              "        while (true) {\n",
              "            if ((_x293) == null) {\n",
              "                _x293 = null;\n",
              "                break;\n",
              "            }\n",
              "            if (_descend294) {\n",
              "                /* too small? */\n",
              "                if (false) {\n",
              "                    if ((!(((_x293)._right8) == null)) && (true)) {\n",
              "                        if ((_x293) == (_root292)) {\n",
              "                            _root292 = (_x293)._right8;\n",
              "                        }\n",
              "                        _x293 = (_x293)._right8;\n",
              "                    } else if ((_x293) == (_root292)) {\n",
              "                        _x293 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend294 = false;\n",
              "                        _from_left295 = (!(((_x293)._parent9) == null)) && ((_x293) == (((_x293)._parent9)._left7));\n",
              "                        _x293 = (_x293)._parent9;\n",
              "                    }\n",
              "                } else if ((!(((_x293)._left7) == null)) && (true)) {\n",
              "                    _x293 = (_x293)._left7;\n",
              "                    /* too large? */\n",
              "                } else if (false) {\n",
              "                    if ((_x293) == (_root292)) {\n",
              "                        _x293 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend294 = false;\n",
              "                        _from_left295 = (!(((_x293)._parent9) == null)) && ((_x293) == (((_x293)._parent9)._left7));\n",
              "                        _x293 = (_x293)._parent9;\n",
              "                    }\n",
              "                    /* node ok? */\n",
              "                } else if (true) {\n",
              "                    break;\n",
              "                } else if ((_x293) == (_root292)) {\n",
              "                    _root292 = (_x293)._right8;\n",
              "                    _x293 = (_x293)._right8;\n",
              "                } else {\n",
              "                    if ((!(((_x293)._right8) == null)) && (true)) {\n",
              "                        if ((_x293) == (_root292)) {\n",
              "                            _root292 = (_x293)._right8;\n",
              "                        }\n",
              "                        _x293 = (_x293)._right8;\n",
              "                    } else {\n",
              "                        _descend294 = false;\n",
              "                        _from_left295 = (!(((_x293)._parent9) == null)) && ((_x293) == (((_x293)._parent9)._left7));\n",
              "                        _x293 = (_x293)._parent9;\n",
              "                    }\n",
              "                }\n",
              "            } else if (_from_left295) {\n",
              "                if (false) {\n",
              "                    _x293 = null;\n",
              "                    break;\n",
              "                } else if (true) {\n",
              "                    break;\n",
              "                } else if ((!(((_x293)._right8) == null)) && (true)) {\n",
              "                    _descend294 = true;\n",
              "                    if ((_x293) == (_root292)) {\n",
              "                        _root292 = (_x293)._right8;\n",
              "                    }\n",
              "                    _x293 = (_x293)._right8;\n",
              "                } else if ((_x293) == (_root292)) {\n",
              "                    _x293 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend294 = false;\n",
              "                    _from_left295 = (!(((_x293)._parent9) == null)) && ((_x293) == (((_x293)._parent9)._left7));\n",
              "                    _x293 = (_x293)._parent9;\n",
              "                }\n",
              "            } else {\n",
              "                if ((_x293) == (_root292)) {\n",
              "                    _x293 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend294 = false;\n",
              "                    _from_left295 = (!(((_x293)._parent9) == null)) && ((_x293) == (((_x293)._parent9)._left7));\n",
              "                    _x293 = (_x293)._parent9;\n",
              "                }\n",
              "            }\n",
              "        }\n",
              "        _new_x291 = _x293;\n",
              "        var _mp296 = (_x293)._parent9;\n",
              "        var _mr297 = (_x293)._right8;\n",
              "        /* replace _x293 with _mr297 in _mp296 */\n",
              "        if (!((_mp296) == null)) {\n",
              "            if (((_mp296)._left7) == (_x293)) {\n",
              "                (_mp296)._left7 = _mr297;\n",
              "            } else {\n",
              "                (_mp296)._right8 = _mr297;\n",
              "            }\n",
              "        }\n",
              "        if (!((_mr297) == null)) {\n",
              "            (_mr297)._parent9 = _mp296;\n",
              "        }\n",
              "        /* replace x with _x293 in _parent288 */\n",
              "        if (!((_parent288) == null)) {\n",
              "            if (((_parent288)._left7) == (x)) {\n",
              "                (_parent288)._left7 = _x293;\n",
              "            } else {\n",
              "                (_parent288)._right8 = _x293;\n",
              "            }\n",
              "        }\n",
              "        if (!((_x293) == null)) {\n",
              "            (_x293)._parent9 = _parent288;\n",
              "        }\n",
              "        /* replace null with _left289 in _x293 */\n",
              "        (_x293)._left7 = _left289;\n",
              "        if (!((_left289) == null)) {\n",
              "            (_left289)._parent9 = _x293;\n",
              "        }\n",
              "        /* replace _mr297 with (x)._right8 in _x293 */\n",
              "        (_x293)._right8 = (x)._right8;\n",
              "        if (!(((x)._right8) == null)) {\n",
              "            ((x)._right8)._parent9 = _x293;\n",
              "        }\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval298 = (_x293).ax1;\n",
              "        var _child299 = (_x293)._left7;\n",
              "        if (!((_child299) == null)) {\n",
              "            var _val300 = (_child299)._min_ax12;\n",
              "            _augval298 = ((_augval298) < (_val300)) ? (_augval298) : (_val300);\n",
              "        }\n",
              "        var _child301 = (_x293)._right8;\n",
              "        if (!((_child301) == null)) {\n",
              "            var _val302 = (_child301)._min_ax12;\n",
              "            _augval298 = ((_augval298) < (_val302)) ? (_augval298) : (_val302);\n",
              "        }\n",
              "        (_x293)._min_ax12 = _augval298;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval303 = (_x293).ay1;\n",
              "        var _child304 = (_x293)._left7;\n",
              "        if (!((_child304) == null)) {\n",
              "            var _val305 = (_child304)._min_ay13;\n",
              "            _augval303 = ((_augval303) < (_val305)) ? (_augval303) : (_val305);\n",
              "        }\n",
              "        var _child306 = (_x293)._right8;\n",
              "        if (!((_child306) == null)) {\n",
              "            var _val307 = (_child306)._min_ay13;\n",
              "            _augval303 = ((_augval303) < (_val307)) ? (_augval303) : (_val307);\n",
              "        }\n",
              "        (_x293)._min_ay13 = _augval303;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval308 = (_x293).ay2;\n",
              "        var _child309 = (_x293)._left7;\n",
              "        if (!((_child309) == null)) {\n",
              "            var _val310 = (_child309)._max_ay24;\n",
              "            _augval308 = ((_augval308) < (_val310)) ? (_val310) : (_augval308);\n",
              "        }\n",
              "        var _child311 = (_x293)._right8;\n",
              "        if (!((_child311) == null)) {\n",
              "            var _val312 = (_child311)._max_ay24;\n",
              "            _augval308 = ((_augval308) < (_val312)) ? (_val312) : (_augval308);\n",
              "        }\n",
              "        (_x293)._max_ay24 = _augval308;\n",
              "        (_x293)._height10 = 1 + ((((((_x293)._left7) == null) ? (-1) : (((_x293)._left7)._height10)) > ((((_x293)._right8) == null) ? (-1) : (((_x293)._right8)._height10))) ? ((((_x293)._left7) == null) ? (-1) : (((_x293)._left7)._height10)) : ((((_x293)._right8) == null) ? (-1) : (((_x293)._right8)._height10)));\n",
              "        var _cursor313 = _mp296;\n",
              "        var _changed314 = true;\n",
              "        while ((_changed314) && (!((_cursor313) == (_parent288)))) {\n",
              "            var _old__min_ax12315 = (_cursor313)._min_ax12;\n",
              "            var _old__min_ay13316 = (_cursor313)._min_ay13;\n",
              "            var _old__max_ay24317 = (_cursor313)._max_ay24;\n",
              "            var _old_height318 = (_cursor313)._height10;\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval319 = (_cursor313).ax1;\n",
              "            var _child320 = (_cursor313)._left7;\n",
              "            if (!((_child320) == null)) {\n",
              "                var _val321 = (_child320)._min_ax12;\n",
              "                _augval319 = ((_augval319) < (_val321)) ? (_augval319) : (_val321);\n",
              "            }\n",
              "            var _child322 = (_cursor313)._right8;\n",
              "            if (!((_child322) == null)) {\n",
              "                var _val323 = (_child322)._min_ax12;\n",
              "                _augval319 = ((_augval319) < (_val323)) ? (_augval319) : (_val323);\n",
              "            }\n",
              "            (_cursor313)._min_ax12 = _augval319;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval324 = (_cursor313).ay1;\n",
              "            var _child325 = (_cursor313)._left7;\n",
              "            if (!((_child325) == null)) {\n",
              "                var _val326 = (_child325)._min_ay13;\n",
              "                _augval324 = ((_augval324) < (_val326)) ? (_augval324) : (_val326);\n",
              "            }\n",
              "            var _child327 = (_cursor313)._right8;\n",
              "            if (!((_child327) == null)) {\n",
              "                var _val328 = (_child327)._min_ay13;\n",
              "                _augval324 = ((_augval324) < (_val328)) ? (_augval324) : (_val328);\n",
              "            }\n",
              "            (_cursor313)._min_ay13 = _augval324;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval329 = (_cursor313).ay2;\n",
              "            var _child330 = (_cursor313)._left7;\n",
              "            if (!((_child330) == null)) {\n",
              "                var _val331 = (_child330)._max_ay24;\n",
              "                _augval329 = ((_augval329) < (_val331)) ? (_val331) : (_augval329);\n",
              "            }\n",
              "            var _child332 = (_cursor313)._right8;\n",
              "            if (!((_child332) == null)) {\n",
              "                var _val333 = (_child332)._max_ay24;\n",
              "                _augval329 = ((_augval329) < (_val333)) ? (_val333) : (_augval329);\n",
              "            }\n",
              "            (_cursor313)._max_ay24 = _augval329;\n",
              "            (_cursor313)._height10 = 1 + ((((((_cursor313)._left7) == null) ? (-1) : (((_cursor313)._left7)._height10)) > ((((_cursor313)._right8) == null) ? (-1) : (((_cursor313)._right8)._height10))) ? ((((_cursor313)._left7) == null) ? (-1) : (((_cursor313)._left7)._height10)) : ((((_cursor313)._right8) == null) ? (-1) : (((_cursor313)._right8)._height10)));\n",
              "            _changed314 = false;\n",
              "            _changed314 = (_changed314) || (!((_old__min_ax12315) == ((_cursor313)._min_ax12)));\n",
              "            _changed314 = (_changed314) || (!((_old__min_ay13316) == ((_cursor313)._min_ay13)));\n",
              "            _changed314 = (_changed314) || (!((_old__max_ay24317) == ((_cursor313)._max_ay24)));\n",
              "            _changed314 = (_changed314) || (!((_old_height318) == ((_cursor313)._height10)));\n",
              "            _cursor313 = (_cursor313)._parent9;\n",
              "        }\n",
              "    }\n",
              "    var _cursor334 = _parent288;\n",
              "    var _changed335 = true;\n",
              "    while ((_changed335) && (!((_cursor334) == (null)))) {\n",
              "        var _old__min_ax12336 = (_cursor334)._min_ax12;\n",
              "        var _old__min_ay13337 = (_cursor334)._min_ay13;\n",
              "        var _old__max_ay24338 = (_cursor334)._max_ay24;\n",
              "        var _old_height339 = (_cursor334)._height10;\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval340 = (_cursor334).ax1;\n",
              "        var _child341 = (_cursor334)._left7;\n",
              "        if (!((_child341) == null)) {\n",
              "            var _val342 = (_child341)._min_ax12;\n",
              "            _augval340 = ((_augval340) < (_val342)) ? (_augval340) : (_val342);\n",
              "        }\n",
              "        var _child343 = (_cursor334)._right8;\n",
              "        if (!((_child343) == null)) {\n",
              "            var _val344 = (_child343)._min_ax12;\n",
              "            _augval340 = ((_augval340) < (_val344)) ? (_augval340) : (_val344);\n",
              "        }\n",
              "        (_cursor334)._min_ax12 = _augval340;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval345 = (_cursor334).ay1;\n",
              "        var _child346 = (_cursor334)._left7;\n",
              "        if (!((_child346) == null)) {\n",
              "            var _val347 = (_child346)._min_ay13;\n",
              "            _augval345 = ((_augval345) < (_val347)) ? (_augval345) : (_val347);\n",
              "        }\n",
              "        var _child348 = (_cursor334)._right8;\n",
              "        if (!((_child348) == null)) {\n",
              "            var _val349 = (_child348)._min_ay13;\n",
              "            _augval345 = ((_augval345) < (_val349)) ? (_augval345) : (_val349);\n",
              "        }\n",
              "        (_cursor334)._min_ay13 = _augval345;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval350 = (_cursor334).ay2;\n",
              "        var _child351 = (_cursor334)._left7;\n",
              "        if (!((_child351) == null)) {\n",
              "            var _val352 = (_child351)._max_ay24;\n",
              "            _augval350 = ((_augval350) < (_val352)) ? (_val352) : (_augval350);\n",
              "        }\n",
              "        var _child353 = (_cursor334)._right8;\n",
              "        if (!((_child353) == null)) {\n",
              "            var _val354 = (_child353)._max_ay24;\n",
              "            _augval350 = ((_augval350) < (_val354)) ? (_val354) : (_augval350);\n",
              "        }\n",
              "        (_cursor334)._max_ay24 = _augval350;\n",
              "        (_cursor334)._height10 = 1 + ((((((_cursor334)._left7) == null) ? (-1) : (((_cursor334)._left7)._height10)) > ((((_cursor334)._right8) == null) ? (-1) : (((_cursor334)._right8)._height10))) ? ((((_cursor334)._left7) == null) ? (-1) : (((_cursor334)._left7)._height10)) : ((((_cursor334)._right8) == null) ? (-1) : (((_cursor334)._right8)._height10)));\n",
              "        _changed335 = false;\n",
              "        _changed335 = (_changed335) || (!((_old__min_ax12336) == ((_cursor334)._min_ax12)));\n",
              "        _changed335 = (_changed335) || (!((_old__min_ay13337) == ((_cursor334)._min_ay13)));\n",
              "        _changed335 = (_changed335) || (!((_old__max_ay24338) == ((_cursor334)._max_ay24)));\n",
              "        _changed335 = (_changed335) || (!((_old_height339) == ((_cursor334)._height10)));\n",
              "        _cursor334 = (_cursor334)._parent9;\n",
              "    }\n",
              "    if (((this)._root1) == (x)) {\n",
              "        (this)._root1 = _new_x291;\n",
              "    }\n",
              "};\n",
              "RectangleHolder.prototype.updateAx1 = function (__x, new_val) {\n",
              "    if ((__x).ax1 != new_val) {\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval355 = new_val;\n",
              "        var _child356 = (__x)._left7;\n",
              "        if (!((_child356) == null)) {\n",
              "            var _val357 = (_child356)._min_ax12;\n",
              "            _augval355 = ((_augval355) < (_val357)) ? (_augval355) : (_val357);\n",
              "        }\n",
              "        var _child358 = (__x)._right8;\n",
              "        if (!((_child358) == null)) {\n",
              "            var _val359 = (_child358)._min_ax12;\n",
              "            _augval355 = ((_augval355) < (_val359)) ? (_augval355) : (_val359);\n",
              "        }\n",
              "        (__x)._min_ax12 = _augval355;\n",
              "        var _cursor360 = (__x)._parent9;\n",
              "        var _changed361 = true;\n",
              "        while ((_changed361) && (!((_cursor360) == (null)))) {\n",
              "            var _old__min_ax12362 = (_cursor360)._min_ax12;\n",
              "            var _old_height363 = (_cursor360)._height10;\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval364 = (_cursor360).ax1;\n",
              "            var _child365 = (_cursor360)._left7;\n",
              "            if (!((_child365) == null)) {\n",
              "                var _val366 = (_child365)._min_ax12;\n",
              "                _augval364 = ((_augval364) < (_val366)) ? (_augval364) : (_val366);\n",
              "            }\n",
              "            var _child367 = (_cursor360)._right8;\n",
              "            if (!((_child367) == null)) {\n",
              "                var _val368 = (_child367)._min_ax12;\n",
              "                _augval364 = ((_augval364) < (_val368)) ? (_augval364) : (_val368);\n",
              "            }\n",
              "            (_cursor360)._min_ax12 = _augval364;\n",
              "            (_cursor360)._height10 = 1 + ((((((_cursor360)._left7) == null) ? (-1) : (((_cursor360)._left7)._height10)) > ((((_cursor360)._right8) == null) ? (-1) : (((_cursor360)._right8)._height10))) ? ((((_cursor360)._left7) == null) ? (-1) : (((_cursor360)._left7)._height10)) : ((((_cursor360)._right8) == null) ? (-1) : (((_cursor360)._right8)._height10)));\n",
              "            _changed361 = false;\n",
              "            _changed361 = (_changed361) || (!((_old__min_ax12362) == ((_cursor360)._min_ax12)));\n",
              "            _changed361 = (_changed361) || (!((_old_height363) == ((_cursor360)._height10)));\n",
              "            _cursor360 = (_cursor360)._parent9;\n",
              "        }\n",
              "        (__x).ax1 = new_val;\n",
              "    }\n",
              "}\n",
              "RectangleHolder.prototype.updateAy1 = function (__x, new_val) {\n",
              "    if ((__x).ay1 != new_val) {\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval369 = new_val;\n",
              "        var _child370 = (__x)._left7;\n",
              "        if (!((_child370) == null)) {\n",
              "            var _val371 = (_child370)._min_ay13;\n",
              "            _augval369 = ((_augval369) < (_val371)) ? (_augval369) : (_val371);\n",
              "        }\n",
              "        var _child372 = (__x)._right8;\n",
              "        if (!((_child372) == null)) {\n",
              "            var _val373 = (_child372)._min_ay13;\n",
              "            _augval369 = ((_augval369) < (_val373)) ? (_augval369) : (_val373);\n",
              "        }\n",
              "        (__x)._min_ay13 = _augval369;\n",
              "        var _cursor374 = (__x)._parent9;\n",
              "        var _changed375 = true;\n",
              "        while ((_changed375) && (!((_cursor374) == (null)))) {\n",
              "            var _old__min_ay13376 = (_cursor374)._min_ay13;\n",
              "            var _old_height377 = (_cursor374)._height10;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval378 = (_cursor374).ay1;\n",
              "            var _child379 = (_cursor374)._left7;\n",
              "            if (!((_child379) == null)) {\n",
              "                var _val380 = (_child379)._min_ay13;\n",
              "                _augval378 = ((_augval378) < (_val380)) ? (_augval378) : (_val380);\n",
              "            }\n",
              "            var _child381 = (_cursor374)._right8;\n",
              "            if (!((_child381) == null)) {\n",
              "                var _val382 = (_child381)._min_ay13;\n",
              "                _augval378 = ((_augval378) < (_val382)) ? (_augval378) : (_val382);\n",
              "            }\n",
              "            (_cursor374)._min_ay13 = _augval378;\n",
              "            (_cursor374)._height10 = 1 + ((((((_cursor374)._left7) == null) ? (-1) : (((_cursor374)._left7)._height10)) > ((((_cursor374)._right8) == null) ? (-1) : (((_cursor374)._right8)._height10))) ? ((((_cursor374)._left7) == null) ? (-1) : (((_cursor374)._left7)._height10)) : ((((_cursor374)._right8) == null) ? (-1) : (((_cursor374)._right8)._height10)));\n",
              "            _changed375 = false;\n",
              "            _changed375 = (_changed375) || (!((_old__min_ay13376) == ((_cursor374)._min_ay13)));\n",
              "            _changed375 = (_changed375) || (!((_old_height377) == ((_cursor374)._height10)));\n",
              "            _cursor374 = (_cursor374)._parent9;\n",
              "        }\n",
              "        (__x).ay1 = new_val;\n",
              "    }\n",
              "}\n",
              "RectangleHolder.prototype.updateAx2 = function (__x, new_val) {\n",
              "    if ((__x).ax2 != new_val) {\n",
              "        var _parent383 = (__x)._parent9;\n",
              "        var _left384 = (__x)._left7;\n",
              "        var _right385 = (__x)._right8;\n",
              "        var _new_x386;\n",
              "        if (((_left384) == null) && ((_right385) == null)) {\n",
              "            _new_x386 = null;\n",
              "            /* replace __x with _new_x386 in _parent383 */\n",
              "            if (!((_parent383) == null)) {\n",
              "                if (((_parent383)._left7) == (__x)) {\n",
              "                    (_parent383)._left7 = _new_x386;\n",
              "                } else {\n",
              "                    (_parent383)._right8 = _new_x386;\n",
              "                }\n",
              "            }\n",
              "            if (!((_new_x386) == null)) {\n",
              "                (_new_x386)._parent9 = _parent383;\n",
              "            }\n",
              "        } else if ((!((_left384) == null)) && ((_right385) == null)) {\n",
              "            _new_x386 = _left384;\n",
              "            /* replace __x with _new_x386 in _parent383 */\n",
              "            if (!((_parent383) == null)) {\n",
              "                if (((_parent383)._left7) == (__x)) {\n",
              "                    (_parent383)._left7 = _new_x386;\n",
              "                } else {\n",
              "                    (_parent383)._right8 = _new_x386;\n",
              "                }\n",
              "            }\n",
              "            if (!((_new_x386) == null)) {\n",
              "                (_new_x386)._parent9 = _parent383;\n",
              "            }\n",
              "        } else if (((_left384) == null) && (!((_right385) == null))) {\n",
              "            _new_x386 = _right385;\n",
              "            /* replace __x with _new_x386 in _parent383 */\n",
              "            if (!((_parent383) == null)) {\n",
              "                if (((_parent383)._left7) == (__x)) {\n",
              "                    (_parent383)._left7 = _new_x386;\n",
              "                } else {\n",
              "                    (_parent383)._right8 = _new_x386;\n",
              "                }\n",
              "            }\n",
              "            if (!((_new_x386) == null)) {\n",
              "                (_new_x386)._parent9 = _parent383;\n",
              "            }\n",
              "        } else {\n",
              "            var _root387 = (__x)._right8;\n",
              "            var _x388 = _root387;\n",
              "            var _descend389 = true;\n",
              "            var _from_left390 = true;\n",
              "            while (true) {\n",
              "                if ((_x388) == null) {\n",
              "                    _x388 = null;\n",
              "                    break;\n",
              "                }\n",
              "                if (_descend389) {\n",
              "                    /* too small? */\n",
              "                    if (false) {\n",
              "                        if ((!(((_x388)._right8) == null)) && (true)) {\n",
              "                            if ((_x388) == (_root387)) {\n",
              "                                _root387 = (_x388)._right8;\n",
              "                            }\n",
              "                            _x388 = (_x388)._right8;\n",
              "                        } else if ((_x388) == (_root387)) {\n",
              "                            _x388 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend389 = false;\n",
              "                            _from_left390 = (!(((_x388)._parent9) == null)) && ((_x388) == (((_x388)._parent9)._left7));\n",
              "                            _x388 = (_x388)._parent9;\n",
              "                        }\n",
              "                    } else if ((!(((_x388)._left7) == null)) && (true)) {\n",
              "                        _x388 = (_x388)._left7;\n",
              "                        /* too large? */\n",
              "                    } else if (false) {\n",
              "                        if ((_x388) == (_root387)) {\n",
              "                            _x388 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend389 = false;\n",
              "                            _from_left390 = (!(((_x388)._parent9) == null)) && ((_x388) == (((_x388)._parent9)._left7));\n",
              "                            _x388 = (_x388)._parent9;\n",
              "                        }\n",
              "                        /* node ok? */\n",
              "                    } else if (true) {\n",
              "                        break;\n",
              "                    } else if ((_x388) == (_root387)) {\n",
              "                        _root387 = (_x388)._right8;\n",
              "                        _x388 = (_x388)._right8;\n",
              "                    } else {\n",
              "                        if ((!(((_x388)._right8) == null)) && (true)) {\n",
              "                            if ((_x388) == (_root387)) {\n",
              "                                _root387 = (_x388)._right8;\n",
              "                            }\n",
              "                            _x388 = (_x388)._right8;\n",
              "                        } else {\n",
              "                            _descend389 = false;\n",
              "                            _from_left390 = (!(((_x388)._parent9) == null)) && ((_x388) == (((_x388)._parent9)._left7));\n",
              "                            _x388 = (_x388)._parent9;\n",
              "                        }\n",
              "                    }\n",
              "                } else if (_from_left390) {\n",
              "                    if (false) {\n",
              "                        _x388 = null;\n",
              "                        break;\n",
              "                    } else if (true) {\n",
              "                        break;\n",
              "                    } else if ((!(((_x388)._right8) == null)) && (true)) {\n",
              "                        _descend389 = true;\n",
              "                        if ((_x388) == (_root387)) {\n",
              "                            _root387 = (_x388)._right8;\n",
              "                        }\n",
              "                        _x388 = (_x388)._right8;\n",
              "                    } else if ((_x388) == (_root387)) {\n",
              "                        _x388 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend389 = false;\n",
              "                        _from_left390 = (!(((_x388)._parent9) == null)) && ((_x388) == (((_x388)._parent9)._left7));\n",
              "                        _x388 = (_x388)._parent9;\n",
              "                    }\n",
              "                } else {\n",
              "                    if ((_x388) == (_root387)) {\n",
              "                        _x388 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend389 = false;\n",
              "                        _from_left390 = (!(((_x388)._parent9) == null)) && ((_x388) == (((_x388)._parent9)._left7));\n",
              "                        _x388 = (_x388)._parent9;\n",
              "                    }\n",
              "                }\n",
              "            }\n",
              "            _new_x386 = _x388;\n",
              "            var _mp391 = (_x388)._parent9;\n",
              "            var _mr392 = (_x388)._right8;\n",
              "            /* replace _x388 with _mr392 in _mp391 */\n",
              "            if (!((_mp391) == null)) {\n",
              "                if (((_mp391)._left7) == (_x388)) {\n",
              "                    (_mp391)._left7 = _mr392;\n",
              "                } else {\n",
              "                    (_mp391)._right8 = _mr392;\n",
              "                }\n",
              "            }\n",
              "            if (!((_mr392) == null)) {\n",
              "                (_mr392)._parent9 = _mp391;\n",
              "            }\n",
              "            /* replace __x with _x388 in _parent383 */\n",
              "            if (!((_parent383) == null)) {\n",
              "                if (((_parent383)._left7) == (__x)) {\n",
              "                    (_parent383)._left7 = _x388;\n",
              "                } else {\n",
              "                    (_parent383)._right8 = _x388;\n",
              "                }\n",
              "            }\n",
              "            if (!((_x388) == null)) {\n",
              "                (_x388)._parent9 = _parent383;\n",
              "            }\n",
              "            /* replace null with _left384 in _x388 */\n",
              "            (_x388)._left7 = _left384;\n",
              "            if (!((_left384) == null)) {\n",
              "                (_left384)._parent9 = _x388;\n",
              "            }\n",
              "            /* replace _mr392 with (__x)._right8 in _x388 */\n",
              "            (_x388)._right8 = (__x)._right8;\n",
              "            if (!(((__x)._right8) == null)) {\n",
              "                ((__x)._right8)._parent9 = _x388;\n",
              "            }\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval393 = (_x388).ax1;\n",
              "            var _child394 = (_x388)._left7;\n",
              "            if (!((_child394) == null)) {\n",
              "                var _val395 = (_child394)._min_ax12;\n",
              "                _augval393 = ((_augval393) < (_val395)) ? (_augval393) : (_val395);\n",
              "            }\n",
              "            var _child396 = (_x388)._right8;\n",
              "            if (!((_child396) == null)) {\n",
              "                var _val397 = (_child396)._min_ax12;\n",
              "                _augval393 = ((_augval393) < (_val397)) ? (_augval393) : (_val397);\n",
              "            }\n",
              "            (_x388)._min_ax12 = _augval393;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval398 = (_x388).ay1;\n",
              "            var _child399 = (_x388)._left7;\n",
              "            if (!((_child399) == null)) {\n",
              "                var _val400 = (_child399)._min_ay13;\n",
              "                _augval398 = ((_augval398) < (_val400)) ? (_augval398) : (_val400);\n",
              "            }\n",
              "            var _child401 = (_x388)._right8;\n",
              "            if (!((_child401) == null)) {\n",
              "                var _val402 = (_child401)._min_ay13;\n",
              "                _augval398 = ((_augval398) < (_val402)) ? (_augval398) : (_val402);\n",
              "            }\n",
              "            (_x388)._min_ay13 = _augval398;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval403 = (_x388).ay2;\n",
              "            var _child404 = (_x388)._left7;\n",
              "            if (!((_child404) == null)) {\n",
              "                var _val405 = (_child404)._max_ay24;\n",
              "                _augval403 = ((_augval403) < (_val405)) ? (_val405) : (_augval403);\n",
              "            }\n",
              "            var _child406 = (_x388)._right8;\n",
              "            if (!((_child406) == null)) {\n",
              "                var _val407 = (_child406)._max_ay24;\n",
              "                _augval403 = ((_augval403) < (_val407)) ? (_val407) : (_augval403);\n",
              "            }\n",
              "            (_x388)._max_ay24 = _augval403;\n",
              "            (_x388)._height10 = 1 + ((((((_x388)._left7) == null) ? (-1) : (((_x388)._left7)._height10)) > ((((_x388)._right8) == null) ? (-1) : (((_x388)._right8)._height10))) ? ((((_x388)._left7) == null) ? (-1) : (((_x388)._left7)._height10)) : ((((_x388)._right8) == null) ? (-1) : (((_x388)._right8)._height10)));\n",
              "            var _cursor408 = _mp391;\n",
              "            var _changed409 = true;\n",
              "            while ((_changed409) && (!((_cursor408) == (_parent383)))) {\n",
              "                var _old__min_ax12410 = (_cursor408)._min_ax12;\n",
              "                var _old__min_ay13411 = (_cursor408)._min_ay13;\n",
              "                var _old__max_ay24412 = (_cursor408)._max_ay24;\n",
              "                var _old_height413 = (_cursor408)._height10;\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval414 = (_cursor408).ax1;\n",
              "                var _child415 = (_cursor408)._left7;\n",
              "                if (!((_child415) == null)) {\n",
              "                    var _val416 = (_child415)._min_ax12;\n",
              "                    _augval414 = ((_augval414) < (_val416)) ? (_augval414) : (_val416);\n",
              "                }\n",
              "                var _child417 = (_cursor408)._right8;\n",
              "                if (!((_child417) == null)) {\n",
              "                    var _val418 = (_child417)._min_ax12;\n",
              "                    _augval414 = ((_augval414) < (_val418)) ? (_augval414) : (_val418);\n",
              "                }\n",
              "                (_cursor408)._min_ax12 = _augval414;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval419 = (_cursor408).ay1;\n",
              "                var _child420 = (_cursor408)._left7;\n",
              "                if (!((_child420) == null)) {\n",
              "                    var _val421 = (_child420)._min_ay13;\n",
              "                    _augval419 = ((_augval419) < (_val421)) ? (_augval419) : (_val421);\n",
              "                }\n",
              "                var _child422 = (_cursor408)._right8;\n",
              "                if (!((_child422) == null)) {\n",
              "                    var _val423 = (_child422)._min_ay13;\n",
              "                    _augval419 = ((_augval419) < (_val423)) ? (_augval419) : (_val423);\n",
              "                }\n",
              "                (_cursor408)._min_ay13 = _augval419;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval424 = (_cursor408).ay2;\n",
              "                var _child425 = (_cursor408)._left7;\n",
              "                if (!((_child425) == null)) {\n",
              "                    var _val426 = (_child425)._max_ay24;\n",
              "                    _augval424 = ((_augval424) < (_val426)) ? (_val426) : (_augval424);\n",
              "                }\n",
              "                var _child427 = (_cursor408)._right8;\n",
              "                if (!((_child427) == null)) {\n",
              "                    var _val428 = (_child427)._max_ay24;\n",
              "                    _augval424 = ((_augval424) < (_val428)) ? (_val428) : (_augval424);\n",
              "                }\n",
              "                (_cursor408)._max_ay24 = _augval424;\n",
              "                (_cursor408)._height10 = 1 + ((((((_cursor408)._left7) == null) ? (-1) : (((_cursor408)._left7)._height10)) > ((((_cursor408)._right8) == null) ? (-1) : (((_cursor408)._right8)._height10))) ? ((((_cursor408)._left7) == null) ? (-1) : (((_cursor408)._left7)._height10)) : ((((_cursor408)._right8) == null) ? (-1) : (((_cursor408)._right8)._height10)));\n",
              "                _changed409 = false;\n",
              "                _changed409 = (_changed409) || (!((_old__min_ax12410) == ((_cursor408)._min_ax12)));\n",
              "                _changed409 = (_changed409) || (!((_old__min_ay13411) == ((_cursor408)._min_ay13)));\n",
              "                _changed409 = (_changed409) || (!((_old__max_ay24412) == ((_cursor408)._max_ay24)));\n",
              "                _changed409 = (_changed409) || (!((_old_height413) == ((_cursor408)._height10)));\n",
              "                _cursor408 = (_cursor408)._parent9;\n",
              "            }\n",
              "        }\n",
              "        var _cursor429 = _parent383;\n",
              "        var _changed430 = true;\n",
              "        while ((_changed430) && (!((_cursor429) == (null)))) {\n",
              "            var _old__min_ax12431 = (_cursor429)._min_ax12;\n",
              "            var _old__min_ay13432 = (_cursor429)._min_ay13;\n",
              "            var _old__max_ay24433 = (_cursor429)._max_ay24;\n",
              "            var _old_height434 = (_cursor429)._height10;\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval435 = (_cursor429).ax1;\n",
              "            var _child436 = (_cursor429)._left7;\n",
              "            if (!((_child436) == null)) {\n",
              "                var _val437 = (_child436)._min_ax12;\n",
              "                _augval435 = ((_augval435) < (_val437)) ? (_augval435) : (_val437);\n",
              "            }\n",
              "            var _child438 = (_cursor429)._right8;\n",
              "            if (!((_child438) == null)) {\n",
              "                var _val439 = (_child438)._min_ax12;\n",
              "                _augval435 = ((_augval435) < (_val439)) ? (_augval435) : (_val439);\n",
              "            }\n",
              "            (_cursor429)._min_ax12 = _augval435;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval440 = (_cursor429).ay1;\n",
              "            var _child441 = (_cursor429)._left7;\n",
              "            if (!((_child441) == null)) {\n",
              "                var _val442 = (_child441)._min_ay13;\n",
              "                _augval440 = ((_augval440) < (_val442)) ? (_augval440) : (_val442);\n",
              "            }\n",
              "            var _child443 = (_cursor429)._right8;\n",
              "            if (!((_child443) == null)) {\n",
              "                var _val444 = (_child443)._min_ay13;\n",
              "                _augval440 = ((_augval440) < (_val444)) ? (_augval440) : (_val444);\n",
              "            }\n",
              "            (_cursor429)._min_ay13 = _augval440;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval445 = (_cursor429).ay2;\n",
              "            var _child446 = (_cursor429)._left7;\n",
              "            if (!((_child446) == null)) {\n",
              "                var _val447 = (_child446)._max_ay24;\n",
              "                _augval445 = ((_augval445) < (_val447)) ? (_val447) : (_augval445);\n",
              "            }\n",
              "            var _child448 = (_cursor429)._right8;\n",
              "            if (!((_child448) == null)) {\n",
              "                var _val449 = (_child448)._max_ay24;\n",
              "                _augval445 = ((_augval445) < (_val449)) ? (_val449) : (_augval445);\n",
              "            }\n",
              "            (_cursor429)._max_ay24 = _augval445;\n",
              "            (_cursor429)._height10 = 1 + ((((((_cursor429)._left7) == null) ? (-1) : (((_cursor429)._left7)._height10)) > ((((_cursor429)._right8) == null) ? (-1) : (((_cursor429)._right8)._height10))) ? ((((_cursor429)._left7) == null) ? (-1) : (((_cursor429)._left7)._height10)) : ((((_cursor429)._right8) == null) ? (-1) : (((_cursor429)._right8)._height10)));\n",
              "            _changed430 = false;\n",
              "            _changed430 = (_changed430) || (!((_old__min_ax12431) == ((_cursor429)._min_ax12)));\n",
              "            _changed430 = (_changed430) || (!((_old__min_ay13432) == ((_cursor429)._min_ay13)));\n",
              "            _changed430 = (_changed430) || (!((_old__max_ay24433) == ((_cursor429)._max_ay24)));\n",
              "            _changed430 = (_changed430) || (!((_old_height434) == ((_cursor429)._height10)));\n",
              "            _cursor429 = (_cursor429)._parent9;\n",
              "        }\n",
              "        if (((this)._root1) == (__x)) {\n",
              "            (this)._root1 = _new_x386;\n",
              "        }\n",
              "        (__x)._left7 = null;\n",
              "        (__x)._right8 = null;\n",
              "        (__x)._min_ax12 = (__x).ax1;\n",
              "        (__x)._min_ay13 = (__x).ay1;\n",
              "        (__x)._max_ay24 = (__x).ay2;\n",
              "        (__x)._height10 = 0;\n",
              "        var _previous450 = null;\n",
              "        var _current451 = (this)._root1;\n",
              "        var _is_left452 = false;\n",
              "        while (!((_current451) == null)) {\n",
              "            _previous450 = _current451;\n",
              "            if ((new_val) < ((_current451).ax2)) {\n",
              "                _current451 = (_current451)._left7;\n",
              "                _is_left452 = true;\n",
              "            } else {\n",
              "                _current451 = (_current451)._right8;\n",
              "                _is_left452 = false;\n",
              "            }\n",
              "        }\n",
              "        if ((_previous450) == null) {\n",
              "            (this)._root1 = __x;\n",
              "        } else {\n",
              "            (__x)._parent9 = _previous450;\n",
              "            if (_is_left452) {\n",
              "                (_previous450)._left7 = __x;\n",
              "            } else {\n",
              "                (_previous450)._right8 = __x;\n",
              "            }\n",
              "        }\n",
              "        var _cursor453 = (__x)._parent9;\n",
              "        var _changed454 = true;\n",
              "        while ((_changed454) && (!((_cursor453) == (null)))) {\n",
              "            var _old__min_ax12455 = (_cursor453)._min_ax12;\n",
              "            var _old__min_ay13456 = (_cursor453)._min_ay13;\n",
              "            var _old__max_ay24457 = (_cursor453)._max_ay24;\n",
              "            var _old_height458 = (_cursor453)._height10;\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval459 = (_cursor453).ax1;\n",
              "            var _child460 = (_cursor453)._left7;\n",
              "            if (!((_child460) == null)) {\n",
              "                var _val461 = (_child460)._min_ax12;\n",
              "                _augval459 = ((_augval459) < (_val461)) ? (_augval459) : (_val461);\n",
              "            }\n",
              "            var _child462 = (_cursor453)._right8;\n",
              "            if (!((_child462) == null)) {\n",
              "                var _val463 = (_child462)._min_ax12;\n",
              "                _augval459 = ((_augval459) < (_val463)) ? (_augval459) : (_val463);\n",
              "            }\n",
              "            (_cursor453)._min_ax12 = _augval459;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval464 = (_cursor453).ay1;\n",
              "            var _child465 = (_cursor453)._left7;\n",
              "            if (!((_child465) == null)) {\n",
              "                var _val466 = (_child465)._min_ay13;\n",
              "                _augval464 = ((_augval464) < (_val466)) ? (_augval464) : (_val466);\n",
              "            }\n",
              "            var _child467 = (_cursor453)._right8;\n",
              "            if (!((_child467) == null)) {\n",
              "                var _val468 = (_child467)._min_ay13;\n",
              "                _augval464 = ((_augval464) < (_val468)) ? (_augval464) : (_val468);\n",
              "            }\n",
              "            (_cursor453)._min_ay13 = _augval464;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval469 = (_cursor453).ay2;\n",
              "            var _child470 = (_cursor453)._left7;\n",
              "            if (!((_child470) == null)) {\n",
              "                var _val471 = (_child470)._max_ay24;\n",
              "                _augval469 = ((_augval469) < (_val471)) ? (_val471) : (_augval469);\n",
              "            }\n",
              "            var _child472 = (_cursor453)._right8;\n",
              "            if (!((_child472) == null)) {\n",
              "                var _val473 = (_child472)._max_ay24;\n",
              "                _augval469 = ((_augval469) < (_val473)) ? (_val473) : (_augval469);\n",
              "            }\n",
              "            (_cursor453)._max_ay24 = _augval469;\n",
              "            (_cursor453)._height10 = 1 + ((((((_cursor453)._left7) == null) ? (-1) : (((_cursor453)._left7)._height10)) > ((((_cursor453)._right8) == null) ? (-1) : (((_cursor453)._right8)._height10))) ? ((((_cursor453)._left7) == null) ? (-1) : (((_cursor453)._left7)._height10)) : ((((_cursor453)._right8) == null) ? (-1) : (((_cursor453)._right8)._height10)));\n",
              "            _changed454 = false;\n",
              "            _changed454 = (_changed454) || (!((_old__min_ax12455) == ((_cursor453)._min_ax12)));\n",
              "            _changed454 = (_changed454) || (!((_old__min_ay13456) == ((_cursor453)._min_ay13)));\n",
              "            _changed454 = (_changed454) || (!((_old__max_ay24457) == ((_cursor453)._max_ay24)));\n",
              "            _changed454 = (_changed454) || (!((_old_height458) == ((_cursor453)._height10)));\n",
              "            _cursor453 = (_cursor453)._parent9;\n",
              "        }\n",
              "        /* rebalance AVL tree */\n",
              "        var _cursor474 = __x;\n",
              "        var _imbalance475;\n",
              "        while (!(((_cursor474)._parent9) == null)) {\n",
              "            _cursor474 = (_cursor474)._parent9;\n",
              "            (_cursor474)._height10 = 1 + ((((((_cursor474)._left7) == null) ? (-1) : (((_cursor474)._left7)._height10)) > ((((_cursor474)._right8) == null) ? (-1) : (((_cursor474)._right8)._height10))) ? ((((_cursor474)._left7) == null) ? (-1) : (((_cursor474)._left7)._height10)) : ((((_cursor474)._right8) == null) ? (-1) : (((_cursor474)._right8)._height10)));\n",
              "            _imbalance475 = ((((_cursor474)._left7) == null) ? (-1) : (((_cursor474)._left7)._height10)) - ((((_cursor474)._right8) == null) ? (-1) : (((_cursor474)._right8)._height10));\n",
              "            if ((_imbalance475) > (1)) {\n",
              "                if ((((((_cursor474)._left7)._left7) == null) ? (-1) : ((((_cursor474)._left7)._left7)._height10)) < (((((_cursor474)._left7)._right8) == null) ? (-1) : ((((_cursor474)._left7)._right8)._height10))) {\n",
              "                    /* rotate ((_cursor474)._left7)._right8 */\n",
              "                    var _a476 = (_cursor474)._left7;\n",
              "                    var _b477 = (_a476)._right8;\n",
              "                    var _c478 = (_b477)._left7;\n",
              "                    /* replace _a476 with _b477 in (_a476)._parent9 */\n",
              "                    if (!(((_a476)._parent9) == null)) {\n",
              "                        if ((((_a476)._parent9)._left7) == (_a476)) {\n",
              "                            ((_a476)._parent9)._left7 = _b477;\n",
              "                        } else {\n",
              "                            ((_a476)._parent9)._right8 = _b477;\n",
              "                        }\n",
              "                    }\n",
              "                    if (!((_b477) == null)) {\n",
              "                        (_b477)._parent9 = (_a476)._parent9;\n",
              "                    }\n",
              "                    /* replace _c478 with _a476 in _b477 */\n",
              "                    (_b477)._left7 = _a476;\n",
              "                    if (!((_a476) == null)) {\n",
              "                        (_a476)._parent9 = _b477;\n",
              "                    }\n",
              "                    /* replace _b477 with _c478 in _a476 */\n",
              "                    (_a476)._right8 = _c478;\n",
              "                    if (!((_c478) == null)) {\n",
              "                        (_c478)._parent9 = _a476;\n",
              "                    }\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval479 = (_a476).ax1;\n",
              "                    var _child480 = (_a476)._left7;\n",
              "                    if (!((_child480) == null)) {\n",
              "                        var _val481 = (_child480)._min_ax12;\n",
              "                        _augval479 = ((_augval479) < (_val481)) ? (_augval479) : (_val481);\n",
              "                    }\n",
              "                    var _child482 = (_a476)._right8;\n",
              "                    if (!((_child482) == null)) {\n",
              "                        var _val483 = (_child482)._min_ax12;\n",
              "                        _augval479 = ((_augval479) < (_val483)) ? (_augval479) : (_val483);\n",
              "                    }\n",
              "                    (_a476)._min_ax12 = _augval479;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval484 = (_a476).ay1;\n",
              "                    var _child485 = (_a476)._left7;\n",
              "                    if (!((_child485) == null)) {\n",
              "                        var _val486 = (_child485)._min_ay13;\n",
              "                        _augval484 = ((_augval484) < (_val486)) ? (_augval484) : (_val486);\n",
              "                    }\n",
              "                    var _child487 = (_a476)._right8;\n",
              "                    if (!((_child487) == null)) {\n",
              "                        var _val488 = (_child487)._min_ay13;\n",
              "                        _augval484 = ((_augval484) < (_val488)) ? (_augval484) : (_val488);\n",
              "                    }\n",
              "                    (_a476)._min_ay13 = _augval484;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval489 = (_a476).ay2;\n",
              "                    var _child490 = (_a476)._left7;\n",
              "                    if (!((_child490) == null)) {\n",
              "                        var _val491 = (_child490)._max_ay24;\n",
              "                        _augval489 = ((_augval489) < (_val491)) ? (_val491) : (_augval489);\n",
              "                    }\n",
              "                    var _child492 = (_a476)._right8;\n",
              "                    if (!((_child492) == null)) {\n",
              "                        var _val493 = (_child492)._max_ay24;\n",
              "                        _augval489 = ((_augval489) < (_val493)) ? (_val493) : (_augval489);\n",
              "                    }\n",
              "                    (_a476)._max_ay24 = _augval489;\n",
              "                    (_a476)._height10 = 1 + ((((((_a476)._left7) == null) ? (-1) : (((_a476)._left7)._height10)) > ((((_a476)._right8) == null) ? (-1) : (((_a476)._right8)._height10))) ? ((((_a476)._left7) == null) ? (-1) : (((_a476)._left7)._height10)) : ((((_a476)._right8) == null) ? (-1) : (((_a476)._right8)._height10)));\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval494 = (_b477).ax1;\n",
              "                    var _child495 = (_b477)._left7;\n",
              "                    if (!((_child495) == null)) {\n",
              "                        var _val496 = (_child495)._min_ax12;\n",
              "                        _augval494 = ((_augval494) < (_val496)) ? (_augval494) : (_val496);\n",
              "                    }\n",
              "                    var _child497 = (_b477)._right8;\n",
              "                    if (!((_child497) == null)) {\n",
              "                        var _val498 = (_child497)._min_ax12;\n",
              "                        _augval494 = ((_augval494) < (_val498)) ? (_augval494) : (_val498);\n",
              "                    }\n",
              "                    (_b477)._min_ax12 = _augval494;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval499 = (_b477).ay1;\n",
              "                    var _child500 = (_b477)._left7;\n",
              "                    if (!((_child500) == null)) {\n",
              "                        var _val501 = (_child500)._min_ay13;\n",
              "                        _augval499 = ((_augval499) < (_val501)) ? (_augval499) : (_val501);\n",
              "                    }\n",
              "                    var _child502 = (_b477)._right8;\n",
              "                    if (!((_child502) == null)) {\n",
              "                        var _val503 = (_child502)._min_ay13;\n",
              "                        _augval499 = ((_augval499) < (_val503)) ? (_augval499) : (_val503);\n",
              "                    }\n",
              "                    (_b477)._min_ay13 = _augval499;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval504 = (_b477).ay2;\n",
              "                    var _child505 = (_b477)._left7;\n",
              "                    if (!((_child505) == null)) {\n",
              "                        var _val506 = (_child505)._max_ay24;\n",
              "                        _augval504 = ((_augval504) < (_val506)) ? (_val506) : (_augval504);\n",
              "                    }\n",
              "                    var _child507 = (_b477)._right8;\n",
              "                    if (!((_child507) == null)) {\n",
              "                        var _val508 = (_child507)._max_ay24;\n",
              "                        _augval504 = ((_augval504) < (_val508)) ? (_val508) : (_augval504);\n",
              "                    }\n",
              "                    (_b477)._max_ay24 = _augval504;\n",
              "                    (_b477)._height10 = 1 + ((((((_b477)._left7) == null) ? (-1) : (((_b477)._left7)._height10)) > ((((_b477)._right8) == null) ? (-1) : (((_b477)._right8)._height10))) ? ((((_b477)._left7) == null) ? (-1) : (((_b477)._left7)._height10)) : ((((_b477)._right8) == null) ? (-1) : (((_b477)._right8)._height10)));\n",
              "                    if (!(((_b477)._parent9) == null)) {\n",
              "                        /* _min_ax12 is min of ax1 */\n",
              "                        var _augval509 = ((_b477)._parent9).ax1;\n",
              "                        var _child510 = ((_b477)._parent9)._left7;\n",
              "                        if (!((_child510) == null)) {\n",
              "                            var _val511 = (_child510)._min_ax12;\n",
              "                            _augval509 = ((_augval509) < (_val511)) ? (_augval509) : (_val511);\n",
              "                        }\n",
              "                        var _child512 = ((_b477)._parent9)._right8;\n",
              "                        if (!((_child512) == null)) {\n",
              "                            var _val513 = (_child512)._min_ax12;\n",
              "                            _augval509 = ((_augval509) < (_val513)) ? (_augval509) : (_val513);\n",
              "                        }\n",
              "                        ((_b477)._parent9)._min_ax12 = _augval509;\n",
              "                        /* _min_ay13 is min of ay1 */\n",
              "                        var _augval514 = ((_b477)._parent9).ay1;\n",
              "                        var _child515 = ((_b477)._parent9)._left7;\n",
              "                        if (!((_child515) == null)) {\n",
              "                            var _val516 = (_child515)._min_ay13;\n",
              "                            _augval514 = ((_augval514) < (_val516)) ? (_augval514) : (_val516);\n",
              "                        }\n",
              "                        var _child517 = ((_b477)._parent9)._right8;\n",
              "                        if (!((_child517) == null)) {\n",
              "                            var _val518 = (_child517)._min_ay13;\n",
              "                            _augval514 = ((_augval514) < (_val518)) ? (_augval514) : (_val518);\n",
              "                        }\n",
              "                        ((_b477)._parent9)._min_ay13 = _augval514;\n",
              "                        /* _max_ay24 is max of ay2 */\n",
              "                        var _augval519 = ((_b477)._parent9).ay2;\n",
              "                        var _child520 = ((_b477)._parent9)._left7;\n",
              "                        if (!((_child520) == null)) {\n",
              "                            var _val521 = (_child520)._max_ay24;\n",
              "                            _augval519 = ((_augval519) < (_val521)) ? (_val521) : (_augval519);\n",
              "                        }\n",
              "                        var _child522 = ((_b477)._parent9)._right8;\n",
              "                        if (!((_child522) == null)) {\n",
              "                            var _val523 = (_child522)._max_ay24;\n",
              "                            _augval519 = ((_augval519) < (_val523)) ? (_val523) : (_augval519);\n",
              "                        }\n",
              "                        ((_b477)._parent9)._max_ay24 = _augval519;\n",
              "                        ((_b477)._parent9)._height10 = 1 + (((((((_b477)._parent9)._left7) == null) ? (-1) : ((((_b477)._parent9)._left7)._height10)) > (((((_b477)._parent9)._right8) == null) ? (-1) : ((((_b477)._parent9)._right8)._height10))) ? (((((_b477)._parent9)._left7) == null) ? (-1) : ((((_b477)._parent9)._left7)._height10)) : (((((_b477)._parent9)._right8) == null) ? (-1) : ((((_b477)._parent9)._right8)._height10)));\n",
              "                    } else {\n",
              "                        (this)._root1 = _b477;\n",
              "                    }\n",
              "                }\n",
              "                /* rotate (_cursor474)._left7 */\n",
              "                var _a524 = _cursor474;\n",
              "                var _b525 = (_a524)._left7;\n",
              "                var _c526 = (_b525)._right8;\n",
              "                /* replace _a524 with _b525 in (_a524)._parent9 */\n",
              "                if (!(((_a524)._parent9) == null)) {\n",
              "                    if ((((_a524)._parent9)._left7) == (_a524)) {\n",
              "                        ((_a524)._parent9)._left7 = _b525;\n",
              "                    } else {\n",
              "                        ((_a524)._parent9)._right8 = _b525;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b525) == null)) {\n",
              "                    (_b525)._parent9 = (_a524)._parent9;\n",
              "                }\n",
              "                /* replace _c526 with _a524 in _b525 */\n",
              "                (_b525)._right8 = _a524;\n",
              "                if (!((_a524) == null)) {\n",
              "                    (_a524)._parent9 = _b525;\n",
              "                }\n",
              "                /* replace _b525 with _c526 in _a524 */\n",
              "                (_a524)._left7 = _c526;\n",
              "                if (!((_c526) == null)) {\n",
              "                    (_c526)._parent9 = _a524;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval527 = (_a524).ax1;\n",
              "                var _child528 = (_a524)._left7;\n",
              "                if (!((_child528) == null)) {\n",
              "                    var _val529 = (_child528)._min_ax12;\n",
              "                    _augval527 = ((_augval527) < (_val529)) ? (_augval527) : (_val529);\n",
              "                }\n",
              "                var _child530 = (_a524)._right8;\n",
              "                if (!((_child530) == null)) {\n",
              "                    var _val531 = (_child530)._min_ax12;\n",
              "                    _augval527 = ((_augval527) < (_val531)) ? (_augval527) : (_val531);\n",
              "                }\n",
              "                (_a524)._min_ax12 = _augval527;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval532 = (_a524).ay1;\n",
              "                var _child533 = (_a524)._left7;\n",
              "                if (!((_child533) == null)) {\n",
              "                    var _val534 = (_child533)._min_ay13;\n",
              "                    _augval532 = ((_augval532) < (_val534)) ? (_augval532) : (_val534);\n",
              "                }\n",
              "                var _child535 = (_a524)._right8;\n",
              "                if (!((_child535) == null)) {\n",
              "                    var _val536 = (_child535)._min_ay13;\n",
              "                    _augval532 = ((_augval532) < (_val536)) ? (_augval532) : (_val536);\n",
              "                }\n",
              "                (_a524)._min_ay13 = _augval532;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval537 = (_a524).ay2;\n",
              "                var _child538 = (_a524)._left7;\n",
              "                if (!((_child538) == null)) {\n",
              "                    var _val539 = (_child538)._max_ay24;\n",
              "                    _augval537 = ((_augval537) < (_val539)) ? (_val539) : (_augval537);\n",
              "                }\n",
              "                var _child540 = (_a524)._right8;\n",
              "                if (!((_child540) == null)) {\n",
              "                    var _val541 = (_child540)._max_ay24;\n",
              "                    _augval537 = ((_augval537) < (_val541)) ? (_val541) : (_augval537);\n",
              "                }\n",
              "                (_a524)._max_ay24 = _augval537;\n",
              "                (_a524)._height10 = 1 + ((((((_a524)._left7) == null) ? (-1) : (((_a524)._left7)._height10)) > ((((_a524)._right8) == null) ? (-1) : (((_a524)._right8)._height10))) ? ((((_a524)._left7) == null) ? (-1) : (((_a524)._left7)._height10)) : ((((_a524)._right8) == null) ? (-1) : (((_a524)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval542 = (_b525).ax1;\n",
              "                var _child543 = (_b525)._left7;\n",
              "                if (!((_child543) == null)) {\n",
              "                    var _val544 = (_child543)._min_ax12;\n",
              "                    _augval542 = ((_augval542) < (_val544)) ? (_augval542) : (_val544);\n",
              "                }\n",
              "                var _child545 = (_b525)._right8;\n",
              "                if (!((_child545) == null)) {\n",
              "                    var _val546 = (_child545)._min_ax12;\n",
              "                    _augval542 = ((_augval542) < (_val546)) ? (_augval542) : (_val546);\n",
              "                }\n",
              "                (_b525)._min_ax12 = _augval542;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval547 = (_b525).ay1;\n",
              "                var _child548 = (_b525)._left7;\n",
              "                if (!((_child548) == null)) {\n",
              "                    var _val549 = (_child548)._min_ay13;\n",
              "                    _augval547 = ((_augval547) < (_val549)) ? (_augval547) : (_val549);\n",
              "                }\n",
              "                var _child550 = (_b525)._right8;\n",
              "                if (!((_child550) == null)) {\n",
              "                    var _val551 = (_child550)._min_ay13;\n",
              "                    _augval547 = ((_augval547) < (_val551)) ? (_augval547) : (_val551);\n",
              "                }\n",
              "                (_b525)._min_ay13 = _augval547;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval552 = (_b525).ay2;\n",
              "                var _child553 = (_b525)._left7;\n",
              "                if (!((_child553) == null)) {\n",
              "                    var _val554 = (_child553)._max_ay24;\n",
              "                    _augval552 = ((_augval552) < (_val554)) ? (_val554) : (_augval552);\n",
              "                }\n",
              "                var _child555 = (_b525)._right8;\n",
              "                if (!((_child555) == null)) {\n",
              "                    var _val556 = (_child555)._max_ay24;\n",
              "                    _augval552 = ((_augval552) < (_val556)) ? (_val556) : (_augval552);\n",
              "                }\n",
              "                (_b525)._max_ay24 = _augval552;\n",
              "                (_b525)._height10 = 1 + ((((((_b525)._left7) == null) ? (-1) : (((_b525)._left7)._height10)) > ((((_b525)._right8) == null) ? (-1) : (((_b525)._right8)._height10))) ? ((((_b525)._left7) == null) ? (-1) : (((_b525)._left7)._height10)) : ((((_b525)._right8) == null) ? (-1) : (((_b525)._right8)._height10)));\n",
              "                if (!(((_b525)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval557 = ((_b525)._parent9).ax1;\n",
              "                    var _child558 = ((_b525)._parent9)._left7;\n",
              "                    if (!((_child558) == null)) {\n",
              "                        var _val559 = (_child558)._min_ax12;\n",
              "                        _augval557 = ((_augval557) < (_val559)) ? (_augval557) : (_val559);\n",
              "                    }\n",
              "                    var _child560 = ((_b525)._parent9)._right8;\n",
              "                    if (!((_child560) == null)) {\n",
              "                        var _val561 = (_child560)._min_ax12;\n",
              "                        _augval557 = ((_augval557) < (_val561)) ? (_augval557) : (_val561);\n",
              "                    }\n",
              "                    ((_b525)._parent9)._min_ax12 = _augval557;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval562 = ((_b525)._parent9).ay1;\n",
              "                    var _child563 = ((_b525)._parent9)._left7;\n",
              "                    if (!((_child563) == null)) {\n",
              "                        var _val564 = (_child563)._min_ay13;\n",
              "                        _augval562 = ((_augval562) < (_val564)) ? (_augval562) : (_val564);\n",
              "                    }\n",
              "                    var _child565 = ((_b525)._parent9)._right8;\n",
              "                    if (!((_child565) == null)) {\n",
              "                        var _val566 = (_child565)._min_ay13;\n",
              "                        _augval562 = ((_augval562) < (_val566)) ? (_augval562) : (_val566);\n",
              "                    }\n",
              "                    ((_b525)._parent9)._min_ay13 = _augval562;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval567 = ((_b525)._parent9).ay2;\n",
              "                    var _child568 = ((_b525)._parent9)._left7;\n",
              "                    if (!((_child568) == null)) {\n",
              "                        var _val569 = (_child568)._max_ay24;\n",
              "                        _augval567 = ((_augval567) < (_val569)) ? (_val569) : (_augval567);\n",
              "                    }\n",
              "                    var _child570 = ((_b525)._parent9)._right8;\n",
              "                    if (!((_child570) == null)) {\n",
              "                        var _val571 = (_child570)._max_ay24;\n",
              "                        _augval567 = ((_augval567) < (_val571)) ? (_val571) : (_augval567);\n",
              "                    }\n",
              "                    ((_b525)._parent9)._max_ay24 = _augval567;\n",
              "                    ((_b525)._parent9)._height10 = 1 + (((((((_b525)._parent9)._left7) == null) ? (-1) : ((((_b525)._parent9)._left7)._height10)) > (((((_b525)._parent9)._right8) == null) ? (-1) : ((((_b525)._parent9)._right8)._height10))) ? (((((_b525)._parent9)._left7) == null) ? (-1) : ((((_b525)._parent9)._left7)._height10)) : (((((_b525)._parent9)._right8) == null) ? (-1) : ((((_b525)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b525;\n",
              "                }\n",
              "                _cursor474 = (_cursor474)._parent9;\n",
              "            } else if ((_imbalance475) < (-1)) {\n",
              "                if ((((((_cursor474)._right8)._left7) == null) ? (-1) : ((((_cursor474)._right8)._left7)._height10)) > (((((_cursor474)._right8)._right8) == null) ? (-1) : ((((_cursor474)._right8)._right8)._height10))) {\n",
              "                    /* rotate ((_cursor474)._right8)._left7 */\n",
              "                    var _a572 = (_cursor474)._right8;\n",
              "                    var _b573 = (_a572)._left7;\n",
              "                    var _c574 = (_b573)._right8;\n",
              "                    /* replace _a572 with _b573 in (_a572)._parent9 */\n",
              "                    if (!(((_a572)._parent9) == null)) {\n",
              "                        if ((((_a572)._parent9)._left7) == (_a572)) {\n",
              "                            ((_a572)._parent9)._left7 = _b573;\n",
              "                        } else {\n",
              "                            ((_a572)._parent9)._right8 = _b573;\n",
              "                        }\n",
              "                    }\n",
              "                    if (!((_b573) == null)) {\n",
              "                        (_b573)._parent9 = (_a572)._parent9;\n",
              "                    }\n",
              "                    /* replace _c574 with _a572 in _b573 */\n",
              "                    (_b573)._right8 = _a572;\n",
              "                    if (!((_a572) == null)) {\n",
              "                        (_a572)._parent9 = _b573;\n",
              "                    }\n",
              "                    /* replace _b573 with _c574 in _a572 */\n",
              "                    (_a572)._left7 = _c574;\n",
              "                    if (!((_c574) == null)) {\n",
              "                        (_c574)._parent9 = _a572;\n",
              "                    }\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval575 = (_a572).ax1;\n",
              "                    var _child576 = (_a572)._left7;\n",
              "                    if (!((_child576) == null)) {\n",
              "                        var _val577 = (_child576)._min_ax12;\n",
              "                        _augval575 = ((_augval575) < (_val577)) ? (_augval575) : (_val577);\n",
              "                    }\n",
              "                    var _child578 = (_a572)._right8;\n",
              "                    if (!((_child578) == null)) {\n",
              "                        var _val579 = (_child578)._min_ax12;\n",
              "                        _augval575 = ((_augval575) < (_val579)) ? (_augval575) : (_val579);\n",
              "                    }\n",
              "                    (_a572)._min_ax12 = _augval575;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval580 = (_a572).ay1;\n",
              "                    var _child581 = (_a572)._left7;\n",
              "                    if (!((_child581) == null)) {\n",
              "                        var _val582 = (_child581)._min_ay13;\n",
              "                        _augval580 = ((_augval580) < (_val582)) ? (_augval580) : (_val582);\n",
              "                    }\n",
              "                    var _child583 = (_a572)._right8;\n",
              "                    if (!((_child583) == null)) {\n",
              "                        var _val584 = (_child583)._min_ay13;\n",
              "                        _augval580 = ((_augval580) < (_val584)) ? (_augval580) : (_val584);\n",
              "                    }\n",
              "                    (_a572)._min_ay13 = _augval580;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval585 = (_a572).ay2;\n",
              "                    var _child586 = (_a572)._left7;\n",
              "                    if (!((_child586) == null)) {\n",
              "                        var _val587 = (_child586)._max_ay24;\n",
              "                        _augval585 = ((_augval585) < (_val587)) ? (_val587) : (_augval585);\n",
              "                    }\n",
              "                    var _child588 = (_a572)._right8;\n",
              "                    if (!((_child588) == null)) {\n",
              "                        var _val589 = (_child588)._max_ay24;\n",
              "                        _augval585 = ((_augval585) < (_val589)) ? (_val589) : (_augval585);\n",
              "                    }\n",
              "                    (_a572)._max_ay24 = _augval585;\n",
              "                    (_a572)._height10 = 1 + ((((((_a572)._left7) == null) ? (-1) : (((_a572)._left7)._height10)) > ((((_a572)._right8) == null) ? (-1) : (((_a572)._right8)._height10))) ? ((((_a572)._left7) == null) ? (-1) : (((_a572)._left7)._height10)) : ((((_a572)._right8) == null) ? (-1) : (((_a572)._right8)._height10)));\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval590 = (_b573).ax1;\n",
              "                    var _child591 = (_b573)._left7;\n",
              "                    if (!((_child591) == null)) {\n",
              "                        var _val592 = (_child591)._min_ax12;\n",
              "                        _augval590 = ((_augval590) < (_val592)) ? (_augval590) : (_val592);\n",
              "                    }\n",
              "                    var _child593 = (_b573)._right8;\n",
              "                    if (!((_child593) == null)) {\n",
              "                        var _val594 = (_child593)._min_ax12;\n",
              "                        _augval590 = ((_augval590) < (_val594)) ? (_augval590) : (_val594);\n",
              "                    }\n",
              "                    (_b573)._min_ax12 = _augval590;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval595 = (_b573).ay1;\n",
              "                    var _child596 = (_b573)._left7;\n",
              "                    if (!((_child596) == null)) {\n",
              "                        var _val597 = (_child596)._min_ay13;\n",
              "                        _augval595 = ((_augval595) < (_val597)) ? (_augval595) : (_val597);\n",
              "                    }\n",
              "                    var _child598 = (_b573)._right8;\n",
              "                    if (!((_child598) == null)) {\n",
              "                        var _val599 = (_child598)._min_ay13;\n",
              "                        _augval595 = ((_augval595) < (_val599)) ? (_augval595) : (_val599);\n",
              "                    }\n",
              "                    (_b573)._min_ay13 = _augval595;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval600 = (_b573).ay2;\n",
              "                    var _child601 = (_b573)._left7;\n",
              "                    if (!((_child601) == null)) {\n",
              "                        var _val602 = (_child601)._max_ay24;\n",
              "                        _augval600 = ((_augval600) < (_val602)) ? (_val602) : (_augval600);\n",
              "                    }\n",
              "                    var _child603 = (_b573)._right8;\n",
              "                    if (!((_child603) == null)) {\n",
              "                        var _val604 = (_child603)._max_ay24;\n",
              "                        _augval600 = ((_augval600) < (_val604)) ? (_val604) : (_augval600);\n",
              "                    }\n",
              "                    (_b573)._max_ay24 = _augval600;\n",
              "                    (_b573)._height10 = 1 + ((((((_b573)._left7) == null) ? (-1) : (((_b573)._left7)._height10)) > ((((_b573)._right8) == null) ? (-1) : (((_b573)._right8)._height10))) ? ((((_b573)._left7) == null) ? (-1) : (((_b573)._left7)._height10)) : ((((_b573)._right8) == null) ? (-1) : (((_b573)._right8)._height10)));\n",
              "                    if (!(((_b573)._parent9) == null)) {\n",
              "                        /* _min_ax12 is min of ax1 */\n",
              "                        var _augval605 = ((_b573)._parent9).ax1;\n",
              "                        var _child606 = ((_b573)._parent9)._left7;\n",
              "                        if (!((_child606) == null)) {\n",
              "                            var _val607 = (_child606)._min_ax12;\n",
              "                            _augval605 = ((_augval605) < (_val607)) ? (_augval605) : (_val607);\n",
              "                        }\n",
              "                        var _child608 = ((_b573)._parent9)._right8;\n",
              "                        if (!((_child608) == null)) {\n",
              "                            var _val609 = (_child608)._min_ax12;\n",
              "                            _augval605 = ((_augval605) < (_val609)) ? (_augval605) : (_val609);\n",
              "                        }\n",
              "                        ((_b573)._parent9)._min_ax12 = _augval605;\n",
              "                        /* _min_ay13 is min of ay1 */\n",
              "                        var _augval610 = ((_b573)._parent9).ay1;\n",
              "                        var _child611 = ((_b573)._parent9)._left7;\n",
              "                        if (!((_child611) == null)) {\n",
              "                            var _val612 = (_child611)._min_ay13;\n",
              "                            _augval610 = ((_augval610) < (_val612)) ? (_augval610) : (_val612);\n",
              "                        }\n",
              "                        var _child613 = ((_b573)._parent9)._right8;\n",
              "                        if (!((_child613) == null)) {\n",
              "                            var _val614 = (_child613)._min_ay13;\n",
              "                            _augval610 = ((_augval610) < (_val614)) ? (_augval610) : (_val614);\n",
              "                        }\n",
              "                        ((_b573)._parent9)._min_ay13 = _augval610;\n",
              "                        /* _max_ay24 is max of ay2 */\n",
              "                        var _augval615 = ((_b573)._parent9).ay2;\n",
              "                        var _child616 = ((_b573)._parent9)._left7;\n",
              "                        if (!((_child616) == null)) {\n",
              "                            var _val617 = (_child616)._max_ay24;\n",
              "                            _augval615 = ((_augval615) < (_val617)) ? (_val617) : (_augval615);\n",
              "                        }\n",
              "                        var _child618 = ((_b573)._parent9)._right8;\n",
              "                        if (!((_child618) == null)) {\n",
              "                            var _val619 = (_child618)._max_ay24;\n",
              "                            _augval615 = ((_augval615) < (_val619)) ? (_val619) : (_augval615);\n",
              "                        }\n",
              "                        ((_b573)._parent9)._max_ay24 = _augval615;\n",
              "                        ((_b573)._parent9)._height10 = 1 + (((((((_b573)._parent9)._left7) == null) ? (-1) : ((((_b573)._parent9)._left7)._height10)) > (((((_b573)._parent9)._right8) == null) ? (-1) : ((((_b573)._parent9)._right8)._height10))) ? (((((_b573)._parent9)._left7) == null) ? (-1) : ((((_b573)._parent9)._left7)._height10)) : (((((_b573)._parent9)._right8) == null) ? (-1) : ((((_b573)._parent9)._right8)._height10)));\n",
              "                    } else {\n",
              "                        (this)._root1 = _b573;\n",
              "                    }\n",
              "                }\n",
              "                /* rotate (_cursor474)._right8 */\n",
              "                var _a620 = _cursor474;\n",
              "                var _b621 = (_a620)._right8;\n",
              "                var _c622 = (_b621)._left7;\n",
              "                /* replace _a620 with _b621 in (_a620)._parent9 */\n",
              "                if (!(((_a620)._parent9) == null)) {\n",
              "                    if ((((_a620)._parent9)._left7) == (_a620)) {\n",
              "                        ((_a620)._parent9)._left7 = _b621;\n",
              "                    } else {\n",
              "                        ((_a620)._parent9)._right8 = _b621;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b621) == null)) {\n",
              "                    (_b621)._parent9 = (_a620)._parent9;\n",
              "                }\n",
              "                /* replace _c622 with _a620 in _b621 */\n",
              "                (_b621)._left7 = _a620;\n",
              "                if (!((_a620) == null)) {\n",
              "                    (_a620)._parent9 = _b621;\n",
              "                }\n",
              "                /* replace _b621 with _c622 in _a620 */\n",
              "                (_a620)._right8 = _c622;\n",
              "                if (!((_c622) == null)) {\n",
              "                    (_c622)._parent9 = _a620;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval623 = (_a620).ax1;\n",
              "                var _child624 = (_a620)._left7;\n",
              "                if (!((_child624) == null)) {\n",
              "                    var _val625 = (_child624)._min_ax12;\n",
              "                    _augval623 = ((_augval623) < (_val625)) ? (_augval623) : (_val625);\n",
              "                }\n",
              "                var _child626 = (_a620)._right8;\n",
              "                if (!((_child626) == null)) {\n",
              "                    var _val627 = (_child626)._min_ax12;\n",
              "                    _augval623 = ((_augval623) < (_val627)) ? (_augval623) : (_val627);\n",
              "                }\n",
              "                (_a620)._min_ax12 = _augval623;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval628 = (_a620).ay1;\n",
              "                var _child629 = (_a620)._left7;\n",
              "                if (!((_child629) == null)) {\n",
              "                    var _val630 = (_child629)._min_ay13;\n",
              "                    _augval628 = ((_augval628) < (_val630)) ? (_augval628) : (_val630);\n",
              "                }\n",
              "                var _child631 = (_a620)._right8;\n",
              "                if (!((_child631) == null)) {\n",
              "                    var _val632 = (_child631)._min_ay13;\n",
              "                    _augval628 = ((_augval628) < (_val632)) ? (_augval628) : (_val632);\n",
              "                }\n",
              "                (_a620)._min_ay13 = _augval628;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval633 = (_a620).ay2;\n",
              "                var _child634 = (_a620)._left7;\n",
              "                if (!((_child634) == null)) {\n",
              "                    var _val635 = (_child634)._max_ay24;\n",
              "                    _augval633 = ((_augval633) < (_val635)) ? (_val635) : (_augval633);\n",
              "                }\n",
              "                var _child636 = (_a620)._right8;\n",
              "                if (!((_child636) == null)) {\n",
              "                    var _val637 = (_child636)._max_ay24;\n",
              "                    _augval633 = ((_augval633) < (_val637)) ? (_val637) : (_augval633);\n",
              "                }\n",
              "                (_a620)._max_ay24 = _augval633;\n",
              "                (_a620)._height10 = 1 + ((((((_a620)._left7) == null) ? (-1) : (((_a620)._left7)._height10)) > ((((_a620)._right8) == null) ? (-1) : (((_a620)._right8)._height10))) ? ((((_a620)._left7) == null) ? (-1) : (((_a620)._left7)._height10)) : ((((_a620)._right8) == null) ? (-1) : (((_a620)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval638 = (_b621).ax1;\n",
              "                var _child639 = (_b621)._left7;\n",
              "                if (!((_child639) == null)) {\n",
              "                    var _val640 = (_child639)._min_ax12;\n",
              "                    _augval638 = ((_augval638) < (_val640)) ? (_augval638) : (_val640);\n",
              "                }\n",
              "                var _child641 = (_b621)._right8;\n",
              "                if (!((_child641) == null)) {\n",
              "                    var _val642 = (_child641)._min_ax12;\n",
              "                    _augval638 = ((_augval638) < (_val642)) ? (_augval638) : (_val642);\n",
              "                }\n",
              "                (_b621)._min_ax12 = _augval638;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval643 = (_b621).ay1;\n",
              "                var _child644 = (_b621)._left7;\n",
              "                if (!((_child644) == null)) {\n",
              "                    var _val645 = (_child644)._min_ay13;\n",
              "                    _augval643 = ((_augval643) < (_val645)) ? (_augval643) : (_val645);\n",
              "                }\n",
              "                var _child646 = (_b621)._right8;\n",
              "                if (!((_child646) == null)) {\n",
              "                    var _val647 = (_child646)._min_ay13;\n",
              "                    _augval643 = ((_augval643) < (_val647)) ? (_augval643) : (_val647);\n",
              "                }\n",
              "                (_b621)._min_ay13 = _augval643;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval648 = (_b621).ay2;\n",
              "                var _child649 = (_b621)._left7;\n",
              "                if (!((_child649) == null)) {\n",
              "                    var _val650 = (_child649)._max_ay24;\n",
              "                    _augval648 = ((_augval648) < (_val650)) ? (_val650) : (_augval648);\n",
              "                }\n",
              "                var _child651 = (_b621)._right8;\n",
              "                if (!((_child651) == null)) {\n",
              "                    var _val652 = (_child651)._max_ay24;\n",
              "                    _augval648 = ((_augval648) < (_val652)) ? (_val652) : (_augval648);\n",
              "                }\n",
              "                (_b621)._max_ay24 = _augval648;\n",
              "                (_b621)._height10 = 1 + ((((((_b621)._left7) == null) ? (-1) : (((_b621)._left7)._height10)) > ((((_b621)._right8) == null) ? (-1) : (((_b621)._right8)._height10))) ? ((((_b621)._left7) == null) ? (-1) : (((_b621)._left7)._height10)) : ((((_b621)._right8) == null) ? (-1) : (((_b621)._right8)._height10)));\n",
              "                if (!(((_b621)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval653 = ((_b621)._parent9).ax1;\n",
              "                    var _child654 = ((_b621)._parent9)._left7;\n",
              "                    if (!((_child654) == null)) {\n",
              "                        var _val655 = (_child654)._min_ax12;\n",
              "                        _augval653 = ((_augval653) < (_val655)) ? (_augval653) : (_val655);\n",
              "                    }\n",
              "                    var _child656 = ((_b621)._parent9)._right8;\n",
              "                    if (!((_child656) == null)) {\n",
              "                        var _val657 = (_child656)._min_ax12;\n",
              "                        _augval653 = ((_augval653) < (_val657)) ? (_augval653) : (_val657);\n",
              "                    }\n",
              "                    ((_b621)._parent9)._min_ax12 = _augval653;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval658 = ((_b621)._parent9).ay1;\n",
              "                    var _child659 = ((_b621)._parent9)._left7;\n",
              "                    if (!((_child659) == null)) {\n",
              "                        var _val660 = (_child659)._min_ay13;\n",
              "                        _augval658 = ((_augval658) < (_val660)) ? (_augval658) : (_val660);\n",
              "                    }\n",
              "                    var _child661 = ((_b621)._parent9)._right8;\n",
              "                    if (!((_child661) == null)) {\n",
              "                        var _val662 = (_child661)._min_ay13;\n",
              "                        _augval658 = ((_augval658) < (_val662)) ? (_augval658) : (_val662);\n",
              "                    }\n",
              "                    ((_b621)._parent9)._min_ay13 = _augval658;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval663 = ((_b621)._parent9).ay2;\n",
              "                    var _child664 = ((_b621)._parent9)._left7;\n",
              "                    if (!((_child664) == null)) {\n",
              "                        var _val665 = (_child664)._max_ay24;\n",
              "                        _augval663 = ((_augval663) < (_val665)) ? (_val665) : (_augval663);\n",
              "                    }\n",
              "                    var _child666 = ((_b621)._parent9)._right8;\n",
              "                    if (!((_child666) == null)) {\n",
              "                        var _val667 = (_child666)._max_ay24;\n",
              "                        _augval663 = ((_augval663) < (_val667)) ? (_val667) : (_augval663);\n",
              "                    }\n",
              "                    ((_b621)._parent9)._max_ay24 = _augval663;\n",
              "                    ((_b621)._parent9)._height10 = 1 + (((((((_b621)._parent9)._left7) == null) ? (-1) : ((((_b621)._parent9)._left7)._height10)) > (((((_b621)._parent9)._right8) == null) ? (-1) : ((((_b621)._parent9)._right8)._height10))) ? (((((_b621)._parent9)._left7) == null) ? (-1) : ((((_b621)._parent9)._left7)._height10)) : (((((_b621)._parent9)._right8) == null) ? (-1) : ((((_b621)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b621;\n",
              "                }\n",
              "                _cursor474 = (_cursor474)._parent9;\n",
              "            }\n",
              "        }\n",
              "        (__x).ax2 = new_val;\n",
              "    }\n",
              "}\n",
              "RectangleHolder.prototype.updateAy2 = function (__x, new_val) {\n",
              "    if ((__x).ay2 != new_val) {\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval668 = new_val;\n",
              "        var _child669 = (__x)._left7;\n",
              "        if (!((_child669) == null)) {\n",
              "            var _val670 = (_child669)._max_ay24;\n",
              "            _augval668 = ((_augval668) < (_val670)) ? (_val670) : (_augval668);\n",
              "        }\n",
              "        var _child671 = (__x)._right8;\n",
              "        if (!((_child671) == null)) {\n",
              "            var _val672 = (_child671)._max_ay24;\n",
              "            _augval668 = ((_augval668) < (_val672)) ? (_val672) : (_augval668);\n",
              "        }\n",
              "        (__x)._max_ay24 = _augval668;\n",
              "        var _cursor673 = (__x)._parent9;\n",
              "        var _changed674 = true;\n",
              "        while ((_changed674) && (!((_cursor673) == (null)))) {\n",
              "            var _old__max_ay24675 = (_cursor673)._max_ay24;\n",
              "            var _old_height676 = (_cursor673)._height10;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval677 = (_cursor673).ay2;\n",
              "            var _child678 = (_cursor673)._left7;\n",
              "            if (!((_child678) == null)) {\n",
              "                var _val679 = (_child678)._max_ay24;\n",
              "                _augval677 = ((_augval677) < (_val679)) ? (_val679) : (_augval677);\n",
              "            }\n",
              "            var _child680 = (_cursor673)._right8;\n",
              "            if (!((_child680) == null)) {\n",
              "                var _val681 = (_child680)._max_ay24;\n",
              "                _augval677 = ((_augval677) < (_val681)) ? (_val681) : (_augval677);\n",
              "            }\n",
              "            (_cursor673)._max_ay24 = _augval677;\n",
              "            (_cursor673)._height10 = 1 + ((((((_cursor673)._left7) == null) ? (-1) : (((_cursor673)._left7)._height10)) > ((((_cursor673)._right8) == null) ? (-1) : (((_cursor673)._right8)._height10))) ? ((((_cursor673)._left7) == null) ? (-1) : (((_cursor673)._left7)._height10)) : ((((_cursor673)._right8) == null) ? (-1) : (((_cursor673)._right8)._height10)));\n",
              "            _changed674 = false;\n",
              "            _changed674 = (_changed674) || (!((_old__max_ay24675) == ((_cursor673)._max_ay24)));\n",
              "            _changed674 = (_changed674) || (!((_old_height676) == ((_cursor673)._height10)));\n",
              "            _cursor673 = (_cursor673)._parent9;\n",
              "        }\n",
              "        (__x).ay2 = new_val;\n",
              "    }\n",
              "}\n",
              "RectangleHolder.prototype.update = function (__x, ax1, ay1, ax2, ay2) {\n",
              "    var _parent682 = (__x)._parent9;\n",
              "    var _left683 = (__x)._left7;\n",
              "    var _right684 = (__x)._right8;\n",
              "    var _new_x685;\n",
              "    if (((_left683) == null) && ((_right684) == null)) {\n",
              "        _new_x685 = null;\n",
              "        /* replace __x with _new_x685 in _parent682 */\n",
              "        if (!((_parent682) == null)) {\n",
              "            if (((_parent682)._left7) == (__x)) {\n",
              "                (_parent682)._left7 = _new_x685;\n",
              "            } else {\n",
              "                (_parent682)._right8 = _new_x685;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x685) == null)) {\n",
              "            (_new_x685)._parent9 = _parent682;\n",
              "        }\n",
              "    } else if ((!((_left683) == null)) && ((_right684) == null)) {\n",
              "        _new_x685 = _left683;\n",
              "        /* replace __x with _new_x685 in _parent682 */\n",
              "        if (!((_parent682) == null)) {\n",
              "            if (((_parent682)._left7) == (__x)) {\n",
              "                (_parent682)._left7 = _new_x685;\n",
              "            } else {\n",
              "                (_parent682)._right8 = _new_x685;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x685) == null)) {\n",
              "            (_new_x685)._parent9 = _parent682;\n",
              "        }\n",
              "    } else if (((_left683) == null) && (!((_right684) == null))) {\n",
              "        _new_x685 = _right684;\n",
              "        /* replace __x with _new_x685 in _parent682 */\n",
              "        if (!((_parent682) == null)) {\n",
              "            if (((_parent682)._left7) == (__x)) {\n",
              "                (_parent682)._left7 = _new_x685;\n",
              "            } else {\n",
              "                (_parent682)._right8 = _new_x685;\n",
              "            }\n",
              "        }\n",
              "        if (!((_new_x685) == null)) {\n",
              "            (_new_x685)._parent9 = _parent682;\n",
              "        }\n",
              "    } else {\n",
              "        var _root686 = (__x)._right8;\n",
              "        var _x687 = _root686;\n",
              "        var _descend688 = true;\n",
              "        var _from_left689 = true;\n",
              "        while (true) {\n",
              "            if ((_x687) == null) {\n",
              "                _x687 = null;\n",
              "                break;\n",
              "            }\n",
              "            if (_descend688) {\n",
              "                /* too small? */\n",
              "                if (false) {\n",
              "                    if ((!(((_x687)._right8) == null)) && (true)) {\n",
              "                        if ((_x687) == (_root686)) {\n",
              "                            _root686 = (_x687)._right8;\n",
              "                        }\n",
              "                        _x687 = (_x687)._right8;\n",
              "                    } else if ((_x687) == (_root686)) {\n",
              "                        _x687 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend688 = false;\n",
              "                        _from_left689 = (!(((_x687)._parent9) == null)) && ((_x687) == (((_x687)._parent9)._left7));\n",
              "                        _x687 = (_x687)._parent9;\n",
              "                    }\n",
              "                } else if ((!(((_x687)._left7) == null)) && (true)) {\n",
              "                    _x687 = (_x687)._left7;\n",
              "                    /* too large? */\n",
              "                } else if (false) {\n",
              "                    if ((_x687) == (_root686)) {\n",
              "                        _x687 = null;\n",
              "                        break;\n",
              "                    } else {\n",
              "                        _descend688 = false;\n",
              "                        _from_left689 = (!(((_x687)._parent9) == null)) && ((_x687) == (((_x687)._parent9)._left7));\n",
              "                        _x687 = (_x687)._parent9;\n",
              "                    }\n",
              "                    /* node ok? */\n",
              "                } else if (true) {\n",
              "                    break;\n",
              "                } else if ((_x687) == (_root686)) {\n",
              "                    _root686 = (_x687)._right8;\n",
              "                    _x687 = (_x687)._right8;\n",
              "                } else {\n",
              "                    if ((!(((_x687)._right8) == null)) && (true)) {\n",
              "                        if ((_x687) == (_root686)) {\n",
              "                            _root686 = (_x687)._right8;\n",
              "                        }\n",
              "                        _x687 = (_x687)._right8;\n",
              "                    } else {\n",
              "                        _descend688 = false;\n",
              "                        _from_left689 = (!(((_x687)._parent9) == null)) && ((_x687) == (((_x687)._parent9)._left7));\n",
              "                        _x687 = (_x687)._parent9;\n",
              "                    }\n",
              "                }\n",
              "            } else if (_from_left689) {\n",
              "                if (false) {\n",
              "                    _x687 = null;\n",
              "                    break;\n",
              "                } else if (true) {\n",
              "                    break;\n",
              "                } else if ((!(((_x687)._right8) == null)) && (true)) {\n",
              "                    _descend688 = true;\n",
              "                    if ((_x687) == (_root686)) {\n",
              "                        _root686 = (_x687)._right8;\n",
              "                    }\n",
              "                    _x687 = (_x687)._right8;\n",
              "                } else if ((_x687) == (_root686)) {\n",
              "                    _x687 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend688 = false;\n",
              "                    _from_left689 = (!(((_x687)._parent9) == null)) && ((_x687) == (((_x687)._parent9)._left7));\n",
              "                    _x687 = (_x687)._parent9;\n",
              "                }\n",
              "            } else {\n",
              "                if ((_x687) == (_root686)) {\n",
              "                    _x687 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend688 = false;\n",
              "                    _from_left689 = (!(((_x687)._parent9) == null)) && ((_x687) == (((_x687)._parent9)._left7));\n",
              "                    _x687 = (_x687)._parent9;\n",
              "                }\n",
              "            }\n",
              "        }\n",
              "        _new_x685 = _x687;\n",
              "        var _mp690 = (_x687)._parent9;\n",
              "        var _mr691 = (_x687)._right8;\n",
              "        /* replace _x687 with _mr691 in _mp690 */\n",
              "        if (!((_mp690) == null)) {\n",
              "            if (((_mp690)._left7) == (_x687)) {\n",
              "                (_mp690)._left7 = _mr691;\n",
              "            } else {\n",
              "                (_mp690)._right8 = _mr691;\n",
              "            }\n",
              "        }\n",
              "        if (!((_mr691) == null)) {\n",
              "            (_mr691)._parent9 = _mp690;\n",
              "        }\n",
              "        /* replace __x with _x687 in _parent682 */\n",
              "        if (!((_parent682) == null)) {\n",
              "            if (((_parent682)._left7) == (__x)) {\n",
              "                (_parent682)._left7 = _x687;\n",
              "            } else {\n",
              "                (_parent682)._right8 = _x687;\n",
              "            }\n",
              "        }\n",
              "        if (!((_x687) == null)) {\n",
              "            (_x687)._parent9 = _parent682;\n",
              "        }\n",
              "        /* replace null with _left683 in _x687 */\n",
              "        (_x687)._left7 = _left683;\n",
              "        if (!((_left683) == null)) {\n",
              "            (_left683)._parent9 = _x687;\n",
              "        }\n",
              "        /* replace _mr691 with (__x)._right8 in _x687 */\n",
              "        (_x687)._right8 = (__x)._right8;\n",
              "        if (!(((__x)._right8) == null)) {\n",
              "            ((__x)._right8)._parent9 = _x687;\n",
              "        }\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval692 = (_x687).ax1;\n",
              "        var _child693 = (_x687)._left7;\n",
              "        if (!((_child693) == null)) {\n",
              "            var _val694 = (_child693)._min_ax12;\n",
              "            _augval692 = ((_augval692) < (_val694)) ? (_augval692) : (_val694);\n",
              "        }\n",
              "        var _child695 = (_x687)._right8;\n",
              "        if (!((_child695) == null)) {\n",
              "            var _val696 = (_child695)._min_ax12;\n",
              "            _augval692 = ((_augval692) < (_val696)) ? (_augval692) : (_val696);\n",
              "        }\n",
              "        (_x687)._min_ax12 = _augval692;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval697 = (_x687).ay1;\n",
              "        var _child698 = (_x687)._left7;\n",
              "        if (!((_child698) == null)) {\n",
              "            var _val699 = (_child698)._min_ay13;\n",
              "            _augval697 = ((_augval697) < (_val699)) ? (_augval697) : (_val699);\n",
              "        }\n",
              "        var _child700 = (_x687)._right8;\n",
              "        if (!((_child700) == null)) {\n",
              "            var _val701 = (_child700)._min_ay13;\n",
              "            _augval697 = ((_augval697) < (_val701)) ? (_augval697) : (_val701);\n",
              "        }\n",
              "        (_x687)._min_ay13 = _augval697;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval702 = (_x687).ay2;\n",
              "        var _child703 = (_x687)._left7;\n",
              "        if (!((_child703) == null)) {\n",
              "            var _val704 = (_child703)._max_ay24;\n",
              "            _augval702 = ((_augval702) < (_val704)) ? (_val704) : (_augval702);\n",
              "        }\n",
              "        var _child705 = (_x687)._right8;\n",
              "        if (!((_child705) == null)) {\n",
              "            var _val706 = (_child705)._max_ay24;\n",
              "            _augval702 = ((_augval702) < (_val706)) ? (_val706) : (_augval702);\n",
              "        }\n",
              "        (_x687)._max_ay24 = _augval702;\n",
              "        (_x687)._height10 = 1 + ((((((_x687)._left7) == null) ? (-1) : (((_x687)._left7)._height10)) > ((((_x687)._right8) == null) ? (-1) : (((_x687)._right8)._height10))) ? ((((_x687)._left7) == null) ? (-1) : (((_x687)._left7)._height10)) : ((((_x687)._right8) == null) ? (-1) : (((_x687)._right8)._height10)));\n",
              "        var _cursor707 = _mp690;\n",
              "        var _changed708 = true;\n",
              "        while ((_changed708) && (!((_cursor707) == (_parent682)))) {\n",
              "            var _old__min_ax12709 = (_cursor707)._min_ax12;\n",
              "            var _old__min_ay13710 = (_cursor707)._min_ay13;\n",
              "            var _old__max_ay24711 = (_cursor707)._max_ay24;\n",
              "            var _old_height712 = (_cursor707)._height10;\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval713 = (_cursor707).ax1;\n",
              "            var _child714 = (_cursor707)._left7;\n",
              "            if (!((_child714) == null)) {\n",
              "                var _val715 = (_child714)._min_ax12;\n",
              "                _augval713 = ((_augval713) < (_val715)) ? (_augval713) : (_val715);\n",
              "            }\n",
              "            var _child716 = (_cursor707)._right8;\n",
              "            if (!((_child716) == null)) {\n",
              "                var _val717 = (_child716)._min_ax12;\n",
              "                _augval713 = ((_augval713) < (_val717)) ? (_augval713) : (_val717);\n",
              "            }\n",
              "            (_cursor707)._min_ax12 = _augval713;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval718 = (_cursor707).ay1;\n",
              "            var _child719 = (_cursor707)._left7;\n",
              "            if (!((_child719) == null)) {\n",
              "                var _val720 = (_child719)._min_ay13;\n",
              "                _augval718 = ((_augval718) < (_val720)) ? (_augval718) : (_val720);\n",
              "            }\n",
              "            var _child721 = (_cursor707)._right8;\n",
              "            if (!((_child721) == null)) {\n",
              "                var _val722 = (_child721)._min_ay13;\n",
              "                _augval718 = ((_augval718) < (_val722)) ? (_augval718) : (_val722);\n",
              "            }\n",
              "            (_cursor707)._min_ay13 = _augval718;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval723 = (_cursor707).ay2;\n",
              "            var _child724 = (_cursor707)._left7;\n",
              "            if (!((_child724) == null)) {\n",
              "                var _val725 = (_child724)._max_ay24;\n",
              "                _augval723 = ((_augval723) < (_val725)) ? (_val725) : (_augval723);\n",
              "            }\n",
              "            var _child726 = (_cursor707)._right8;\n",
              "            if (!((_child726) == null)) {\n",
              "                var _val727 = (_child726)._max_ay24;\n",
              "                _augval723 = ((_augval723) < (_val727)) ? (_val727) : (_augval723);\n",
              "            }\n",
              "            (_cursor707)._max_ay24 = _augval723;\n",
              "            (_cursor707)._height10 = 1 + ((((((_cursor707)._left7) == null) ? (-1) : (((_cursor707)._left7)._height10)) > ((((_cursor707)._right8) == null) ? (-1) : (((_cursor707)._right8)._height10))) ? ((((_cursor707)._left7) == null) ? (-1) : (((_cursor707)._left7)._height10)) : ((((_cursor707)._right8) == null) ? (-1) : (((_cursor707)._right8)._height10)));\n",
              "            _changed708 = false;\n",
              "            _changed708 = (_changed708) || (!((_old__min_ax12709) == ((_cursor707)._min_ax12)));\n",
              "            _changed708 = (_changed708) || (!((_old__min_ay13710) == ((_cursor707)._min_ay13)));\n",
              "            _changed708 = (_changed708) || (!((_old__max_ay24711) == ((_cursor707)._max_ay24)));\n",
              "            _changed708 = (_changed708) || (!((_old_height712) == ((_cursor707)._height10)));\n",
              "            _cursor707 = (_cursor707)._parent9;\n",
              "        }\n",
              "    }\n",
              "    var _cursor728 = _parent682;\n",
              "    var _changed729 = true;\n",
              "    while ((_changed729) && (!((_cursor728) == (null)))) {\n",
              "        var _old__min_ax12730 = (_cursor728)._min_ax12;\n",
              "        var _old__min_ay13731 = (_cursor728)._min_ay13;\n",
              "        var _old__max_ay24732 = (_cursor728)._max_ay24;\n",
              "        var _old_height733 = (_cursor728)._height10;\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval734 = (_cursor728).ax1;\n",
              "        var _child735 = (_cursor728)._left7;\n",
              "        if (!((_child735) == null)) {\n",
              "            var _val736 = (_child735)._min_ax12;\n",
              "            _augval734 = ((_augval734) < (_val736)) ? (_augval734) : (_val736);\n",
              "        }\n",
              "        var _child737 = (_cursor728)._right8;\n",
              "        if (!((_child737) == null)) {\n",
              "            var _val738 = (_child737)._min_ax12;\n",
              "            _augval734 = ((_augval734) < (_val738)) ? (_augval734) : (_val738);\n",
              "        }\n",
              "        (_cursor728)._min_ax12 = _augval734;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval739 = (_cursor728).ay1;\n",
              "        var _child740 = (_cursor728)._left7;\n",
              "        if (!((_child740) == null)) {\n",
              "            var _val741 = (_child740)._min_ay13;\n",
              "            _augval739 = ((_augval739) < (_val741)) ? (_augval739) : (_val741);\n",
              "        }\n",
              "        var _child742 = (_cursor728)._right8;\n",
              "        if (!((_child742) == null)) {\n",
              "            var _val743 = (_child742)._min_ay13;\n",
              "            _augval739 = ((_augval739) < (_val743)) ? (_augval739) : (_val743);\n",
              "        }\n",
              "        (_cursor728)._min_ay13 = _augval739;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval744 = (_cursor728).ay2;\n",
              "        var _child745 = (_cursor728)._left7;\n",
              "        if (!((_child745) == null)) {\n",
              "            var _val746 = (_child745)._max_ay24;\n",
              "            _augval744 = ((_augval744) < (_val746)) ? (_val746) : (_augval744);\n",
              "        }\n",
              "        var _child747 = (_cursor728)._right8;\n",
              "        if (!((_child747) == null)) {\n",
              "            var _val748 = (_child747)._max_ay24;\n",
              "            _augval744 = ((_augval744) < (_val748)) ? (_val748) : (_augval744);\n",
              "        }\n",
              "        (_cursor728)._max_ay24 = _augval744;\n",
              "        (_cursor728)._height10 = 1 + ((((((_cursor728)._left7) == null) ? (-1) : (((_cursor728)._left7)._height10)) > ((((_cursor728)._right8) == null) ? (-1) : (((_cursor728)._right8)._height10))) ? ((((_cursor728)._left7) == null) ? (-1) : (((_cursor728)._left7)._height10)) : ((((_cursor728)._right8) == null) ? (-1) : (((_cursor728)._right8)._height10)));\n",
              "        _changed729 = false;\n",
              "        _changed729 = (_changed729) || (!((_old__min_ax12730) == ((_cursor728)._min_ax12)));\n",
              "        _changed729 = (_changed729) || (!((_old__min_ay13731) == ((_cursor728)._min_ay13)));\n",
              "        _changed729 = (_changed729) || (!((_old__max_ay24732) == ((_cursor728)._max_ay24)));\n",
              "        _changed729 = (_changed729) || (!((_old_height733) == ((_cursor728)._height10)));\n",
              "        _cursor728 = (_cursor728)._parent9;\n",
              "    }\n",
              "    if (((this)._root1) == (__x)) {\n",
              "        (this)._root1 = _new_x685;\n",
              "    }\n",
              "    (__x)._left7 = null;\n",
              "    (__x)._right8 = null;\n",
              "    (__x)._min_ax12 = (__x).ax1;\n",
              "    (__x)._min_ay13 = (__x).ay1;\n",
              "    (__x)._max_ay24 = (__x).ay2;\n",
              "    (__x)._height10 = 0;\n",
              "    var _previous749 = null;\n",
              "    var _current750 = (this)._root1;\n",
              "    var _is_left751 = false;\n",
              "    while (!((_current750) == null)) {\n",
              "        _previous749 = _current750;\n",
              "        if ((ax2) < ((_current750).ax2)) {\n",
              "            _current750 = (_current750)._left7;\n",
              "            _is_left751 = true;\n",
              "        } else {\n",
              "            _current750 = (_current750)._right8;\n",
              "            _is_left751 = false;\n",
              "        }\n",
              "    }\n",
              "    if ((_previous749) == null) {\n",
              "        (this)._root1 = __x;\n",
              "    } else {\n",
              "        (__x)._parent9 = _previous749;\n",
              "        if (_is_left751) {\n",
              "            (_previous749)._left7 = __x;\n",
              "        } else {\n",
              "            (_previous749)._right8 = __x;\n",
              "        }\n",
              "    }\n",
              "    var _cursor752 = (__x)._parent9;\n",
              "    var _changed753 = true;\n",
              "    while ((_changed753) && (!((_cursor752) == (null)))) {\n",
              "        var _old__min_ax12754 = (_cursor752)._min_ax12;\n",
              "        var _old__min_ay13755 = (_cursor752)._min_ay13;\n",
              "        var _old__max_ay24756 = (_cursor752)._max_ay24;\n",
              "        var _old_height757 = (_cursor752)._height10;\n",
              "        /* _min_ax12 is min of ax1 */\n",
              "        var _augval758 = (_cursor752).ax1;\n",
              "        var _child759 = (_cursor752)._left7;\n",
              "        if (!((_child759) == null)) {\n",
              "            var _val760 = (_child759)._min_ax12;\n",
              "            _augval758 = ((_augval758) < (_val760)) ? (_augval758) : (_val760);\n",
              "        }\n",
              "        var _child761 = (_cursor752)._right8;\n",
              "        if (!((_child761) == null)) {\n",
              "            var _val762 = (_child761)._min_ax12;\n",
              "            _augval758 = ((_augval758) < (_val762)) ? (_augval758) : (_val762);\n",
              "        }\n",
              "        (_cursor752)._min_ax12 = _augval758;\n",
              "        /* _min_ay13 is min of ay1 */\n",
              "        var _augval763 = (_cursor752).ay1;\n",
              "        var _child764 = (_cursor752)._left7;\n",
              "        if (!((_child764) == null)) {\n",
              "            var _val765 = (_child764)._min_ay13;\n",
              "            _augval763 = ((_augval763) < (_val765)) ? (_augval763) : (_val765);\n",
              "        }\n",
              "        var _child766 = (_cursor752)._right8;\n",
              "        if (!((_child766) == null)) {\n",
              "            var _val767 = (_child766)._min_ay13;\n",
              "            _augval763 = ((_augval763) < (_val767)) ? (_augval763) : (_val767);\n",
              "        }\n",
              "        (_cursor752)._min_ay13 = _augval763;\n",
              "        /* _max_ay24 is max of ay2 */\n",
              "        var _augval768 = (_cursor752).ay2;\n",
              "        var _child769 = (_cursor752)._left7;\n",
              "        if (!((_child769) == null)) {\n",
              "            var _val770 = (_child769)._max_ay24;\n",
              "            _augval768 = ((_augval768) < (_val770)) ? (_val770) : (_augval768);\n",
              "        }\n",
              "        var _child771 = (_cursor752)._right8;\n",
              "        if (!((_child771) == null)) {\n",
              "            var _val772 = (_child771)._max_ay24;\n",
              "            _augval768 = ((_augval768) < (_val772)) ? (_val772) : (_augval768);\n",
              "        }\n",
              "        (_cursor752)._max_ay24 = _augval768;\n",
              "        (_cursor752)._height10 = 1 + ((((((_cursor752)._left7) == null) ? (-1) : (((_cursor752)._left7)._height10)) > ((((_cursor752)._right8) == null) ? (-1) : (((_cursor752)._right8)._height10))) ? ((((_cursor752)._left7) == null) ? (-1) : (((_cursor752)._left7)._height10)) : ((((_cursor752)._right8) == null) ? (-1) : (((_cursor752)._right8)._height10)));\n",
              "        _changed753 = false;\n",
              "        _changed753 = (_changed753) || (!((_old__min_ax12754) == ((_cursor752)._min_ax12)));\n",
              "        _changed753 = (_changed753) || (!((_old__min_ay13755) == ((_cursor752)._min_ay13)));\n",
              "        _changed753 = (_changed753) || (!((_old__max_ay24756) == ((_cursor752)._max_ay24)));\n",
              "        _changed753 = (_changed753) || (!((_old_height757) == ((_cursor752)._height10)));\n",
              "        _cursor752 = (_cursor752)._parent9;\n",
              "    }\n",
              "    /* rebalance AVL tree */\n",
              "    var _cursor773 = __x;\n",
              "    var _imbalance774;\n",
              "    while (!(((_cursor773)._parent9) == null)) {\n",
              "        _cursor773 = (_cursor773)._parent9;\n",
              "        (_cursor773)._height10 = 1 + ((((((_cursor773)._left7) == null) ? (-1) : (((_cursor773)._left7)._height10)) > ((((_cursor773)._right8) == null) ? (-1) : (((_cursor773)._right8)._height10))) ? ((((_cursor773)._left7) == null) ? (-1) : (((_cursor773)._left7)._height10)) : ((((_cursor773)._right8) == null) ? (-1) : (((_cursor773)._right8)._height10)));\n",
              "        _imbalance774 = ((((_cursor773)._left7) == null) ? (-1) : (((_cursor773)._left7)._height10)) - ((((_cursor773)._right8) == null) ? (-1) : (((_cursor773)._right8)._height10));\n",
              "        if ((_imbalance774) > (1)) {\n",
              "            if ((((((_cursor773)._left7)._left7) == null) ? (-1) : ((((_cursor773)._left7)._left7)._height10)) < (((((_cursor773)._left7)._right8) == null) ? (-1) : ((((_cursor773)._left7)._right8)._height10))) {\n",
              "                /* rotate ((_cursor773)._left7)._right8 */\n",
              "                var _a775 = (_cursor773)._left7;\n",
              "                var _b776 = (_a775)._right8;\n",
              "                var _c777 = (_b776)._left7;\n",
              "                /* replace _a775 with _b776 in (_a775)._parent9 */\n",
              "                if (!(((_a775)._parent9) == null)) {\n",
              "                    if ((((_a775)._parent9)._left7) == (_a775)) {\n",
              "                        ((_a775)._parent9)._left7 = _b776;\n",
              "                    } else {\n",
              "                        ((_a775)._parent9)._right8 = _b776;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b776) == null)) {\n",
              "                    (_b776)._parent9 = (_a775)._parent9;\n",
              "                }\n",
              "                /* replace _c777 with _a775 in _b776 */\n",
              "                (_b776)._left7 = _a775;\n",
              "                if (!((_a775) == null)) {\n",
              "                    (_a775)._parent9 = _b776;\n",
              "                }\n",
              "                /* replace _b776 with _c777 in _a775 */\n",
              "                (_a775)._right8 = _c777;\n",
              "                if (!((_c777) == null)) {\n",
              "                    (_c777)._parent9 = _a775;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval778 = (_a775).ax1;\n",
              "                var _child779 = (_a775)._left7;\n",
              "                if (!((_child779) == null)) {\n",
              "                    var _val780 = (_child779)._min_ax12;\n",
              "                    _augval778 = ((_augval778) < (_val780)) ? (_augval778) : (_val780);\n",
              "                }\n",
              "                var _child781 = (_a775)._right8;\n",
              "                if (!((_child781) == null)) {\n",
              "                    var _val782 = (_child781)._min_ax12;\n",
              "                    _augval778 = ((_augval778) < (_val782)) ? (_augval778) : (_val782);\n",
              "                }\n",
              "                (_a775)._min_ax12 = _augval778;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval783 = (_a775).ay1;\n",
              "                var _child784 = (_a775)._left7;\n",
              "                if (!((_child784) == null)) {\n",
              "                    var _val785 = (_child784)._min_ay13;\n",
              "                    _augval783 = ((_augval783) < (_val785)) ? (_augval783) : (_val785);\n",
              "                }\n",
              "                var _child786 = (_a775)._right8;\n",
              "                if (!((_child786) == null)) {\n",
              "                    var _val787 = (_child786)._min_ay13;\n",
              "                    _augval783 = ((_augval783) < (_val787)) ? (_augval783) : (_val787);\n",
              "                }\n",
              "                (_a775)._min_ay13 = _augval783;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval788 = (_a775).ay2;\n",
              "                var _child789 = (_a775)._left7;\n",
              "                if (!((_child789) == null)) {\n",
              "                    var _val790 = (_child789)._max_ay24;\n",
              "                    _augval788 = ((_augval788) < (_val790)) ? (_val790) : (_augval788);\n",
              "                }\n",
              "                var _child791 = (_a775)._right8;\n",
              "                if (!((_child791) == null)) {\n",
              "                    var _val792 = (_child791)._max_ay24;\n",
              "                    _augval788 = ((_augval788) < (_val792)) ? (_val792) : (_augval788);\n",
              "                }\n",
              "                (_a775)._max_ay24 = _augval788;\n",
              "                (_a775)._height10 = 1 + ((((((_a775)._left7) == null) ? (-1) : (((_a775)._left7)._height10)) > ((((_a775)._right8) == null) ? (-1) : (((_a775)._right8)._height10))) ? ((((_a775)._left7) == null) ? (-1) : (((_a775)._left7)._height10)) : ((((_a775)._right8) == null) ? (-1) : (((_a775)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval793 = (_b776).ax1;\n",
              "                var _child794 = (_b776)._left7;\n",
              "                if (!((_child794) == null)) {\n",
              "                    var _val795 = (_child794)._min_ax12;\n",
              "                    _augval793 = ((_augval793) < (_val795)) ? (_augval793) : (_val795);\n",
              "                }\n",
              "                var _child796 = (_b776)._right8;\n",
              "                if (!((_child796) == null)) {\n",
              "                    var _val797 = (_child796)._min_ax12;\n",
              "                    _augval793 = ((_augval793) < (_val797)) ? (_augval793) : (_val797);\n",
              "                }\n",
              "                (_b776)._min_ax12 = _augval793;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval798 = (_b776).ay1;\n",
              "                var _child799 = (_b776)._left7;\n",
              "                if (!((_child799) == null)) {\n",
              "                    var _val800 = (_child799)._min_ay13;\n",
              "                    _augval798 = ((_augval798) < (_val800)) ? (_augval798) : (_val800);\n",
              "                }\n",
              "                var _child801 = (_b776)._right8;\n",
              "                if (!((_child801) == null)) {\n",
              "                    var _val802 = (_child801)._min_ay13;\n",
              "                    _augval798 = ((_augval798) < (_val802)) ? (_augval798) : (_val802);\n",
              "                }\n",
              "                (_b776)._min_ay13 = _augval798;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval803 = (_b776).ay2;\n",
              "                var _child804 = (_b776)._left7;\n",
              "                if (!((_child804) == null)) {\n",
              "                    var _val805 = (_child804)._max_ay24;\n",
              "                    _augval803 = ((_augval803) < (_val805)) ? (_val805) : (_augval803);\n",
              "                }\n",
              "                var _child806 = (_b776)._right8;\n",
              "                if (!((_child806) == null)) {\n",
              "                    var _val807 = (_child806)._max_ay24;\n",
              "                    _augval803 = ((_augval803) < (_val807)) ? (_val807) : (_augval803);\n",
              "                }\n",
              "                (_b776)._max_ay24 = _augval803;\n",
              "                (_b776)._height10 = 1 + ((((((_b776)._left7) == null) ? (-1) : (((_b776)._left7)._height10)) > ((((_b776)._right8) == null) ? (-1) : (((_b776)._right8)._height10))) ? ((((_b776)._left7) == null) ? (-1) : (((_b776)._left7)._height10)) : ((((_b776)._right8) == null) ? (-1) : (((_b776)._right8)._height10)));\n",
              "                if (!(((_b776)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval808 = ((_b776)._parent9).ax1;\n",
              "                    var _child809 = ((_b776)._parent9)._left7;\n",
              "                    if (!((_child809) == null)) {\n",
              "                        var _val810 = (_child809)._min_ax12;\n",
              "                        _augval808 = ((_augval808) < (_val810)) ? (_augval808) : (_val810);\n",
              "                    }\n",
              "                    var _child811 = ((_b776)._parent9)._right8;\n",
              "                    if (!((_child811) == null)) {\n",
              "                        var _val812 = (_child811)._min_ax12;\n",
              "                        _augval808 = ((_augval808) < (_val812)) ? (_augval808) : (_val812);\n",
              "                    }\n",
              "                    ((_b776)._parent9)._min_ax12 = _augval808;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval813 = ((_b776)._parent9).ay1;\n",
              "                    var _child814 = ((_b776)._parent9)._left7;\n",
              "                    if (!((_child814) == null)) {\n",
              "                        var _val815 = (_child814)._min_ay13;\n",
              "                        _augval813 = ((_augval813) < (_val815)) ? (_augval813) : (_val815);\n",
              "                    }\n",
              "                    var _child816 = ((_b776)._parent9)._right8;\n",
              "                    if (!((_child816) == null)) {\n",
              "                        var _val817 = (_child816)._min_ay13;\n",
              "                        _augval813 = ((_augval813) < (_val817)) ? (_augval813) : (_val817);\n",
              "                    }\n",
              "                    ((_b776)._parent9)._min_ay13 = _augval813;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval818 = ((_b776)._parent9).ay2;\n",
              "                    var _child819 = ((_b776)._parent9)._left7;\n",
              "                    if (!((_child819) == null)) {\n",
              "                        var _val820 = (_child819)._max_ay24;\n",
              "                        _augval818 = ((_augval818) < (_val820)) ? (_val820) : (_augval818);\n",
              "                    }\n",
              "                    var _child821 = ((_b776)._parent9)._right8;\n",
              "                    if (!((_child821) == null)) {\n",
              "                        var _val822 = (_child821)._max_ay24;\n",
              "                        _augval818 = ((_augval818) < (_val822)) ? (_val822) : (_augval818);\n",
              "                    }\n",
              "                    ((_b776)._parent9)._max_ay24 = _augval818;\n",
              "                    ((_b776)._parent9)._height10 = 1 + (((((((_b776)._parent9)._left7) == null) ? (-1) : ((((_b776)._parent9)._left7)._height10)) > (((((_b776)._parent9)._right8) == null) ? (-1) : ((((_b776)._parent9)._right8)._height10))) ? (((((_b776)._parent9)._left7) == null) ? (-1) : ((((_b776)._parent9)._left7)._height10)) : (((((_b776)._parent9)._right8) == null) ? (-1) : ((((_b776)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b776;\n",
              "                }\n",
              "            }\n",
              "            /* rotate (_cursor773)._left7 */\n",
              "            var _a823 = _cursor773;\n",
              "            var _b824 = (_a823)._left7;\n",
              "            var _c825 = (_b824)._right8;\n",
              "            /* replace _a823 with _b824 in (_a823)._parent9 */\n",
              "            if (!(((_a823)._parent9) == null)) {\n",
              "                if ((((_a823)._parent9)._left7) == (_a823)) {\n",
              "                    ((_a823)._parent9)._left7 = _b824;\n",
              "                } else {\n",
              "                    ((_a823)._parent9)._right8 = _b824;\n",
              "                }\n",
              "            }\n",
              "            if (!((_b824) == null)) {\n",
              "                (_b824)._parent9 = (_a823)._parent9;\n",
              "            }\n",
              "            /* replace _c825 with _a823 in _b824 */\n",
              "            (_b824)._right8 = _a823;\n",
              "            if (!((_a823) == null)) {\n",
              "                (_a823)._parent9 = _b824;\n",
              "            }\n",
              "            /* replace _b824 with _c825 in _a823 */\n",
              "            (_a823)._left7 = _c825;\n",
              "            if (!((_c825) == null)) {\n",
              "                (_c825)._parent9 = _a823;\n",
              "            }\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval826 = (_a823).ax1;\n",
              "            var _child827 = (_a823)._left7;\n",
              "            if (!((_child827) == null)) {\n",
              "                var _val828 = (_child827)._min_ax12;\n",
              "                _augval826 = ((_augval826) < (_val828)) ? (_augval826) : (_val828);\n",
              "            }\n",
              "            var _child829 = (_a823)._right8;\n",
              "            if (!((_child829) == null)) {\n",
              "                var _val830 = (_child829)._min_ax12;\n",
              "                _augval826 = ((_augval826) < (_val830)) ? (_augval826) : (_val830);\n",
              "            }\n",
              "            (_a823)._min_ax12 = _augval826;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval831 = (_a823).ay1;\n",
              "            var _child832 = (_a823)._left7;\n",
              "            if (!((_child832) == null)) {\n",
              "                var _val833 = (_child832)._min_ay13;\n",
              "                _augval831 = ((_augval831) < (_val833)) ? (_augval831) : (_val833);\n",
              "            }\n",
              "            var _child834 = (_a823)._right8;\n",
              "            if (!((_child834) == null)) {\n",
              "                var _val835 = (_child834)._min_ay13;\n",
              "                _augval831 = ((_augval831) < (_val835)) ? (_augval831) : (_val835);\n",
              "            }\n",
              "            (_a823)._min_ay13 = _augval831;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval836 = (_a823).ay2;\n",
              "            var _child837 = (_a823)._left7;\n",
              "            if (!((_child837) == null)) {\n",
              "                var _val838 = (_child837)._max_ay24;\n",
              "                _augval836 = ((_augval836) < (_val838)) ? (_val838) : (_augval836);\n",
              "            }\n",
              "            var _child839 = (_a823)._right8;\n",
              "            if (!((_child839) == null)) {\n",
              "                var _val840 = (_child839)._max_ay24;\n",
              "                _augval836 = ((_augval836) < (_val840)) ? (_val840) : (_augval836);\n",
              "            }\n",
              "            (_a823)._max_ay24 = _augval836;\n",
              "            (_a823)._height10 = 1 + ((((((_a823)._left7) == null) ? (-1) : (((_a823)._left7)._height10)) > ((((_a823)._right8) == null) ? (-1) : (((_a823)._right8)._height10))) ? ((((_a823)._left7) == null) ? (-1) : (((_a823)._left7)._height10)) : ((((_a823)._right8) == null) ? (-1) : (((_a823)._right8)._height10)));\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval841 = (_b824).ax1;\n",
              "            var _child842 = (_b824)._left7;\n",
              "            if (!((_child842) == null)) {\n",
              "                var _val843 = (_child842)._min_ax12;\n",
              "                _augval841 = ((_augval841) < (_val843)) ? (_augval841) : (_val843);\n",
              "            }\n",
              "            var _child844 = (_b824)._right8;\n",
              "            if (!((_child844) == null)) {\n",
              "                var _val845 = (_child844)._min_ax12;\n",
              "                _augval841 = ((_augval841) < (_val845)) ? (_augval841) : (_val845);\n",
              "            }\n",
              "            (_b824)._min_ax12 = _augval841;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval846 = (_b824).ay1;\n",
              "            var _child847 = (_b824)._left7;\n",
              "            if (!((_child847) == null)) {\n",
              "                var _val848 = (_child847)._min_ay13;\n",
              "                _augval846 = ((_augval846) < (_val848)) ? (_augval846) : (_val848);\n",
              "            }\n",
              "            var _child849 = (_b824)._right8;\n",
              "            if (!((_child849) == null)) {\n",
              "                var _val850 = (_child849)._min_ay13;\n",
              "                _augval846 = ((_augval846) < (_val850)) ? (_augval846) : (_val850);\n",
              "            }\n",
              "            (_b824)._min_ay13 = _augval846;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval851 = (_b824).ay2;\n",
              "            var _child852 = (_b824)._left7;\n",
              "            if (!((_child852) == null)) {\n",
              "                var _val853 = (_child852)._max_ay24;\n",
              "                _augval851 = ((_augval851) < (_val853)) ? (_val853) : (_augval851);\n",
              "            }\n",
              "            var _child854 = (_b824)._right8;\n",
              "            if (!((_child854) == null)) {\n",
              "                var _val855 = (_child854)._max_ay24;\n",
              "                _augval851 = ((_augval851) < (_val855)) ? (_val855) : (_augval851);\n",
              "            }\n",
              "            (_b824)._max_ay24 = _augval851;\n",
              "            (_b824)._height10 = 1 + ((((((_b824)._left7) == null) ? (-1) : (((_b824)._left7)._height10)) > ((((_b824)._right8) == null) ? (-1) : (((_b824)._right8)._height10))) ? ((((_b824)._left7) == null) ? (-1) : (((_b824)._left7)._height10)) : ((((_b824)._right8) == null) ? (-1) : (((_b824)._right8)._height10)));\n",
              "            if (!(((_b824)._parent9) == null)) {\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval856 = ((_b824)._parent9).ax1;\n",
              "                var _child857 = ((_b824)._parent9)._left7;\n",
              "                if (!((_child857) == null)) {\n",
              "                    var _val858 = (_child857)._min_ax12;\n",
              "                    _augval856 = ((_augval856) < (_val858)) ? (_augval856) : (_val858);\n",
              "                }\n",
              "                var _child859 = ((_b824)._parent9)._right8;\n",
              "                if (!((_child859) == null)) {\n",
              "                    var _val860 = (_child859)._min_ax12;\n",
              "                    _augval856 = ((_augval856) < (_val860)) ? (_augval856) : (_val860);\n",
              "                }\n",
              "                ((_b824)._parent9)._min_ax12 = _augval856;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval861 = ((_b824)._parent9).ay1;\n",
              "                var _child862 = ((_b824)._parent9)._left7;\n",
              "                if (!((_child862) == null)) {\n",
              "                    var _val863 = (_child862)._min_ay13;\n",
              "                    _augval861 = ((_augval861) < (_val863)) ? (_augval861) : (_val863);\n",
              "                }\n",
              "                var _child864 = ((_b824)._parent9)._right8;\n",
              "                if (!((_child864) == null)) {\n",
              "                    var _val865 = (_child864)._min_ay13;\n",
              "                    _augval861 = ((_augval861) < (_val865)) ? (_augval861) : (_val865);\n",
              "                }\n",
              "                ((_b824)._parent9)._min_ay13 = _augval861;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval866 = ((_b824)._parent9).ay2;\n",
              "                var _child867 = ((_b824)._parent9)._left7;\n",
              "                if (!((_child867) == null)) {\n",
              "                    var _val868 = (_child867)._max_ay24;\n",
              "                    _augval866 = ((_augval866) < (_val868)) ? (_val868) : (_augval866);\n",
              "                }\n",
              "                var _child869 = ((_b824)._parent9)._right8;\n",
              "                if (!((_child869) == null)) {\n",
              "                    var _val870 = (_child869)._max_ay24;\n",
              "                    _augval866 = ((_augval866) < (_val870)) ? (_val870) : (_augval866);\n",
              "                }\n",
              "                ((_b824)._parent9)._max_ay24 = _augval866;\n",
              "                ((_b824)._parent9)._height10 = 1 + (((((((_b824)._parent9)._left7) == null) ? (-1) : ((((_b824)._parent9)._left7)._height10)) > (((((_b824)._parent9)._right8) == null) ? (-1) : ((((_b824)._parent9)._right8)._height10))) ? (((((_b824)._parent9)._left7) == null) ? (-1) : ((((_b824)._parent9)._left7)._height10)) : (((((_b824)._parent9)._right8) == null) ? (-1) : ((((_b824)._parent9)._right8)._height10)));\n",
              "            } else {\n",
              "                (this)._root1 = _b824;\n",
              "            }\n",
              "            _cursor773 = (_cursor773)._parent9;\n",
              "        } else if ((_imbalance774) < (-1)) {\n",
              "            if ((((((_cursor773)._right8)._left7) == null) ? (-1) : ((((_cursor773)._right8)._left7)._height10)) > (((((_cursor773)._right8)._right8) == null) ? (-1) : ((((_cursor773)._right8)._right8)._height10))) {\n",
              "                /* rotate ((_cursor773)._right8)._left7 */\n",
              "                var _a871 = (_cursor773)._right8;\n",
              "                var _b872 = (_a871)._left7;\n",
              "                var _c873 = (_b872)._right8;\n",
              "                /* replace _a871 with _b872 in (_a871)._parent9 */\n",
              "                if (!(((_a871)._parent9) == null)) {\n",
              "                    if ((((_a871)._parent9)._left7) == (_a871)) {\n",
              "                        ((_a871)._parent9)._left7 = _b872;\n",
              "                    } else {\n",
              "                        ((_a871)._parent9)._right8 = _b872;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_b872) == null)) {\n",
              "                    (_b872)._parent9 = (_a871)._parent9;\n",
              "                }\n",
              "                /* replace _c873 with _a871 in _b872 */\n",
              "                (_b872)._right8 = _a871;\n",
              "                if (!((_a871) == null)) {\n",
              "                    (_a871)._parent9 = _b872;\n",
              "                }\n",
              "                /* replace _b872 with _c873 in _a871 */\n",
              "                (_a871)._left7 = _c873;\n",
              "                if (!((_c873) == null)) {\n",
              "                    (_c873)._parent9 = _a871;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval874 = (_a871).ax1;\n",
              "                var _child875 = (_a871)._left7;\n",
              "                if (!((_child875) == null)) {\n",
              "                    var _val876 = (_child875)._min_ax12;\n",
              "                    _augval874 = ((_augval874) < (_val876)) ? (_augval874) : (_val876);\n",
              "                }\n",
              "                var _child877 = (_a871)._right8;\n",
              "                if (!((_child877) == null)) {\n",
              "                    var _val878 = (_child877)._min_ax12;\n",
              "                    _augval874 = ((_augval874) < (_val878)) ? (_augval874) : (_val878);\n",
              "                }\n",
              "                (_a871)._min_ax12 = _augval874;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval879 = (_a871).ay1;\n",
              "                var _child880 = (_a871)._left7;\n",
              "                if (!((_child880) == null)) {\n",
              "                    var _val881 = (_child880)._min_ay13;\n",
              "                    _augval879 = ((_augval879) < (_val881)) ? (_augval879) : (_val881);\n",
              "                }\n",
              "                var _child882 = (_a871)._right8;\n",
              "                if (!((_child882) == null)) {\n",
              "                    var _val883 = (_child882)._min_ay13;\n",
              "                    _augval879 = ((_augval879) < (_val883)) ? (_augval879) : (_val883);\n",
              "                }\n",
              "                (_a871)._min_ay13 = _augval879;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval884 = (_a871).ay2;\n",
              "                var _child885 = (_a871)._left7;\n",
              "                if (!((_child885) == null)) {\n",
              "                    var _val886 = (_child885)._max_ay24;\n",
              "                    _augval884 = ((_augval884) < (_val886)) ? (_val886) : (_augval884);\n",
              "                }\n",
              "                var _child887 = (_a871)._right8;\n",
              "                if (!((_child887) == null)) {\n",
              "                    var _val888 = (_child887)._max_ay24;\n",
              "                    _augval884 = ((_augval884) < (_val888)) ? (_val888) : (_augval884);\n",
              "                }\n",
              "                (_a871)._max_ay24 = _augval884;\n",
              "                (_a871)._height10 = 1 + ((((((_a871)._left7) == null) ? (-1) : (((_a871)._left7)._height10)) > ((((_a871)._right8) == null) ? (-1) : (((_a871)._right8)._height10))) ? ((((_a871)._left7) == null) ? (-1) : (((_a871)._left7)._height10)) : ((((_a871)._right8) == null) ? (-1) : (((_a871)._right8)._height10)));\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval889 = (_b872).ax1;\n",
              "                var _child890 = (_b872)._left7;\n",
              "                if (!((_child890) == null)) {\n",
              "                    var _val891 = (_child890)._min_ax12;\n",
              "                    _augval889 = ((_augval889) < (_val891)) ? (_augval889) : (_val891);\n",
              "                }\n",
              "                var _child892 = (_b872)._right8;\n",
              "                if (!((_child892) == null)) {\n",
              "                    var _val893 = (_child892)._min_ax12;\n",
              "                    _augval889 = ((_augval889) < (_val893)) ? (_augval889) : (_val893);\n",
              "                }\n",
              "                (_b872)._min_ax12 = _augval889;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval894 = (_b872).ay1;\n",
              "                var _child895 = (_b872)._left7;\n",
              "                if (!((_child895) == null)) {\n",
              "                    var _val896 = (_child895)._min_ay13;\n",
              "                    _augval894 = ((_augval894) < (_val896)) ? (_augval894) : (_val896);\n",
              "                }\n",
              "                var _child897 = (_b872)._right8;\n",
              "                if (!((_child897) == null)) {\n",
              "                    var _val898 = (_child897)._min_ay13;\n",
              "                    _augval894 = ((_augval894) < (_val898)) ? (_augval894) : (_val898);\n",
              "                }\n",
              "                (_b872)._min_ay13 = _augval894;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval899 = (_b872).ay2;\n",
              "                var _child900 = (_b872)._left7;\n",
              "                if (!((_child900) == null)) {\n",
              "                    var _val901 = (_child900)._max_ay24;\n",
              "                    _augval899 = ((_augval899) < (_val901)) ? (_val901) : (_augval899);\n",
              "                }\n",
              "                var _child902 = (_b872)._right8;\n",
              "                if (!((_child902) == null)) {\n",
              "                    var _val903 = (_child902)._max_ay24;\n",
              "                    _augval899 = ((_augval899) < (_val903)) ? (_val903) : (_augval899);\n",
              "                }\n",
              "                (_b872)._max_ay24 = _augval899;\n",
              "                (_b872)._height10 = 1 + ((((((_b872)._left7) == null) ? (-1) : (((_b872)._left7)._height10)) > ((((_b872)._right8) == null) ? (-1) : (((_b872)._right8)._height10))) ? ((((_b872)._left7) == null) ? (-1) : (((_b872)._left7)._height10)) : ((((_b872)._right8) == null) ? (-1) : (((_b872)._right8)._height10)));\n",
              "                if (!(((_b872)._parent9) == null)) {\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval904 = ((_b872)._parent9).ax1;\n",
              "                    var _child905 = ((_b872)._parent9)._left7;\n",
              "                    if (!((_child905) == null)) {\n",
              "                        var _val906 = (_child905)._min_ax12;\n",
              "                        _augval904 = ((_augval904) < (_val906)) ? (_augval904) : (_val906);\n",
              "                    }\n",
              "                    var _child907 = ((_b872)._parent9)._right8;\n",
              "                    if (!((_child907) == null)) {\n",
              "                        var _val908 = (_child907)._min_ax12;\n",
              "                        _augval904 = ((_augval904) < (_val908)) ? (_augval904) : (_val908);\n",
              "                    }\n",
              "                    ((_b872)._parent9)._min_ax12 = _augval904;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval909 = ((_b872)._parent9).ay1;\n",
              "                    var _child910 = ((_b872)._parent9)._left7;\n",
              "                    if (!((_child910) == null)) {\n",
              "                        var _val911 = (_child910)._min_ay13;\n",
              "                        _augval909 = ((_augval909) < (_val911)) ? (_augval909) : (_val911);\n",
              "                    }\n",
              "                    var _child912 = ((_b872)._parent9)._right8;\n",
              "                    if (!((_child912) == null)) {\n",
              "                        var _val913 = (_child912)._min_ay13;\n",
              "                        _augval909 = ((_augval909) < (_val913)) ? (_augval909) : (_val913);\n",
              "                    }\n",
              "                    ((_b872)._parent9)._min_ay13 = _augval909;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval914 = ((_b872)._parent9).ay2;\n",
              "                    var _child915 = ((_b872)._parent9)._left7;\n",
              "                    if (!((_child915) == null)) {\n",
              "                        var _val916 = (_child915)._max_ay24;\n",
              "                        _augval914 = ((_augval914) < (_val916)) ? (_val916) : (_augval914);\n",
              "                    }\n",
              "                    var _child917 = ((_b872)._parent9)._right8;\n",
              "                    if (!((_child917) == null)) {\n",
              "                        var _val918 = (_child917)._max_ay24;\n",
              "                        _augval914 = ((_augval914) < (_val918)) ? (_val918) : (_augval914);\n",
              "                    }\n",
              "                    ((_b872)._parent9)._max_ay24 = _augval914;\n",
              "                    ((_b872)._parent9)._height10 = 1 + (((((((_b872)._parent9)._left7) == null) ? (-1) : ((((_b872)._parent9)._left7)._height10)) > (((((_b872)._parent9)._right8) == null) ? (-1) : ((((_b872)._parent9)._right8)._height10))) ? (((((_b872)._parent9)._left7) == null) ? (-1) : ((((_b872)._parent9)._left7)._height10)) : (((((_b872)._parent9)._right8) == null) ? (-1) : ((((_b872)._parent9)._right8)._height10)));\n",
              "                } else {\n",
              "                    (this)._root1 = _b872;\n",
              "                }\n",
              "            }\n",
              "            /* rotate (_cursor773)._right8 */\n",
              "            var _a919 = _cursor773;\n",
              "            var _b920 = (_a919)._right8;\n",
              "            var _c921 = (_b920)._left7;\n",
              "            /* replace _a919 with _b920 in (_a919)._parent9 */\n",
              "            if (!(((_a919)._parent9) == null)) {\n",
              "                if ((((_a919)._parent9)._left7) == (_a919)) {\n",
              "                    ((_a919)._parent9)._left7 = _b920;\n",
              "                } else {\n",
              "                    ((_a919)._parent9)._right8 = _b920;\n",
              "                }\n",
              "            }\n",
              "            if (!((_b920) == null)) {\n",
              "                (_b920)._parent9 = (_a919)._parent9;\n",
              "            }\n",
              "            /* replace _c921 with _a919 in _b920 */\n",
              "            (_b920)._left7 = _a919;\n",
              "            if (!((_a919) == null)) {\n",
              "                (_a919)._parent9 = _b920;\n",
              "            }\n",
              "            /* replace _b920 with _c921 in _a919 */\n",
              "            (_a919)._right8 = _c921;\n",
              "            if (!((_c921) == null)) {\n",
              "                (_c921)._parent9 = _a919;\n",
              "            }\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval922 = (_a919).ax1;\n",
              "            var _child923 = (_a919)._left7;\n",
              "            if (!((_child923) == null)) {\n",
              "                var _val924 = (_child923)._min_ax12;\n",
              "                _augval922 = ((_augval922) < (_val924)) ? (_augval922) : (_val924);\n",
              "            }\n",
              "            var _child925 = (_a919)._right8;\n",
              "            if (!((_child925) == null)) {\n",
              "                var _val926 = (_child925)._min_ax12;\n",
              "                _augval922 = ((_augval922) < (_val926)) ? (_augval922) : (_val926);\n",
              "            }\n",
              "            (_a919)._min_ax12 = _augval922;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval927 = (_a919).ay1;\n",
              "            var _child928 = (_a919)._left7;\n",
              "            if (!((_child928) == null)) {\n",
              "                var _val929 = (_child928)._min_ay13;\n",
              "                _augval927 = ((_augval927) < (_val929)) ? (_augval927) : (_val929);\n",
              "            }\n",
              "            var _child930 = (_a919)._right8;\n",
              "            if (!((_child930) == null)) {\n",
              "                var _val931 = (_child930)._min_ay13;\n",
              "                _augval927 = ((_augval927) < (_val931)) ? (_augval927) : (_val931);\n",
              "            }\n",
              "            (_a919)._min_ay13 = _augval927;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval932 = (_a919).ay2;\n",
              "            var _child933 = (_a919)._left7;\n",
              "            if (!((_child933) == null)) {\n",
              "                var _val934 = (_child933)._max_ay24;\n",
              "                _augval932 = ((_augval932) < (_val934)) ? (_val934) : (_augval932);\n",
              "            }\n",
              "            var _child935 = (_a919)._right8;\n",
              "            if (!((_child935) == null)) {\n",
              "                var _val936 = (_child935)._max_ay24;\n",
              "                _augval932 = ((_augval932) < (_val936)) ? (_val936) : (_augval932);\n",
              "            }\n",
              "            (_a919)._max_ay24 = _augval932;\n",
              "            (_a919)._height10 = 1 + ((((((_a919)._left7) == null) ? (-1) : (((_a919)._left7)._height10)) > ((((_a919)._right8) == null) ? (-1) : (((_a919)._right8)._height10))) ? ((((_a919)._left7) == null) ? (-1) : (((_a919)._left7)._height10)) : ((((_a919)._right8) == null) ? (-1) : (((_a919)._right8)._height10)));\n",
              "            /* _min_ax12 is min of ax1 */\n",
              "            var _augval937 = (_b920).ax1;\n",
              "            var _child938 = (_b920)._left7;\n",
              "            if (!((_child938) == null)) {\n",
              "                var _val939 = (_child938)._min_ax12;\n",
              "                _augval937 = ((_augval937) < (_val939)) ? (_augval937) : (_val939);\n",
              "            }\n",
              "            var _child940 = (_b920)._right8;\n",
              "            if (!((_child940) == null)) {\n",
              "                var _val941 = (_child940)._min_ax12;\n",
              "                _augval937 = ((_augval937) < (_val941)) ? (_augval937) : (_val941);\n",
              "            }\n",
              "            (_b920)._min_ax12 = _augval937;\n",
              "            /* _min_ay13 is min of ay1 */\n",
              "            var _augval942 = (_b920).ay1;\n",
              "            var _child943 = (_b920)._left7;\n",
              "            if (!((_child943) == null)) {\n",
              "                var _val944 = (_child943)._min_ay13;\n",
              "                _augval942 = ((_augval942) < (_val944)) ? (_augval942) : (_val944);\n",
              "            }\n",
              "            var _child945 = (_b920)._right8;\n",
              "            if (!((_child945) == null)) {\n",
              "                var _val946 = (_child945)._min_ay13;\n",
              "                _augval942 = ((_augval942) < (_val946)) ? (_augval942) : (_val946);\n",
              "            }\n",
              "            (_b920)._min_ay13 = _augval942;\n",
              "            /* _max_ay24 is max of ay2 */\n",
              "            var _augval947 = (_b920).ay2;\n",
              "            var _child948 = (_b920)._left7;\n",
              "            if (!((_child948) == null)) {\n",
              "                var _val949 = (_child948)._max_ay24;\n",
              "                _augval947 = ((_augval947) < (_val949)) ? (_val949) : (_augval947);\n",
              "            }\n",
              "            var _child950 = (_b920)._right8;\n",
              "            if (!((_child950) == null)) {\n",
              "                var _val951 = (_child950)._max_ay24;\n",
              "                _augval947 = ((_augval947) < (_val951)) ? (_val951) : (_augval947);\n",
              "            }\n",
              "            (_b920)._max_ay24 = _augval947;\n",
              "            (_b920)._height10 = 1 + ((((((_b920)._left7) == null) ? (-1) : (((_b920)._left7)._height10)) > ((((_b920)._right8) == null) ? (-1) : (((_b920)._right8)._height10))) ? ((((_b920)._left7) == null) ? (-1) : (((_b920)._left7)._height10)) : ((((_b920)._right8) == null) ? (-1) : (((_b920)._right8)._height10)));\n",
              "            if (!(((_b920)._parent9) == null)) {\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval952 = ((_b920)._parent9).ax1;\n",
              "                var _child953 = ((_b920)._parent9)._left7;\n",
              "                if (!((_child953) == null)) {\n",
              "                    var _val954 = (_child953)._min_ax12;\n",
              "                    _augval952 = ((_augval952) < (_val954)) ? (_augval952) : (_val954);\n",
              "                }\n",
              "                var _child955 = ((_b920)._parent9)._right8;\n",
              "                if (!((_child955) == null)) {\n",
              "                    var _val956 = (_child955)._min_ax12;\n",
              "                    _augval952 = ((_augval952) < (_val956)) ? (_augval952) : (_val956);\n",
              "                }\n",
              "                ((_b920)._parent9)._min_ax12 = _augval952;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval957 = ((_b920)._parent9).ay1;\n",
              "                var _child958 = ((_b920)._parent9)._left7;\n",
              "                if (!((_child958) == null)) {\n",
              "                    var _val959 = (_child958)._min_ay13;\n",
              "                    _augval957 = ((_augval957) < (_val959)) ? (_augval957) : (_val959);\n",
              "                }\n",
              "                var _child960 = ((_b920)._parent9)._right8;\n",
              "                if (!((_child960) == null)) {\n",
              "                    var _val961 = (_child960)._min_ay13;\n",
              "                    _augval957 = ((_augval957) < (_val961)) ? (_augval957) : (_val961);\n",
              "                }\n",
              "                ((_b920)._parent9)._min_ay13 = _augval957;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval962 = ((_b920)._parent9).ay2;\n",
              "                var _child963 = ((_b920)._parent9)._left7;\n",
              "                if (!((_child963) == null)) {\n",
              "                    var _val964 = (_child963)._max_ay24;\n",
              "                    _augval962 = ((_augval962) < (_val964)) ? (_val964) : (_augval962);\n",
              "                }\n",
              "                var _child965 = ((_b920)._parent9)._right8;\n",
              "                if (!((_child965) == null)) {\n",
              "                    var _val966 = (_child965)._max_ay24;\n",
              "                    _augval962 = ((_augval962) < (_val966)) ? (_val966) : (_augval962);\n",
              "                }\n",
              "                ((_b920)._parent9)._max_ay24 = _augval962;\n",
              "                ((_b920)._parent9)._height10 = 1 + (((((((_b920)._parent9)._left7) == null) ? (-1) : ((((_b920)._parent9)._left7)._height10)) > (((((_b920)._parent9)._right8) == null) ? (-1) : ((((_b920)._parent9)._right8)._height10))) ? (((((_b920)._parent9)._left7) == null) ? (-1) : ((((_b920)._parent9)._left7)._height10)) : (((((_b920)._parent9)._right8) == null) ? (-1) : ((((_b920)._parent9)._right8)._height10)));\n",
              "            } else {\n",
              "                (this)._root1 = _b920;\n",
              "            }\n",
              "            _cursor773 = (_cursor773)._parent9;\n",
              "        }\n",
              "    }\n",
              "    (__x).ax1 = ax1;\n",
              "    (__x).ay1 = ay1;\n",
              "    (__x).ax2 = ax2;\n",
              "    (__x).ay2 = ay2;\n",
              "}\n",
              "RectangleHolder.prototype.findMatchingRectangles = function (bx1, by1, bx2, by2, __callback) {\n",
              "    var _root967 = (this)._root1;\n",
              "    var _x968 = _root967;\n",
              "    var _descend969 = true;\n",
              "    var _from_left970 = true;\n",
              "    while (true) {\n",
              "        if ((_x968) == null) {\n",
              "            _x968 = null;\n",
              "            break;\n",
              "        }\n",
              "        if (_descend969) {\n",
              "            /* too small? */\n",
              "            if ((false) || (((_x968).ax2) <= (bx1))) {\n",
              "                if ((!(((_x968)._right8) == null)) && ((((true) && ((((_x968)._right8)._min_ax12) < (bx2))) && ((((_x968)._right8)._min_ay13) < (by2))) && ((((_x968)._right8)._max_ay24) > (by1)))) {\n",
              "                    if ((_x968) == (_root967)) {\n",
              "                        _root967 = (_x968)._right8;\n",
              "                    }\n",
              "                    _x968 = (_x968)._right8;\n",
              "                } else if ((_x968) == (_root967)) {\n",
              "                    _x968 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend969 = false;\n",
              "                    _from_left970 = (!(((_x968)._parent9) == null)) && ((_x968) == (((_x968)._parent9)._left7));\n",
              "                    _x968 = (_x968)._parent9;\n",
              "                }\n",
              "            } else if ((!(((_x968)._left7) == null)) && ((((true) && ((((_x968)._left7)._min_ax12) < (bx2))) && ((((_x968)._left7)._min_ay13) < (by2))) && ((((_x968)._left7)._max_ay24) > (by1)))) {\n",
              "                _x968 = (_x968)._left7;\n",
              "                /* too large? */\n",
              "            } else if (false) {\n",
              "                if ((_x968) == (_root967)) {\n",
              "                    _x968 = null;\n",
              "                    break;\n",
              "                } else {\n",
              "                    _descend969 = false;\n",
              "                    _from_left970 = (!(((_x968)._parent9) == null)) && ((_x968) == (((_x968)._parent9)._left7));\n",
              "                    _x968 = (_x968)._parent9;\n",
              "                }\n",
              "                /* node ok? */\n",
              "            } else if ((((true) && (((_x968).ax1) < (bx2))) && (((_x968).ay1) < (by2))) && (((_x968).ay2) > (by1))) {\n",
              "                break;\n",
              "            } else if ((_x968) == (_root967)) {\n",
              "                _root967 = (_x968)._right8;\n",
              "                _x968 = (_x968)._right8;\n",
              "            } else {\n",
              "                if ((!(((_x968)._right8) == null)) && ((((true) && ((((_x968)._right8)._min_ax12) < (bx2))) && ((((_x968)._right8)._min_ay13) < (by2))) && ((((_x968)._right8)._max_ay24) > (by1)))) {\n",
              "                    if ((_x968) == (_root967)) {\n",
              "                        _root967 = (_x968)._right8;\n",
              "                    }\n",
              "                    _x968 = (_x968)._right8;\n",
              "                } else {\n",
              "                    _descend969 = false;\n",
              "                    _from_left970 = (!(((_x968)._parent9) == null)) && ((_x968) == (((_x968)._parent9)._left7));\n",
              "                    _x968 = (_x968)._parent9;\n",
              "                }\n",
              "            }\n",
              "        } else if (_from_left970) {\n",
              "            if (false) {\n",
              "                _x968 = null;\n",
              "                break;\n",
              "            } else if ((((true) && (((_x968).ax1) < (bx2))) && (((_x968).ay1) < (by2))) && (((_x968).ay2) > (by1))) {\n",
              "                break;\n",
              "            } else if ((!(((_x968)._right8) == null)) && ((((true) && ((((_x968)._right8)._min_ax12) < (bx2))) && ((((_x968)._right8)._min_ay13) < (by2))) && ((((_x968)._right8)._max_ay24) > (by1)))) {\n",
              "                _descend969 = true;\n",
              "                if ((_x968) == (_root967)) {\n",
              "                    _root967 = (_x968)._right8;\n",
              "                }\n",
              "                _x968 = (_x968)._right8;\n",
              "            } else if ((_x968) == (_root967)) {\n",
              "                _x968 = null;\n",
              "                break;\n",
              "            } else {\n",
              "                _descend969 = false;\n",
              "                _from_left970 = (!(((_x968)._parent9) == null)) && ((_x968) == (((_x968)._parent9)._left7));\n",
              "                _x968 = (_x968)._parent9;\n",
              "            }\n",
              "        } else {\n",
              "            if ((_x968) == (_root967)) {\n",
              "                _x968 = null;\n",
              "                break;\n",
              "            } else {\n",
              "                _descend969 = false;\n",
              "                _from_left970 = (!(((_x968)._parent9) == null)) && ((_x968) == (((_x968)._parent9)._left7));\n",
              "                _x968 = (_x968)._parent9;\n",
              "            }\n",
              "        }\n",
              "    }\n",
              "    var _prev_cursor5 = null;\n",
              "    var _cursor6 = _x968;\n",
              "    for (; ;) {\n",
              "        if (!(!((_cursor6) == null))) break;\n",
              "        var _name971 = _cursor6;\n",
              "        /* ADVANCE */\n",
              "        _prev_cursor5 = _cursor6;\n",
              "        do {\n",
              "            var _right_min972 = null;\n",
              "            if ((!(((_cursor6)._right8) == null)) && ((((true) && ((((_cursor6)._right8)._min_ax12) < (bx2))) && ((((_cursor6)._right8)._min_ay13) < (by2))) && ((((_cursor6)._right8)._max_ay24) > (by1)))) {\n",
              "                var _root973 = (_cursor6)._right8;\n",
              "                var _x974 = _root973;\n",
              "                var _descend975 = true;\n",
              "                var _from_left976 = true;\n",
              "                while (true) {\n",
              "                    if ((_x974) == null) {\n",
              "                        _x974 = null;\n",
              "                        break;\n",
              "                    }\n",
              "                    if (_descend975) {\n",
              "                        /* too small? */\n",
              "                        if ((false) || (((_x974).ax2) <= (bx1))) {\n",
              "                            if ((!(((_x974)._right8) == null)) && ((((true) && ((((_x974)._right8)._min_ax12) < (bx2))) && ((((_x974)._right8)._min_ay13) < (by2))) && ((((_x974)._right8)._max_ay24) > (by1)))) {\n",
              "                                if ((_x974) == (_root973)) {\n",
              "                                    _root973 = (_x974)._right8;\n",
              "                                }\n",
              "                                _x974 = (_x974)._right8;\n",
              "                            } else if ((_x974) == (_root973)) {\n",
              "                                _x974 = null;\n",
              "                                break;\n",
              "                            } else {\n",
              "                                _descend975 = false;\n",
              "                                _from_left976 = (!(((_x974)._parent9) == null)) && ((_x974) == (((_x974)._parent9)._left7));\n",
              "                                _x974 = (_x974)._parent9;\n",
              "                            }\n",
              "                        } else if ((!(((_x974)._left7) == null)) && ((((true) && ((((_x974)._left7)._min_ax12) < (bx2))) && ((((_x974)._left7)._min_ay13) < (by2))) && ((((_x974)._left7)._max_ay24) > (by1)))) {\n",
              "                            _x974 = (_x974)._left7;\n",
              "                            /* too large? */\n",
              "                        } else if (false) {\n",
              "                            if ((_x974) == (_root973)) {\n",
              "                                _x974 = null;\n",
              "                                break;\n",
              "                            } else {\n",
              "                                _descend975 = false;\n",
              "                                _from_left976 = (!(((_x974)._parent9) == null)) && ((_x974) == (((_x974)._parent9)._left7));\n",
              "                                _x974 = (_x974)._parent9;\n",
              "                            }\n",
              "                            /* node ok? */\n",
              "                        } else if ((((true) && (((_x974).ax1) < (bx2))) && (((_x974).ay1) < (by2))) && (((_x974).ay2) > (by1))) {\n",
              "                            break;\n",
              "                        } else if ((_x974) == (_root973)) {\n",
              "                            _root973 = (_x974)._right8;\n",
              "                            _x974 = (_x974)._right8;\n",
              "                        } else {\n",
              "                            if ((!(((_x974)._right8) == null)) && ((((true) && ((((_x974)._right8)._min_ax12) < (bx2))) && ((((_x974)._right8)._min_ay13) < (by2))) && ((((_x974)._right8)._max_ay24) > (by1)))) {\n",
              "                                if ((_x974) == (_root973)) {\n",
              "                                    _root973 = (_x974)._right8;\n",
              "                                }\n",
              "                                _x974 = (_x974)._right8;\n",
              "                            } else {\n",
              "                                _descend975 = false;\n",
              "                                _from_left976 = (!(((_x974)._parent9) == null)) && ((_x974) == (((_x974)._parent9)._left7));\n",
              "                                _x974 = (_x974)._parent9;\n",
              "                            }\n",
              "                        }\n",
              "                    } else if (_from_left976) {\n",
              "                        if (false) {\n",
              "                            _x974 = null;\n",
              "                            break;\n",
              "                        } else if ((((true) && (((_x974).ax1) < (bx2))) && (((_x974).ay1) < (by2))) && (((_x974).ay2) > (by1))) {\n",
              "                            break;\n",
              "                        } else if ((!(((_x974)._right8) == null)) && ((((true) && ((((_x974)._right8)._min_ax12) < (bx2))) && ((((_x974)._right8)._min_ay13) < (by2))) && ((((_x974)._right8)._max_ay24) > (by1)))) {\n",
              "                            _descend975 = true;\n",
              "                            if ((_x974) == (_root973)) {\n",
              "                                _root973 = (_x974)._right8;\n",
              "                            }\n",
              "                            _x974 = (_x974)._right8;\n",
              "                        } else if ((_x974) == (_root973)) {\n",
              "                            _x974 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend975 = false;\n",
              "                            _from_left976 = (!(((_x974)._parent9) == null)) && ((_x974) == (((_x974)._parent9)._left7));\n",
              "                            _x974 = (_x974)._parent9;\n",
              "                        }\n",
              "                    } else {\n",
              "                        if ((_x974) == (_root973)) {\n",
              "                            _x974 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend975 = false;\n",
              "                            _from_left976 = (!(((_x974)._parent9) == null)) && ((_x974) == (((_x974)._parent9)._left7));\n",
              "                            _x974 = (_x974)._parent9;\n",
              "                        }\n",
              "                    }\n",
              "                }\n",
              "                _right_min972 = _x974;\n",
              "            }\n",
              "            if (!((_right_min972) == null)) {\n",
              "                _cursor6 = _right_min972;\n",
              "                break;\n",
              "            } else {\n",
              "                while ((!(((_cursor6)._parent9) == null)) && ((_cursor6) == (((_cursor6)._parent9)._right8))) {\n",
              "                    _cursor6 = (_cursor6)._parent9;\n",
              "                }\n",
              "                _cursor6 = (_cursor6)._parent9;\n",
              "                if ((!((_cursor6) == null)) && (false)) {\n",
              "                    _cursor6 = null;\n",
              "                }\n",
              "            }\n",
              "        } while ((!((_cursor6) == null)) && (!((((true) && (((_cursor6).ax1) < (bx2))) && (((_cursor6).ay1) < (by2))) && (((_cursor6).ay2) > (by1)))));\n",
              "        if (__callback(_name971)) {\n",
              "            var _to_remove977 = _prev_cursor5;\n",
              "            var _parent978 = (_to_remove977)._parent9;\n",
              "            var _left979 = (_to_remove977)._left7;\n",
              "            var _right980 = (_to_remove977)._right8;\n",
              "            var _new_x981;\n",
              "            if (((_left979) == null) && ((_right980) == null)) {\n",
              "                _new_x981 = null;\n",
              "                /* replace _to_remove977 with _new_x981 in _parent978 */\n",
              "                if (!((_parent978) == null)) {\n",
              "                    if (((_parent978)._left7) == (_to_remove977)) {\n",
              "                        (_parent978)._left7 = _new_x981;\n",
              "                    } else {\n",
              "                        (_parent978)._right8 = _new_x981;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_new_x981) == null)) {\n",
              "                    (_new_x981)._parent9 = _parent978;\n",
              "                }\n",
              "            } else if ((!((_left979) == null)) && ((_right980) == null)) {\n",
              "                _new_x981 = _left979;\n",
              "                /* replace _to_remove977 with _new_x981 in _parent978 */\n",
              "                if (!((_parent978) == null)) {\n",
              "                    if (((_parent978)._left7) == (_to_remove977)) {\n",
              "                        (_parent978)._left7 = _new_x981;\n",
              "                    } else {\n",
              "                        (_parent978)._right8 = _new_x981;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_new_x981) == null)) {\n",
              "                    (_new_x981)._parent9 = _parent978;\n",
              "                }\n",
              "            } else if (((_left979) == null) && (!((_right980) == null))) {\n",
              "                _new_x981 = _right980;\n",
              "                /* replace _to_remove977 with _new_x981 in _parent978 */\n",
              "                if (!((_parent978) == null)) {\n",
              "                    if (((_parent978)._left7) == (_to_remove977)) {\n",
              "                        (_parent978)._left7 = _new_x981;\n",
              "                    } else {\n",
              "                        (_parent978)._right8 = _new_x981;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_new_x981) == null)) {\n",
              "                    (_new_x981)._parent9 = _parent978;\n",
              "                }\n",
              "            } else {\n",
              "                var _root982 = (_to_remove977)._right8;\n",
              "                var _x983 = _root982;\n",
              "                var _descend984 = true;\n",
              "                var _from_left985 = true;\n",
              "                while (true) {\n",
              "                    if ((_x983) == null) {\n",
              "                        _x983 = null;\n",
              "                        break;\n",
              "                    }\n",
              "                    if (_descend984) {\n",
              "                        /* too small? */\n",
              "                        if (false) {\n",
              "                            if ((!(((_x983)._right8) == null)) && (true)) {\n",
              "                                if ((_x983) == (_root982)) {\n",
              "                                    _root982 = (_x983)._right8;\n",
              "                                }\n",
              "                                _x983 = (_x983)._right8;\n",
              "                            } else if ((_x983) == (_root982)) {\n",
              "                                _x983 = null;\n",
              "                                break;\n",
              "                            } else {\n",
              "                                _descend984 = false;\n",
              "                                _from_left985 = (!(((_x983)._parent9) == null)) && ((_x983) == (((_x983)._parent9)._left7));\n",
              "                                _x983 = (_x983)._parent9;\n",
              "                            }\n",
              "                        } else if ((!(((_x983)._left7) == null)) && (true)) {\n",
              "                            _x983 = (_x983)._left7;\n",
              "                            /* too large? */\n",
              "                        } else if (false) {\n",
              "                            if ((_x983) == (_root982)) {\n",
              "                                _x983 = null;\n",
              "                                break;\n",
              "                            } else {\n",
              "                                _descend984 = false;\n",
              "                                _from_left985 = (!(((_x983)._parent9) == null)) && ((_x983) == (((_x983)._parent9)._left7));\n",
              "                                _x983 = (_x983)._parent9;\n",
              "                            }\n",
              "                            /* node ok? */\n",
              "                        } else if (true) {\n",
              "                            break;\n",
              "                        } else if ((_x983) == (_root982)) {\n",
              "                            _root982 = (_x983)._right8;\n",
              "                            _x983 = (_x983)._right8;\n",
              "                        } else {\n",
              "                            if ((!(((_x983)._right8) == null)) && (true)) {\n",
              "                                if ((_x983) == (_root982)) {\n",
              "                                    _root982 = (_x983)._right8;\n",
              "                                }\n",
              "                                _x983 = (_x983)._right8;\n",
              "                            } else {\n",
              "                                _descend984 = false;\n",
              "                                _from_left985 = (!(((_x983)._parent9) == null)) && ((_x983) == (((_x983)._parent9)._left7));\n",
              "                                _x983 = (_x983)._parent9;\n",
              "                            }\n",
              "                        }\n",
              "                    } else if (_from_left985) {\n",
              "                        if (false) {\n",
              "                            _x983 = null;\n",
              "                            break;\n",
              "                        } else if (true) {\n",
              "                            break;\n",
              "                        } else if ((!(((_x983)._right8) == null)) && (true)) {\n",
              "                            _descend984 = true;\n",
              "                            if ((_x983) == (_root982)) {\n",
              "                                _root982 = (_x983)._right8;\n",
              "                            }\n",
              "                            _x983 = (_x983)._right8;\n",
              "                        } else if ((_x983) == (_root982)) {\n",
              "                            _x983 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend984 = false;\n",
              "                            _from_left985 = (!(((_x983)._parent9) == null)) && ((_x983) == (((_x983)._parent9)._left7));\n",
              "                            _x983 = (_x983)._parent9;\n",
              "                        }\n",
              "                    } else {\n",
              "                        if ((_x983) == (_root982)) {\n",
              "                            _x983 = null;\n",
              "                            break;\n",
              "                        } else {\n",
              "                            _descend984 = false;\n",
              "                            _from_left985 = (!(((_x983)._parent9) == null)) && ((_x983) == (((_x983)._parent9)._left7));\n",
              "                            _x983 = (_x983)._parent9;\n",
              "                        }\n",
              "                    }\n",
              "                }\n",
              "                _new_x981 = _x983;\n",
              "                var _mp986 = (_x983)._parent9;\n",
              "                var _mr987 = (_x983)._right8;\n",
              "                /* replace _x983 with _mr987 in _mp986 */\n",
              "                if (!((_mp986) == null)) {\n",
              "                    if (((_mp986)._left7) == (_x983)) {\n",
              "                        (_mp986)._left7 = _mr987;\n",
              "                    } else {\n",
              "                        (_mp986)._right8 = _mr987;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_mr987) == null)) {\n",
              "                    (_mr987)._parent9 = _mp986;\n",
              "                }\n",
              "                /* replace _to_remove977 with _x983 in _parent978 */\n",
              "                if (!((_parent978) == null)) {\n",
              "                    if (((_parent978)._left7) == (_to_remove977)) {\n",
              "                        (_parent978)._left7 = _x983;\n",
              "                    } else {\n",
              "                        (_parent978)._right8 = _x983;\n",
              "                    }\n",
              "                }\n",
              "                if (!((_x983) == null)) {\n",
              "                    (_x983)._parent9 = _parent978;\n",
              "                }\n",
              "                /* replace null with _left979 in _x983 */\n",
              "                (_x983)._left7 = _left979;\n",
              "                if (!((_left979) == null)) {\n",
              "                    (_left979)._parent9 = _x983;\n",
              "                }\n",
              "                /* replace _mr987 with (_to_remove977)._right8 in _x983 */\n",
              "                (_x983)._right8 = (_to_remove977)._right8;\n",
              "                if (!(((_to_remove977)._right8) == null)) {\n",
              "                    ((_to_remove977)._right8)._parent9 = _x983;\n",
              "                }\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval988 = (_x983).ax1;\n",
              "                var _child989 = (_x983)._left7;\n",
              "                if (!((_child989) == null)) {\n",
              "                    var _val990 = (_child989)._min_ax12;\n",
              "                    _augval988 = ((_augval988) < (_val990)) ? (_augval988) : (_val990);\n",
              "                }\n",
              "                var _child991 = (_x983)._right8;\n",
              "                if (!((_child991) == null)) {\n",
              "                    var _val992 = (_child991)._min_ax12;\n",
              "                    _augval988 = ((_augval988) < (_val992)) ? (_augval988) : (_val992);\n",
              "                }\n",
              "                (_x983)._min_ax12 = _augval988;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval993 = (_x983).ay1;\n",
              "                var _child994 = (_x983)._left7;\n",
              "                if (!((_child994) == null)) {\n",
              "                    var _val995 = (_child994)._min_ay13;\n",
              "                    _augval993 = ((_augval993) < (_val995)) ? (_augval993) : (_val995);\n",
              "                }\n",
              "                var _child996 = (_x983)._right8;\n",
              "                if (!((_child996) == null)) {\n",
              "                    var _val997 = (_child996)._min_ay13;\n",
              "                    _augval993 = ((_augval993) < (_val997)) ? (_augval993) : (_val997);\n",
              "                }\n",
              "                (_x983)._min_ay13 = _augval993;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval998 = (_x983).ay2;\n",
              "                var _child999 = (_x983)._left7;\n",
              "                if (!((_child999) == null)) {\n",
              "                    var _val1000 = (_child999)._max_ay24;\n",
              "                    _augval998 = ((_augval998) < (_val1000)) ? (_val1000) : (_augval998);\n",
              "                }\n",
              "                var _child1001 = (_x983)._right8;\n",
              "                if (!((_child1001) == null)) {\n",
              "                    var _val1002 = (_child1001)._max_ay24;\n",
              "                    _augval998 = ((_augval998) < (_val1002)) ? (_val1002) : (_augval998);\n",
              "                }\n",
              "                (_x983)._max_ay24 = _augval998;\n",
              "                (_x983)._height10 = 1 + ((((((_x983)._left7) == null) ? (-1) : (((_x983)._left7)._height10)) > ((((_x983)._right8) == null) ? (-1) : (((_x983)._right8)._height10))) ? ((((_x983)._left7) == null) ? (-1) : (((_x983)._left7)._height10)) : ((((_x983)._right8) == null) ? (-1) : (((_x983)._right8)._height10)));\n",
              "                var _cursor1003 = _mp986;\n",
              "                var _changed1004 = true;\n",
              "                while ((_changed1004) && (!((_cursor1003) == (_parent978)))) {\n",
              "                    var _old__min_ax121005 = (_cursor1003)._min_ax12;\n",
              "                    var _old__min_ay131006 = (_cursor1003)._min_ay13;\n",
              "                    var _old__max_ay241007 = (_cursor1003)._max_ay24;\n",
              "                    var _old_height1008 = (_cursor1003)._height10;\n",
              "                    /* _min_ax12 is min of ax1 */\n",
              "                    var _augval1009 = (_cursor1003).ax1;\n",
              "                    var _child1010 = (_cursor1003)._left7;\n",
              "                    if (!((_child1010) == null)) {\n",
              "                        var _val1011 = (_child1010)._min_ax12;\n",
              "                        _augval1009 = ((_augval1009) < (_val1011)) ? (_augval1009) : (_val1011);\n",
              "                    }\n",
              "                    var _child1012 = (_cursor1003)._right8;\n",
              "                    if (!((_child1012) == null)) {\n",
              "                        var _val1013 = (_child1012)._min_ax12;\n",
              "                        _augval1009 = ((_augval1009) < (_val1013)) ? (_augval1009) : (_val1013);\n",
              "                    }\n",
              "                    (_cursor1003)._min_ax12 = _augval1009;\n",
              "                    /* _min_ay13 is min of ay1 */\n",
              "                    var _augval1014 = (_cursor1003).ay1;\n",
              "                    var _child1015 = (_cursor1003)._left7;\n",
              "                    if (!((_child1015) == null)) {\n",
              "                        var _val1016 = (_child1015)._min_ay13;\n",
              "                        _augval1014 = ((_augval1014) < (_val1016)) ? (_augval1014) : (_val1016);\n",
              "                    }\n",
              "                    var _child1017 = (_cursor1003)._right8;\n",
              "                    if (!((_child1017) == null)) {\n",
              "                        var _val1018 = (_child1017)._min_ay13;\n",
              "                        _augval1014 = ((_augval1014) < (_val1018)) ? (_augval1014) : (_val1018);\n",
              "                    }\n",
              "                    (_cursor1003)._min_ay13 = _augval1014;\n",
              "                    /* _max_ay24 is max of ay2 */\n",
              "                    var _augval1019 = (_cursor1003).ay2;\n",
              "                    var _child1020 = (_cursor1003)._left7;\n",
              "                    if (!((_child1020) == null)) {\n",
              "                        var _val1021 = (_child1020)._max_ay24;\n",
              "                        _augval1019 = ((_augval1019) < (_val1021)) ? (_val1021) : (_augval1019);\n",
              "                    }\n",
              "                    var _child1022 = (_cursor1003)._right8;\n",
              "                    if (!((_child1022) == null)) {\n",
              "                        var _val1023 = (_child1022)._max_ay24;\n",
              "                        _augval1019 = ((_augval1019) < (_val1023)) ? (_val1023) : (_augval1019);\n",
              "                    }\n",
              "                    (_cursor1003)._max_ay24 = _augval1019;\n",
              "                    (_cursor1003)._height10 = 1 + ((((((_cursor1003)._left7) == null) ? (-1) : (((_cursor1003)._left7)._height10)) > ((((_cursor1003)._right8) == null) ? (-1) : (((_cursor1003)._right8)._height10))) ? ((((_cursor1003)._left7) == null) ? (-1) : (((_cursor1003)._left7)._height10)) : ((((_cursor1003)._right8) == null) ? (-1) : (((_cursor1003)._right8)._height10)));\n",
              "                    _changed1004 = false;\n",
              "                    _changed1004 = (_changed1004) || (!((_old__min_ax121005) == ((_cursor1003)._min_ax12)));\n",
              "                    _changed1004 = (_changed1004) || (!((_old__min_ay131006) == ((_cursor1003)._min_ay13)));\n",
              "                    _changed1004 = (_changed1004) || (!((_old__max_ay241007) == ((_cursor1003)._max_ay24)));\n",
              "                    _changed1004 = (_changed1004) || (!((_old_height1008) == ((_cursor1003)._height10)));\n",
              "                    _cursor1003 = (_cursor1003)._parent9;\n",
              "                }\n",
              "            }\n",
              "            var _cursor1024 = _parent978;\n",
              "            var _changed1025 = true;\n",
              "            while ((_changed1025) && (!((_cursor1024) == (null)))) {\n",
              "                var _old__min_ax121026 = (_cursor1024)._min_ax12;\n",
              "                var _old__min_ay131027 = (_cursor1024)._min_ay13;\n",
              "                var _old__max_ay241028 = (_cursor1024)._max_ay24;\n",
              "                var _old_height1029 = (_cursor1024)._height10;\n",
              "                /* _min_ax12 is min of ax1 */\n",
              "                var _augval1030 = (_cursor1024).ax1;\n",
              "                var _child1031 = (_cursor1024)._left7;\n",
              "                if (!((_child1031) == null)) {\n",
              "                    var _val1032 = (_child1031)._min_ax12;\n",
              "                    _augval1030 = ((_augval1030) < (_val1032)) ? (_augval1030) : (_val1032);\n",
              "                }\n",
              "                var _child1033 = (_cursor1024)._right8;\n",
              "                if (!((_child1033) == null)) {\n",
              "                    var _val1034 = (_child1033)._min_ax12;\n",
              "                    _augval1030 = ((_augval1030) < (_val1034)) ? (_augval1030) : (_val1034);\n",
              "                }\n",
              "                (_cursor1024)._min_ax12 = _augval1030;\n",
              "                /* _min_ay13 is min of ay1 */\n",
              "                var _augval1035 = (_cursor1024).ay1;\n",
              "                var _child1036 = (_cursor1024)._left7;\n",
              "                if (!((_child1036) == null)) {\n",
              "                    var _val1037 = (_child1036)._min_ay13;\n",
              "                    _augval1035 = ((_augval1035) < (_val1037)) ? (_augval1035) : (_val1037);\n",
              "                }\n",
              "                var _child1038 = (_cursor1024)._right8;\n",
              "                if (!((_child1038) == null)) {\n",
              "                    var _val1039 = (_child1038)._min_ay13;\n",
              "                    _augval1035 = ((_augval1035) < (_val1039)) ? (_augval1035) : (_val1039);\n",
              "                }\n",
              "                (_cursor1024)._min_ay13 = _augval1035;\n",
              "                /* _max_ay24 is max of ay2 */\n",
              "                var _augval1040 = (_cursor1024).ay2;\n",
              "                var _child1041 = (_cursor1024)._left7;\n",
              "                if (!((_child1041) == null)) {\n",
              "                    var _val1042 = (_child1041)._max_ay24;\n",
              "                    _augval1040 = ((_augval1040) < (_val1042)) ? (_val1042) : (_augval1040);\n",
              "                }\n",
              "                var _child1043 = (_cursor1024)._right8;\n",
              "                if (!((_child1043) == null)) {\n",
              "                    var _val1044 = (_child1043)._max_ay24;\n",
              "                    _augval1040 = ((_augval1040) < (_val1044)) ? (_val1044) : (_augval1040);\n",
              "                }\n",
              "                (_cursor1024)._max_ay24 = _augval1040;\n",
              "                (_cursor1024)._height10 = 1 + ((((((_cursor1024)._left7) == null) ? (-1) : (((_cursor1024)._left7)._height10)) > ((((_cursor1024)._right8) == null) ? (-1) : (((_cursor1024)._right8)._height10))) ? ((((_cursor1024)._left7) == null) ? (-1) : (((_cursor1024)._left7)._height10)) : ((((_cursor1024)._right8) == null) ? (-1) : (((_cursor1024)._right8)._height10)));\n",
              "                _changed1025 = false;\n",
              "                _changed1025 = (_changed1025) || (!((_old__min_ax121026) == ((_cursor1024)._min_ax12)));\n",
              "                _changed1025 = (_changed1025) || (!((_old__min_ay131027) == ((_cursor1024)._min_ay13)));\n",
              "                _changed1025 = (_changed1025) || (!((_old__max_ay241028) == ((_cursor1024)._max_ay24)));\n",
              "                _changed1025 = (_changed1025) || (!((_old_height1029) == ((_cursor1024)._height10)));\n",
              "                _cursor1024 = (_cursor1024)._parent9;\n",
              "            }\n",
              "            if (((this)._root1) == (_to_remove977)) {\n",
              "                (this)._root1 = _new_x981;\n",
              "            }\n",
              "            _prev_cursor5 = null;\n",
              "        }\n",
              "    };\n",
              "}\n",
              "; \n",
              " \n",
              " function merge(ranges) { //via https://stackoverflow.com/questions/26390938/merge-arrays-with-overlapping-values\n",
              "    var result = [], last;\n",
              "\n",
              "    ranges.sort(function (a, b) {\n",
              "        return a[0] - b[0] || a[1] - b[1]\n",
              "    }).forEach(function (r) {\n",
              "        if (!last || r[0] > last[1])\n",
              "            result.push(last = r);\n",
              "        else if (r[1] > last[1])\n",
              "            last[1] = r[1];\n",
              "    });\n",
              "\n",
              "    return result;\n",
              "}\n",
              "\n",
              "buildViz = function (d3) {\n",
              "    return function (widthInPixels = 1000,\n",
              "                     heightInPixels = 600,\n",
              "                     max_snippets = null,\n",
              "                     color = null,\n",
              "                     sortByDist = true,\n",
              "                     useFullDoc = false,\n",
              "                     greyZeroScores = false,\n",
              "                     asianMode = false,\n",
              "                     nonTextFeaturesMode = false,\n",
              "                     showCharacteristic = true,\n",
              "                     wordVecMaxPValue = false,\n",
              "                     saveSvgButton = false,\n",
              "                     reverseSortScoresForNotCategory = false,\n",
              "                     minPVal = 0.1,\n",
              "                     pValueColors = false,\n",
              "                     xLabelText = null,\n",
              "                     yLabelText = null,\n",
              "                     fullData = null,\n",
              "                     showTopTerms = true,\n",
              "                     showNeutral = false,\n",
              "                     getTooltipContent = null,\n",
              "                     xAxisValues = null,\n",
              "                     yAxisValues = null,\n",
              "                     colorFunc = null,\n",
              "                     showAxes = true,\n",
              "                     showExtra = false,\n",
              "                     doCensorPoints = true,\n",
              "                     centerLabelsOverPoints = false,\n",
              "                     xAxisLabels = null,\n",
              "                     yAxisLabels = null,\n",
              "                     topic_model_preview_size = 10,\n",
              "                     verticalLines = null,\n",
              "                     horizontal_line_y_position = null,\n",
              "                     vertical_line_x_position = null,\n",
              "                     unifiedContexts = false,\n",
              "                     showCategoryHeadings = true,\n",
              "                     showCrossAxes = true,\n",
              "                     divName = 'd3-div-1',\n",
              "                     alternativeTermFunc = null,\n",
              "                     includeAllContexts = false,\n",
              "                     showAxesAndCrossHairs = false,\n",
              "                     x_axis_values_format = '.3f',\n",
              "                     y_axis_values_format = '.3f',\n",
              "                     matchFullLine = false,\n",
              "                     maxOverlapping = -1,\n",
              "                     showCorpusStats = true,\n",
              "                     sortDocLabelsByName = false,\n",
              "                     alwaysJump = true,\n",
              "                     highlightSelectedCategory = false,\n",
              "                     showDiagonal = false,\n",
              "                     useGlobalScale = false,\n",
              "                     enableTermCategoryDescription = true,\n",
              "                     getCustomTermHtml = null,\n",
              "                     headerNames = null,\n",
              "                     headerSortingAlgos = null,\n",
              "                     ignoreCategories = false,\n",
              "                     backgroundLabels = null,\n",
              "                     labelPriorityColumn = null,\n",
              "                     textColorColumn = undefined,\n",
              "                     suppressTextColumn = undefined,\n",
              "                     backgroundColor = undefined,\n",
              "                     censorPointColumn = undefined,\n",
              "                     rightOrderColumn = undefined,\n",
              "                     subwordEncoding = null,\n",
              "                     topTermsLength = 14,\n",
              "                     topTermsLeftBuffer = 0,\n",
              "                     getColumnHeaderHTML = null,\n",
              "                     termWord = 'Term',\n",
              "                     showTermEtc = true,\n",
              "                     sortContextsByMeta = false,\n",
              "                     suppressCircles = true,\n",
              "                     showChart = true,\n",
              "    ) {\n",
              "        function formatTermForDisplay(term) {\n",
              "            if (subwordEncoding === 'RoBERTa' && (term.charCodeAt(0) === 288 || term.charCodeAt(0) === 289))\n",
              "                term = '_' + term.substr(1, term.length - 1);\n",
              "            return term;\n",
              "        }\n",
              "\n",
              "        //var divName = 'd3-div-1';\n",
              "        // Set the dimensions of the canvas / graph\n",
              "        var padding = {top: 30, right: 20, bottom: 30, left: 50};\n",
              "        if (!showAxes) {\n",
              "            padding = {top: 30, right: 20, bottom: 30, left: 50};\n",
              "        }\n",
              "        var margin = padding,\n",
              "            width = widthInPixels - margin.left - margin.right,\n",
              "            height = heightInPixels - margin.top - margin.bottom;\n",
              "        fullData.data.forEach(function (x, i) {\n",
              "            x.i = i\n",
              "        });\n",
              "\n",
              "        // Set the ranges\n",
              "        var x = d3.scaleLinear().range([0, width]);\n",
              "        var y = d3.scaleLinear().range([height, 0]);\n",
              "\n",
              "        if (unifiedContexts) {\n",
              "            document.querySelectorAll('#' + divName + '-' + 'notcol')\n",
              "                .forEach(function (x) {\n",
              "                    x.style.display = 'none'\n",
              "                });\n",
              "            document.querySelectorAll('.' + divName + '-' + 'contexts')\n",
              "                .forEach(function (x) {\n",
              "                    x.style.width = '90%'\n",
              "                });\n",
              "        } else if (showNeutral) {\n",
              "            if (showExtra) {\n",
              "                document.querySelectorAll('.' + divName + '-' + 'contexts')\n",
              "                    .forEach(function (x) {\n",
              "                        x.style.width = '25%'\n",
              "                        x.style.float = 'left'\n",
              "                    });\n",
              "\n",
              "                ['notcol', 'neutcol', 'extracol'].forEach(function (columnName) {\n",
              "                    document.querySelectorAll('#' + divName + '-' + columnName)\n",
              "                        .forEach(function (x) {\n",
              "                            x.style.display = 'inline'\n",
              "                            x.style.float = 'left'\n",
              "                            x.style.width = '25%'\n",
              "                        });\n",
              "                })\n",
              "\n",
              "            } else {\n",
              "                document.querySelectorAll('.' + divName + '-' + 'contexts')\n",
              "                    .forEach(function (x) {\n",
              "                        x.style.width = '33%'\n",
              "                        x.style.float = 'left'\n",
              "                    });\n",
              "\n",
              "                ['notcol', 'neutcol'].forEach(function (columnName) {\n",
              "                    document.querySelectorAll('#' + divName + '-' + columnName)\n",
              "                        .forEach(function (x) {\n",
              "                            x.style.display = 'inline'\n",
              "                            x.style.float = 'left'\n",
              "                            x.style.width = '33%'\n",
              "                        });\n",
              "                })\n",
              "\n",
              "\n",
              "            }\n",
              "        } else {\n",
              "            document.querySelectorAll('.' + divName + '-' + 'contexts')\n",
              "                .forEach(function (x) {\n",
              "                    x.style.width = '45%'\n",
              "                    //x.style.display = 'inline'\n",
              "                    x.style.float = 'left'\n",
              "                });\n",
              "\n",
              "            ['notcol'].forEach(function (columnName) {\n",
              "                document.querySelectorAll('#' + divName + '-' + columnName)\n",
              "                    .forEach(function (x) {\n",
              "                        //x.style.display = 'inline'\n",
              "                        x.style.float = 'left'\n",
              "                        x.style.width = '45%'\n",
              "                    });\n",
              "            })\n",
              "        }\n",
              "\n",
              "        var yAxis = null;\n",
              "        var xAxis = null;\n",
              "\n",
              "        function axisLabelerFactory(axis) {\n",
              "            if ((axis == \"x\" && xLabelText == null)\n",
              "                || (axis == \"y\" && yLabelText == null))\n",
              "                return function (d, i) {\n",
              "                    return [\"Infrequent\", \"Average\", \"Frequent\"][i];\n",
              "                };\n",
              "\n",
              "            return function (d, i) {\n",
              "                return [\"Low\", \"Medium\", \"High\"][i];\n",
              "            }\n",
              "        }\n",
              "\n",
              "\n",
              "        function bs(ar, x) {\n",
              "            function bsa(s, e) {\n",
              "                var mid = Math.floor((s + e) / 2);\n",
              "                var midval = ar[mid];\n",
              "                if (s == e) {\n",
              "                    return s;\n",
              "                }\n",
              "                if (midval == x) {\n",
              "                    return mid;\n",
              "                } else if (midval < x) {\n",
              "                    return bsa(mid + 1, e);\n",
              "                } else {\n",
              "                    return bsa(s, mid);\n",
              "                }\n",
              "            }\n",
              "\n",
              "            return bsa(0, ar.length);\n",
              "        }\n",
              "\n",
              "\n",
              "        console.log(\"fullData\");\n",
              "        console.log(fullData);\n",
              "\n",
              "\n",
              "        var sortedX = fullData.data.map(x => x).sort(function (a, b) {\n",
              "            return a.x < b.x ? -1 : (a.x == b.x ? 0 : 1);\n",
              "        }).map(function (x) {\n",
              "            return x.x\n",
              "        });\n",
              "\n",
              "        var sortedOx = fullData.data.map(x => x).sort(function (a, b) {\n",
              "            return a.ox < b.ox ? -1 : (a.ox == b.ox ? 0 : 1);\n",
              "        }).map(function (x) {\n",
              "            return x.ox\n",
              "        });\n",
              "\n",
              "        var sortedY = fullData.data.map(x => x).sort(function (a, b) {\n",
              "            return a.y < b.y ? -1 : (a.y == b.y ? 0 : 1);\n",
              "        }).map(function (x) {\n",
              "            return x.y\n",
              "        });\n",
              "\n",
              "        var sortedOy = fullData.data.map(x => x).sort(function (a, b) {\n",
              "            return a.oy < b.oy ? -1 : (a.oy == b.oy ? 0 : 1);\n",
              "        }).map(function (x) {\n",
              "            return x.oy\n",
              "        });\n",
              "        console.log(fullData.data[0])\n",
              "\n",
              "        function labelWithZScore(axis, axisName, tickPoints, axis_values_format) {\n",
              "            var myVals = axisName === 'x' ? sortedOx : sortedOy;\n",
              "            var myPlotedVals = axisName === 'x' ? sortedX : sortedY;\n",
              "            var ticks = tickPoints.map(function (x) {\n",
              "                return myPlotedVals[bs(myVals, x)]\n",
              "            });\n",
              "            return axis.tickValues(ticks).tickFormat(\n",
              "                function (d, i) {\n",
              "                    return d3.format(axis_values_format)(tickPoints[i]);\n",
              "                })\n",
              "        }\n",
              "\n",
              "        if (xAxisValues) {\n",
              "            xAxis = labelWithZScore(d3.axisBottom(x), 'x', xAxisValues, x_axis_values_format);\n",
              "        } else if (xAxisLabels) {\n",
              "            xAxis = d3.axisBottom(x)\n",
              "                .ticks(xAxisLabels.length)\n",
              "                .tickFormat(function (d, i) {\n",
              "                    return xAxisLabels[i];\n",
              "                });\n",
              "        } else {\n",
              "            xAxis = d3.axisBottom(x).ticks(3).tickFormat(axisLabelerFactory('x'));\n",
              "        }\n",
              "        if (yAxisValues) {\n",
              "            yAxis = labelWithZScore(d3.axisLeft(y), 'y', yAxisValues, y_axis_values_format);\n",
              "        } else if (yAxisLabels) {\n",
              "            yAxis = d3.axisLeft(y)\n",
              "                .ticks(yAxisLabels.length)\n",
              "                .tickFormat(function (d, i) {\n",
              "                    return yAxisLabels[i];\n",
              "                });\n",
              "        } else {\n",
              "            yAxis = d3.axisLeft(y).ticks(3).tickFormat(axisLabelerFactory('y'));\n",
              "        }\n",
              "\n",
              "        // var label = d3.select(\"body\").append(\"div\")\n",
              "        var label = d3.select('#' + divName).append(\"div\")\n",
              "            .attr(\"class\", \"label\");\n",
              "\n",
              "\n",
              "        var interpolateLightGreys = d3.interpolate(d3.rgb(230, 230, 230),\n",
              "            d3.rgb(130, 130, 130));\n",
              "        // setup fill color\n",
              "        if (color == null) {\n",
              "            color = d3.interpolateRdYlBu;\n",
              "        }\n",
              "        if ((headerNames !== undefined && headerNames !== null)\n",
              "            && (headerSortingAlgos !== undefined && headerSortingAlgos !== null)) {\n",
              "            showTopTerms = true;\n",
              "        }\n",
              "\n",
              "        var pixelsToAddToWidth = 200;\n",
              "        if (!showTopTerms && !showCharacteristic) {\n",
              "            pixelsToAddToWidth = 0;\n",
              "        }\n",
              "\n",
              "        if (backgroundColor !== undefined) {\n",
              "            document.body.style.backgroundColor = backgroundColor;\n",
              "        }\n",
              "\n",
              "        // Adds the svg canvas\n",
              "        // var svg = d3.select(\"body\")\n",
              "        svg = d3.select('#' + divName)\n",
              "            .append(\"svg\")\n",
              "            .attr(\"width\", width + margin.left + margin.right + pixelsToAddToWidth)\n",
              "            .attr(\"height\", height + margin.top + margin.bottom)\n",
              "            .append(\"g\")\n",
              "            .attr(\"transform\",\n",
              "                \"translate(\" + margin.left + \",\" + margin.top + \")\");\n",
              "\n",
              "\n",
              "        origSVGLeft = svg.node().getBoundingClientRect().left;\n",
              "        origSVGTop = svg.node().getBoundingClientRect().top;\n",
              "        var lastCircleSelected = null;\n",
              "\n",
              "        function getCorpusWordCounts() {\n",
              "            var binaryLabels = fullData.docs.labels.map(function (label) {\n",
              "                return 1 * (fullData.docs.categories[label] != fullData.info.category_internal_name);\n",
              "            });\n",
              "            var wordCounts = {}; // word -> [cat counts, not-cat-counts]\n",
              "            var wordCountSums = [0, 0];\n",
              "            fullData.docs.texts.forEach(function (text, i) {\n",
              "                text.toLowerCase().trim().split(/\\W+/).forEach(function (word) {\n",
              "                    if (word.trim() !== '') {\n",
              "                        if (!(word in wordCounts))\n",
              "                            wordCounts[word] = [0, 0];\n",
              "                        wordCounts[word][binaryLabels[i]]++;\n",
              "                        wordCountSums[binaryLabels[i]]++;\n",
              "                    }\n",
              "                })\n",
              "            });\n",
              "            return {\n",
              "                avgDocLen: (wordCountSums[0] + wordCountSums[1]) / fullData.docs.texts.length,\n",
              "                counts: wordCounts,\n",
              "                sums: wordCountSums,\n",
              "                uniques: [[0, 0]].concat(Object.keys(wordCounts).map(function (key) {\n",
              "                    return wordCounts[key];\n",
              "                })).reduce(function (a, b) {\n",
              "                    return [a[0] + (b[0] > 0), a[1] + (b[1] > 0)]\n",
              "                })\n",
              "            };\n",
              "        }\n",
              "\n",
              "        function getContextWordCounts(query) {\n",
              "            var wordCounts = {};\n",
              "            var wordCountSums = [0, 0];\n",
              "            var priorCountSums = [0, 0];\n",
              "            gatherTermContexts(termDict[query])\n",
              "                .contexts\n",
              "                .forEach(function (contextSet, categoryIdx) {\n",
              "                    contextSet.forEach(function (context) {\n",
              "                        context.snippets.forEach(function (snippet) {\n",
              "                            var tokens = snippet.toLowerCase().trim().replace('<b>', '').replace('</b>', '').split(/\\W+/);\n",
              "                            var matchIndices = [];\n",
              "                            tokens.forEach(function (word, i) {\n",
              "                                if (word === query) matchIndices.push(i)\n",
              "                            });\n",
              "                            tokens.forEach(function (word, i) {\n",
              "                                if (word.trim() !== '') {\n",
              "                                    var isValid = false;\n",
              "                                    for (var matchI in matchIndices) {\n",
              "                                        if (Math.abs(i - matchI) < 3) {\n",
              "                                            isValid = true;\n",
              "                                            break\n",
              "                                        }\n",
              "                                    }\n",
              "                                    if (isValid) {\n",
              "                                        //console.log([word, i, matchI, isValid]);\n",
              "                                        if (!(word in wordCounts)) {\n",
              "                                            var priorCounts = corpusWordCounts.counts[word]\n",
              "                                            wordCounts[word] = [0, 0].concat(priorCounts);\n",
              "                                            priorCountSums[0] += priorCounts[0];\n",
              "                                            priorCountSums[1] += priorCounts[1];\n",
              "                                        }\n",
              "                                        wordCounts[word][categoryIdx]++;\n",
              "                                        wordCountSums[categoryIdx]++;\n",
              "                                    }\n",
              "                                }\n",
              "                            })\n",
              "                        })\n",
              "                    })\n",
              "                });\n",
              "            return {\n",
              "                counts: wordCounts,\n",
              "                priorSums: priorCountSums,\n",
              "                sums: wordCountSums,\n",
              "                uniques: [[0, 0]].concat(Object.keys(wordCounts).map(function (key) {\n",
              "                    return wordCounts[key];\n",
              "                })).reduce(function (a, b) {\n",
              "                    return [a[0] + (b[0] > 0), a[1] + (b[1] > 0)];\n",
              "                })\n",
              "            }\n",
              "\n",
              "        }\n",
              "\n",
              "        function denseRank(ar) {\n",
              "            var markedAr = ar.map((x, i) => [x, i]).sort((a, b) => a[0] - b[0]);\n",
              "            var curRank = 1\n",
              "            var rankedAr = markedAr.map(\n",
              "                function (x, i) {\n",
              "                    if (i > 0 && x[0] != markedAr[i - 1][0]) {\n",
              "                        curRank++;\n",
              "                    }\n",
              "                    return [curRank, x[0], x[1]];\n",
              "                }\n",
              "            )\n",
              "            return rankedAr.map(x => x).sort((a, b) => (a[2] - b[2])).map(x => x[0]);\n",
              "        }\n",
              "\n",
              "\n",
              "        function getDenseRanks(fullData, categoryNum) {\n",
              "            console.log(\"GETTING DENSE RANKS\")\n",
              "            console.log(\"CAT NUM \" + categoryNum)\n",
              "            console.log(\"CAT NAME \" + fullData.docs.categories[categoryNum])\n",
              "            console.log(fullData)\n",
              "\n",
              "            var fgFreqs = Array(fullData.data.length).fill(0);\n",
              "            var bgFreqs = Array(fullData.data.length).fill(0);\n",
              "            var categoryTermCounts = fullData.termCounts[categoryNum];\n",
              "\n",
              "            Object.keys(categoryTermCounts).forEach(\n",
              "                key => fgFreqs[key] = categoryTermCounts[key][0]\n",
              "            )\n",
              "            fullData.termCounts.forEach(\n",
              "                function (categoryTermCounts, otherCategoryNum) {\n",
              "                    if (otherCategoryNum != categoryNum) {\n",
              "                        Object.keys(categoryTermCounts).forEach(\n",
              "                            key => bgFreqs[key] += categoryTermCounts[key][0]\n",
              "                        )\n",
              "                    }\n",
              "                }\n",
              "            )\n",
              "            var fgDenseRanks = denseRank(fgFreqs);\n",
              "            var bgDenseRanks = denseRank(bgFreqs);\n",
              "\n",
              "            var maxfgDenseRanks = Math.max(...fgDenseRanks);\n",
              "            var minfgDenseRanks = Math.min(...fgDenseRanks);\n",
              "            var scalefgDenseRanks = fgDenseRanks.map(\n",
              "                x => (x - minfgDenseRanks) / (maxfgDenseRanks - minfgDenseRanks)\n",
              "            )\n",
              "\n",
              "            var maxbgDenseRanks = Math.max(...bgDenseRanks);\n",
              "            var minbgDenseRanks = Math.min(...bgDenseRanks);\n",
              "            var scalebgDenseRanks = bgDenseRanks.map(\n",
              "                x => (x - minbgDenseRanks) / (maxbgDenseRanks - minbgDenseRanks)\n",
              "            )\n",
              "\n",
              "            return {\n",
              "                'fg': scalefgDenseRanks,\n",
              "                'bg': scalebgDenseRanks,\n",
              "                'bgFreqs': bgFreqs,\n",
              "                'fgFreqs': fgFreqs,\n",
              "                'term': fullData.data.sort((a, b) => a.i - b.i).map(x => x.term)\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function getCategoryDenseRankScores(fullData, categoryNum) {\n",
              "            var denseRanks = getDenseRanks(fullData, categoryNum)\n",
              "            return denseRanks.fg.map((x, i) => x - denseRanks.bg[i]);\n",
              "        }\n",
              "\n",
              "        function getTermCounts(fullData) {\n",
              "            var counts = Array(fullData.data.length).fill(0);\n",
              "            fullData.termCounts.forEach(\n",
              "                function (categoryTermCounts) {\n",
              "                    Object.keys(categoryTermCounts).forEach(\n",
              "                        key => counts[key] = categoryTermCounts[key][0]\n",
              "                    )\n",
              "                }\n",
              "            )\n",
              "            return counts;\n",
              "        }\n",
              "\n",
              "        function getContextWordLORIPs(query) {\n",
              "            var contextWordCounts = getContextWordCounts(query);\n",
              "            var ni_k = contextWordCounts.sums[0];\n",
              "            var nj_k = contextWordCounts.sums[1];\n",
              "            var n = ni_k + nj_k;\n",
              "            //var ai_k0 = contextWordCounts.priorSums[0] + contextWordCounts.priorSums[1];\n",
              "            //var aj_k0 = contextWordCounts.priorSums[0] + contextWordCounts.priorSums[1];\n",
              "            var a0 = 0.00001 //corpusWordCounts.avgDocLen;\n",
              "            var a_k0 = Object.keys(contextWordCounts.counts)\n",
              "                .map(function (x) {\n",
              "                    var counts = contextWordCounts.counts[x];\n",
              "                    return a0 * (counts[2] + counts[3]) /\n",
              "                        (contextWordCounts.priorSums[0] + contextWordCounts.priorSums[1]);\n",
              "                })\n",
              "                .reduce(function (a, b) {\n",
              "                    return a + b\n",
              "                });\n",
              "            var ai_k0 = a_k0 / ni_k;\n",
              "            var aj_k0 = a_k0 / nj_k;\n",
              "            var scores = Object.keys(contextWordCounts.counts).map(\n",
              "                function (word) {\n",
              "                    var countData = contextWordCounts.counts[word];\n",
              "                    var yi = countData[0];\n",
              "                    var yj = countData[1];\n",
              "                    //var ai = countData[2];\n",
              "                    //var aj = countData[3];\n",
              "                    //var ai = countData[2] + countData[3];\n",
              "                    //var aj = ai;\n",
              "                    //var ai = (countData[2] + countData[3]) * a0/ni_k;\n",
              "                    //var aj = (countData[2] + countData[3]) * a0/nj_k;\n",
              "                    var ai = a0 * (countData[2] + countData[3]) /\n",
              "                        (contextWordCounts.priorSums[0] + contextWordCounts.priorSums[1]);\n",
              "                    var aj = ai;\n",
              "                    var deltahat_i_j =\n",
              "                        +Math.log((yi + ai) * 1. / (ni_k + ai_k0 - yi - ai))\n",
              "                        - Math.log((yj + aj) * 1. / (nj_k + aj_k0 - yj - aj));\n",
              "                    var var_deltahat_i_j = 1. / (yi + ai) + 1. / (ni_k + ai_k0 - yi - ai)\n",
              "                        + 1. / (yj + aj) + 1. / (nj_k + aj_k0 - yj - aj);\n",
              "                    var zeta_ij = deltahat_i_j / Math.sqrt(var_deltahat_i_j);\n",
              "                    return [word, yi, yj, ai, aj, ai_k0, zeta_ij];\n",
              "                }\n",
              "            ).sort(function (a, b) {\n",
              "                return b[5] - a[5];\n",
              "            });\n",
              "            return scores;\n",
              "        }\n",
              "\n",
              "        function getContextWordSFS(query) {\n",
              "            // from https://stackoverflow.com/questions/14846767/std-normal-cdf-normal-cdf-or-error-function\n",
              "            function cdf(x, mean, variance) {\n",
              "                return 0.5 * (1 + erf((x - mean) / (Math.sqrt(2 * variance))));\n",
              "            }\n",
              "\n",
              "            function erf(x) {\n",
              "                // save the sign of x\n",
              "                var sign = (x >= 0) ? 1 : -1;\n",
              "                x = Math.abs(x);\n",
              "\n",
              "                // constants\n",
              "                var a1 = 0.254829592;\n",
              "                var a2 = -0.284496736;\n",
              "                var a3 = 1.421413741;\n",
              "                var a4 = -1.453152027;\n",
              "                var a5 = 1.061405429;\n",
              "                var p = 0.3275911;\n",
              "\n",
              "                // A&S formula 7.1.26\n",
              "                var t = 1.0 / (1.0 + p * x);\n",
              "                var y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.exp(-x * x);\n",
              "                return sign * y; // erf(-x) = -erf(x);\n",
              "            }\n",
              "\n",
              "            function scale(a) {\n",
              "                return Math.log(a + 0.0000001);\n",
              "            }\n",
              "\n",
              "            var contextWordCounts = getContextWordCounts(query);\n",
              "            var wordList = Object.keys(contextWordCounts.counts).map(function (word) {\n",
              "                return contextWordCounts.counts[word].concat([word]);\n",
              "            });\n",
              "            var cat_freq_xbar = wordList.map(function (x) {\n",
              "                return scale(x[0])\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var cat_freq_var = wordList.map(function (x) {\n",
              "                return Math.pow((scale(x[0]) - cat_freq_xbar), 2);\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var cat_prec_xbar = wordList.map(function (x) {\n",
              "                return scale(x[0] / (x[0] + x[1]));\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var cat_prec_var = wordList.map(function (x) {\n",
              "                return Math.pow((scale(x[0] / (x[0] + x[1])) - cat_prec_xbar), 2);\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "\n",
              "            var ncat_freq_xbar = wordList.map(function (x) {\n",
              "                return scale(x[0])\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var ncat_freq_var = wordList.map(function (x) {\n",
              "                return Math.pow((scale(x[0]) - ncat_freq_xbar), 2);\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var ncat_prec_xbar = wordList.map(function (x) {\n",
              "                return scale(x[0] / (x[0] + x[1]));\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "            var ncat_prec_var = wordList.map(function (x) {\n",
              "                return Math.pow((scale(x[0] / (x[0] + x[1])) - ncat_prec_xbar), 2);\n",
              "            }).reduce(function (a, b) {\n",
              "                return a + b\n",
              "            }) / wordList.length;\n",
              "\n",
              "            function scaledFScore(cnt, other, freq_xbar, freq_var, prec_xbar, prec_var) {\n",
              "                var beta = 1.5;\n",
              "                var normFreq = cdf(scale(cnt), freq_xbar, freq_var);\n",
              "                var normPrec = cdf(scale(cnt / (cnt + other)), prec_xbar, prec_var);\n",
              "                return (1 + Math.pow(beta, 2)) * normFreq * normPrec / (Math.pow(beta, 2) * normFreq + normPrec);\n",
              "            }\n",
              "\n",
              "            var sfs = wordList.map(function (x) {\n",
              "                cat_sfs = scaledFScore(x[0], x[1], cat_freq_xbar,\n",
              "                    cat_freq_var, cat_prec_xbar, cat_prec_var);\n",
              "                ncat_sfs = scaledFScore(x[1], x[0], ncat_freq_xbar,\n",
              "                    ncat_freq_var, ncat_prec_xbar, ncat_prec_var);\n",
              "                return [cat_sfs > ncat_sfs ? cat_sfs : -ncat_sfs].concat(x);\n",
              "\n",
              "            }).sort(function (a, b) {\n",
              "                return b[0] - a[0];\n",
              "            });\n",
              "            return sfs;\n",
              "        }\n",
              "\n",
              "        function deselectLastCircle() {\n",
              "            if (lastCircleSelected) {\n",
              "                lastCircleSelected.style[\"stroke\"] = null;\n",
              "                lastCircleSelected = null;\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function getSentenceBoundaries(text) {\n",
              "            // !!! need to use spacy's sentence splitter\n",
              "            if (asianMode) {\n",
              "                var sentenceRe = /\\n/gmi;\n",
              "            } else {\n",
              "                var sentenceRe = /\\(?[^\\.\\?\\!\\n\\b]+[\\n\\.!\\?]\\)?/g;\n",
              "            }\n",
              "            var offsets = [];\n",
              "            var match;\n",
              "            while ((match = sentenceRe.exec(text)) != null) {\n",
              "                offsets.push(match.index);\n",
              "            }\n",
              "            offsets.push(text.length);\n",
              "            return offsets;\n",
              "        }\n",
              "\n",
              "        function getMatchingSnippet(text, boundaries, start, end) {\n",
              "            var sentenceStart = null;\n",
              "            var sentenceEnd = null;\n",
              "            for (var i in boundaries) {\n",
              "                var position = boundaries[i];\n",
              "                if (position <= start && (sentenceStart == null || position > sentenceStart)) {\n",
              "                    sentenceStart = position;\n",
              "                }\n",
              "                if (position >= end) {\n",
              "                    sentenceEnd = position;\n",
              "                    break;\n",
              "                }\n",
              "            }\n",
              "            var snippet = (text.slice(sentenceStart, start) + \"<b>\" + text.slice(start, end)\n",
              "                + \"</b>\" + text.slice(end, sentenceEnd)).trim();\n",
              "            if (sentenceStart == null) {\n",
              "                sentenceStart = 0;\n",
              "            }\n",
              "            return {'snippet': snippet, 'sentenceStart': sentenceStart};\n",
              "        }\n",
              "\n",
              "        function gatherTermContexts(d, includeAll = true) {\n",
              "            var category_name = fullData['info']['category_name'];\n",
              "            var not_category_name = fullData['info']['not_category_name'];\n",
              "            var matches = [[], [], [], []];\n",
              "\n",
              "            if (fullData.docs === undefined) return matches;\n",
              "            if (!nonTextFeaturesMode) {\n",
              "                return searchInText(d, includeAll);\n",
              "            } else {\n",
              "                return searchInExtraFeatures(d, includeAll);\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function searchInExtraFeatures(d) {\n",
              "            var matches = [[], [], [], []];\n",
              "            var term = d.term;\n",
              "            var categoryNum = fullData.docs.categories.indexOf(fullData.info.category_internal_name);\n",
              "            var notCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.not_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "            var neutralCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.neutral_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "            var extraCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.extra_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "\n",
              "            var pattern = null;\n",
              "            if ('metalists' in fullData && term in fullData.metalists) {\n",
              "                // from https://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex\n",
              "                function escapeRegExp(str) {\n",
              "                    return str.replace(/[\\\\?\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|\\']/g, \"\\\\$&\");\n",
              "                }\n",
              "\n",
              "                console.log('term');\n",
              "                console.log(term);\n",
              "                pattern = new RegExp(\n",
              "                    '(\\\\W|^)(' + fullData.metalists[term].map(escapeRegExp).join('|') + ')(\\\\W|$)',\n",
              "                    'gim'\n",
              "                );\n",
              "            }\n",
              "            for (var i in fullData.docs.extra) {\n",
              "                if (term in fullData.docs.extra[i]) {\n",
              "                    var strength = fullData.docs.extra[i][term] /\n",
              "                        Object.values(fullData.docs.extra[i]).reduce(\n",
              "                            function (a, b) {\n",
              "                                return a + b\n",
              "                            });\n",
              "\n",
              "                    var docLabel = fullData.docs.labels[i];\n",
              "                    var numericLabel = -1;\n",
              "                    if (docLabel == categoryNum) {\n",
              "                        numericLabel = 0;\n",
              "                    } else if (notCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 1;\n",
              "                    } else if (neutralCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 2;\n",
              "                    } else if (extraCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 3;\n",
              "                    }\n",
              "                    if (numericLabel == -1) {\n",
              "                        continue;\n",
              "                    }\n",
              "                    var text = fullData.docs.texts[i];\n",
              "\n",
              "                    if (fullData.offsets !== undefined) {\n",
              "\n",
              "                        if (fullData.offsets[term] !== undefined && fullData.offsets[term][i] !== undefined) {\n",
              "                            let curMatch = {\n",
              "                                'id': i,\n",
              "                                'snippets': [],\n",
              "                                'strength': strength,\n",
              "                                'docLabel': docLabel,\n",
              "                                'meta': fullData.docs.meta ? fullData.docs.meta[i] : \"\"\n",
              "                            }\n",
              "\n",
              "                            // remove duplicate offsets\n",
              "                            // merge overlapping offsets\n",
              "                            let offsets = merge(fullData.offsets[term][i]);\n",
              "\n",
              "                            var snippetPadding = 100;\n",
              "                            if(useFullDoc) {\n",
              "                                snippetPadding = 100000000000000;\n",
              "                            }\n",
              "\n",
              "                            let offsetChunks = [];\n",
              "                            let curChunk = [];\n",
              "                            for (let j = 0; j < offsets.length; j++) {\n",
              "                                //if (j > 0 && (offsets[j][0] - offsets[j - 1][1] >= snippetPadding)) {\n",
              "                                if (j > 0 && (offsets[j][0] - curChunk[0][1] >= snippetPadding)) {\n",
              "                                    offsetChunks.push(curChunk);\n",
              "                                    curChunk = []\n",
              "                                }\n",
              "                                curChunk.push(offsets[j])\n",
              "                            }\n",
              "                            offsetChunks.push(curChunk);\n",
              "\n",
              "                            console.log()\n",
              "                            let highlightOpen = '<b style=\"background-color: lightgoldenrodyellow\">';\n",
              "                            let highlightClose = '</b>';\n",
              "\n",
              "                            offsetChunks.map(\n",
              "                                function (curOffsets) {\n",
              "                                    if (curOffsets.length > 0) {\n",
              "                                        let offsetStart = curOffsets[0][0]\n",
              "                                        let offsetEnd = curOffsets[curOffsets.length - 1][1];\n",
              "                                        let spanStart = Math.max(0, offsetStart - snippetPadding);\n",
              "                                        let spanEnd = Math.min(offsetEnd + snippetPadding, text.length);\n",
              "                                        let snippet = text.substr(spanStart, spanEnd - spanStart);\n",
              "                                        console.log(\"Snippet\")\n",
              "                                        console.log(snippet)\n",
              "                                        console.log(\"curOffsets\")\n",
              "                                        console.log(curOffsets)\n",
              "                                        curOffsets.reverse().forEach(\n",
              "                                            function (offset) {\n",
              "                                                let curOffsetStart = offset[0] - spanStart;\n",
              "                                                let curOffsetEnd = offset[1] - spanStart;\n",
              "\n",
              "                                                snippet = (\n",
              "                                                    snippet.substr(0, curOffsetStart)\n",
              "                                                    + highlightOpen\n",
              "                                                    + snippet.substr(curOffsetStart, curOffsetEnd - curOffsetStart)\n",
              "                                                    + highlightClose\n",
              "                                                    + snippet.substr(curOffsetEnd, snippet.length - curOffsetEnd)\n",
              "                                                )\n",
              "                                            }\n",
              "                                        )\n",
              "\n",
              "                                        if (spanStart > 0)\n",
              "                                            snippet = '...' + snippet;\n",
              "                                        if (snippetPadding < text.length - offsetEnd)\n",
              "                                            snippet = snippet + '...'\n",
              "                                        curMatch.snippets.push(snippet)\n",
              "                                    }\n",
              "                                }\n",
              "                            )\n",
              "                            matches[numericLabel].push(curMatch);\n",
              "\n",
              "                        }\n",
              "                    } else {\n",
              "\n",
              "                        if (!useFullDoc)\n",
              "                            text = text.slice(0, 300);\n",
              "                        if (pattern !== null) {\n",
              "\n",
              "\n",
              "                            text = text.replace(pattern, '<b>$&</b>');\n",
              "                        }\n",
              "                        let curMatch = {\n",
              "                            'id': i,\n",
              "                            'snippets': [text],\n",
              "                            'strength': strength,\n",
              "                            'docLabel': docLabel,\n",
              "                            'meta': fullData.docs.meta ? fullData.docs.meta[i] : \"\"\n",
              "                        }\n",
              "\n",
              "                        matches[numericLabel].push(curMatch);\n",
              "                    }\n",
              "                }\n",
              "            }\n",
              "            for (var i in [0, 1]) {\n",
              "                if(sortContextsByMeta) {\n",
              "                    matches[i] = matches[i].sort(function (a, b) {\n",
              "                        return a.meta < b.meta ? 1 : -1\n",
              "                    })\n",
              "                } else {\n",
              "                    matches[i] = matches[i].sort(function (a, b) {\n",
              "                        return a.strength < b.strength ? 1 : -1\n",
              "                    })\n",
              "                }\n",
              "            }\n",
              "            return {'contexts': matches, 'info': d};\n",
              "        }\n",
              "\n",
              "        // from https://mathiasbynens.be/notes/es-unicode-property-escapes#emoji\n",
              "        var emojiRE = (/(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC69\\uDC6E\\uDC70-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3D\\uDD3E\\uDDD1-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])?|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDEEB\\uDEEC\\uDEF4-\\uDEF8]|\\uD83E[\\uDD10-\\uDD3A\\uDD3C-\\uDD3E\\uDD40-\\uDD45\\uDD47-\\uDD4C\\uDD50-\\uDD6B\\uDD80-\\uDD97\\uDDC0\\uDDD0-\\uDDE6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEF8]|\\uD83E[\\uDD10-\\uDD3A\\uDD3C-\\uDD3E\\uDD40-\\uDD45\\uDD47-\\uDD4C\\uDD50-\\uDD6B\\uDD80-\\uDD97\\uDDC0\\uDDD0-\\uDDE6])\\uFE0F/g);\n",
              "\n",
              "        function isEmoji(str) {\n",
              "            if (str.match(emojiRE)) return true;\n",
              "            return false;\n",
              "        }\n",
              "\n",
              "        function displayObscuredTerms(obscuredTerms, data, term, termInfo, div = '#' + divName + '-' + 'overlapped-terms') {\n",
              "            d3.select('#' + divName + '-' + 'overlapped-terms')\n",
              "                .selectAll('div')\n",
              "                .remove();\n",
              "            d3.select(div)\n",
              "                .selectAll('div')\n",
              "                .remove();\n",
              "            if (obscuredTerms.length > 1 && maxOverlapping !== 0) {\n",
              "                var obscuredDiv = d3.select(div)\n",
              "                    .append('div')\n",
              "                    .attr(\"class\", \"obscured\")\n",
              "                    .style('align', 'center')\n",
              "                    .style('text-align', 'center')\n",
              "                    .html(\"<b>\\\"\" + term + \"\\\" obstructs</b>: \");\n",
              "                obscuredTerms.map(\n",
              "                    function (term, i) {\n",
              "                        if (maxOverlapping === -1 || i < maxOverlapping) {\n",
              "                            makeWordInteractive(\n",
              "                                data,\n",
              "                                svg,\n",
              "                                obscuredDiv.append(\"text\").text(term),\n",
              "                                term,\n",
              "                                data.filter(t => t.term === term)[0],//termInfo\n",
              "                                false\n",
              "                            );\n",
              "                            if (i < obscuredTerms.length - 1\n",
              "                                && (maxOverlapping === -1 || i < maxOverlapping - 1)) {\n",
              "                                obscuredDiv.append(\"text\").text(\", \");\n",
              "                            }\n",
              "                        } else if (i === maxOverlapping && i !== obscuredTerms.length - 1) {\n",
              "                            obscuredDiv.append(\"text\").text(\"...\");\n",
              "                        }\n",
              "                    }\n",
              "                )\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function displayLineChart(termInfo, contexts) {\n",
              "            var divid = \"#\" + divName + \"-lineplot\",\n",
              "                margin = {top: 10, right: 30, bottom: 30, left: 80},\n",
              "                width = parseInt(0.9*widthInPixels) - margin.left - margin.right,\n",
              "                height = 200 - margin.top - margin.bottom;\n",
              "            d3.select(divid).selectAll(\"*\").remove();\n",
              "\n",
              "            // append the svg object to the body of the page\n",
              "            var basesvg = d3.select(divid)\n",
              "              .append(\"svg\")\n",
              "                .attr(\"width\", width + margin.left + margin.right)\n",
              "                .attr(\"height\", height + margin.top + margin.bottom)\n",
              "             var linesvg = basesvg.append(\"g\")\n",
              "                .attr(\"transform\",\n",
              "                      \"translate(\" + margin.left + \",\" + margin.top + \")\")\n",
              "\n",
              "            var docLabelCounts = fullData.docs.labels.reduce(\n",
              "                function (map, label) {\n",
              "                    map[label] = (map[label] || 0) + 1;\n",
              "                    return map;\n",
              "                },\n",
              "                Object.create(null)\n",
              "            );\n",
              "            var numMatches = Object.create(null);\n",
              "            var allContexts = contexts[0].concat(contexts[1]).concat(contexts[2]).concat(contexts[3]);\n",
              "            allContexts.forEach(function (singleDoc) {\n",
              "               numMatches[singleDoc.docLabel] = (numMatches[singleDoc.docLabel] || 0) + 1;\n",
              "            });\n",
              "            var docLabelCountsSorted = Object.keys(docLabelCounts).map(key => ({\n",
              "               \"label\": fullData.docs.categories[key],\n",
              "               \"labelNum\": key,\n",
              "               \"matches\": numMatches[key] || 0,\n",
              "               \"overall\": docLabelCounts[key],\n",
              "               'percent': (numMatches[key] || 0) * 100. / docLabelCounts[key]\n",
              "               })\n",
              "            ).sort(function (a, b) {\n",
              "               return a['label'] < b['label'] ? -1 : a['label'] > b['label'] ? 1 : 0\n",
              "            }).map((v, idx) => ({...v, idx: idx}));\n",
              "\n",
              "            var chartData = d3.entries(docLabelCountsSorted);\n",
              "\n",
              "            var chartx = d3.scaleLinear()\n",
              "               .domain(d3.extent(docLabelCountsSorted, function(d) { return d.idx; }))\n",
              "               .range([ 0, width ]);\n",
              "\n",
              "            linesvg.append(\"g\")\n",
              "               .attr(\"transform\", \"translate(0,\" + height + \")\")\n",
              "               .call(d3.axisBottom(chartx)\n",
              "                     .ticks(5)\n",
              "                     .tickFormat(function(d,i) {return docLabelCountsSorted[d].label}));\n",
              "\n",
              "\n",
              "            var charty = d3.scaleLinear()\n",
              "                .domain([0, d3.max(docLabelCountsSorted, function(d) { return +d.percent; })])\n",
              "                .range([ height, 0 ]);\n",
              "\n",
              "            linesvg.append(\"g\").call(d3.axisLeft(charty));\n",
              "\n",
              "            linesvg.append(\"text\")\n",
              "                .attr(\"transform\", \"rotate(-90)\")\n",
              "                .attr(\"x\", 0 - (height / 2))\n",
              "                .attr(\"y\", -40)\n",
              "                .attr(\"dy\", \"1em\")\n",
              "                .style(\"text-anchor\", \"middle\")\n",
              "                .text(\"% documents\");\n",
              "\n",
              "\n",
              "            basesvg.\n",
              "                on(\"pointerenter pointermove\", function(d) {\n",
              "                    var matrix = this.getScreenCTM()\n",
              "                        .translate(+ this.getAttribute(\"cx\"), + this.getAttribute(\"cy\"));\n",
              "                    var mousePosition = d3.mouse(this);\n",
              "                    var clickedIndex = Math.round(chartx.invert(d3.mouse(this)[0] - margin.left));\n",
              "                    var clickedInfo = docLabelCountsSorted[clickedIndex];\n",
              "                    var clickedLabel = clickedInfo.label;\n",
              "                    console.log(clickedInfo)\n",
              "                    chartTooltip.transition().duration(0).style('opacity', 0);\n",
              "                    chartTooltip.transition()\n",
              "                        .duration(0)\n",
              "                        .style(\"opacity\", 1)\n",
              "                        .style(\"z-index\", 10000000)\n",
              "                    var yChartPos = charty(clickedInfo.percent)\n",
              "                    chartTooltip.html(\n",
              "                        clickedLabel + '<br/>Matched docs: ' + clickedInfo.matches\n",
              "                        + ' of ' + clickedInfo.overall + '<br/>' + parseFloat(clickedInfo.percent).toFixed(4) + \"%\"\n",
              "                    ).style(\"left\", (window.pageXOffset + matrix.e + mousePosition[0] - margin.left) + \"px\")\n",
              "                     .style(\"top\", (window.pageYOffset + matrix.f + yChartPos - 60) + \"px\")\n",
              "                }).on('pointerleave', function () {\n",
              "                    chartTooltip.transition().duration(0).style('opacity', 0)\n",
              "                }).on(\"click\", function(d, i) {\n",
              "                    var mousePosition = d3.mouse(this);\n",
              "                    var clickedIndex = Math.round(chartx.invert(mousePosition[0] - margin.left));\n",
              "                    var clickedInfo = docLabelCountsSorted[clickedIndex];\n",
              "                    var clickedLabel = clickedInfo.label;\n",
              "                    console.log(\"clicked\"); console.log(mousePosition);\n",
              "                    console.log(clickedLabel);\n",
              "                    console.log(clickedInfo);\n",
              "                    window.location.hash = divId + 'egory' + clickedIndex;\n",
              "                    chartTooltip.transition().duration(0).style('opacity', 0)\n",
              "                })\n",
              "\n",
              "            console.log(chartData)\n",
              "            var valueline = d3.line()\n",
              "                .x(function (d) {\n",
              "                    return chartx(d.idx);\n",
              "                })\n",
              "                .y(function (d) {\n",
              "                    return charty(d.percent);\n",
              "                });\n",
              "\n",
              "            linesvg.append(\"path\")\n",
              "                .attr(\"class\", \"line\")\n",
              "                //.style(\"stroke-dasharray\", \"5,5\")\n",
              "                //.style(\"stroke\", \"#cccccc\")\n",
              "                //.style(\"stroke-width\", \"1px\")\n",
              "                .attr(\"fill\", \"none\")\n",
              "                .attr(\"stroke\", function(d){ return '#0000FF' })\n",
              "                .attr(\"stroke-width\", 1)\n",
              "                .attr(\"d\", valueline(docLabelCountsSorted.sort((a, b) => b.x - a.x)))\n",
              "            var chartTooltip = d3.select('#' + divName)\n",
              "                .append(\"div\")\n",
              "                .attr(\"class\", \"tooltipscore\")\n",
              "                .style(\"opacity\", 0);\n",
              "\n",
              "        }\n",
              "\n",
              "        function displayTermContexts(data, termInfo, jump = alwaysJump, includeAll = false) {\n",
              "            var contexts = termInfo.contexts;\n",
              "            var info = termInfo.info;\n",
              "            var notmatches = termInfo.notmatches;\n",
              "            if (contexts[0].length + contexts[1].length + contexts[2].length + contexts[3].length == 0) {\n",
              "                //return null;\n",
              "            }\n",
              "            //!!! Future feature: context words\n",
              "            //var contextWords = getContextWordSFS(info.term);\n",
              "            //var contextWords = getContextWordLORIPs(info.term);\n",
              "            //var categoryNames = [fullData.info.category_name,\n",
              "            //    fullData.info.not_category_name];\n",
              "            var catInternalName = fullData.info.category_internal_name;\n",
              "\n",
              "\n",
              "            function addSnippets(contexts, divId, isMatch = true) {\n",
              "                var meta = contexts.meta ? contexts.meta : '&nbsp;';\n",
              "                var headClass = 'snippet_meta docLabel' + contexts.docLabel;\n",
              "                var snippetClass = 'snippet docLabel' + contexts.docLabel;\n",
              "                if (!isMatch) {\n",
              "                    headClass = 'snippet_meta not_match docLabel' + contexts.docLabel;\n",
              "                    snippetClass = 'snippet not_match docLabel' + contexts.docLabel;\n",
              "                }\n",
              "                d3.select(divId)\n",
              "                    .append(\"div\")\n",
              "                    .attr('class', headClass)\n",
              "                    .html(meta);\n",
              "                contexts.snippets.forEach(function (snippet) {\n",
              "                    d3.select(divId)\n",
              "                        .append(\"div\")\n",
              "                        .attr('class', snippetClass)\n",
              "                        .html(snippet);\n",
              "                });\n",
              "\n",
              "            }\n",
              "\n",
              "\n",
              "\n",
              "            if (ignoreCategories) {\n",
              "                divId = '#' + divName + '-' + 'cat';\n",
              "\n",
              "                var numMatches = Object.create(null);\n",
              "                var temp = d3.select(divId).selectAll(\"div\").remove();\n",
              "                var allContexts = contexts[0].concat(contexts[1]).concat(contexts[2]).concat(contexts[3]);\n",
              "                var allNotMatches = [];\n",
              "                if (notmatches !== undefined)\n",
              "                    allNotMatches = notmatches[0].concat(notmatches[1]).concat(notmatches[2]).concat(notmatches[3]);\n",
              "                d3.select('#' + divName + '-' + 'categoryinfo').selectAll(\"div\").remove();\n",
              "                var numDocs = fullData.docs.texts.length.toLocaleString('en');\n",
              "                var numMatches = allContexts.length;\n",
              "                d3.select(divId)\n",
              "                    .append(\"div\")\n",
              "                    .attr('class', 'topic_preview')\n",
              "                    .attr('text-align', \"center\")\n",
              "                    .html(\n",
              "                        \"Matched \" + numMatches + \" out of \" + numDocs + ' documents: '\n",
              "                        + parseFloat(100 * parseInt(numMatches) / parseInt(numDocs)).toFixed(4) + '%'\n",
              "                    );\n",
              "\n",
              "                if (allContexts.length > 0) {\n",
              "                    var headerClassName = 'text_header';\n",
              "                    allContexts.forEach(function (singleDoc) {\n",
              "                        addSnippets(singleDoc, divId);\n",
              "                    });\n",
              "                    if (includeAll) {\n",
              "                        allNotMatches.forEach(function (singleDoc) {\n",
              "                            addSnippets(singleDoc, divId, false);\n",
              "                        });\n",
              "                    }\n",
              "                }\n",
              "\n",
              "            } else if (unifiedContexts)\n",
              "             {\n",
              "                divId = '#' + divName + '-' + 'cat';\n",
              "                var docLabelCounts = fullData.docs.labels.reduce(\n",
              "                    function (map, label) {\n",
              "                        map[label] = (map[label] || 0) + 1;\n",
              "                        return map;\n",
              "                    },\n",
              "                    Object.create(null)\n",
              "                );\n",
              "                var numMatches = Object.create(null);\n",
              "                var temp = d3.select(divId).selectAll(\"div\").remove();\n",
              "                var allContexts = contexts[0].concat(contexts[1]).concat(contexts[2]).concat(contexts[3]);\n",
              "                allContexts.forEach(function (singleDoc) {\n",
              "                    numMatches[singleDoc.docLabel] = (numMatches[singleDoc.docLabel] || 0) + 1;\n",
              "                });\n",
              "                var allNotMatches = [];\n",
              "                if (notmatches !== undefined)\n",
              "                    allNotMatches = notmatches[0].concat(notmatches[1]).concat(notmatches[2]).concat(notmatches[3]);\n",
              "                displayLineChart(termInfo, contexts)\n",
              "                /*contexts.forEach(function(context) {\n",
              "                     context.forEach(function (singleDoc) {\n",
              "                         numMatches[singleDoc.docLabel] = (numMatches[singleDoc.docLabel]||0) + 1;\n",
              "                         addSnippets(singleDoc, divId);\n",
              "                     });\n",
              "                 });*/\n",
              "                console.log(\"ORDERING !!!!!\");\n",
              "                console.log(fullData.info.category_name);\n",
              "                console.log(sortDocLabelsByName);\n",
              "                var docLabelCountsSorted = Object.keys(docLabelCounts).map(key => (\n",
              "                    {\n",
              "                        \"label\": fullData.docs.categories[key],\n",
              "                        \"labelNum\": key,\n",
              "                        \"matches\": numMatches[key] || 0,\n",
              "                        \"overall\": docLabelCounts[key],\n",
              "                        'percent': (numMatches[key] || 0) * 100. / docLabelCounts[key]\n",
              "                    }))\n",
              "                    .sort(function (a, b) {\n",
              "                        if (highlightSelectedCategory) {\n",
              "                            if (a['label'] === fullData.info.category_name) {\n",
              "                                return -1;\n",
              "                            }\n",
              "                            if (b['label'] === fullData.info.category_name) {\n",
              "                                return 1;\n",
              "                            }\n",
              "                        }\n",
              "                        if (sortDocLabelsByName) {\n",
              "                            return a['label'] < b['label'] ? 1 : a['label'] > b['label'] ? -1 : 0;\n",
              "                        } else {\n",
              "                            return b.percent - a.percent;\n",
              "                        }\n",
              "                    });\n",
              "\n",
              "                console.log(\"docLabelCountsSorted\")\n",
              "                console.log(docLabelCountsSorted);\n",
              "                console.log(numMatches)\n",
              "                console.log('#' + divName + '-' + 'categoryinfo')\n",
              "                d3.select('#' + divName + '-' + 'categoryinfo').selectAll(\"div\").remove();\n",
              "                if (showCategoryHeadings) {\n",
              "                    d3.select('#' + divName + '-' + 'categoryinfo').attr('display', 'inline');\n",
              "                }\n",
              "\n",
              "                function getCategoryStatsHTML(counts) {\n",
              "                    return counts.matches + \" document\"\n",
              "                        + (counts.matches == 1 ? \"\" : \"s\") + \" out of \" + counts.overall + ': '\n",
              "                        + counts['percent'].toFixed(2) + '%';\n",
              "                }\n",
              "\n",
              "                function getCategoryInlineHeadingHTML(counts) {\n",
              "                    return '<a name=\"' + divName + '-category'\n",
              "                        + counts.labelNum + '\"></a>'\n",
              "                        + (ignoreCategories ? \"\" : counts.label + \": \") + \"<span class=topic_preview>\"\n",
              "                        + getCategoryStatsHTML(counts)\n",
              "                        + \"</span>\";\n",
              "                }\n",
              "\n",
              "\n",
              "                docLabelCountsSorted.forEach(function (counts) {\n",
              "                    var htmlToAdd = \"\";\n",
              "                    if (!ignoreCategories) {\n",
              "                        htmlToAdd += \"<b>\" + counts.label + \"</b>: \" + getCategoryStatsHTML(counts);\n",
              "                    }\n",
              "\n",
              "                    if (counts.matches > 0) {\n",
              "                        var headerClassName = 'text_header';\n",
              "                        if ((counts.label === fullData.info.category_name) && highlightSelectedCategory) {\n",
              "                            d3.select(divId)\n",
              "                                .append('div')\n",
              "                                .attr('class', 'separator')\n",
              "                                .html(\"<b>Selected category</b>\");\n",
              "                        }\n",
              "                        d3.select(divId)\n",
              "                            .append(\"div\")\n",
              "                            .attr('class', headerClassName)\n",
              "                            .html(getCategoryInlineHeadingHTML(counts));\n",
              "\n",
              "                        allContexts\n",
              "                            .filter(singleDoc => singleDoc.docLabel == counts.labelNum)\n",
              "                            .forEach(function (singleDoc) {\n",
              "                                addSnippets(singleDoc, divId);\n",
              "                            });\n",
              "                        if (includeAll) {\n",
              "                            allNotMatches\n",
              "                                .filter(singleDoc => singleDoc.docLabel == counts.labelNum)\n",
              "                                .forEach(function (singleDoc) {\n",
              "                                    addSnippets(singleDoc, divId, false);\n",
              "                                });\n",
              "                        }\n",
              "                        if ((counts.label === fullData.info.category_name) && highlightSelectedCategory) {\n",
              "                            d3.select(divId).append('div').attr('class', 'separator').html(\"<b>End selected category</b>\");\n",
              "                            d3.select(divId).append('div').html(\"<br />\");\n",
              "                        }\n",
              "                    }\n",
              "\n",
              "\n",
              "                    if (showCategoryHeadings) {\n",
              "                        d3.select('#' + divName + '-' + 'categoryinfo')\n",
              "                            .attr('display', 'inline')\n",
              "                            .append('div')\n",
              "                            .html(htmlToAdd)\n",
              "                            .on(\"click\", function () {\n",
              "                                window.location.hash = '#' + divName + '-' + 'category' + counts.labelNum\n",
              "                            });\n",
              "                    }\n",
              "\n",
              "                })\n",
              "\n",
              "\n",
              "            } else\n",
              "             {\n",
              "                var contextColumns = [\n",
              "                    fullData.info.category_internal_name,\n",
              "                    fullData.info.not_category_name\n",
              "                ];\n",
              "                if (showNeutral) {\n",
              "                    if ('neutral_category_name' in fullData.info) {\n",
              "                        contextColumns.push(fullData.info.neutral_category_name)\n",
              "                    } else {\n",
              "                        contextColumns.push(\"Neutral\")\n",
              "                    }\n",
              "                    if (showExtra) {\n",
              "                        if ('extra_category_name' in fullData.info) {\n",
              "                            contextColumns.push(fullData.info.extra_category_name)\n",
              "                        } else {\n",
              "                            contextColumns.push(\"Extra\")\n",
              "                        }\n",
              "                    }\n",
              "\n",
              "                }\n",
              "                contextColumns.map(\n",
              "                    function (catName, catIndex) {\n",
              "                        if (max_snippets != null) {\n",
              "                            var contextsToDisplay = contexts[catIndex].slice(0, max_snippets);\n",
              "                        }\n",
              "                        //var divId = catName == catInternalName ? '#cat' : '#notcat';\n",
              "                        var divId = null\n",
              "                        if (fullData.info.category_internal_name == catName) {\n",
              "                            divId = '#' + divName + '-' + 'cat'\n",
              "                        } else if (fullData.info.not_category_name == catName) {\n",
              "                            divId = '#' + divName + '-' + 'notcat'\n",
              "                        } else if (fullData.info.neutral_category_name == catName) {\n",
              "                            divId = '#' + divName + '-' + 'neut';\n",
              "                        } else if (fullData.info.extra_category_name == catName) {\n",
              "                            divId = '#' + divName + '-' + 'extra'\n",
              "                        } else {\n",
              "                            return;\n",
              "                        }\n",
              "\n",
              "                        var temp = d3.select(divId).selectAll(\"div\").remove();\n",
              "                        contexts[catIndex].forEach(function (context) {\n",
              "                            addSnippets(context, divId);\n",
              "                        });\n",
              "                        if (includeAll) {\n",
              "                            notmatches[catIndex].forEach(function (context) {\n",
              "                                addSnippets(context, divId, false);\n",
              "                            });\n",
              "                        }\n",
              "                    }\n",
              "                );\n",
              "            }\n",
              "\n",
              "            var obscuredTerms = getObscuredTerms(data, termInfo.info);\n",
              "            displayObscuredTerms(obscuredTerms, data, info.term, info, '#' + divName + '-' + 'overlapped-terms-clicked');\n",
              "\n",
              "            d3.select('#' + divName + '-' + 'termstats')\n",
              "                .selectAll(\"div\")\n",
              "                .remove();\n",
              "            var termHtml = termWord + ': <b>' + formatTermForDisplay(info.term) + '</b>';\n",
              "            if ('metalists' in fullData && info.term in fullData.metalists) {\n",
              "                termHtml = 'Topic: <b>' + formatTermForDisplay(info.term) + '</b>';\n",
              "            }\n",
              "            if (getCustomTermHtml !== null) {\n",
              "                termHtml = getCustomTermHtml(info);\n",
              "            }\n",
              "            d3.select('#' + divName + '-' + 'termstats')\n",
              "                .append('div')\n",
              "                .attr(\"class\", \"snippet_header\")\n",
              "                .html(termHtml);\n",
              "            if ('metalists' in fullData && info.term in fullData.metalists && topic_model_preview_size > 0) {\n",
              "                d3.select('#' + divName + '-' + 'termstats')\n",
              "                    .attr(\"class\", \"topic_preview\")\n",
              "                    .append('div')\n",
              "                    .html(\"<b>Topic preview</b>: \"\n",
              "                        + fullData.metalists[info.term]\n",
              "                            .slice(0, topic_model_preview_size)\n",
              "                            .reduce(function (x, y) {\n",
              "                                return x + ', ' + y\n",
              "                            }));\n",
              "            }\n",
              "            if ('metadescriptions' in fullData && info.term in fullData.metadescriptions) {\n",
              "                d3.select('#' + divName + '-' + 'termstats')\n",
              "                    .attr(\"class\", \"topic_preview\")\n",
              "                    .append('div')\n",
              "                    .html(\"<b>Description</b>: \" + fullData.metadescriptions[info.term]);\n",
              "            }\n",
              "            var message = '';\n",
              "            var cat_name = fullData.info.category_name;\n",
              "            var ncat_name = fullData.info.not_category_name;\n",
              "\n",
              "\n",
              "            var numCatDocs = fullData.docs.labels\n",
              "                .map(function (x) {\n",
              "                    return (x == fullData.docs.categories.indexOf(\n",
              "                        fullData.info.category_internal_name)) + 0\n",
              "                })\n",
              "                .reduce(function (a, b) {\n",
              "                    return a + b;\n",
              "                }, 0);\n",
              "\n",
              "            var notCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.not_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "\n",
              "\n",
              "            var numNCatDocs = fullData.docs.labels\n",
              "                .map(function (x) {\n",
              "                    return notCategoryNumList.indexOf(x) > -1\n",
              "                })\n",
              "                .reduce(function (a, b) {\n",
              "                    return a + b;\n",
              "                }, 0);\n",
              "\n",
              "\n",
              "\n",
              "            function getFrequencyDescription(name, count25k, count, ndocs) {\n",
              "                var desc = name;\n",
              "                if (!enableTermCategoryDescription) {\n",
              "                    return desc + ':';\n",
              "                }\n",
              "                desc += ' frequency: <div class=text_subhead>' + count25k + ' per 25,000 terms</div>';\n",
              "                if (!isNaN(Math.round(ndocs))) {\n",
              "                    desc += '<div class=text_subhead>' + Math.round(ndocs) + ' per 1,000 docs</div>';\n",
              "                }\n",
              "                if (count == 0) {\n",
              "                    desc += '<u>Not found in any ' + name + ' documents.</u>';\n",
              "                } else {\n",
              "                    if (!isNaN(Math.round(ndocs))) {\n",
              "                        desc += '<u>Some of the ' + count + ' mentions:</u>';\n",
              "                    } else {\n",
              "                        desc += count + ' mentions';\n",
              "                    }\n",
              "                }\n",
              "                /*\n",
              "                desc += '<br><b>Discriminative:</b> ';\n",
              "\n",
              "                desc += contextWords\n",
              "                    .slice(cat_name === name ? 0 : contextWords.length - 3,\n",
              "                        cat_name === name ? 3 : contextWords.length)\n",
              "                    .filter(function (x) {\n",
              "                        //return Math.abs(x[5]) > 1.96;\n",
              "                        return true;\n",
              "                    })\n",
              "                    .map(function (x) {return x.join(', ')}).join('<br>');\n",
              "                */\n",
              "                return desc;\n",
              "            }\n",
              "\n",
              "            if (!unifiedContexts && !ignoreCategories) {\n",
              "                console.log(\"NOT UNIFIED CONTEXTS\")\n",
              "                let catHeader = \"\";\n",
              "                let nCatHeader = \"\";\n",
              "                if (getColumnHeaderHTML === null) {\n",
              "                    catHeader = getFrequencyDescription(\n",
              "                        cat_name,\n",
              "                        info.cat25k,\n",
              "                        info.cat,\n",
              "                        termInfo.contexts[0].length * 1000 / numCatDocs\n",
              "                    )\n",
              "                    nCatHeader = getFrequencyDescription(\n",
              "                        ncat_name,\n",
              "                        info.ncat25k,\n",
              "                        info.ncat,\n",
              "                        termInfo.contexts[1].length * 1000 / numNCatDocs\n",
              "                    )\n",
              "\n",
              "                } else {\n",
              "                    catHeader = getColumnHeaderHTML(0, termInfo, fullData)\n",
              "                    nCatHeader = getColumnHeaderHTML(1, termInfo, fullData)\n",
              "                }\n",
              "\n",
              "                d3.select('#' + divName + '-' + 'cathead')\n",
              "                    .style('fill', color(1))\n",
              "                    .html(catHeader);\n",
              "                d3.select('#' + divName + '-' + 'notcathead')\n",
              "                    .style('fill', color(0))\n",
              "                    .html(nCatHeader);\n",
              "                if (showNeutral) {\n",
              "                    var numList = fullData.docs.categories.map(function (x, i) {\n",
              "                        if (fullData.info.neutral_category_internal_names.indexOf(x) > -1) {\n",
              "                            return i;\n",
              "                        } else {\n",
              "                            return -1;\n",
              "                        }\n",
              "                    }).filter(function (x) {\n",
              "                        return x > -1\n",
              "                    });\n",
              "\n",
              "                    var numDocs = fullData.docs.labels\n",
              "                        .map(function (x) {\n",
              "                            return numList.indexOf(x) > -1\n",
              "                        })\n",
              "                        .reduce(function (a, b) {\n",
              "                            return a + b;\n",
              "                        }, 0);\n",
              "\n",
              "                    let neutHeader = '';\n",
              "                    if (getColumnHeaderHTML === null) {\n",
              "                        neutHeader = getFrequencyDescription(\n",
              "                            fullData.info.neutral_category_name,\n",
              "                            info.neut25k,\n",
              "                            info.neut,\n",
              "                            termInfo.contexts[2].length * 1000 / numDocs\n",
              "                        )\n",
              "                    } else {\n",
              "                        neutHeader = getColumnHeaderHTML(2, termInfo, fullData);\n",
              "                    }\n",
              "\n",
              "                    d3.select(\"#\" + divName + \"-neuthead\")\n",
              "                        .style('fill', color(0))\n",
              "                        .html(neutHeader);\n",
              "\n",
              "                    if (showExtra) {\n",
              "                        var numList = fullData.docs.categories.map(function (x, i) {\n",
              "                            if (fullData.info.extra_category_internal_names.indexOf(x) > -1) {\n",
              "                                return i;\n",
              "                            } else {\n",
              "                                return -1;\n",
              "                            }\n",
              "                        }).filter(function (x) {\n",
              "                            return x > -1\n",
              "                        });\n",
              "\n",
              "                        var numDocs = fullData.docs.labels\n",
              "                            .map(function (x) {\n",
              "                                return numList.indexOf(x) > -1\n",
              "                            })\n",
              "                            .reduce(function (a, b) {\n",
              "                                return a + b;\n",
              "                            }, 0);\n",
              "\n",
              "                        let extraHeader = '';\n",
              "                        if (getColumnHeaderHTML === null) {\n",
              "                            extraHeader = getFrequencyDescription(\n",
              "                                fullData.info.extra_category_name,\n",
              "                                info.extra25k,\n",
              "                                info.extra,\n",
              "                                termInfo.contexts[3].length * 1000 / numDocs\n",
              "                            )\n",
              "                        } else {\n",
              "                            extraHeader = getColumnHeaderHTML(3, termInfo, fullData);\n",
              "                        }\n",
              "\n",
              "                        d3.select(\"#\" + divName + \"-extrahead\")\n",
              "                            .style('fill', color(0))\n",
              "                            .html(extraHeader);\n",
              "\n",
              "                    }\n",
              "                }\n",
              "            } else if (unifiedContexts && !ignoreCategories) {\n",
              "                // extra unified context code goes here\n",
              "                console.log(\"docLabelCountsSorted\")\n",
              "                console.log(docLabelCountsSorted)\n",
              "\n",
              "                docLabelCountsSorted.forEach(function (counts) {\n",
              "                    var htmlToAdd = (ignoreCategories ? \"\" : \"<b>\" + counts.label + \"</b>: \") + getCategoryStatsHTML(counts);\n",
              "                    if (showCategoryHeadings) {\n",
              "                        d3.select('#' + divName + '-' + 'contexts')\n",
              "                            .append('div')\n",
              "                            .html(htmlToAdd)\n",
              "                            .on(\"click\", function () {\n",
              "                                window.location.hash = '#' + divName + '-' + 'category' + counts.labelNum\n",
              "                            });\n",
              "                    }\n",
              "                })\n",
              "            }\n",
              "            if (jump) {\n",
              "                if (window.location.hash === '#' + divName + '-' + 'snippets') {\n",
              "                    window.location.hash = '#' + divName + '-' + 'snippetsalt';\n",
              "                } else {\n",
              "                    window.location.hash = '#' + divName + '-' + 'snippets';\n",
              "                }\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function searchInText(d, includeAll = true) {\n",
              "            function stripNonWordChars(term) {\n",
              "                //d.term.replace(\" \", \"[^\\\\w]+\")\n",
              "            }\n",
              "\n",
              "            function removeUnderScoreJoin(term) {\n",
              "                /*\n",
              "                '_ _asjdklf_jaksdlf_jaksdfl skld_Jjskld asdfjkl_sjkdlf'\n",
              "                  ->\n",
              "                \"_ _asjdklf jaksdlf jaksdfl skld Jjskld asdfjkl_sjkdlf\"\n",
              "                 */\n",
              "                return term.replace(/(\\w+)(_)(\\w+)/, \"$1 $3\")\n",
              "                    .replace(/(\\w+)(_)(\\w+)/, \"$1 $3\")\n",
              "                    .replace(/(\\w+)(_)(\\w+)/, \"$1 $3\");\n",
              "            }\n",
              "\n",
              "            function buildMatcher(term) {\n",
              "\n",
              "\n",
              "                var boundary = '(?:\\\\W|^|$)';\n",
              "                var wordSep = \"[^\\\\w]+\";\n",
              "                if (asianMode) {\n",
              "                    boundary = '( |$|^)';\n",
              "                    wordSep = ' ';\n",
              "                }\n",
              "                if (isEmoji(term)) {\n",
              "                    boundary = '';\n",
              "                    wordSep = '';\n",
              "                }\n",
              "                if (matchFullLine) {\n",
              "                    boundary = '($|^)';\n",
              "                }\n",
              "                var termToRegex = term;\n",
              "\n",
              "\n",
              "                // https://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex\n",
              "                function escapeRegExp(string) {\n",
              "                    return string.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\,\\\\\\^\\$\\|\\'#?]/g, \"\\\\$&\");\n",
              "                    //return string.replace(/[\\?#.*+^${}()|[\\]\\\\]'\\%/g, '\\\\$&'); // $& means the whole matched string\n",
              "                }\n",
              "\n",
              "                /*\n",
              "                ['[', ']', '(', ')', '{', '}', '^', '$', '|', '?', '\"',\n",
              "                    '*', '+', '-', '=', '~', '`', '{'].forEach(function (a) {\n",
              "                    termToRegex = termToRegex.replace(a, '\\\\\\\\' + a)\n",
              "                });\n",
              "                ['.', '#'].forEach(function(a) {termToRegex = termToRegex.replace(a, '\\\\' + a)})\n",
              "                */\n",
              "                termToRegex = escapeRegExp(termToRegex);\n",
              "                console.log(\"termToRegex\")\n",
              "                console.log(termToRegex)\n",
              "\n",
              "                var regexp = new RegExp(boundary + '('\n",
              "                    + removeUnderScoreJoin(\n",
              "                        termToRegex.replace(' ', wordSep, 'gim')\n",
              "                    ) + ')' + boundary, 'gim');\n",
              "                console.log(regexp);\n",
              "\n",
              "                if (subwordEncoding === 'RoBERTa' || subwordEncoding === 'BERT') {\n",
              "                    if (term.charCodeAt(0) === 288 || term.charCodeAt(0) === 289) {\n",
              "                        // Starts with character Ġ indicating it's a word start\n",
              "                        regexp = new RegExp(boundary + escapeRegExp(term.substr(1, term.length)), 'gim');\n",
              "                    } else if (subwordEncoding == 'BERT' && term.charAt(0) === '#' && term.charAt(1) === '#') {\n",
              "                        regexp = new RegExp(boundary + escapeRegExp(term.substr(2, term.length)), 'gim');\n",
              "                    } else {\n",
              "                        regexp = new RegExp(\"\\w\" + escapeRegExp(term), 'gim');\n",
              "                    }\n",
              "                }\n",
              "\n",
              "                if (subwordEncoding === 'BERT') {\n",
              "                    if (term.charCodeAt(0) === 288 || term.charCodeAt(0) === 289) {\n",
              "                        // Starts with character Ġ indicating it's a word start\n",
              "                        regexp = new RegExp(boundary + escapeRegExp(term.substr(1, term.length)), 'gim');\n",
              "                    } else {\n",
              "                        regexp = new RegExp(\"\\w\" + escapeRegExp(term), 'gim');\n",
              "                    }\n",
              "                }\n",
              "\n",
              "                try {\n",
              "                    regexp.exec('X');\n",
              "                } catch (err) {\n",
              "                    console.log(\"Can't search \" + term);\n",
              "                    console.log(err);\n",
              "                    return null;\n",
              "                }\n",
              "                return regexp;\n",
              "            }\n",
              "\n",
              "            var matches = [[], [], [], []];\n",
              "            var notmatches = [[], [], [], []];\n",
              "            var pattern = buildMatcher(d.term);\n",
              "            var categoryNum = fullData.docs.categories.indexOf(fullData.info.category_internal_name);\n",
              "            var notCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.not_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "            var neutralCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.neutral_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "            var extraCategoryNumList = fullData.docs.categories.map(function (x, i) {\n",
              "                if (fullData.info.extra_category_internal_names.indexOf(x) > -1) {\n",
              "                    return i;\n",
              "                } else {\n",
              "                    return -1;\n",
              "                }\n",
              "            }).filter(function (x) {\n",
              "                return x > -1\n",
              "            });\n",
              "            console.log('extraCategoryNumList')\n",
              "            console.log(extraCategoryNumList);\n",
              "            console.log(\"categoryNum\");\n",
              "            console.log(categoryNum);\n",
              "            console.log(\"categoryNum\");\n",
              "            if (pattern !== null) {\n",
              "                for (var i in fullData.docs.texts) {\n",
              "                    //var numericLabel = 1 * (fullData.docs.categories[fullData.docs.labels[i]] != fullData.info.category_internal_name);\n",
              "\n",
              "                    var docLabel = fullData.docs.labels[i];\n",
              "                    var numericLabel = -1;\n",
              "                    if (docLabel == categoryNum) {\n",
              "                        numericLabel = 0;\n",
              "                    } else if (notCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 1;\n",
              "                    } else if (neutralCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 2;\n",
              "                    } else if (extraCategoryNumList.indexOf(docLabel) > -1) {\n",
              "                        numericLabel = 3;\n",
              "                    }\n",
              "                    if (numericLabel == -1) {\n",
              "                        continue;\n",
              "                    }\n",
              "\n",
              "                    var text = removeUnderScoreJoin(fullData.docs.texts[i]);\n",
              "                    //var pattern = new RegExp(\"\\\\b(\" + stripNonWordChars(d.term) + \")\\\\b\", \"gim\");\n",
              "                    var match;\n",
              "                    var sentenceOffsets = null;\n",
              "                    var lastSentenceStart = null;\n",
              "                    var matchFound = false;\n",
              "                    var curMatch = {'id': i, 'snippets': [], 'notsnippets': [], 'docLabel': docLabel};\n",
              "                    if (fullData.docs.meta) {\n",
              "                        curMatch['meta'] = fullData.docs.meta[i];\n",
              "                    }\n",
              "\n",
              "                    while ((match = pattern.exec(text)) != null) {\n",
              "                        if (sentenceOffsets == null) {\n",
              "                            sentenceOffsets = getSentenceBoundaries(text);\n",
              "                        }\n",
              "                        var foundSnippet = getMatchingSnippet(text, sentenceOffsets,\n",
              "                            match.index, pattern.lastIndex);\n",
              "                        if (foundSnippet.sentenceStart == lastSentenceStart) continue; // ensure we don't duplicate sentences\n",
              "                        lastSentenceStart = foundSnippet.sentenceStart;\n",
              "                        curMatch.snippets.push(foundSnippet.snippet);\n",
              "                        matchFound = true;\n",
              "                    }\n",
              "                    if (matchFound) {\n",
              "                        if (useFullDoc) {\n",
              "                            curMatch.snippets = [\n",
              "                                text\n",
              "                                    .replace(/\\n$/g, '\\n\\n')\n",
              "                                    .replace(\n",
              "                                        //new RegExp(\"\\\\b(\" + d.term.replace(\" \", \"[^\\\\w]+\") + \")\\\\b\",\n",
              "                                        //    'gim'),\n",
              "                                        pattern,\n",
              "                                        '<b>$&</b>')\n",
              "                            ];\n",
              "                        }\n",
              "                        matches[numericLabel].push(curMatch);\n",
              "                    } else {\n",
              "                        if (includeAll) {\n",
              "                            curMatch.snippets = [\n",
              "                                text.replace(/\\n$/g, '\\n\\n')\n",
              "                            ];\n",
              "                            notmatches[numericLabel].push(curMatch);\n",
              "                        }\n",
              "\n",
              "                    }\n",
              "                }\n",
              "            }\n",
              "            var toRet = {\n",
              "                'contexts': matches,\n",
              "                'notmatches': notmatches,\n",
              "                'info': d,\n",
              "                'docLabel': docLabel\n",
              "            };\n",
              "            return toRet;\n",
              "        }\n",
              "\n",
              "        function getDefaultTooltipContent(d) {\n",
              "            var term = formatTermForDisplay(d.term);\n",
              "\n",
              "            var message = term + \"<br/>\" + d.cat25k + \":\" + d.ncat25k + \" per 25k words\";\n",
              "            message += '<br/>score: ' + d.os.toFixed(5);\n",
              "            return message;\n",
              "        }\n",
              "\n",
              "        function getDefaultTooltipContentWithoutScore(d) {\n",
              "            var term = formatTermForDisplay(d.term);\n",
              "\n",
              "            var message = term + \"<br/>\" + d.cat25k + \":\" + d.ncat25k + \" per 25k words\";\n",
              "            return message;\n",
              "        }\n",
              "\n",
              "        function getObscuredTerms(data, d) {\n",
              "            //data = fullData['data']\n",
              "            var matches = (data.filter(function (term) {\n",
              "                    return term.x === d.x && term.y === d.y && (term.display === undefined || term.display === true);\n",
              "                }).map(function (term) {\n",
              "                    return formatTermForDisplay(term.term)\n",
              "                }).sort()\n",
              "            );\n",
              "            return matches;\n",
              "        }\n",
              "\n",
              "        function showTooltip(data, d, pageX, pageY, showObscured = true) {\n",
              "            deselectLastCircle();\n",
              "\n",
              "            var obscuredTerms = getObscuredTerms(data, d);\n",
              "            var message = '';\n",
              "            console.log(\"!!!!! \" + obscuredTerms.length)\n",
              "            console.log(showObscured)\n",
              "            if (obscuredTerms.length > 1 && showObscured)\n",
              "                displayObscuredTerms(obscuredTerms, data, d.term, d);\n",
              "            if (getTooltipContent !== null) {\n",
              "                message += getTooltipContent(d);\n",
              "            } else {\n",
              "                if (sortByDist) {\n",
              "                    message += getDefaultTooltipContentWithoutScore(d);\n",
              "                } else {\n",
              "                    message += getDefaultTooltipContent(d);\n",
              "                }\n",
              "            }\n",
              "            pageX -= (svg.node().getBoundingClientRect().left) - origSVGLeft;\n",
              "            pageY -= (svg.node().getBoundingClientRect().top) - origSVGTop;\n",
              "            tooltip.transition()\n",
              "                .duration(0)\n",
              "                .style(\"opacity\", 1)\n",
              "                .style(\"z-index\", 10000000);\n",
              "            tooltip.html(message)\n",
              "                .style(\"left\", (pageX - 40) + \"px\")\n",
              "                .style(\"top\", (pageY - 85 > 0 ? pageY - 85 : 0) + \"px\");\n",
              "            tooltip.on('click', function () {\n",
              "                tooltip.transition()\n",
              "                    .style('opacity', 0)\n",
              "            }).on('mouseout', function () {\n",
              "                tooltip.transition().style('opacity', 0)\n",
              "            });\n",
              "        }\n",
              "\n",
              "        handleSearch = function (event) {\n",
              "            var searchTerm = document\n",
              "                .getElementById(this.divName + \"-searchTerm\")\n",
              "                .value;\n",
              "            handleSearchTerm(searchTerm);\n",
              "            return false;\n",
              "        };\n",
              "\n",
              "        function highlightTerm(searchTerm, showObscured) {\n",
              "            deselectLastCircle();\n",
              "            var cleanedTerm = searchTerm.toLowerCase()\n",
              "                .replace(\"'\", \" '\")\n",
              "                .trim();\n",
              "            if (this.termDict[cleanedTerm] === undefined) {\n",
              "                cleanedTerm = searchTerm.replace(\"'\", \" '\").trim();\n",
              "            }\n",
              "            if (this.termDict[cleanedTerm] !== undefined) {\n",
              "                showToolTipForTerm(this.data, this.svg, cleanedTerm, this.termDict[cleanedTerm], showObscured);\n",
              "            }\n",
              "            return cleanedTerm;\n",
              "        }\n",
              "\n",
              "        function handleSearchTerm(searchTerm, jump = false) {\n",
              "            console.log(\"Handle search term.\");\n",
              "            console.log(searchTerm);\n",
              "            console.log(\"this\");\n",
              "            console.log(this)\n",
              "            highlighted = highlightTerm.call(this, searchTerm, true);\n",
              "            console.log(\"found searchTerm\");\n",
              "            console.log(searchTerm);\n",
              "            if (this.termDict[searchTerm] != null) {\n",
              "                var runDisplayTermContexts = true;\n",
              "                if (alternativeTermFunc != null) {\n",
              "                    runDisplayTermContexts = this.alternativeTermFunc(this.termDict[searchTerm]);\n",
              "                }\n",
              "                if (runDisplayTermContexts) {\n",
              "                    displayTermContexts(\n",
              "                        this.data,\n",
              "                        this.gatherTermContexts(this.termDict[searchTerm], this.includeAllContexts),\n",
              "                        alwaysJump,\n",
              "                        this.includeAllContexts\n",
              "                    );\n",
              "                }\n",
              "            }\n",
              "        }\n",
              "\n",
              "        function getCircleForSearchTerm(mysvg, searchTermInfo) {\n",
              "            var circle = mysvg;\n",
              "            if (circle.tagName !== \"circle\") { // need to clean this thing up\n",
              "                circle = mysvg._groups[0][searchTermInfo.ci];\n",
              "                if (circle === undefined || circle.tagName != 'circle') {\n",
              "                    if (mysvg._groups[0].children !== undefined) {\n",
              "                        circle = mysvg._groups[0].children[searchTermInfo.ci];\n",
              "                    }\n",
              "                }\n",
              "                if (circle === undefined || circle.tagName != 'circle') {\n",
              "                    if (mysvg._groups[0][0].children !== undefined) {\n",
              "                        circle = Array.prototype.filter.call(\n",
              "                            mysvg._groups[0][0].children,\n",
              "                            x => (x.tagName == \"circle\" && x.__data__['term'] == searchTermInfo.term)\n",
              "                        )[0];\n",
              "                    }\n",
              "                }\n",
              "                if ((circle === undefined || circle.tagName != 'circle') && mysvg._groups[0][0].children !== undefined) {\n",
              "                    circle = mysvg._groups[0][0].children[searchTermInfo.ci];\n",
              "                }\n",
              "            }\n",
              "            return circle;\n",
              "        }\n",
              "\n",
              "        function showToolTipForTerm(data, mysvg, searchTerm, searchTermInfo, showObscured = true) {\n",
              "            //var searchTermInfo = termDict[searchTerm];\n",
              "            console.log(\"showing tool tip\")\n",
              "            console.log(searchTerm)\n",
              "            console.log(searchTermInfo)\n",
              "            if (searchTermInfo === undefined) {\n",
              "                console.log(\"can't show\")\n",
              "                d3.select(\"#\" + divName + \"-alertMessage\")\n",
              "                    .text(searchTerm + \" didn't make it into the visualization.\");\n",
              "            } else {\n",
              "                d3.select(\"#\" + divName + \"-alertMessage\").text(\"\");\n",
              "                var circle = getCircleForSearchTerm(mysvg, searchTermInfo);\n",
              "                if (circle) {\n",
              "                    var mySVGMatrix = circle.getScreenCTM().translate(circle.cx.baseVal.value, circle.cy.baseVal.value);\n",
              "                    var pageX = mySVGMatrix.e;\n",
              "                    var pageY = mySVGMatrix.f;\n",
              "                    circle.style[\"stroke\"] = \"black\";\n",
              "                    //@@@@@ try to move to front\n",
              "                    //var circlePos = circle.position();\n",
              "                    //var el = circle.node()\n",
              "                    //showTooltip(searchTermInfo, pageX, pageY, circle.cx.baseVal.value, circle.cx.baseVal.value);\n",
              "                    showTooltip(\n",
              "                        data,\n",
              "                        searchTermInfo,\n",
              "                        pageX,\n",
              "                        pageY,\n",
              "                        showObscured\n",
              "                    );\n",
              "\n",
              "                    lastCircleSelected = circle;\n",
              "                }\n",
              "\n",
              "            }\n",
              "        };\n",
              "\n",
              "\n",
              "        function makeWordInteractive(data, svg, domObj, term, termInfo, showObscured = true) {\n",
              "            return domObj\n",
              "                .on(\"mouseover\", function (d) {\n",
              "                    showToolTipForTerm(data, svg, term, termInfo, showObscured);\n",
              "                    d3.select(this).style(\"stroke\", \"black\");\n",
              "                })\n",
              "                .on(\"mouseout\", function (d) {\n",
              "                    tooltip.transition()\n",
              "                        .duration(0)\n",
              "                        .style(\"opacity\", 0);\n",
              "                    d3.select(this).style(\"stroke\", null);\n",
              "                    if (showObscured) {\n",
              "                        d3.select('#' + divName + '-' + 'overlapped-terms')\n",
              "                            .selectAll('div')\n",
              "                            .remove();\n",
              "                    }\n",
              "                })\n",
              "                .on(\"click\", function (d) {\n",
              "                    var runDisplayTermContexts = true;\n",
              "                    if (alternativeTermFunc != null) {\n",
              "                        runDisplayTermContexts = alternativeTermFunc(termInfo);\n",
              "                    }\n",
              "                    if (runDisplayTermContexts) {\n",
              "                        displayTermContexts(data, gatherTermContexts(termInfo, includeAllContexts),\n",
              "                        alwaysJump, includeAllContexts);\n",
              "                    }\n",
              "                });\n",
              "        }\n",
              "\n",
              "\n",
              "        function processData(fullData) {\n",
              "\n",
              "            modelInfo = fullData['info'];\n",
              "            /*\n",
              "             categoryTermList.data(modelInfo['category_terms'])\n",
              "             .enter()\n",
              "             .append(\"li\")\n",
              "             .text(function(d) {return d;});\n",
              "             */\n",
              "            var data = fullData['data'];\n",
              "            termDict = Object();\n",
              "            data.forEach(function (x, i) {\n",
              "                termDict[x.term] = x;\n",
              "                //!!!\n",
              "                //termDict[x.term].i = i;\n",
              "            });\n",
              "\n",
              "            var padding = 0.1;\n",
              "            if (showAxes || showAxesAndCrossHairs) {\n",
              "                padding = 0.1;\n",
              "            }\n",
              "\n",
              "            // Scale the range of the data.  Add some space on either end.\n",
              "            if (useGlobalScale) {\n",
              "                var axisMax = Math.max(\n",
              "                    d3.max(data, function (d) {\n",
              "                        return d.x;\n",
              "                    }),\n",
              "                    d3.max(data, function (d) {\n",
              "                        return d.y;\n",
              "                    }),\n",
              "                )\n",
              "                var axisMin = Math.min(\n",
              "                    d3.min(data, function (d) {\n",
              "                        return d.x;\n",
              "                    }),\n",
              "                    d3.min(data, function (d) {\n",
              "                        return d.y;\n",
              "                    }),\n",
              "                )\n",
              "                axisMin = axisMin - (axisMax - axisMin) * padding;\n",
              "                axisMax = axisMax + (axisMax - axisMin) * padding;\n",
              "                x.domain([axisMin, axisMax]);\n",
              "                y.domain([axisMin, axisMax]);\n",
              "            } else {\n",
              "                var xMax = d3.max(data, function (d) {\n",
              "                    return d.x;\n",
              "                });\n",
              "                var yMax = d3.max(data, function (d) {\n",
              "                    return d.y;\n",
              "                })\n",
              "                x.domain([-1 * padding, xMax + padding]);\n",
              "                y.domain([-1 * padding, yMax + padding]);\n",
              "            }\n",
              "\n",
              "            /*\n",
              "             data.sort(function (a, b) {\n",
              "             return Math.abs(b.os) - Math.abs(a.os)\n",
              "             });\n",
              "             */\n",
              "\n",
              "\n",
              "            //var rangeTree = null; // keep boxes of all points and labels here\n",
              "            var rectHolder = new RectangleHolder();\n",
              "            var axisRectHolder = new RectangleHolder();\n",
              "            // Add the scatterplot\n",
              "            data.forEach(function (d, i) {\n",
              "                d.ci = i\n",
              "            });\n",
              "\n",
              "            //console.log('XXXXX'); console.log(data)\n",
              "\n",
              "\n",
              "            function getFilter(data) {\n",
              "                return data.filter(d => d.display === undefined || d.display === true);\n",
              "            }\n",
              "\n",
              "\n",
              "            var mysvg = svg\n",
              "                .selectAll(\"dot\")\n",
              "                .data(getFilter(data))\n",
              "                //.filter(function (d) {return d.display === undefined || d.display === true})\n",
              "                .enter()\n",
              "                .append(\"circle\")\n",
              "                .attr(\"r\", function (d) {\n",
              "                    if (suppressCircles) return 0;\n",
              "                    if (pValueColors && d.p) {\n",
              "                        return (d.p >= 1 - minPVal || d.p <= minPVal) ? 2 : 1.75;\n",
              "                    }\n",
              "                    return 2;\n",
              "                })\n",
              "                .attr(\"cx\", function (d) {\n",
              "                    return x(d.x);\n",
              "                })\n",
              "                .attr(\"cy\", function (d) {\n",
              "                    return y(d.y);\n",
              "                })\n",
              "                .style(\"fill\", function (d) {\n",
              "                    //.attr(\"fill\", function (d) {\n",
              "                    if (colorFunc) {\n",
              "                        return colorFunc(d);\n",
              "                    } else if (greyZeroScores && d.os == 0) {\n",
              "                        return d3.rgb(230, 230, 230);\n",
              "                    } else if (pValueColors && d.p) {\n",
              "                        if (d.p >= 1 - minPVal) {\n",
              "                            return wordVecMaxPValue ? d3.interpolateYlGnBu(d.s) : color(d.s);\n",
              "                        } else if (d.p <= minPVal) {\n",
              "                            return wordVecMaxPValue ? d3.interpolateYlGnBu(d.s) : color(d.s);\n",
              "                        } else {\n",
              "                            return interpolateLightGreys(d.s);\n",
              "                        }\n",
              "                    } else {\n",
              "                        return color(d.s);\n",
              "                    }\n",
              "                })\n",
              "                .on(\"mouseover\", function (d) {\n",
              "                    /*var mySVGMatrix = circle.getScreenCTM()n\n",
              "                        .translate(circle.cx.baseVal.value, circle.cy.baseVal.value);\n",
              "                    var pageX = mySVGMatrix.e;\n",
              "                    var pageY = mySVGMatrix.f;*/\n",
              "\n",
              "                    /*showTooltip(\n",
              "                        d,\n",
              "                        d3.event.pageX,\n",
              "                        d3.event.pageY\n",
              "                    );*/\n",
              "                    console.log(\"point MOUSOEVER\")\n",
              "                    console.log(d)\n",
              "                    showToolTipForTerm(data, this, d.term, d, true);\n",
              "                    d3.select(this).style(\"stroke\", \"black\");\n",
              "                })\n",
              "                .on(\"click\", function (d) {\n",
              "                    var runDisplayTermContexts = true;\n",
              "                    if (alternativeTermFunc != null) {\n",
              "                        runDisplayTermContexts = alternativeTermFunc(d);\n",
              "                    }\n",
              "                    if (runDisplayTermContexts) {\n",
              "                        displayTermContexts(data, gatherTermContexts(d), alwaysJump, includeAllContexts);\n",
              "                    }\n",
              "                })\n",
              "                .on(\"mouseout\", function (d) {\n",
              "                    tooltip.transition()\n",
              "                        .duration(0)\n",
              "                        .style(\"opacity\", 0);\n",
              "                    d3.select(this).style(\"stroke\", null);\n",
              "                    d3.select('#' + divName + '-' + 'overlapped-terms')\n",
              "                        .selectAll('div')\n",
              "                        .remove();\n",
              "                })\n",
              "\n",
              "\n",
              "            coords = Object();\n",
              "\n",
              "            var pointStore = [];\n",
              "            var pointRects = [];\n",
              "\n",
              "            function censorPoints(datum, getX, getY) {\n",
              "                if (suppressCircles !== true) {\n",
              "                    var term = datum.term;\n",
              "                    var curLabel = svg.append(\"text\")\n",
              "                        .attr(\"x\", x(getX(datum)))\n",
              "                        .attr(\"y\", y(getY(datum)) + 3)\n",
              "                        .attr(\"text-anchor\", \"middle\")\n",
              "                        .text(\"x\");\n",
              "                    var bbox = curLabel.node().getBBox();\n",
              "                    var borderToRemove = .5;\n",
              "                    var x1 = bbox.x + borderToRemove,\n",
              "                        y1 = bbox.y + borderToRemove,\n",
              "                        x2 = bbox.x + bbox.width - borderToRemove,\n",
              "                        y2 = bbox.y + bbox.height - borderToRemove;\n",
              "                    //rangeTree = insertRangeTree(rangeTree, x1, y1, x2, y2, '~~' + term);\n",
              "                    var pointRect = new Rectangle(x1, y1, x2, y2);\n",
              "                    pointRects.push(pointRect);\n",
              "                    rectHolder.add(pointRect);\n",
              "                    pointStore.push([x1, y1]);\n",
              "                    pointStore.push([x2, y1]);\n",
              "                    pointStore.push([x1, y2]);\n",
              "                    pointStore.push([x2, y2]);\n",
              "                    curLabel.remove();\n",
              "                }\n",
              "            }\n",
              "            console.log(\"SUPPRESS CIRCLE\"); console.log(suppressCircles)\n",
              "            function censorCircle(xCoord, yCoord) {\n",
              "                if (suppressCircles !== true) {\n",
              "                    console.log(\"DO NOT SUPRs\")\n",
              "                    var curLabel = svg.append(\"text\")\n",
              "                        .attr(\"x\", x(xCoord))\n",
              "                        .attr(\"y\", y(yCoord) + 3)\n",
              "                        .attr(\"text-anchor\", \"middle\")\n",
              "                        .text(\"x\");\n",
              "                    var bbox = curLabel.node().getBBox();\n",
              "                    var borderToRemove = .5;\n",
              "                    var x1 = bbox.x + borderToRemove,\n",
              "                        y1 = bbox.y + borderToRemove,\n",
              "                        x2 = bbox.x + bbox.width - borderToRemove,\n",
              "                        y2 = bbox.y + bbox.height - borderToRemove;\n",
              "                    var pointRect = new Rectangle(x1, y1, x2, y2);\n",
              "                    pointRects.push(pointRect);\n",
              "                    rectHolder.add(pointRect);\n",
              "                    pointStore.push([x1, y1]);\n",
              "                    pointStore.push([x2, y1]);\n",
              "                    pointStore.push([x1, y2]);\n",
              "                    pointStore.push([x2, y2]);\n",
              "                    curLabel.remove();\n",
              "                }\n",
              "            }\n",
              "\n",
              "            var configs = [\n",
              "                {'anchor': 'end', 'group': 1, 'xoff': -5, 'yoff': -3, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'end', 'group': 1, 'xoff': -5, 'yoff': 10, 'alignment-baseline': 'ideographic'},\n",
              "\n",
              "                {'anchor': 'end', 'group': 2, 'xoff': 10, 'yoff': 15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'end', 'group': 2, 'xoff': -10, 'yoff': -15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'end', 'group': 2, 'xoff': 10, 'yoff': -15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'end', 'group': 2, 'xoff': -10, 'yoff': 15, 'alignment-baseline': 'ideographic'},\n",
              "\n",
              "                {'anchor': 'start', 'group': 1, 'xoff': 3, 'yoff': 10, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'start', 'group': 1, 'xoff': 3, 'yoff': -3, 'alignment-baseline': 'ideographic'},\n",
              "\n",
              "                {'anchor': 'start', 'group': 2, 'xoff': 5, 'yoff': 10, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'start', 'group': 2, 'xoff': 5, 'yoff': -3, 'alignment-baseline': 'ideographic'},\n",
              "\n",
              "                {'anchor': 'start', 'group': 3, 'xoff': 10, 'yoff': 15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'start', 'group': 3, 'xoff': -10, 'yoff': -15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'start', 'group': 3, 'xoff': 10, 'yoff': -15, 'alignment-baseline': 'ideographic'},\n",
              "                {'anchor': 'start', 'group': 3, 'xoff': -10, 'yoff': 15, 'alignment-baseline': 'ideographic'},\n",
              "            ];\n",
              "            if (centerLabelsOverPoints) {\n",
              "                console.log(\"CENTERING LABEL\")\n",
              "                configs = [{'anchor': 'middle', 'xoff': 0, 'yoff': 0, 'alignment-baseline': 'middle'}];\n",
              "            }\n",
              "            console.log(\"CONFIGS\")\n",
              "            console.log(configs)\n",
              "\n",
              "            function labelPointsIfPossible(datum, myX, myY) {\n",
              "                if (suppressTextColumn !== undefined\n",
              "                    && datum.etc !== undefined\n",
              "                    && datum.etc[suppressTextColumn] === true) {\n",
              "                    return false;\n",
              "                }\n",
              "\n",
              "                var term = datum.term;\n",
              "                if (datum.x > datum.y) {\n",
              "                    configs.sort((a, b) => a.anchor == 'end' && b.anchor == 'end'\n",
              "                        ? a.group - b.group : (a.anchor == 'end') - (b.anchor == 'end'));\n",
              "                } else {\n",
              "                    configs.sort((a, b) => a.anchor == 'start' && b.anchor == 'start'\n",
              "                        ? a.group - b.group : (a.anchor == 'start') - (b.anchor == 'start'));\n",
              "                }\n",
              "                var matchedElement = null;\n",
              "\n",
              "                var termColor = 'rgb(0,0,0)';\n",
              "                if (textColorColumn !== undefined && datum.etc !== undefined && datum.etc[textColorColumn] !== undefined) {\n",
              "                    termColor = datum.etc[textColorColumn];\n",
              "                }\n",
              "                term = formatTermForDisplay(term);\n",
              "\n",
              "                for (var configI in configs) {\n",
              "                    var config = configs[configI];\n",
              "                    var curLabel = svg.append(\"text\")\n",
              "                        //.attr(\"x\", x(data[i].x) + config['xoff'])\n",
              "                        //.attr(\"y\", y(data[i].y) + config['yoff'])\n",
              "                        .attr(\"x\", x(myX) + config['xoff'])\n",
              "                        .attr(\"y\", y(myY) + config['yoff'])\n",
              "                        .attr('class', 'label')\n",
              "                        .attr('class', 'pointlabel')\n",
              "                        .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                        .attr('font-size', '10px')\n",
              "                        .attr(\"text-anchor\", config['anchor'])\n",
              "                        .attr(\"alignment-baseline\", config['alignment'])\n",
              "                        .attr(\"fill\", termColor)\n",
              "                        .text(term);\n",
              "                    var bbox = curLabel.node().getBBox();\n",
              "                    var borderToRemove = doCensorPoints ? 0.5 : .25;\n",
              "\n",
              "                    var x1 = bbox.x + borderToRemove,\n",
              "                        y1 = bbox.y + borderToRemove,\n",
              "                        x2 = bbox.x + bbox.width - borderToRemove,\n",
              "                        y2 = bbox.y + bbox.height - borderToRemove;\n",
              "                    //matchedElement = searchRangeTree(rangeTree, x1, y1, x2, y2);\n",
              "                    var matchedElement = false;\n",
              "                    rectHolder.findMatchingRectangles(x1, y1, x2, y2, function (elem) {\n",
              "                        matchedElement = true;\n",
              "                        return false;\n",
              "                    });\n",
              "                    if (matchedElement) {\n",
              "                        curLabel.remove();\n",
              "                    } else {\n",
              "                        curLabel = makeWordInteractive(data, svg, curLabel, term, datum);\n",
              "                        break;\n",
              "                    }\n",
              "                }\n",
              "\n",
              "                if (!matchedElement) {\n",
              "                    coords[term] = [x1, y1, x2, y2];\n",
              "                    //rangeTree = insertRangeTree(rangeTree, x1, y1, x2, y2, term);\n",
              "                    var labelRect = new Rectangle(x1, y1, x2, y2)\n",
              "                    rectHolder.add(labelRect);\n",
              "                    pointStore.push([x1, y1]);\n",
              "                    pointStore.push([x2, y1]);\n",
              "                    pointStore.push([x1, y2]);\n",
              "                    pointStore.push([x2, y2]);\n",
              "                    return {label: curLabel, rect: labelRect};\n",
              "                } else {\n",
              "                    //curLabel.remove();\n",
              "                    return false;\n",
              "                }\n",
              "\n",
              "            }\n",
              "\n",
              "            var radius = 2;\n",
              "\n",
              "            function euclideanDistanceSort(a, b) {\n",
              "                var aCatDist = a.x * a.x + (1 - a.y) * (1 - a.y);\n",
              "                var aNotCatDist = a.y * a.y + (1 - a.x) * (1 - a.x);\n",
              "                var bCatDist = b.x * b.x + (1 - b.y) * (1 - b.y);\n",
              "                var bNotCatDist = b.y * b.y + (1 - b.x) * (1 - b.x);\n",
              "                return (Math.min(aCatDist, aNotCatDist) > Math.min(bCatDist, bNotCatDist)) * 2 - 1;\n",
              "            }\n",
              "\n",
              "            function euclideanDistanceSortForCategory(a, b) {\n",
              "                var aCatDist = a.x * a.x + (1 - a.y) * (1 - a.y);\n",
              "                var bCatDist = b.x * b.x + (1 - b.y) * (1 - b.y);\n",
              "                return (aCatDist > bCatDist) * 2 - 1;\n",
              "            }\n",
              "\n",
              "            function euclideanDistanceSortForNotCategory(a, b) {\n",
              "                var aNotCatDist = a.y * a.y + (1 - a.x) * (1 - a.x);\n",
              "                var bNotCatDist = b.y * b.y + (1 - b.x) * (1 - b.x);\n",
              "                return (aNotCatDist > bNotCatDist) * 2 - 1;\n",
              "            }\n",
              "\n",
              "            function scoreSort(a, b) {\n",
              "                return a.s - b.s;\n",
              "            }\n",
              "\n",
              "            function scoreSortReverse(a, b) {\n",
              "                return b.s - a.s;\n",
              "            }\n",
              "\n",
              "            function backgroundScoreSort(a, b) {\n",
              "                if (b.bg === a.bg)\n",
              "                    return (b.cat + b.ncat) - (a.cat + a.ncat);\n",
              "                return b.bg - a.bg;\n",
              "            }\n",
              "\n",
              "            function arePointsPredictiveOfDifferentCategories(a, b) {\n",
              "                var aCatDist = a.x * a.x + (1 - a.y) * (1 - a.y);\n",
              "                var bCatDist = b.x * b.x + (1 - b.y) * (1 - b.y);\n",
              "                var aNotCatDist = a.y * a.y + (1 - a.x) * (1 - a.x);\n",
              "                var bNotCatDist = b.y * b.y + (1 - b.x) * (1 - b.x);\n",
              "                var aGood = aCatDist < aNotCatDist;\n",
              "                var bGood = bCatDist < bNotCatDist;\n",
              "                return {aGood: aGood, bGood: bGood};\n",
              "            }\n",
              "\n",
              "            function scoreSortForCategory(a, b) {\n",
              "                var __ret = arePointsPredictiveOfDifferentCategories(a, b);\n",
              "                if (sortByDist) {\n",
              "                    var aGood = __ret.aGood;\n",
              "                    var bGood = __ret.bGood;\n",
              "                    if (aGood && !bGood) return -1;\n",
              "                    if (!aGood && bGood) return 1;\n",
              "                }\n",
              "                return b.s - a.s;\n",
              "            }\n",
              "\n",
              "            function scoreSortForNotCategory(a, b) {\n",
              "                var __ret = arePointsPredictiveOfDifferentCategories(a, b);\n",
              "                if (sortByDist) {\n",
              "                    var aGood = __ret.aGood;\n",
              "                    var bGood = __ret.bGood;\n",
              "                    if (aGood && !bGood) return 1;\n",
              "                    if (!aGood && bGood) return -1;\n",
              "                }\n",
              "                if (reverseSortScoresForNotCategory)\n",
              "                    return a.s - b.s;\n",
              "                else\n",
              "                    return b.s - a.s;\n",
              "            }\n",
              "\n",
              "            var sortedData = data.map(x => x).sort(sortByDist ? euclideanDistanceSort : scoreSort);\n",
              "            if (doCensorPoints) {\n",
              "                for (var i in sortedData) {\n",
              "                    var d = sortedData[i];\n",
              "                    if(censorPointColumn === undefined || (\n",
              "                        d.etc !== undefined && (d.etc[censorPointColumn] === false\n",
              "                                                || df.etc[censorPointColumn] === undefined))) {\n",
              "                        censorPoints(\n",
              "                            d,\n",
              "                            function (d) {\n",
              "                                return d.x\n",
              "                            },\n",
              "                            function (d) {\n",
              "                                return d.y\n",
              "                            }\n",
              "                        );\n",
              "                    }\n",
              "\n",
              "                }\n",
              "            }\n",
              "\n",
              "\n",
              "            function registerFigureBBox(curLabel, axis = false) {\n",
              "                var bbox = curLabel.node().getBBox();\n",
              "                var borderToRemove = 1.5;\n",
              "                var x1 = bbox.x + borderToRemove,\n",
              "                    y1 = bbox.y + borderToRemove,\n",
              "                    x2 = bbox.x + bbox.width - borderToRemove,\n",
              "                    y2 = bbox.y + bbox.height - borderToRemove;\n",
              "                var rect = new Rectangle(x1, y1, x2, y2)\n",
              "                if (axis) {\n",
              "                    axisRectHolder.add(rect)\n",
              "                } else {\n",
              "                    rectHolder.add(rect);\n",
              "                }\n",
              "                //return insertRangeTree(rangeTree, x1, y1, x2, y2, '~~_other_');\n",
              "            }\n",
              "\n",
              "            function drawXLabel(svg, labelText) {\n",
              "                return svg.append(\"text\")\n",
              "                    .attr(\"class\", \"x label\")\n",
              "                    .attr(\"text-anchor\", \"end\")\n",
              "                    .attr(\"x\", width)\n",
              "                    .attr(\"y\", height - 6)\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr('font-size', '10px')\n",
              "                    .text(labelText);\n",
              "            }\n",
              "\n",
              "            function drawYLabel(svg, labelText) {\n",
              "                return svg.append(\"text\")\n",
              "                    .attr(\"class\", \"y label\")\n",
              "                    .attr(\"text-anchor\", \"end\")\n",
              "                    .attr(\"y\", 6)\n",
              "                    .attr(\"dy\", \".75em\")\n",
              "                    .attr(\"transform\", \"rotate(-90)\")\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr('font-size', '10px')\n",
              "                    .text(labelText);\n",
              "            }\n",
              "\n",
              "            d3.selection.prototype.moveToBack = function () {\n",
              "                return this.each(function () {\n",
              "                    var firstChild = this.parentNode.firstChild;\n",
              "                    if (firstChild) {\n",
              "                        this.parentNode.insertBefore(this, firstChild);\n",
              "                    }\n",
              "                });\n",
              "            };\n",
              "\n",
              "\n",
              "            if (verticalLines) {\n",
              "                if (typeof (verticalLines) === \"number\") {\n",
              "                    verticalLines = [verticalLines]; // r likes to make single element vectors doubles; this is a hackish workaround\n",
              "                }\n",
              "                for (i in verticalLines) {\n",
              "                    svg.append(\"g\")\n",
              "                        .attr(\"transform\", \"translate(\" + x(verticalLines[i]) + \", 1)\")\n",
              "                        .append(\"line\")\n",
              "                        .attr(\"y2\", height)\n",
              "                        .style(\"stroke\", \"#dddddd\")\n",
              "                        .style(\"stroke-width\", \"1px\")\n",
              "                        .moveToBack();\n",
              "                }\n",
              "            }\n",
              "\n",
              "            if (fullData['line'] !== undefined) {\n",
              "                var valueline = d3.line()\n",
              "                    .x(function (d) {\n",
              "                        return x(d.x);\n",
              "                    })\n",
              "                    .y(function (d) {\n",
              "                        return y(d.y);\n",
              "                    });\n",
              "                fullData.line = fullData.line.sort((a, b) => b.x - a.x);\n",
              "                svg.append(\"path\")\n",
              "                    .attr(\"class\", \"line\")\n",
              "                    .style(\"stroke-dasharray\", \"5,5\")\n",
              "                    .style(\"stroke\", \"#3b719f\")\n",
              "                    .style(\"stroke-width\", \"1.25px\")\n",
              "                    .attr(\"d\", valueline(fullData['line'])).moveToBack();\n",
              "            }\n",
              "            if (showAxes || showAxesAndCrossHairs) {\n",
              "\n",
              "                var myXAxis = svg.append(\"g\")\n",
              "                    .attr(\"class\", \"x axis\")\n",
              "                    .attr(\"transform\", \"translate(0,\" + height + \")\")\n",
              "                    .call(xAxis);\n",
              "\n",
              "                //rangeTree = registerFigureBBox(myXAxis);\n",
              "\n",
              "\n",
              "                var xLabel = drawXLabel(svg, getLabelText('x'));\n",
              "\n",
              "                //console.log('xLabel');\n",
              "                //console.log(xLabel);\n",
              "\n",
              "                //rangeTree = registerFigureBBox(xLabel);\n",
              "                // Add the Y Axis\n",
              "\n",
              "                if (!yAxisValues) {\n",
              "                    var myYAxis = svg.append(\"g\")\n",
              "                        .attr(\"class\", \"y axis\")\n",
              "                        .call(yAxis)\n",
              "                        .selectAll(\"text\")\n",
              "                        .style(\"text-anchor\", \"end\")\n",
              "                        .attr(\"dx\", \"30px\")\n",
              "                        .attr(\"dy\", \"-13px\")\n",
              "                        .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                        .attr('font-size', '10px')\n",
              "                        .attr(\"transform\", \"rotate(-90)\");\n",
              "                } else {\n",
              "                    var myYAxis = svg.append(\"g\")\n",
              "                        .attr(\"class\", \"y axis\")\n",
              "                        .call(yAxis)\n",
              "                        .selectAll(\"text\")\n",
              "                        .style(\"text-anchor\", \"end\")\n",
              "                        .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                        .attr('font-size', '10px');\n",
              "                }\n",
              "                registerFigureBBox(myYAxis, true);\n",
              "                registerFigureBBox(myXAxis, true);\n",
              "\n",
              "                function getLabelText(axis) {\n",
              "                    if (axis == 'y') {\n",
              "                        if (yLabelText == null)\n",
              "                            return modelInfo['category_name'] + \" Frequency\";\n",
              "                        else\n",
              "                            return yLabelText;\n",
              "                    } else {\n",
              "                        if (xLabelText == null)\n",
              "                            return modelInfo['not_category_name'] + \" Frequency\";\n",
              "                        else\n",
              "                            return xLabelText;\n",
              "                    }\n",
              "                }\n",
              "\n",
              "                var yLabel = drawYLabel(svg, getLabelText('y'))\n",
              "\n",
              "            }\n",
              "\n",
              "            if (!showAxes || showAxesAndCrossHairs) {\n",
              "                horizontal_line_y_position_translated = 0.5;\n",
              "                if (horizontal_line_y_position !== null) {\n",
              "                    var loOy = null, hiOy = null, loY = null, hiY = null;\n",
              "                    for (i in fullData.data) {\n",
              "                        var curOy = fullData.data[i].oy;\n",
              "                        if (curOy < horizontal_line_y_position && (curOy > loOy || loOy === null)) {\n",
              "                            loOy = curOy;\n",
              "                            loY = fullData.data[i].y\n",
              "                        }\n",
              "                        if (curOy > horizontal_line_y_position && (curOy < hiOy || hiOy === null)) {\n",
              "                            hiOy = curOy;\n",
              "                            hiY = fullData.data[i].y\n",
              "                        }\n",
              "                    }\n",
              "                    horizontal_line_y_position_translated = loY + (hiY - loY) / 2.\n",
              "                    if (loY === null) {\n",
              "                        horizontal_line_y_position_translated = 0;\n",
              "                    }\n",
              "                }\n",
              "                if (vertical_line_x_position === null) {\n",
              "                    vertical_line_x_position_translated = 0.5;\n",
              "                } else {\n",
              "                    if (vertical_line_x_position !== null) {\n",
              "                        var loOx = null, hiOx = null, loX = null, hiX = null;\n",
              "                        for (i in fullData.data) {\n",
              "                            var curOx = fullData.data[i].ox;\n",
              "                            if (curOx < vertical_line_x_position && (curOx > loOx || loOx === null)) {\n",
              "                                loOx = curOx;\n",
              "                                loX = fullData.data[i].x;\n",
              "                            }\n",
              "                            if (curOx > vertical_line_x_position && (curOx < hiOx || hiOx === null)) {\n",
              "                                hiOx = curOx;\n",
              "                                hiX = fullData.data[i].x\n",
              "                            }\n",
              "                        }\n",
              "                        vertical_line_x_position_translated = loX + (hiX - loX) / 2.\n",
              "                        if (loX === null) {\n",
              "                            vertical_line_x_position_translated = 0;\n",
              "                        }\n",
              "                    }\n",
              "                }\n",
              "                if (showCrossAxes) {\n",
              "                    var x_line = svg.append(\"g\")\n",
              "                        .attr(\"transform\", \"translate(0, \" + y(horizontal_line_y_position_translated) + \")\")\n",
              "                        .append(\"line\")\n",
              "                        .attr(\"x2\", width)\n",
              "                        .style(\"stroke\", \"#cccccc\")\n",
              "                        .style(\"stroke-width\", \"1px\")\n",
              "                        .moveToBack();\n",
              "                    var y_line = svg.append(\"g\")\n",
              "                        .attr(\"transform\", \"translate(\" + x(vertical_line_x_position_translated) + \", 0)\")\n",
              "                        .append(\"line\")\n",
              "                        .attr(\"y2\", height)\n",
              "                        .style(\"stroke\", \"#cccccc\")\n",
              "                        .style(\"stroke-width\", \"1px\")\n",
              "                        .moveToBack();\n",
              "                }\n",
              "            }\n",
              "\n",
              "            if (showDiagonal) {\n",
              "                var diagonal = svg.append(\"g\")\n",
              "                    .append(\"line\")\n",
              "                    .attr(\"x1\", 0)\n",
              "                    .attr(\"y1\", height)\n",
              "                    .attr(\"x2\", width)\n",
              "                    .attr(\"y2\", 0)\n",
              "                    .style(\"stroke-dasharray\", \"5,5\")\n",
              "                    .style(\"stroke\", \"#cccccc\")\n",
              "                    .style(\"stroke-width\", \"1px\")\n",
              "                    .moveToBack();\n",
              "            }\n",
              "\n",
              "            if (horizontal_line_y_position !== null) {\n",
              "                console.log(\"Height\"); console.log(height); console.log(margin)\n",
              "                var horizontal = svg.append(\"g\")\n",
              "                    .append(\"line\")\n",
              "                    .attr(\"x1\", 0)\n",
              "                    .attr(\"y1\", (height)/2 + 3)\n",
              "                    .attr(\"x2\", width)\n",
              "                    .attr(\"y2\", (height)/2 + 3)\n",
              "                    .style(\"stroke-dasharray\", \"5,5\")\n",
              "                    .style(\"stroke\", \"#cccccc\")\n",
              "                    .style(\"stroke-width\", \"1px\")\n",
              "                    .moveToBack();\n",
              "            }\n",
              "\n",
              "            function showWordList(word, termDataList, xOffset = null) {\n",
              "                var maxWidth = word.node().getBBox().width;\n",
              "                var wordObjList = [];\n",
              "                for (var i in termDataList) {\n",
              "                    var datum = termDataList[i];\n",
              "                    var curTerm = datum.term;\n",
              "                    word = (function (word, curTerm) {\n",
              "                        var termColor = 'rgb(0,0,0)';\n",
              "                        if (textColorColumn !== undefined && datum.etc !== undefined && datum.etc[textColorColumn] !== undefined) {\n",
              "                            console.log(\"tcc\" + 'datum.etc[textColorColumn]')\n",
              "                            termColor = datum.etc[textColorColumn];\n",
              "                            if(termColor[0] !== '#')\n",
              "                                termColor = '#' + termColor;\n",
              "                        }\n",
              "                        var curWordPrinted = svg.append(\"text\")\n",
              "                            .attr(\"text-anchor\", \"start\")\n",
              "                            .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                            .attr('font-size', '12px')\n",
              "                            .attr(\"fill\", termColor)\n",
              "                            .attr(\"x\", xOffset == null ? word.node().getBBox().x : xOffset)\n",
              "                            .attr(\"y\", word.node().getBBox().y\n",
              "                                + 2 * word.node().getBBox().height)\n",
              "                            .text(formatTermForDisplay(curTerm));\n",
              "                        wordObjList.push(curWordPrinted)\n",
              "                        return makeWordInteractive(\n",
              "                            termDataList, //data,\n",
              "                            svg,\n",
              "                            curWordPrinted,\n",
              "                            curTerm,\n",
              "                            termDataList[i]);\n",
              "                    })(word, curTerm);\n",
              "                    if (word.node().getBBox().width > maxWidth)\n",
              "                        maxWidth = word.node().getBBox().width;\n",
              "                    registerFigureBBox(word);\n",
              "                }\n",
              "                return {\n",
              "                    'word': word,\n",
              "                    'maxWidth': maxWidth,\n",
              "                    'wordObjList': wordObjList\n",
              "                };\n",
              "            }\n",
              "\n",
              "            function pickEuclideanDistanceSortAlgo(category) {\n",
              "                if (category == true) return euclideanDistanceSortForCategory;\n",
              "                return euclideanDistanceSortForNotCategory;\n",
              "            }\n",
              "\n",
              "            function pickScoreSortAlgo(isTopPane) {\n",
              "                console.log(\"PICK SCORE ALGO\")\n",
              "                console.log(isTopPane)\n",
              "                if (isTopPane === true) {\n",
              "                    if (headerSortingAlgos !== null && headerSortingAlgos['upper'] !== undefined)\n",
              "                        return headerSortingAlgos['upper'];\n",
              "                    return scoreSortForCategory;\n",
              "                } else {\n",
              "                    if (headerSortingAlgos !== null && headerSortingAlgos['lower'] !== undefined)\n",
              "                        return headerSortingAlgos['lower'];\n",
              "                    return scoreSortForNotCategory;\n",
              "                }\n",
              "\n",
              "            }\n",
              "\n",
              "            function pickTermSortingAlgorithm(isUpperPane) {\n",
              "                if (sortByDist) return pickEuclideanDistanceSortAlgo(isUpperPane);\n",
              "                return pickScoreSortAlgo(isUpperPane);\n",
              "            }\n",
              "\n",
              "            function showAssociatedWordList(data, word, header, isUpperPane, xOffset, length = topTermsLength) {\n",
              "                var sortedData = null;\n",
              "                var sortingAlgo = pickTermSortingAlgorithm(isUpperPane);\n",
              "                console.log(\"showAssociatedWordList\");\n",
              "                console.log(header);\n",
              "                console.log(\"WORD\");\n",
              "                console.log(word)\n",
              "                sortedData = data.filter(term => (term.display === undefined || term.display === true)).sort(sortingAlgo);\n",
              "                if (wordVecMaxPValue) {\n",
              "                    function signifTest(x) {\n",
              "                        if (isUpperPane)\n",
              "                            return x.p >= 1 - minPVal;\n",
              "                        return x.p <= minPVal;\n",
              "                    }\n",
              "\n",
              "                    sortedData = sortedData.filter(signifTest)\n",
              "                }\n",
              "                return showWordList(word, sortedData.slice(0, length), xOffset);\n",
              "\n",
              "            }\n",
              "\n",
              "            var characteristicXOffset = width;\n",
              "\n",
              "            function showCatHeader(startingOffset, catName, registerFigureBBox) {\n",
              "                var catHeader = svg.append(\"text\")\n",
              "                    .attr(\"text-anchor\", \"start\")\n",
              "                    .attr(\"x\", startingOffset //width\n",
              "                    )\n",
              "                    .attr(\"dy\", \"6px\")\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr('font-size', '12px')\n",
              "                    .attr('font-weight', 'bolder')\n",
              "                    .attr('font-decoration', 'underline')\n",
              "                    .text(catName\n",
              "                        //\"Top \" + fullData['info']['category_name']\n",
              "                    );\n",
              "                registerFigureBBox(catHeader);\n",
              "                return catHeader;\n",
              "            }\n",
              "\n",
              "            function showNotCatHeader(startingOffset, word, notCatName) {\n",
              "                console.log(\"showNotCatHeader\")\n",
              "                return svg.append(\"text\")\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr('font-size', '12px')\n",
              "                    .attr('font-weight', 'bolder')\n",
              "                    .attr('font-decoration', 'underline')\n",
              "                    .attr(\"text-anchor\", \"start\")\n",
              "                    .attr(\"x\", startingOffset)\n",
              "                    .attr(\"y\", word.node().getBBox().y + 3 * word.node().getBBox().height)\n",
              "                    .text(notCatName);\n",
              "            }\n",
              "\n",
              "            function showTopTermsPane(data,\n",
              "                                      registerFigureBBox,\n",
              "                                      showAssociatedWordList,\n",
              "                                      upperHeaderName,\n",
              "                                      lowerHeaderName,\n",
              "                                      startingOffset) {\n",
              "                data = data.filter(term => (term.display === undefined || term.display === true));\n",
              "                //var catHeader = showCatHeader(startingOffset, catName, registerFigureBBox);\n",
              "                var catHeader = svg.append(\"text\")\n",
              "                    .attr(\"text-anchor\", \"start\")\n",
              "                    .attr(\"x\", startingOffset)\n",
              "                    .attr(\"dy\", \"6px\")\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr('font-size', '12px')\n",
              "                    .attr('font-weight', 'bolder')\n",
              "                    .attr('font-decoration', 'underline')\n",
              "                    .text(upperHeaderName\n",
              "                        //\"Top \" + fullData['info']['category_name']\n",
              "                    );\n",
              "                registerFigureBBox(catHeader);\n",
              "                var maxWidth = catHeader.node().getBBox().width\n",
              "                var word = catHeader;\n",
              "                var wordListData = showAssociatedWordList(data, word, catHeader, true, startingOffset);\n",
              "                word = wordListData.word;\n",
              "                maxWidth = Math.max(wordListData.maxWidth, maxWidth)\n",
              "\n",
              "                var notCatHeader = showNotCatHeader(startingOffset, word, lowerHeaderName);\n",
              "                word = notCatHeader;\n",
              "                maxWidth = Math.max(notCatHeader.node().getBBox().width, maxWidth)\n",
              "                console.log(\"characteristicXOffset\", characteristicXOffset)\n",
              "                console.log(catHeader.node().getBBox().x + maxWidth + 10)\n",
              "                console.log(notCatHeader.node().getBBox().x + maxWidth + 10)\n",
              "\n",
              "                var notWordListData = showAssociatedWordList(data, word, notCatHeader, false, startingOffset);\n",
              "                word = wordListData.word;\n",
              "                if (wordListData.maxWidth > maxWidth) {\n",
              "                    maxWidth = wordListData.maxWidth;\n",
              "                }\n",
              "                /*\n",
              "                characteristicXOffset = Math.max(\n",
              "                    catHeader.node().getBBox().x + maxWidth + 10,\n",
              "                    notCatHeader.node().getBBox().x + maxWidth + 10\n",
              "                )*/\n",
              "                characteristicXOffset = catHeader.node().getBBox().x + Math.max(notWordListData.maxWidth, maxWidth) + 10\n",
              "\n",
              "                return {\n",
              "                    wordListData, notWordListData,\n",
              "                    word, maxWidth, characteristicXOffset, startingOffset,\n",
              "                    catHeader, notCatHeader, registerFigureBBox\n",
              "                };\n",
              "            }\n",
              "\n",
              "            var payload = Object();\n",
              "            if (showTopTerms) {\n",
              "                var upperHeaderName = \"Top \" + fullData['info']['category_name'];\n",
              "                var lowerHeaderName = \"Top \" + fullData['info']['not_category_name'];\n",
              "                if (headerNames !== null) {\n",
              "                    if (headerNames.upper !== undefined)\n",
              "                        upperHeaderName = headerNames.upper;\n",
              "                    if (headerNames.lower !== undefined)\n",
              "                        lowerHeaderName = headerNames.lower;\n",
              "                }\n",
              "                payload.topTermsPane = showTopTermsPane(\n",
              "                    data,\n",
              "                    registerFigureBBox,\n",
              "                    showAssociatedWordList,\n",
              "                    upperHeaderName,\n",
              "                    lowerHeaderName,\n",
              "                    width + topTermsLeftBuffer\n",
              "                );\n",
              "                payload.showTopTermsPane = showTopTermsPane;\n",
              "                payload.showAssociatedWordList = showAssociatedWordList;\n",
              "                payload.showWordList = showWordList;\n",
              "\n",
              "                /*var wordListData = topTermsPane.wordListData;\n",
              "                var word = topTermsPane.word;\n",
              "                var maxWidth = topTermsPane.maxWidth;\n",
              "                var catHeader = topTermsPane.catHeader;\n",
              "                var notCatHeader = topTermsPane.notCatHeader;\n",
              "                var startingOffset = topTermsPane.startingOffset;*/\n",
              "                characteristicXOffset = payload.topTermsPane.characteristicXOffset;\n",
              "            }\n",
              "\n",
              "\n",
              "            //if ((!nonTextFeaturesMode && !asianMode && showCharacteristic)\n",
              "            if (showCharacteristic\n",
              "                || (headerNames !== null && headerNames.right !== undefined)) {\n",
              "                var sortMethod = backgroundScoreSort;\n",
              "                var title = 'Characteristic';\n",
              "                if (headerNames !== null && headerNames.right !== undefined) {\n",
              "                    title = headerNames.right;\n",
              "                }\n",
              "                if (wordVecMaxPValue) {\n",
              "                    title = 'Most similar';\n",
              "                    sortMethod = scoreSortReverse;\n",
              "                } else if (data.reduce(function (a, b) {\n",
              "                    return a + b.bg\n",
              "                }, 0) === 0) {\n",
              "                    title = 'Most frequent';\n",
              "                }\n",
              "                word = svg.append(\"text\")\n",
              "                    .attr('font-family', 'Helvetica, Arial, Sans-Serif')\n",
              "                    .attr(\"text-anchor\", \"start\")\n",
              "                    .attr('font-size', '12px')\n",
              "                    .attr('font-weight', 'bolder')\n",
              "                    .attr('font-decoration', 'underline')\n",
              "                    .attr(\"x\", characteristicXOffset)\n",
              "                    .attr(\"dy\", \"6px\")\n",
              "                    .text(title);\n",
              "\n",
              "                var rightSortMethod = sortMethod;\n",
              "                if (rightOrderColumn !== undefined && rightOrderColumn !== null) {\n",
              "                    rightSortMethod = ((a, b) => b.etc[rightOrderColumn] - a.etc[rightOrderColumn]);\n",
              "                }\n",
              "\n",
              "                var wordListData = showWordList(\n",
              "                    word,\n",
              "                    data.filter(term => (term.display === undefined || term.display === true))\n",
              "                        .sort(rightSortMethod).slice(0, topTermsLength * 2 + 2),\n",
              "                    characteristicXOffset\n",
              "                );\n",
              "\n",
              "                word = wordListData.word;\n",
              "                maxWidth = wordListData.maxWidth;\n",
              "                console.log(maxWidth);\n",
              "                console.log(word.node().getBBox().x + maxWidth);\n",
              "\n",
              "                svg.attr('width', word.node().getBBox().x + 3 * maxWidth + 10);\n",
              "            }\n",
              "\n",
              "            function performPartialLabeling(\n",
              "                data,\n",
              "                existingLabels,\n",
              "                getX,\n",
              "                getY,\n",
              "                labelPriorityFunction = ((a, b) => Math.min(a.x, 1 - a.x, a.y, 1 - a.y) - Math.min(b.x, 1 - b.x, b.y, 1 - b.y))\n",
              "            ) {\n",
              "                for (i in existingLabels) {\n",
              "                    rectHolder.remove(existingLabels[i].rect);\n",
              "                    existingLabels[i].label.remove();\n",
              "                }\n",
              "\n",
              "                var labeledPoints = [];\n",
              "\n",
              "                //var filteredData = data.filter(d=>d.display === undefined || d.display === true);\n",
              "                //for (var i = 0; i < filteredData.length; i++) {\n",
              "                data.sort(labelPriorityFunction).forEach(function (datum, i) {\n",
              "                    //console.log(datum.i, datum.ci, i)\n",
              "                    //var label = labelPointsIfPossible(i, getX(filteredData[i]), getY(filteredData[i]));\n",
              "                    if (datum.display === undefined || datum.display === true) {\n",
              "                        var label = labelPointsIfPossible(datum, getX(datum), getY(datum));\n",
              "                        if (label !== false) {\n",
              "                            //console.log(\"labeled\")\n",
              "                            labeledPoints.push(label)\n",
              "                        }\n",
              "                    }\n",
              "                    //if (labelPointsIfPossible(i), true) numPointsLabeled++;\n",
              "                })\n",
              "                return labeledPoints;\n",
              "            }\n",
              "\n",
              "            //var labeledPoints = performPartialLabeling();\n",
              "            var labeledPoints = [];\n",
              "            var labelPriorityFunction = ((a, b) => Math.min(a.x, 1 - a.x, a.y, 1 - a.y) - Math.min(b.x, 1 - b.x, b.y, 1 - b.y))\n",
              "            if (labelPriorityColumn !== undefined && labelPriorityColumn !== null) {\n",
              "                labelPriorityFunction = (a, b) => b.etc[labelPriorityColumn] - a.etc[labelPriorityColumn];\n",
              "            }\n",
              "\n",
              "            labeledPoints = performPartialLabeling(\n",
              "                data,\n",
              "                labeledPoints,\n",
              "                function (d) {\n",
              "                    return d.x\n",
              "                },\n",
              "                function (d) {\n",
              "                    return d.y\n",
              "                },\n",
              "                labelPriorityFunction\n",
              "            );\n",
              "\n",
              "            if (backgroundLabels !== null) {\n",
              "                backgroundLabels.map(\n",
              "                    function (label) {\n",
              "                        svg.append(\"text\")\n",
              "                            .attr(\"x\", x(label.X))\n",
              "                            .attr(\"y\", y(label.Y))\n",
              "                            .attr(\"text-anchor\", \"middle\")\n",
              "                            .style(\"font-size\", \"30\")\n",
              "                            .style(\"fill\", \"rgb(200,200,200)\")\n",
              "                            .text(label.Text)\n",
              "                            .lower()\n",
              "                            .on('mouseover', function (d) {\n",
              "                                d3.select(this).style('stroke', 'black').style('stroke-width', '1px').raise()\n",
              "                            })\n",
              "                            .on('mouseout', function (d) {\n",
              "                                d3.select(this).style('stroke-width', '0px').style('fill', 'rgb(200,200,200)').lower()\n",
              "                            })\n",
              "                    }\n",
              "                )\n",
              "            }\n",
              "\n",
              "\n",
              "            /*\n",
              "            // pointset has to be sorted by X\n",
              "            function convex(pointset) {\n",
              "                function _cross(o, a, b) {\n",
              "                    return (a[0] - o[0]) * (b[1] - o[1]) - (a[1] - o[1]) * (b[0] - o[0]);\n",
              "                }\n",
              "\n",
              "                function _upperTangent(pointset) {\n",
              "                    var lower = [];\n",
              "                    for (var l = 0; l < pointset.length; l++) {\n",
              "                        while (lower.length >= 2 && (_cross(lower[lower.length - 2], lower[lower.length - 1], pointset[l]) <= 0)) {\n",
              "                            lower.pop();\n",
              "                        }\n",
              "                        lower.push(pointset[l]);\n",
              "                    }\n",
              "                    lower.pop();\n",
              "                    return lower;\n",
              "                }\n",
              "\n",
              "                function _lowerTangent(pointset) {\n",
              "                    var reversed = pointset.reverse(),\n",
              "                        upper = [];\n",
              "                    for (var u = 0; u < reversed.length; u++) {\n",
              "                        while (upper.length >= 2 && (_cross(upper[upper.length - 2], upper[upper.length - 1], reversed[u]) <= 0)) {\n",
              "                            upper.pop();\n",
              "                        }\n",
              "                        upper.push(reversed[u]);\n",
              "                    }\n",
              "                    upper.pop();\n",
              "                    return upper;\n",
              "                }\n",
              "\n",
              "                var convex,\n",
              "                    upper = _upperTangent(pointset),\n",
              "                    lower = _lowerTangent(pointset);\n",
              "                convex = lower.concat(upper);\n",
              "                convex.push(pointset[0]);\n",
              "                return convex;\n",
              "            }\n",
              "\n",
              "            console.log(\"POINTSTORE\")\n",
              "            console.log(pointStore);\n",
              "            pointStore.sort();\n",
              "            var convexHull = convex(pointStore);\n",
              "            var minX = convexHull.sort(function (a,b) {\n",
              "                return a[0] < b[0] ? -1 : 1;\n",
              "            })[0][0];\n",
              "            var minY = convexHull.sort(function (a,b) {\n",
              "                return a[1] < b[1] ? -1 : 1;\n",
              "            })[0][0];\n",
              "            //svg.append(\"text\").text(\"BLAH BLAH\").attr(\"text-anchor\", \"middle\").attr(\"cx\", x(0)).attr(\"y\", minY);\n",
              "            console.log(\"POINTSTORE\")\n",
              "            console.log(pointStore);\n",
              "            console.log(convexHull);\n",
              "            for (i in convexHull) {\n",
              "                var i = parseInt(i);\n",
              "                if (i + 1 == convexHull.length) {\n",
              "                    var nextI = 0;\n",
              "                } else {\n",
              "                    var nextI = i + 1;\n",
              "                }\n",
              "                console.log(i, ',', nextI);\n",
              "                svg.append(\"line\")\n",
              "                    .attr(\"x2\", width)\n",
              "                    .style(\"stroke\", \"#cc0000\")\n",
              "                    .style(\"stroke-width\", \"1px\")\n",
              "                    .attr(\"x1\", convexHull[i][0])     // x position of the first end of the line\n",
              "                    .attr(\"y1\", convexHull[i][1])      // y position of the first end of the line\n",
              "                    .attr(\"x2\", convexHull[nextI][0])     // x position of the second end of the line\n",
              "                    .attr(\"y2\", convexHull[nextI][1]);    // y position of the second end of the line\n",
              "            }*/\n",
              "\n",
              "            function populateCorpusStats() {\n",
              "                var wordCounts = {};\n",
              "                var docCounts = {}\n",
              "                fullData.docs.labels.forEach(function (x, i) {\n",
              "                    var cnt = (\n",
              "                        fullData.docs.texts[i]\n",
              "                            .trim()\n",
              "                            .replace(/['\";:,.?¿\\-!¡]+/g, '')\n",
              "                            .match(/\\S+/g) || []\n",
              "                    ).length;\n",
              "                    var name = null;\n",
              "                    if (unifiedContexts) {\n",
              "                        var name = fullData.docs.categories[x];\n",
              "                        wordCounts[name] = wordCounts[name] ? wordCounts[name] + cnt : cnt;\n",
              "                    } else {\n",
              "                        if (fullData.docs.categories[x] == fullData.info.category_internal_name) {\n",
              "                            name = fullData.info.category_name;\n",
              "                        } else if (fullData.info.not_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.not_category_name;\n",
              "                        } else if (fullData.info.neutral_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.neutral_category_name;\n",
              "                        } else if (fullData.info.extra_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.extra_category_name;\n",
              "                        }\n",
              "                        if (name) {\n",
              "                            wordCounts[name] = wordCounts[name] ? wordCounts[name] + cnt : cnt\n",
              "                        }\n",
              "                    }\n",
              "                    //!!!\n",
              "\n",
              "                });\n",
              "                fullData.docs.labels.forEach(function (x) {\n",
              "\n",
              "                    if (unifiedContexts) {\n",
              "                        var name = fullData.docs.categories[x];\n",
              "                        docCounts[name] = docCounts[name] ? docCounts[name] + 1 : 1\n",
              "                    } else {\n",
              "                        var name = null;\n",
              "                        if (fullData.docs.categories[x] == fullData.info.category_internal_name) {\n",
              "                            name = fullData.info.category_name;\n",
              "                        } else if (fullData.info.not_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.not_category_name;\n",
              "                        } else if (fullData.info.neutral_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.neutral_category_name;\n",
              "                        } else if (fullData.info.extra_category_internal_names.indexOf(fullData.docs.categories[x]) > -1) {\n",
              "                            name = fullData.info.extra_category_name;\n",
              "                        }\n",
              "                        if (name) {\n",
              "                            docCounts[name] = docCounts[name] ? docCounts[name] + 1 : 1\n",
              "                        }\n",
              "                    }\n",
              "                });\n",
              "                console.log(\"docCounts\");\n",
              "                console.log(docCounts)\n",
              "                var messages = [];\n",
              "                if (ignoreCategories) {\n",
              "                    var wordCount = getCorpusWordCounts();\n",
              "                    messages.push(\n",
              "                        '<b>Document count: </b>' + fullData.docs.texts.length.toLocaleString('en') +\n",
              "                        '; <b>word count: </b>'\n",
              "                        + wordCount['sums'].reduce((a, b) => a + b, 0).toLocaleString('en')\n",
              "                    )\n",
              "                } else if (unifiedContexts) {\n",
              "                    fullData.docs.categories.forEach(function (x, i) {\n",
              "                        if (docCounts[x] > 0) {\n",
              "                            var message = '<b>' + x + '</b>: ';\n",
              "                            message += 'document count: '\n",
              "                                + Number(docCounts[x]).toLocaleString('en')\n",
              "                                + '; word count: '\n",
              "                                + Number(wordCounts[x]).toLocaleString('en')\n",
              "                            messages.push(message);\n",
              "                        }\n",
              "                    });\n",
              "                } else {\n",
              "                    [fullData.info.category_name,\n",
              "                        fullData.info.not_category_name,\n",
              "                        fullData.info.neutral_category_name,\n",
              "                        fullData.info.extra_category_name].forEach(function (x, i) {\n",
              "                        if (docCounts[x] > 0) {\n",
              "                            messages.push('<b>' + x + '</b> document count: '\n",
              "                                + Number(docCounts[x]).toLocaleString('en')\n",
              "                                + '; word count: '\n",
              "                                + Number(wordCounts[x]).toLocaleString('en'));\n",
              "                        }\n",
              "                    });\n",
              "                }\n",
              "\n",
              "                if (showCorpusStats) {\n",
              "                    d3.select('#' + divName + '-' + 'corpus-stats')\n",
              "                        .style('width', width + margin.left + margin.right + 200)\n",
              "                        .append('div')\n",
              "                        .html(messages.join('<br />'));\n",
              "                }\n",
              "            }\n",
              "\n",
              "\n",
              "            if (fullData.docs) {\n",
              "                populateCorpusStats();\n",
              "            }\n",
              "\n",
              "            if (saveSvgButton) {\n",
              "                // from https://stackoverflow.com/questions/23218174/how-do-i-save-export-an-svg-file-after-creating-an-svg-with-d3-js-ie-safari-an\n",
              "                var svgElement = document.getElementById(divName);\n",
              "\n",
              "                var serializer = new XMLSerializer();\n",
              "                var source = serializer.serializeToString(svgElement);\n",
              "\n",
              "                if (!source.match(/^<svg[^>]+xmlns=\"http\\:\\/\\/www\\.w3\\.org\\/2000\\/svg\"/)) {\n",
              "                    source = source.replace(/^<svg/, '<svg xmlns=\"https://www.w3.org/2000/svg\"');\n",
              "                }\n",
              "                if (!source.match(/^<svg[^>]+\"http\\:\\/\\/www\\.w3\\.org\\/1999\\/xlink\"/)) {\n",
              "                    source = source.replace(/^<svg/, '<svg xmlns:xlink=\"https://www.w3.org/1999/xlink\"');\n",
              "                }\n",
              "\n",
              "                source = '<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n' + source;\n",
              "\n",
              "                var url = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(source);\n",
              "\n",
              "                var downloadLink = document.createElement(\"a\");\n",
              "                downloadLink.href = url;\n",
              "                downloadLink.download = fullData['info']['category_name'] + \".svg\";\n",
              "                downloadLink.innerText = 'Download SVG';\n",
              "                document.body.appendChild(downloadLink);\n",
              "\n",
              "            }\n",
              "\n",
              "            function rerender(xCoords, yCoords, color) {\n",
              "                labeledPoints.forEach(function (p) {\n",
              "                    p.label.remove();\n",
              "                    rectHolder.remove(p.rect);\n",
              "                });\n",
              "                pointRects.forEach(function (rect) {\n",
              "                    rectHolder.remove(rect);\n",
              "                });\n",
              "                pointRects = []\n",
              "                /*\n",
              "                var circles = d3.select('#' + divName).selectAll('circle')\n",
              "                    .attr(\"cy\", function (d) {return y(yCoords[d.i])})\n",
              "                    .transition(0)\n",
              "                    .attr(\"cx\", function (d) {return x(xCoords[d.i])})\n",
              "                    .transition(0);\n",
              "                */\n",
              "                d3.select('#' + divName).selectAll(\"dot\").remove();\n",
              "                d3.select('#' + divName).selectAll(\"circle\").remove();\n",
              "                console.log(this.fullData)\n",
              "                console.log(this)\n",
              "                console.log(\"X/Y coords\")\n",
              "                console.log(this.fullData.data.filter(d => d.display === undefined || d.display === true).map(d => [d.x, d.y]))\n",
              "                var circles = this.svg//.select('#' + divName)\n",
              "                    .selectAll(\"dot\")\n",
              "                    .data(this.fullData.data.filter(d => d.display === undefined || d.display === true))\n",
              "                    //.filter(function (d) {return d.display === undefined || d.display === true})\n",
              "                    .enter()\n",
              "                    .append(\"circle\")\n",
              "                    .attr(\"cy\", d => d.y)\n",
              "                    .attr(\"cx\", d => d.x)\n",
              "                    .attr(\"r\", d => 2)\n",
              "                    .on(\"mouseover\", function (d) {\n",
              "                        /*var mySVGMatrix = circle.getScreenCTM()n\n",
              "                            .translate(circle.cx.baseVal.value, circle.cy.baseVal.value);\n",
              "                        var pageX = mySVGMatrix.e;\n",
              "                        var pageY = mySVGMatrix.f;*/\n",
              "\n",
              "                        /*showTooltip(\n",
              "                            d,\n",
              "                            d3.event.pageX,\n",
              "                            d3.event.pageY\n",
              "                        );*/\n",
              "                        showToolTipForTerm(data, this, d.term, d, true);\n",
              "                        d3.select(this).style(\"stroke\", \"black\");\n",
              "                    })\n",
              "                    .on(\"click\", function (d) {\n",
              "                        var runDisplayTermContexts = true;\n",
              "                        if (alternativeTermFunc != null) {\n",
              "                            runDisplayTermContexts = alternativeTermFunc(d);\n",
              "                        }\n",
              "                        if (runDisplayTermContexts) {\n",
              "                            displayTermContexts(data, gatherTermContexts(d), alwaysJump, includeAllContexts);\n",
              "                        }\n",
              "                    })\n",
              "                    .on(\"mouseout\", function (d) {\n",
              "                        tooltip.transition()\n",
              "                            .duration(0)\n",
              "                            .style(\"opacity\", 0);\n",
              "                        d3.select(this).style(\"stroke\", null);\n",
              "                        d3.select('#' + divName + '-' + 'overlapped-terms')\n",
              "                            .selectAll('div')\n",
              "                            .remove();\n",
              "                    });\n",
              "\n",
              "                if (color !== null) {\n",
              "                    console.log(\"COLOR\")\n",
              "                    console.log(color)\n",
              "                    circles.style(\"fill\", d => color(d));\n",
              "                }\n",
              "                xCoords.forEach((xCoord, i) => censorCircle(xCoord, yCoords[i]))\n",
              "                labeledPoints = [];\n",
              "                labeledPoints = performPartialLabeling(\n",
              "                    this.fullData.data,\n",
              "                    labeledPoints,\n",
              "                    (d => d.ox), //function (d) {return xCoords[d.ci]},\n",
              "                    (d => d.oy) //function (d) {return yCoords[d.ci]}\n",
              "\n",
              "                );\n",
              "            }\n",
              "\n",
              "            //return [performPartialLabeling, labeledPoints];\n",
              "            return {\n",
              "                ...payload,\n",
              "                ...{\n",
              "                    'rerender': rerender,\n",
              "                    'performPartialLabeling': performPartialLabeling,\n",
              "                    'showToolTipForTerm': showToolTipForTerm,\n",
              "                    'svg': svg,\n",
              "                    'data': data,\n",
              "                    'xLabel': xLabel,\n",
              "                    'yLabel': yLabel,\n",
              "                    'drawXLabel': drawXLabel,\n",
              "                    'drawYLabel': drawYLabel,\n",
              "                    'populateCorpusStats': populateCorpusStats\n",
              "                }\n",
              "            };\n",
              "        }\n",
              "\n",
              "\n",
              "        //fullData = getDataAndInfo();\n",
              "        if (fullData.docs) {\n",
              "            var corpusWordCounts = getCorpusWordCounts();\n",
              "        }\n",
              "        var payload = processData(fullData);\n",
              "\n",
              "        // The tool tip is down here in order to make sure it has the highest z-index\n",
              "        var tooltip = d3.select('#' + divName)\n",
              "            .append(\"div\")\n",
              "            //.attr(\"class\", getTooltipContent == null && sortByDist ? \"tooltip\" : \"tooltipscore\")\n",
              "            .attr(\"class\", \"tooltipscore\")\n",
              "            .style(\"opacity\", 0);\n",
              "\n",
              "        plotInterface = {}\n",
              "        if (payload.topTermsPane) {\n",
              "            plotInterface.topTermsPane = payload.topTermsPane;\n",
              "            plotInterface.showTopTermsPane = payload.showTopTermsPane;\n",
              "            plotInterface.showAssociatedWordList = payload.showAssociatedWordList;\n",
              "        }\n",
              "        plotInterface.includeAllContexts = includeAllContexts;\n",
              "        plotInterface.divName = divName;\n",
              "        plotInterface.displayTermContexts = displayTermContexts;\n",
              "        plotInterface.gatherTermContexts = gatherTermContexts;\n",
              "        plotInterface.xLabel = payload.xLabel;\n",
              "        plotInterface.yLabel = payload.yLabel;\n",
              "        plotInterface.drawXLabel = payload.drawXLabel;\n",
              "        plotInterface.drawYLabel = payload.drawYLabel;\n",
              "        plotInterface.svg = payload.svg;\n",
              "        plotInterface.termDict = termDict;\n",
              "        plotInterface.showToolTipForTerm = payload.showToolTipForTerm;\n",
              "        plotInterface.fullData = fullData;\n",
              "        plotInterface.data = payload.data;\n",
              "        plotInterface.rerender = payload.rerender;\n",
              "        plotInterface.populateCorpusStats = payload.populateCorpusStats;\n",
              "        plotInterface.handleSearch = handleSearch;\n",
              "        plotInterface.handleSearchTerm = handleSearchTerm;\n",
              "        plotInterface.highlightTerm = highlightTerm;\n",
              "        plotInterface.y = y;\n",
              "        plotInterface.x = x;\n",
              "        plotInterface.tooltip = tooltip;\n",
              "        plotInterface.alternativeTermFunc = alternativeTermFunc;\n",
              "\n",
              "        plotInterface.showTooltipSimple = function (term) {\n",
              "            plotInterface.showToolTipForTerm(\n",
              "                plotInterface.data,\n",
              "                plotInterface.svg,\n",
              "                term.replace(\"'\", \"\\\\'\"),\n",
              "                plotInterface.termDict[term.replace(\"'\", \"\\\\'\")]\n",
              "            )\n",
              "        };\n",
              "\n",
              "        plotInterface.drawCategoryAssociation = function (category, otherCategory = null) {\n",
              "            console.log(\"+++++++ Entering drawCategoryAssociation\")\n",
              "            console.log(\"Category: \" + category)\n",
              "            console.log(\"Other Category: \" + otherCategory)\n",
              "            var categoryNum = this.fullData.info.categories.indexOf(category);\n",
              "\n",
              "            var otherCategoryNum = null;\n",
              "            if (otherCategory !== null)\n",
              "                otherCategoryNum = this.fullData.info.categories.indexOf(otherCategory);\n",
              "\n",
              "            console.log(\"cat/other: \" + category + \"/\" + otherCategory + \" ::: \" + categoryNum + \"/\" + otherCategoryNum)\n",
              "\n",
              "            console.log(\"Full Data\")\n",
              "            console.log(this.fullData)\n",
              "            /*\n",
              "            var rawLogTermCounts = getTermCounts(this.fullData).map(Math.log);\n",
              "            var maxRawLogTermCounts = Math.max(...rawLogTermCounts);\n",
              "            var minRawLogTermCounts = Math.min(...rawLogTermCounts);\n",
              "            var logTermCounts = rawLogTermCounts.map(\n",
              "                x => (x - minRawLogTermCounts) / maxRawLogTermCounts\n",
              "            )\n",
              "            */\n",
              "\n",
              "            //var rawScores = getCategoryDenseRankScores(this.fullData, categoryNum);\n",
              "            //console.log(\"RAW SCORES\")\n",
              "            //console.log(rawScores);\n",
              "            /*\n",
              "            function logOddsRatioUninformativeDirichletPrior(fgFreqs, bgFreqs, alpha) {\n",
              "                var fgVocabSize = fgFreqs.reduce((x,y) => x+y);\n",
              "                var fgL = fgFreqs.map(x => (x + alpha)/((1+alpha)*fgVocabSize - x - alpha))\n",
              "                var bgVocabSize = bgFreqs.reduce((x,y) => x+y);\n",
              "                var bgL = bgFreqs.map(x => (x + alpha)/((1+alpha)*bgVocabSize - x - alpha))\n",
              "                var pooledVar = fgFreqs.map(function(x, i) {\n",
              "                    return (\n",
              "                        1/(x + alpha)\n",
              "                        + 1/((1+alpha)*fgVocabSize - x - alpha)\n",
              "                        + 1/(bgFreqs[i] + alpha)\n",
              "                        + 1/((1+alpha)*bgVocabSize - bgFreqs[i] - alpha))\n",
              "                })\n",
              "                return pooledVar.map(function(x, i) {\n",
              "                    return (Math.log(fgL[i]) - Math.log(bgL[i]))/x;\n",
              "                })\n",
              "            }\n",
              "            var rawScores = logOddsRatioUninformativeDirichletPrior(\n",
              "                denseRanks.fgFreqs, denseRanks.bgFreqs, 0.01);\n",
              "            */\n",
              "\n",
              "\n",
              "            var denseRanks = getDenseRanks(this.fullData, categoryNum)\n",
              "            if (otherCategoryNum !== null) {\n",
              "                var otherDenseRanks = getDenseRanks(this.fullData, otherCategoryNum);\n",
              "                denseRanks.bg = otherDenseRanks.fg;\n",
              "                denseRanks.bgFreqs = otherDenseRanks.fgFreqs;\n",
              "            }\n",
              "\n",
              "            var rawScores = denseRanks.fg.map((x, i) => x - denseRanks.bg[i]);\n",
              "            var minRawScores = Math.min(...rawScores);\n",
              "            var maxRawScores = Math.max(...rawScores);\n",
              "\n",
              "            var scores = rawScores.map(\n",
              "                function (rawScore) {\n",
              "                    if (rawScore == 0) {\n",
              "                        return 0.5;\n",
              "                    } else if (rawScore > 0) {\n",
              "                        return rawScore / (2. * maxRawScores) + 0.5;\n",
              "                    } else if (rawScore < 0) {\n",
              "                        return 0.5 - rawScore / (2. * minRawScores);\n",
              "                    }\n",
              "                }\n",
              "            )\n",
              "            var fgFreqSum = denseRanks.fgFreqs.reduce((a, b) => a + b, 0)\n",
              "            var bgFreqSum = denseRanks.bgFreqs.reduce((a, b) => a + b, 0)\n",
              "\n",
              "            //!!! OLD and good\n",
              "            var ox = denseRanks.bg;\n",
              "            var oy = denseRanks.fg;\n",
              "\n",
              "            var oxmax = Math.max(...ox)\n",
              "            var oxmin = Math.min(...ox)\n",
              "            var ox = ox.map(x => (x - oxmin) / (oxmax - oxmin))\n",
              "            var oymax = Math.max(...oy)\n",
              "            var oymin = Math.min(...oy)\n",
              "            var oy = oy.map(x => (x - oymin) / (oymax - oymin))\n",
              "            //var ox = logTermCounts\n",
              "            //var oy = scores;\n",
              "            var xf = this.x;\n",
              "            var yf = this.y;\n",
              "\n",
              "            this.fullData.data = this.fullData.data.map(function (term, i) {\n",
              "                //term.ci = i;\n",
              "                term.s = scores[term.i];\n",
              "                term.os = rawScores[term.i];\n",
              "                term.cat = denseRanks.fgFreqs[term.i];\n",
              "                term.ncat = denseRanks.bgFreqs[term.i];\n",
              "                term.cat25k = parseInt(denseRanks.fgFreqs[term.i] * 25000 / fgFreqSum);\n",
              "                term.ncat25k = parseInt(denseRanks.bgFreqs[term.i] * 25000 / bgFreqSum);\n",
              "                term.x = xf(ox[term.i]) // logTermCounts[term.i];\n",
              "                term.y = yf(oy[term.i]) // scores[term.i];\n",
              "                term.ox = ox[term.i];\n",
              "                term.oy = oy[term.i];\n",
              "                term.display = true;\n",
              "                return term;\n",
              "            })\n",
              "\n",
              "            // Feature selection\n",
              "            var targetTermsToShow = 1500;\n",
              "\n",
              "            var sortedBg = denseRanks.bg.map((x, i) => [x, i]).sort((a, b) => b[0] - a[0]).map(x => x[1]).slice(0, parseInt(targetTermsToShow / 2));\n",
              "            var sortedFg = denseRanks.fg.map((x, i) => [x, i]).sort((a, b) => b[0] - a[0]).map(x => x[1]).slice(0, parseInt(targetTermsToShow / 2));\n",
              "            var sortedScores = denseRanks.fg.map((x, i) => [x, i]).sort((a, b) => b[0] - a[0]).map(x => x[1]);\n",
              "            var myFullData = this.fullData\n",
              "\n",
              "            sortedBg.concat(sortedFg)//.concat(sortedScores.slice(0, parseInt(targetTermsToShow/2))).concat(sortedScores.slice(-parseInt(targetTermsToShow/4)))\n",
              "                .forEach(function (i) {\n",
              "                    myFullData.data[i].display = true;\n",
              "                })\n",
              "\n",
              "            console.log('newly filtered')\n",
              "            console.log(myFullData)\n",
              "\n",
              "            // begin rescaling to ignore hidden terms\n",
              "            /*\n",
              "            function scaleDenseRanks(ranks) {\n",
              "                var max = Math.max(...ranks);\n",
              "                return ranks.map(x=>x/max)\n",
              "            }\n",
              "            var filteredData = myFullData.data.filter(d=>d.display);\n",
              "            var catRanks = scaleDenseRanks(denseRank(filteredData.map(d=>d.cat)))\n",
              "            var ncatRanks = scaleDenseRanks(denseRank(filteredData.map(d=>d.ncat)))\n",
              "            var rawScores = catRanks.map((x,i) => x - ncatRanks[i]);\n",
              "            function stretch_0_1(scores) {\n",
              "                var max = 1.*Math.max(...rawScores);\n",
              "                var min = -1.*Math.min(...rawScores);\n",
              "                return scores.map(function(x, i) {\n",
              "                    if(x == 0) return 0.5;\n",
              "                    if(x > 0) return (x/max + 1)/2;\n",
              "                    return (x/min + 1)/2;\n",
              "                })\n",
              "            }\n",
              "            var scores = stretch_0_1(rawScores);\n",
              "            console.log(scores)\n",
              "            filteredData.forEach(function(d, i) {\n",
              "                d.x = xf(catRanks[i]);\n",
              "                d.y = yf(ncatRanks[i]);\n",
              "                d.ox = catRanks[i];\n",
              "                d.oy = ncatRanks[i];\n",
              "                d.s = scores[i];\n",
              "                d.os = rawScores[i];\n",
              "            });\n",
              "            console.log(\"rescaled\");\n",
              "            */\n",
              "            // end rescaling\n",
              "\n",
              "\n",
              "            this.rerender(//denseRanks.bg,\n",
              "                fullData.data.map(x => x.ox), //ox\n",
              "                //denseRanks.fg,\n",
              "                fullData.data.map(x => x.oy), //oy,\n",
              "                d => d3.interpolateRdYlBu(d.s));\n",
              "            if (this.yLabel !== undefined) {\n",
              "                this.yLabel.remove()\n",
              "            }\n",
              "            if (this.xLabel !== undefined) {\n",
              "                this.xLabel.remove()\n",
              "            }\n",
              "            var leftName = this.fullData.info.categories[categoryNum];\n",
              "            var bottomName = \"Not \" + this.fullData.info.categories[categoryNum];\n",
              "            if (otherCategoryNum !== null) {\n",
              "                bottomName = this.fullData.info.categories[otherCategoryNum];\n",
              "            }\n",
              "\n",
              "\n",
              "            this.yLabel = this.drawYLabel(this.svg, leftName + ' Frequncy Rank')\n",
              "            this.xLabel = this.drawXLabel(this.svg, bottomName + ' Frequency Rank')\n",
              "            if (this.topTermsPane !== undefined) {\n",
              "                this.topTermsPane.catHeader.remove()\n",
              "                this.topTermsPane.notCatHeader.remove()\n",
              "                this.topTermsPane.wordListData.wordObjList.map(x => x.remove())\n",
              "                this.topTermsPane.notWordListData.wordObjList.map(x => x.remove())\n",
              "            }\n",
              "            this.showWordList = payload.showWordList;\n",
              "\n",
              "\n",
              "            this.showAssociatedWordList = function (\n",
              "                data,\n",
              "                word,\n",
              "                header,\n",
              "                isUpperPane,\n",
              "                xOffset = this.topTermsPane.startingOffset,\n",
              "                length = 14\n",
              "            ) {\n",
              "                var sortedData = null;\n",
              "                if (!isUpperPane) {\n",
              "                    sortedData = data.map(x => x).sort((a, b) => scores[a.i] - scores[b.i])\n",
              "                } else {\n",
              "                    sortedData = data.map(x => x).sort((a, b) => scores[b.i] - scores[a.i])\n",
              "                }\n",
              "                console.log('sortedData');\n",
              "                console.log(isUpperPane);\n",
              "                console.log(sortedData.slice(0, length))\n",
              "                console.log(payload)\n",
              "                console.log(word)\n",
              "                return payload.showWordList(word, sortedData.slice(0, length), xOffset);\n",
              "            }\n",
              "            if (this.topTermsPane !== undefined)\n",
              "                this.topTermsPane = payload.showTopTermsPane(\n",
              "                    this.data,\n",
              "                    this.topTermsPane.registerFigureBBox,\n",
              "                    this.showAssociatedWordList,\n",
              "                    \"Top \" + leftName,\n",
              "                    \"Top \" + bottomName,\n",
              "                    this.topTermsPane.startingOffset\n",
              "                )\n",
              "\n",
              "            fullData.info.category_name = leftName;\n",
              "            fullData.info.not_category_name = bottomName;\n",
              "            fullData.info.category_internal_name = this.fullData.info.categories[categoryNum];\n",
              "            if (otherCategoryNum === null) {\n",
              "                fullData.info.not_category_internal_names = this.fullData.info.categories\n",
              "                    .filter(x => x !== this.fullData.info.categories[categoryNum]);\n",
              "            } else {\n",
              "                fullData.info.not_category_internal_names = this.fullData.info.categories\n",
              "                    .filter(x => x === this.fullData.info.categories[otherCategoryNum]);\n",
              "\n",
              "                fullData.info.neutral_category_internal_names = this.fullData.info.categories\n",
              "                    .filter(x => (x !== this.fullData.info.categories[categoryNum]\n",
              "                        && x !== this.fullData.info.categories[otherCategoryNum]));\n",
              "                fullData.info.neutral_category_name = \"All Others\";\n",
              "\n",
              "            }\n",
              "            console.log(\"fullData.info.not_category_internal_names\");\n",
              "            console.log(fullData.info.not_category_internal_names);\n",
              "            ['snippets', 'snippetsalt', 'termstats',\n",
              "                'overlapped-terms-clicked', 'categoryinfo',\n",
              "                'cathead', 'cat', 'corpus-stats', 'notcathead',\n",
              "                'notcat', 'neuthead', 'neut'\n",
              "            ].forEach(function (divSubName) {\n",
              "                var mydiv = '#' + divName + '-' + divSubName;\n",
              "                console.log(\"Clearing\");\n",
              "                console.log(mydiv);\n",
              "                d3.select(mydiv).selectAll(\"*\").remove();\n",
              "                d3.select(mydiv).html(\"\");\n",
              "\n",
              "            });\n",
              "            this.populateCorpusStats();\n",
              "\n",
              "            console.log(fullData)\n",
              "        };\n",
              "\n",
              "        plotInterface.yAxisLogCounts = function (termInfo) {\n",
              "            console.log(\"yAxisLogCounts\");\n",
              "            console.log(termInfo)\n",
              "            //var categoryNum = this.fullData.docs.categories.indexOf(categoryName);\n",
              "            //console.log(\"CatNum\"); console.log(categoryNum)\n",
              "            var categoryNum = termInfo.i;\n",
              "\n",
              "            var denseRanks = getDenseRanks(this.fullData, categoryNum)\n",
              "            console.log(\"denseRanks\")\n",
              "            console.log(denseRanks);\n",
              "\n",
              "            var rawScores = denseRanks.fg.map((x, i) => x - denseRanks.bg[i]);\n",
              "            var minRawScores = Math.min(...rawScores);\n",
              "            var maxRawScores = Math.max(...rawScores);\n",
              "\n",
              "            var scores = rawScores.map(\n",
              "                function (rawScore) {\n",
              "                    if (rawScore == 0) {\n",
              "                        return 0.5;\n",
              "                    } else if (rawScore > 0) {\n",
              "                        return rawScore / (2. * maxRawScores) + 0.5;\n",
              "                    } else if (rawScore < 0) {\n",
              "                        return 0.5 - rawScore / (2. * minRawScores);\n",
              "                    }\n",
              "                }\n",
              "            )\n",
              "            var fgFreqSum = denseRanks.fgFreqs.reduce((a, b) => a + b, 0)\n",
              "            var bgFreqSum = denseRanks.bgFreqs.reduce((a, b) => a + b, 0)\n",
              "\n",
              "            var oy = denseRanks.fgFreqs.map(count => Math.log(count + 1) / Math.log(2))\n",
              "\n",
              "            var oymax = Math.max(...oy)\n",
              "            var oymin = Math.min(...oy)\n",
              "            oy = oy.map(y => (y - oymin) / (oymax - oymin))\n",
              "            var xf = this.x;\n",
              "            var yf = this.y;\n",
              "            var ox = this.fullData.data.map(term => term.ox);\n",
              "            var oxmax = Math.max(...ox)\n",
              "            var oxmin = Math.min(...ox)\n",
              "            ox = ox.map(y => (y - oxmin) / (oxmax - oxmin))\n",
              "\n",
              "\n",
              "            this.fullData.data = this.fullData.data.map(function (term, i) {\n",
              "                term.s = 1;//scores[i];\n",
              "                term.os = rawScores[i];\n",
              "                term.cat = denseRanks.fgFreqs[i];\n",
              "                term.ncat = denseRanks.bgFreqs[i];\n",
              "                term.cat25k = parseInt(denseRanks.fgFreqs[i] * 25000 / fgFreqSum);\n",
              "                term.ncat25k = parseInt(denseRanks.bgFreqs[i] * 25000 / bgFreqSum);\n",
              "                //term.x = xf(term.ox) // scores[term.i];\n",
              "                //term.ox = term.ox;\n",
              "                term.y = yf(oy[i]) // scores[term.i];\n",
              "                term.oy = oy[i];\n",
              "                term.x = xf(ox[i]) // scores[term.i];\n",
              "                term.ox = ox[i];\n",
              "                term.display = true;\n",
              "                return term;\n",
              "            })\n",
              "\n",
              "\n",
              "            this.rerender(//denseRanks.bg,\n",
              "                this.fullData.data.map(point => point.ox), //ox\n",
              "                this.fullData.data.map(point => point.oy), //oy,\n",
              "                d => d3.interpolateRdYlBu(d.s)\n",
              "            );\n",
              "\n",
              "            if (this.yLabel !== undefined) {\n",
              "                this.yLabel.remove()\n",
              "                this.yLabel = this.drawYLabel(this.svg, this.fullData.info.categories[categoryNum] + ' log freq.')\n",
              "            }\n",
              "\n",
              "            if (this.topTermsPane !== undefined) {\n",
              "                this.topTermsPane.catHeader.remove()\n",
              "                this.topTermsPane.notCatHeader.remove()\n",
              "                this.topTermsPane.wordListData.wordObjList.map(x => x.remove())\n",
              "                this.topTermsPane.notWordListData.wordObjList.map(x => x.remove())\n",
              "            }\n",
              "            this.showWordList = payload.showWordList;\n",
              "\n",
              "\n",
              "            this.showAssociatedWordList = function (data, word, header, isUpperPane, xOffset = this.topTermsPane.startingOffset, length = 14) {\n",
              "                var sortedData = null;\n",
              "                if (!isUpperPane) {\n",
              "                    sortedData = data.map(x => x).sort((a, b) => scores[a.i] - scores[b.i])\n",
              "                } else {\n",
              "                    sortedData = data.map(x => x).sort((a, b) => scores[b.i] - scores[a.i])\n",
              "                }\n",
              "                console.log('sortedData');\n",
              "                console.log(isUpperPane);\n",
              "                console.log(sortedData.slice(0, length))\n",
              "                console.log(payload)\n",
              "                console.log(word)\n",
              "                return payload.showWordList(word, sortedData.slice(0, length), xOffset);\n",
              "            }\n",
              "            var leftName = this.fullData.info.categories[categoryNum];\n",
              "            var bottomName = \"Not \" + this.fullData.info.categories[categoryNum];\n",
              "\n",
              "            if (this.topTermsPane !== undefined)\n",
              "                this.topTermsPane = payload.showTopTermsPane(\n",
              "                    this.data,\n",
              "                    this.topTermsPane.registerFigureBBox,\n",
              "                    this.showAssociatedWordList,\n",
              "                    \"Top \" + leftName,\n",
              "                    \"Top \" + bottomName,\n",
              "                    this.topTermsPane.startingOffset\n",
              "                )\n",
              "\n",
              "            fullData.info.category_name = leftName;\n",
              "            fullData.info.not_category_name = bottomName;\n",
              "            fullData.info.category_internal_name = this.fullData.info.categories[categoryNum];\n",
              "            fullData.info.not_category_internal_names = this.fullData.info.categories\n",
              "                .filter(x => x !== this.fullData.info.categories[categoryNum]);\n",
              "\n",
              "            console.log(\"fullData.info.not_category_internal_names\");\n",
              "            console.log(fullData.info.not_category_internal_names);\n",
              "            ['snippets', 'snippetsalt', 'termstats',\n",
              "                'overlapped-terms-clicked', 'categoryinfo',\n",
              "                'cathead', 'cat', 'corpus-stats', 'notcathead',\n",
              "                'notcat', 'neuthead', 'neut'\n",
              "            ].forEach(function (divSubName) {\n",
              "                var mydiv = '#' + divName + '-' + divSubName;\n",
              "                console.log(\"Clearing\");\n",
              "                console.log(mydiv);\n",
              "                d3.select(mydiv).selectAll(\"*\").remove();\n",
              "                d3.select(mydiv).html(\"\");\n",
              "\n",
              "            });\n",
              "            this.populateCorpusStats();\n",
              "        };\n",
              "\n",
              "        return plotInterface\n",
              "    };\n",
              "}(d3);\n",
              "\n",
              "; \n",
              " \n",
              " // Adapted from https://www.w3schools.com/howto/howto_js_autocomplete.asp\n",
              "function autocomplete(inputField, autocompleteValues, myPlotInterface) {\n",
              "    var currentFocus; // current position in autocomplete list.\n",
              "\n",
              "    inputField.addEventListener(\"input\", function (e) {\n",
              "        var matchedCandidateListDiv, matchedCandidateDiv, i, userInput = this.value;\n",
              "\n",
              "        closeAllLists();\n",
              "        if (!userInput) {\n",
              "            return false;\n",
              "        }\n",
              "        currentFocus = -1;\n",
              "\n",
              "        matchedCandidateListDiv = document.createElement(\"div\");\n",
              "        matchedCandidateListDiv.setAttribute(\"id\", this.id + \"autocomplete-list\");\n",
              "        matchedCandidateListDiv.setAttribute(\"class\", \"autocomplete-items\");\n",
              "\n",
              "        this.parentNode.appendChild(matchedCandidateListDiv);\n",
              "        autocompleteValues.map(function (candidate) {\n",
              "            var candidatePrefix = candidate.substr(0, userInput.length);\n",
              "            if (candidatePrefix.toLowerCase() === userInput.toLowerCase()) {\n",
              "                matchedCandidateDiv = document.createElement(\"div\");\n",
              "                matchedCandidateDiv.innerHTML = \"<strong>\" + candidatePrefix + \"</strong>\";\n",
              "                matchedCandidateDiv.innerHTML += candidate.substr(userInput.length);\n",
              "                matchedCandidateDiv.innerHTML += '<input type=hidden value=\"' + encodeURIComponent(candidate) + '\">';\n",
              "                matchedCandidateDiv.addEventListener(\"click\", function (e) {\n",
              "                    console.log(\"CLICK\")\n",
              "                    console.log(this.getElementsByTagName(\"input\")[0].value)\n",
              "                    inputField.value = decodeURIComponent(this.getElementsByTagName(\"input\")[0].value);\n",
              "                    console.log(inputField.value)\n",
              "                    closeAllLists();\n",
              "                    myPlotInterface.handleSearchTerm(inputField.value);\n",
              "                });\n",
              "                matchedCandidateListDiv.appendChild(matchedCandidateDiv);\n",
              "            }\n",
              "        });\n",
              "    });\n",
              "\n",
              "    inputField.addEventListener(\"keydown\", function (keyboardEvent) {\n",
              "\n",
              "        var candidateDivList = document.getElementById(this.id + \"autocomplete-list\");\n",
              "\n",
              "        if (!candidateDivList)\n",
              "            return true;\n",
              "\n",
              "        var selectedCandidate = Array.prototype.find.call(\n",
              "            candidateDivList.children,\n",
              "            x => x.className !== \"\"\n",
              "        );\n",
              "\n",
              "        if (keyboardEvent.keyCode === 40 || keyboardEvent.keyCode === 9) { // down or tab\n",
              "            keyboardEvent.preventDefault();\n",
              "            currentFocus++;\n",
              "            addActive(candidateDivList.getElementsByTagName(\"div\"));\n",
              "        } else if (keyboardEvent.keyCode === 38) { //up\n",
              "            currentFocus--;\n",
              "            addActive(candidateDivList.getElementsByTagName(\"div\"));\n",
              "        } else if (keyboardEvent.keyCode === 13) { // enter\n",
              "            keyboardEvent.preventDefault();\n",
              "            var selectedTerm = inputField.value;\n",
              "            console.log(\"selected term\");console.log(selectedTerm);\n",
              "            console.log(myPlotInterface);\n",
              "            //if (selectedCandidate)\n",
              "            //    selectedTerm = selectedCandidate.children[1].value;\n",
              "            myPlotInterface.handleSearchTerm(selectedTerm);\n",
              "            closeAllLists(null);\n",
              "        } else if (keyboardEvent.keyCode === 27) { // esc\n",
              "            closeAllLists(null);\n",
              "        }\n",
              "    });\n",
              "\n",
              "    function addActive(candidateDivList) {\n",
              "        if (!candidateDivList) return false;\n",
              "\n",
              "        removeActive(candidateDivList);\n",
              "\n",
              "        if (currentFocus >= candidateDivList.length)\n",
              "            currentFocus = 0;\n",
              "        if (currentFocus < 0)\n",
              "            currentFocus = (candidateDivList.length - 1);\n",
              "\n",
              "        candidateDivList[currentFocus].classList.add(\"autocomplete-active\");\n",
              "\n",
              "        var selectedCandidate = Array.prototype.find.call(\n",
              "            candidateDivList,\n",
              "            x => x.className !== \"\"\n",
              "        );\n",
              "\n",
              "        if (selectedCandidate) {\n",
              "            var candidateValue = decodeURIComponent(selectedCandidate.children[1].value);\n",
              "\n",
              "            myPlotInterface.highlightTerm(candidateValue);\n",
              "            inputField.value = candidateValue;\n",
              "        }\n",
              "\n",
              "    }\n",
              "\n",
              "    function removeActive(candidateDivList) {\n",
              "        Array.prototype.find.call(\n",
              "            candidateDivList,\n",
              "            x => x.classList.remove(\"autocomplete-active\")\n",
              "        );\n",
              "    }\n",
              "\n",
              "    function closeAllLists(elmnt) {\n",
              "        /*close all autocomplete lists in the document,\n",
              "        except the one passed as an argument:*/\n",
              "        var x = document.getElementsByClassName(\"autocomplete-items\");\n",
              "        for (var i = 0; i < x.length; i++) {\n",
              "            if (elmnt != x[i] && elmnt != inputField) {\n",
              "                x[i].parentNode.removeChild(x[i]);\n",
              "            }\n",
              "        }\n",
              "    }\n",
              "\n",
              "    /*execute a function when someone clicks in the document:*/\n",
              "    document.addEventListener(\"click\", function (e) {\n",
              "        closeAllLists(e.target);\n",
              "    });\n",
              "}\n",
              "\n",
              "function getDataAndInfo() { return{\"info\": {\"category_name\": \"\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u30b7\\u30b9\\u30c6\\u30e0\", \"not_category_name\": \"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u2160\", \"category_terms\": [\"\\u8a66\\u9a13\", \"\\u3044\\u308b\", \"\\u6388\\u696d\", \"\\r\\n\", \"\\u554f\\u984c\", \"\\u3044\\u3046\", \"\\u63a1\\u70b9\", \"\\u51fa\\u3059\", \"\\u591a\\u3044\", \"\\u70b9\"], \"not_category_terms\": [\"\\u3053\\u3068\", \"\\u8ab2\\u984c\", \"\\u306a\\u3044\", \"\\u8aac\\u660e\", \"\\u8b1b\\u7fa9\", \"\\u601d\\u3046\", \"\\u3042\\u308b\", \"\\u96e3\\u6613\\u5ea6\", \"\\u308f\\u304b\\u308b\", \"\\u3059\\u308b\"], \"category_internal_name\": \"\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u30b7\\u30b9\\u30c6\\u30e0\", \"not_category_internal_names\": [\"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u2160\"], \"categories\": [\"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u2160\", \"\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u30b7\\u30b9\\u30c6\\u30e0\"], \"neutral_category_internal_names\": [], \"extra_category_internal_names\": [], \"neutral_category_name\": \"Neutral\", \"extra_category_name\": \"Extra\"}, \"data\": [{\"x\": 0.65, \"y\": 0.0, \"ox\": 0.65, \"oy\": 0.0, \"term\": \"\\u8aac\\u660e\", \"cat25k\": 619, \"ncat25k\": 1351, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 8, \"ncat\": 2, \"s\": 0.15, \"os\": 0.07500000000000001, \"bg\": 0.0}, {\"x\": 0.75, \"y\": 0.3, \"ox\": 0.75, \"oy\": 0.3, \"term\": \"\\u306a\\u3044\", \"cat25k\": 851, \"ncat25k\": 2027, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 11, \"ncat\": 3, \"s\": 0.1, \"os\": 0.050000000000000044, \"bg\": 0.0}, {\"x\": 0.8, \"y\": 0.65, \"ox\": 0.8, \"oy\": 0.65, \"term\": \"\\u3042\\u308b\", \"cat25k\": 1161, \"ncat25k\": 2027, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 15, \"ncat\": 3, \"s\": 0.3, \"os\": 0.19999999999999996, \"bg\": 0.0}, {\"x\": 0.85, \"y\": 0.8, \"ox\": 0.85, \"oy\": 0.8, \"term\": \"\\u3059\\u308b\", \"cat25k\": 1625, \"ncat25k\": 2027, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 21, \"ncat\": 3, \"s\": 0.45, \"os\": 0.30000000000000004, \"bg\": 0.0}, {\"x\": 0.95, \"y\": 0.85, \"ox\": 0.95, \"oy\": 0.85, \"term\": \"\\u8ab2\\u984c\", \"cat25k\": 1780, \"ncat25k\": 4054, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 23, \"ncat\": 6, \"s\": 0.05, \"os\": -0.025000000000000022, \"bg\": 0.0}, {\"x\": 0.4, \"y\": 0.05, \"ox\": 0.4, \"oy\": 0.05, \"term\": \"\\u96e3\\u6613\\u5ea6\", \"cat25k\": 619, \"ncat25k\": 676, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 8, \"ncat\": 1, \"s\": 0.35, \"os\": 0.2, \"bg\": 0.0}, {\"x\": 1.0, \"y\": 0.6, \"ox\": 1.0, \"oy\": 0.6, \"term\": \"\\u3053\\u3068\", \"cat25k\": 1084, \"ncat25k\": 5405, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 14, \"ncat\": 8, \"s\": 0.0, \"os\": -0.35, \"bg\": 0.0}, {\"x\": 0.9, \"y\": 0.9, \"ox\": 0.9, \"oy\": 0.9, \"term\": \"\\u601d\\u3046\", \"cat25k\": 2090, \"ncat25k\": 3378, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 27, \"ncat\": 5, \"s\": 0.25, \"os\": 0.15000000000000002, \"bg\": 0.0}, {\"x\": 0.45, \"y\": 0.1, \"ox\": 0.45, \"oy\": 0.1, \"term\": \"\\u308f\\u304b\\u308b\", \"cat25k\": 697, \"ncat25k\": 676, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 9, \"ncat\": 1, \"s\": 0.4, \"os\": 0.25, \"bg\": 0.0}, {\"x\": 0.5, \"y\": 0.7, \"ox\": 0.5, \"oy\": 0.7, \"term\": \"\\r\\n\", \"cat25k\": 1471, \"ncat25k\": 676, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 19, \"ncat\": 1, \"s\": 0.8500000000000001, \"os\": 0.5, \"bg\": 0.0}, {\"x\": 0.55, \"y\": 1.0, \"ox\": 0.55, \"oy\": 1.0, \"term\": \"\\u3044\\u308b\", \"cat25k\": 2554, \"ncat25k\": 676, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 33, \"ncat\": 1, \"s\": 0.95, \"os\": 0.75, \"bg\": 0.0}, {\"x\": 0.6, \"y\": 0.35, \"ox\": 0.6, \"oy\": 0.35, \"term\": \"\\u5185\\u5bb9\", \"cat25k\": 929, \"ncat25k\": 676, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 12, \"ncat\": 1, \"s\": 0.49999999999999994, \"os\": 0.35, \"bg\": 0.0}, {\"x\": 0.7, \"y\": 0.15, \"ox\": 0.7, \"oy\": 0.15, \"term\": \"\\u8b1b\\u7fa9\", \"cat25k\": 697, \"ncat25k\": 1351, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 9, \"ncat\": 2, \"s\": 0.2, \"os\": 0.125, \"bg\": 0.0}, {\"x\": 0.0, \"y\": 0.75, \"ox\": 0.0, \"oy\": 0.75, \"term\": \"\\u6388\\u696d\", \"cat25k\": 1471, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 19, \"ncat\": 0, \"s\": 0.8999999999999999, \"os\": 0.625, \"bg\": 0.0}, {\"x\": 0.05, \"y\": 0.4, \"ox\": 0.05, \"oy\": 0.4, \"term\": \"\\u51fa\\u3059\", \"cat25k\": 929, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 12, \"ncat\": 0, \"s\": 0.65, \"os\": 0.475, \"bg\": 0.0}, {\"x\": 0.1, \"y\": 0.45, \"ox\": 0.1, \"oy\": 0.45, \"term\": \"\\u63a1\\u70b9\", \"cat25k\": 929, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 12, \"ncat\": 0, \"s\": 0.65, \"os\": 0.475, \"bg\": 0.0}, {\"x\": 0.15, \"y\": 0.5, \"ox\": 0.15, \"oy\": 0.5, \"term\": \"\\u3044\\u3046\", \"cat25k\": 929, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 12, \"ncat\": 0, \"s\": 0.65, \"os\": 0.475, \"bg\": 0.0}, {\"x\": 0.2, \"y\": 0.55, \"ox\": 0.2, \"oy\": 0.55, \"term\": \"\\u554f\\u984c\", \"cat25k\": 929, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 12, \"ncat\": 0, \"s\": 0.65, \"os\": 0.475, \"bg\": 0.0}, {\"x\": 0.25, \"y\": 0.95, \"ox\": 0.25, \"oy\": 0.95, \"term\": \"\\u8a66\\u9a13\", \"cat25k\": 2245, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 29, \"ncat\": 0, \"s\": 1.0, \"os\": 0.825, \"bg\": 0.0}, {\"x\": 0.3, \"y\": 0.2, \"ox\": 0.3, \"oy\": 0.2, \"term\": \"\\u591a\\u3044\", \"cat25k\": 697, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 9, \"ncat\": 0, \"s\": 0.5499999999999999, \"os\": 0.375, \"bg\": 0.0}, {\"x\": 0.35, \"y\": 0.25, \"ox\": 0.35, \"oy\": 0.25, \"term\": \"\\u70b9\", \"cat25k\": 697, \"ncat25k\": 0, \"neut25k\": 0, \"neut\": 0, \"extra25k\": 0, \"extra\": 0, \"cat\": 9, \"ncat\": 0, \"s\": 0.5499999999999999, \"os\": 0.375, \"bg\": 0.0}], \"docs\": {\"categories\": [\"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u2160\", \"\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u30b7\\u30b9\\u30c6\\u30e0\"], \"labels\": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], \"texts\": [\"\\u7279\\u306b\\u306a\\u3057\", \"\\u305f\\u307e\\u306b\\u8aac\\u660e\\u304c\\u306a\\u3044\\u30b3\\u30fc\\u30c9\\u304c\\u3042\\u3063\\u305f\\u308a\\u3057\\u305f\\u306e\\u3067\\u5c11\\u3057\\u6238\\u60d1\\u3063\\u305f\\u3002\\u3044\\u305a\\u308c\\u306f\\u3084\\u3063\\u3066\\u3044\\u304f\\u3082\\u306e\\u3067\\u306f\\u3042\\u308b\\u304c\\u3001\\u3001\\u3001\", \"\\u3067\\u304d\\u308c\\u3070\\u3001\\u5bfe\\u9762\\u3092\\u5897\\u3084\\u3057\\u3066\\u6b32\\u3057\\u3044\", \"\\u7279\\u306b\\u306a\\u3057\", \"\\u4ed6\\u4eba\\u306e\\u8ab2\\u984c\\u3092\\u5909\\u66f4\\u3067\\u304d\\u3066\\u3057\\u307e\\u3046\\u306e\\u304c\\u6016\\u3044\\u3002\", \"\\u7279\\u306b\\u306a\\u3057\", \"\\u7279\\u306b\\u306a\\u3057\", \"\\u5de5\\u5b66\\u90e8\\u306e7\\u3064\\u306e\\u30b3\\u30fc\\u30b9\\u306e\\u4e2d\\u3067\\u3053\\u306e\\u30b3\\u30fc\\u30b9\\u306b\\u6c7a\\u3081\\u305f\\u7406\\u7531\\u306e\\u4e00\\u3064\\u304c\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u3092\\u5b66\\u3079\\u308b\\u304b\\u3089\\u3067\\u3057\\u305f\\u3002\\u6545\\u306b\\u3001\\u6bce\\u65e5\\u304c\\u523a\\u6fc0\\u7684\\u3067\\u3057\\u305f\\u3002\\u307e\\u305f\\u3001\\u79c1\\u306b\\u3068\\u3063\\u3066\\u306f\\u8ab2\\u984c\\u306e\\u96e3\\u6613\\u5ea6\\u304c\\u9ad8\\u304f\\u3001\\u305d\\u308c\\u3092\\u5b8c\\u6210\\u3055\\u305b\\u308b\\u305f\\u3081\\u306b\\u4e88\\u7fd2\\u3068\\u5fa9\\u7fd2\\u3092\\u3053\\u306a\\u305b\\u305f\\u3053\\u3068\\u3067\\u3001\\u826f\\u3044\\u52c9\\u5f37\\u306e\\u5faa\\u74b0\\u304c\\u3067\\u304d\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"python\\u306e\\u57fa\\u790e\\u306e\\u57fa\\u790e\\u3092\\u5b66\\u3076\\u3053\\u3068\\u304c\\u3067\\u304d\\u305f\\u306e\\u3067\\u3088\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\", \"\\u30cd\\u30c3\\u30c8\\u3084YouTube\\u3067\\u8abf\\u3079\\u308b\\u3088\\u308a\\u3082\\u308f\\u304b\\u308a\\u3084\\u3059\\u3044\\u8aac\\u660e\\u3067\\u7406\\u89e3\\u3057\\u3084\\u3059\\u304b\\u3063\\u305f\\u3002\\r\\n\\u4ed6\\u4eba\\u306e\\u8ab2\\u984c\\u3092\\u898b\\u308b\\u3053\\u3068\\u304c\\u3067\\u304d\\u308b\\u306e\\u3067\\u81ea\\u5206\\u306e\\u30b3\\u30fc\\u30c9\\u3092\\u3088\\u308a\\u826f\\u304f\\u3057\\u3084\\u3059\\u3044\\u306e\\u304c\\u826f\\u3044\\u3068\\u601d\\u3063\\u305f\\u3002\", \"\\u8ab2\\u984c\\u306f\\u53cb\\u4eba\\u3068\\u5f37\\u529b\\u3057\\u3066\\u884c\\u3046\\u3053\\u3068\\u304c\\u8a8d\\u3081\\u3089\\u308c\\u3066\\u3044\\u3066\\u3068\\u3066\\u3082\\u52a9\\u304b\\u3063\\u305f\\u3002\", \"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u3092\\u5168\\u304f\\u89e6\\u3063\\u305f\\u3053\\u3068\\u304c\\u306a\\u304b\\u3063\\u305f\\u306e\\u3067\\u3068\\u3066\\u3082\\u96e3\\u3057\\u304b\\u3063\\u305f\\u3002\", \"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0II\\u3082\\u3088\\u308d\\u3057\\u304f\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\u3002\", \"python\\u306e\\u5185\\u5bb9\\u306f\\u4e88\\u60f3\\u3092\\u4e0a\\u56de\\u308b\\u307b\\u3069\\u306e\\u91cf\\u3060\\u3063\\u305f\\u306e\\u3067\\u3001\\u307e\\u3060\\u7406\\u89e3\\u5ea6\\u304c\\u5b8c\\u74a7\\u3068\\u306f\\u8a00\\u3048\\u306a\\u3044\\u72b6\\u6cc1\\u3067\\u3059\\u3002\\u590f\\u4f11\\u307f\\u306f\\u5fa9\\u7fd2\\u3092\\u3057\\u3066\\u3001\\uff12\\u5b66\\u671f\\u304b\\u3089\\u307e\\u305f\\u65b0\\u3057\\u3044\\u8a00\\u8a9e\\u3092\\u5b66\\u3093\\u3067\\u3044\\u304d\\u305f\\u3044\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"\\u8ab2\\u984c\\u306f\\u5b66\\u3073\\u306f\\u3058\\u3081\\u306b\\u3068\\u3063\\u3066\\u306f\\u96e3\\u3057\\u304b\\u3063\\u305f\\u3051\\u3069\\u9054\\u6210\\u611f\\u306fGOOD\", \"\\u8ab2\\u984c\\u3092\\u4e00\\u4eba\\u3067\\u3084\\u308b\\u306e\\u306f\\u5e8f\\u76e4\\u304c\\u7d50\\u69cb\\u304d\\u3064\\u304b\\u3063\\u305f\", \"\\u4f55\\u3082\\u77e5\\u3089\\u306a\\u304b\\u3063\\u305f\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u3092\\u697d\\u3057\\u304f\\u5b66\\u3076\\u3053\\u3068\\u304c\\u3067\\u304d\\u307e\\u3057\\u305f\\u3002\", \"\\u6bd4\\u8f03\\u7684\\u4eba\\u6c17\\u3067\\u4fee\\u5f97\\u304c\\u7c21\\u5358\\u306apython\\u3067\\u3059\\u3089\\u3053\\u306e\\u96e3\\u3057\\u3055\\u306a\\u3089\\u3001\\u5148\\u304c\\u601d\\u3044\\u3084\\u3089\\u308c\\u307e\\u3059\\u3002\", \"\\u79c1\\u306f\\u4eca\\u307e\\u3067\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\\u306b\\u89e6\\u308c\\u305f\\u3053\\u3068\\u304c\\u306a\\u304b\\u3063\\u305f\\u306e\\u3067\\u65b0\\u3057\\u3044\\u3053\\u3068\\u3092\\u899a\\u3048\\u308b\\u306e\\u306b\\u5fc5\\u6b7b\\u3067\\u3057\\u305f\\u3002\\u3067\\u3059\\u304c\\u3001\\u3067\\u304d\\u308b\\u3088\\u3046\\u306b\\u306a\\u3063\\u305f\\u6642\\u306f\\u9054\\u6210\\u611f\\u304c\\u3042\\u308a\\u307e\\u3057\\u305f\\u3057\\u3001\\u3053\\u306e\\u6280\\u8853\\u3084\\u77e5\\u8b58\\u3092\\u3055\\u3089\\u306b\\u751f\\u304b\\u3057\\u305f\\u3044\\u3068\\u601d\\u3046\\u3088\\u3046\\u306b\\u306a\\u308a\\u307e\\u3057\\u305f\\u3002\\u7576\\u9593\\u5148\\u751f\\u306e\\u8b1b\\u7fa9\\u306f\\u697d\\u3057\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\u3042\\u308a\\u304c\\u3068\\u3046\\u3054\\u3056\\u3044\\u307e\\u3057\\u305f\\u3002\\u5f8c\\u671f\\u306e\\u8b1b\\u7fa9\\u3067\\u3082\\u304a\\u4e16\\u8a71\\u306b\\u306a\\u308b\\u3068\\u601d\\u3046\\u306e\\u3067\\u3001\\u3088\\u308d\\u3057\\u304f\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\u3002\", \"\\u914d\\u5e03\\u8cc7\\u6599\\u306b\\u9593\\u9055\\u3044\\u304c\\u3042\\u3063\\u305f\\u3088\\u3046\\u306b\\u898b\\u3048\\u307e\\u3057\\u305f\\u3002\", \"\\u30fb\\u6559\\u79d1\\u66f8\\u304c\\u5fc5\\u8981\\u306a\\u306e\\u304b\\u5fc5\\u8981\\u3067\\u306a\\u3044\\u306e\\u304b\\u304c\\u66d6\\u6627\\u306a\\u307e\\u307e\\u6388\\u696d\\u304c\\u59cb\\u307e\\u308a\\u3001\\u975e\\u5e38\\u306b\\u4e0d\\u5b89\\u3060\\u3063\\u305f\\u305f\\u3081\\u3001\\u6559\\u79d1\\u66f8\\u304c\\u5fc5\\u9808\\u304b\\u305d\\u3046\\u3067\\u306a\\u3044\\u306e\\u304b\\u306f\\u6700\\u521d\\u306b\\u306f\\u3063\\u304d\\u308a\\u3057\\u3066\\u6b32\\u3057\\u3044\\u3002\\r\\n\\u30fb\\u8ab2\\u984c\\u3092\\u51fa\\u3059\\u3060\\u3051\\u51fa\\u3055\\u305b\\u3066\\u304a\\u3044\\u3066\\u3001\\u63a1\\u70b9\\u3082\\u305b\\u305a\\u3001\\u3069\\u3046\\u3044\\u3063\\u305f\\u89e3\\u7b54\\u304c\\u6b63\\u3057\\u3044\\u306e\\u304b\\u3068\\u3044\\u3063\\u305f\\u6307\\u91dd\\u3082\\u51fa\\u3059\\u306e\\u304c\\u3068\\u3066\\u3082\\u9045\\u3044\\u3002\\u8ab2\\u984c\\u306f\\u89e3\\u304f\\u3060\\u3051\\u3067\\u306f\\u77e5\\u8b58\\u306e\\u5b9a\\u7740\\u306b\\u3064\\u306a\\u304c\\u3089\\u306a\\u3044\\u3068\\u601d\\u3044\\u307e\\u3059\\u304c\\u3001\\u305d\\u3053\\u3089\\u3078\\u3093\\u306f\\u3069\\u3046\\u306a\\u3093\\u3067\\u3057\\u3087\\u3046\\u304b\\u3002\\r\\n\\u30fb\\u914d\\u5e03\\u8cc7\\u6599\\u3068\\u3057\\u3066\\u3001\\u904e\\u53bb\\u554f\\u3082\\u914d\\u5e03\\u3057\\u3066\\u304f\\u308c\\u308b\\u3068\\u3068\\u3066\\u3082\\u52a9\\u304b\\u308b\\u306a\\u3001\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u3054\\u691c\\u8a0e\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\u3002\", \"\\u6388\\u696d\\u53ca\\u3073\\u8cc7\\u6599\\u3092\\u5b8c\\u74a7\\u306b\\u7406\\u89e3\\u3057\\u3066\\u3082\\u7d76\\u5bfe\\u308f\\u304b\\u3089\\u306a\\u3044\\u554f\\u984c\\u304c\\u3042\\u3063\\u305f\\u306e\\u3067\\uff0c\\u6d41\\u77f3\\u306b\\u8a66\\u9a13\\u306e\\u5185\\u5bb9\\u306f\\u8cc7\\u6599\\u5185\\u5bb9\\u3084\\u6388\\u696d\\u3092\\u7406\\u89e3\\u3057\\u3066\\u3044\\u308c\\u3070\\u89e3\\u3051\\u308b\\u5185\\u5bb9\\u306e\\u307f\\u3067\\u69cb\\u6210\\u3057\\u3066\\u6b32\\u3057\\u304b\\u3063\\u305f\\uff0e\", \"\\u30fb\\u4e2d\\u9593\\u30c6\\u30b9\\u30c8\\u3092\\u5ef6\\u671f\\u3057\\u7d9a\\u3051\\u3001\\u6700\\u7d42\\u7684\\u306b\\u4e2d\\u9593\\u30fb\\u671f\\u672b\\u8a66\\u9a13\\u3092\\uff12\\u9031\\u7d9a\\u3051\\u3066\\u3084\\u308b\\u3053\\u3068\\u3068\\u306a\\u308a\\u3001\\u8a08\\u753b\\u6027\\u304c\\u6b20\\u3051\\u3066\\u3044\\u308b\\u3002\\r\\n\\u30fb\\u914d\\u5e03\\u8cc7\\u6599\\u306e\\u8aa4\\u5b57\\u8131\\u5b57\\u304c\\u591a\\u3059\\u304e\\u308b\\u3002\", \"\\u6559\\u79d1\\u66f8\\u304c\\u304b\\u306a\\u308a\\u7c21\\u6f54\\u306a\\u307e\\u3068\\u3081\\u65b9\\u3092\\u3057\\u3066\\u3044\\u308b\\u306e\\u3067\\u3001\\u5148\\u751f\\u306e\\u89e3\\u8aac\\u306f\\u6559\\u79d1\\u66f8\\u306e\\u5185\\u5bb9\\u3092\\u88dc\\u5f37\\u3059\\u308b\\u5f62\\u3067\\u8aac\\u660e\\u3057\\u3066\\u6b32\\u3057\\u304b\\u3063\\u305f\\u3002\", \"webclass\\u306e\\u914d\\u5e03\\u8cc7\\u6599\\u306f\\u30c0\\u30a6\\u30f3\\u30ed\\u30fc\\u30c9\\u3067\\u304d\\u308b\\u3088\\u3046\\u306b\\u3057\\u3066\\u6b32\\u3057\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\u5f8c\\u3001\\u305d\\u306ewebclass\\u306e\\u914d\\u5e03\\u8cc7\\u6599\\u3067\\u306f1\\u30da\\u30fc\\u30b8\\u306b4\\u679a\\u306e\\u30b9\\u30e9\\u30a4\\u30c9\\u3068\\u3044\\u3046\\u69cb\\u9020\\u3060\\u3063\\u305f\\u305f\\u3081\\u3001\\u52c9\\u5f37\\u3059\\u308b\\u3068\\u304d\\u306b\\u4e0d\\u4fbf\\u3092\\u611f\\u3058\\u307e\\u3057\\u305f\\u3002\\u3067\\u304d\\u308c\\u30701\\u30da\\u30fc\\u30b8\\u306b1\\u679a\\u306e\\u30b9\\u30e9\\u30a4\\u30c9\\u3068\\u3044\\u3046\\u69cb\\u9020\\u306b\\u6539\\u5584\\u3057\\u3066\\u304f\\u308c\\u308c\\u3070\\u5e78\\u3044\\u3067\\u3059\\u3002\", \"\\u914d\\u5e03\\u8cc7\\u6599\\u306f1\\u30da\\u30fc\\u30b8\\u306b\\u3064\\u304d4\\u679a\\u5206\\u306e\\u30da\\u30fc\\u30b8\\u304c\\u6577\\u304d\\u8a70\\u3081\\u3089\\u308c\\u3066\\u3044\\u308b\\u305f\\u3081\\u3068\\u3066\\u3082\\u898b\\u8f9b\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\r\\n\\u307e\\u305f\\u3001\\u5148\\u751f\\u304c\\u3059\\u3050\\u306b\\u30e1\\u30fc\\u30eb\\u3092\\u8aad\\u3093\\u3067\\u304f\\u308c\\u306a\\u3044\\u3053\\u3068\\u304c\\u591a\\u304b\\u3063\\u305f\\u306e\\u3067\\u3001\\u305d\\u3053\\u306f\\u56f0\\u308a\\u307e\\u3057\\u305f\\u3002mattermost\\u306b\\u306f\\u30c1\\u30e3\\u30f3\\u30cd\\u30eb\\u3092\\u958b\\u8a2d\\u3057\\u3066\\u3044\\u306a\\u3044\\u306e\\u3067\\u30e1\\u30fc\\u30eb\\u3057\\u304b\\u9023\\u7d61\\u624b\\u6bb5\\u304c\\u306a\\u3044\\u306e\\u3067\\u3059\\u304c\\u3001\\u305d\\u306e\\u552f\\u4e00\\u306e\\u9023\\u7d61\\u624b\\u6bb5\\u304c\\u78ba\\u8a8d\\u3055\\u308c\\u306a\\u3044\\u3068\\u3044\\u3046\\u306e\\u306f\\u751f\\u5f92\\u306b\\u3068\\u3063\\u3066\\u3082\\u8f9b\\u3044\\u3068\\u3053\\u308d\\u304c\\u3042\\u308b\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u5148\\u751f\\u3082\\u591a\\u5fd9\\u3067\\u306f\\u3042\\u308b\\u3068\\u601d\\u308f\\u308c\\u307e\\u3059\\u304c\\u3001\\u662f\\u975e\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\u3002\", \"\\u66f8\\u304b\\u308c\\u3066\\u3044\\u308b\\u3053\\u3068\\u3084\\u5185\\u5bb9\\u3092\\u5148\\u751f\\u304c\\u6de1\\u3005\\u3068\\u30a2\\u30a6\\u30c8\\u30d7\\u30c3\\u30c8\\u3057\\u3066\\u3044\\u308b\\u3060\\u3051\\u3067,\\r\\n\\u751f\\u5f92\\u5074\\u304c\\u7f6e\\u3044\\u3066\\u3051\\u307c\\u308a\\u3060\\u3063\\u305f\\u3002\\u5b9f\\u969b\\u306b\\u8b1b\\u7fa9\\u306e\\u5f8c\\u3084\\u5f8c\\u65e5\\u3001\\u751f\\u5f92\\u540c\\u58eb\\u3067\\u3069\\u3046\\u3060\\u3063\\u305f\\uff1f\\u308f\\u304b\\u3063\\u305f\\uff1f\\u306a\\u3069\\u3068\\u8a71\\u3059\\u3053\\u3068\\u304c\\u3042\\u3063\\u305f\\u3002\", \"\\u30fb\\u6388\\u696d\\u306e\\u65b9\\u6cd5\\u81ea\\u4f53\\u306f\\u666e\\u901a\\u3067\\u3042\\u3063\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059(\\u677f\\u66f8\\u304c\\u82e5\\u5e72\\u898b\\u3065\\u3089\\u304b\\u3063\\u305f\\u304c\\u3001\\u30aa\\u30f3\\u30e9\\u30a4\\u30f3\\u306e\\u305f\\u3081\\u306b\\u677f\\u66f8\\u304c\\u6c5a\\u304b\\u3063\\u305f\\u308a\\u3059\\u308b\\u3053\\u3068\\u306a\\u3069\\u306f\\u3057\\u3087\\u3046\\u304c\\u306a\\u3044\\u3068\\u601d\\u3044\\u307e\\u3057\\u305f)\\u3002\", \"\\u30b9\\u30e9\\u30a4\\u30c9\\u304c1\\u30da\\u30fc\\u30b8\\u306b4\\u5206\\u5272\\u3057\\u3066\\u5165\\u3063\\u3066\\u3044\\u308b\\u306e\\u306f\\u62e1\\u5927\\u3057\\u306a\\u3051\\u308c\\u3070\\u306a\\u3089\\u306a\\u3044\\u306e\\u3067\\u898b\\u3065\\u3089\\u3044\\u3067\\u3059\\u3002\", \"\\u30fb\\u8cc7\\u6599\\u306e\\u8aac\\u660e\\u3067\\u8272\\u30da\\u30f3\\u3092\\u4f7f\\u3046\\u3068\\u304d\\u3001\\u8cc7\\u6599\\u306e\\u4e0a\\u304b\\u3089\\u66f8\\u304f\\u306e\\u3092\\u3084\\u3081\\u3066\\u307b\\u3057\\u3044\\u3002\\u5b57\\u304c\\u6c5a\\u3044\\u4e0a\\u306b\\u3001\\u8cc7\\u6599\\u306e\\u6587\\u5b57\\u3068\\u91cd\\u306a\\u3063\\u3066\\u8aad\\u307f\\u3065\\u3089\\u3044\\u3002\\r\\n\\u30fb\\u4e88\\u7fd2\\u3092\\u3057\\u3066\\u8aac\\u660e\\u3092\\u805e\\u3044\\u3066\\u3082\\u3001\\u4f55\\u3092\\u8a00\\u3063\\u3066\\u3044\\u308b\\u304b\\u308f\\u304b\\u3089\\u306a\\u3044\\u304b\\u3089\\u3001\\u982d\\u306b\\u5165\\u3063\\u3066\\u3053\\u306a\\u3044\\u3002\\u3082\\u3046\\u5c11\\u3057\\u306f\\u3063\\u304d\\u308a\\u3068\\u8a71\\u3057\\u3066\\u307b\\u3057\\u3044\\u3002\", \"\\u30de\\u30a6\\u30b9\\u3067\\u306e\\u30e1\\u30e2\\u66f8\\u304d\\u306f\\u5c11\\u3057\\u898b\\u3065\\u3089\\u304b\\u3063\\u305f\\u3002\", \"\\u6388\\u696d\\u8cc7\\u6599\\u306f\\u308f\\u304b\\u308a\\u3084\\u3059\\u304f\\u3001\\u5fa9\\u7fd2\\u3057\\u3084\\u3059\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\u305f\\u3060\\u3001\\u53e3\\u982d\\u3067\\u306e\\u8aac\\u660e\\u304c\\u308f\\u304b\\u308a\\u306b\\u304f\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\u7279\\u306b\\u3001\\u5f8c\\u534a\\u306e\\u30a2\\u30bb\\u30f3\\u30d6\\u30e9\\u8a00\\u8a9e\\u306e\\u3068\\u3053\\u308d\\u306f\\u8aac\\u660e\\u304c\\u5c11\\u306a\\u304f\\u611f\\u3058\\u307e\\u3057\\u305f\\u3002\", \"\\u8ab2\\u984c\\u306e\\u70b9\\u6570\\u3092\\u65e9\\u3081\\u306b\\u516c\\u958b\\u3057\\u3066\\u3082\\u3089\\u3048\\u308b\\u3068\\u3088\\u304b\\u3063\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\r\\n\\u307e\\u305f\\u3001\\u8a66\\u9a13\\u306b\\u95a2\\u3057\\u3066\\u7591\\u554f\\u70b9\\u3092\\u30e1\\u30fc\\u30eb\\u306b\\u9001\\u3063\\u3066\\u3044\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u304c\\u3001\\u305d\\u308c\\u306b\\u56de\\u7b54\\u3057\\u3066\\u3044\\u305f\\u3060\\u3051\\u308b\\u3068\\u3088\\u304b\\u3063\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"\\u65e9\\u3081\\u306e\\u8ab2\\u984c\\u306e\\u63a1\\u70b9\\u3092\\u304a\\u9858\\u3044\\u3057\\u305f\\u3044\\u3067\\u3059\", \"\\u8ab2\\u984c\\u306b\\u3064\\u3044\\u3066\\u306f\\u89e3\\u7b54\\u3068\\u89e3\\u8aac\\u304c\\u3057\\u3070\\u3089\\u304f\\u660e\\u793a\\u3055\\u308c\\u305a\\u3001\\u89e3\\u7b54\\u81ea\\u4f53\\u306f\\u8a66\\u9a13\\u306e1,2\\u9031\\u9593\\u307b\\u3069\\u524d\\u306b\\u516c\\u958b\\u3055\\u308c\\u305f\\u3082\\u306e\\u306e\\u89e3\\u8aac\\u304c\\u306a\\u3044\\u305f\\u3081\\u7406\\u89e3\\u304c\\u3057\\u3065\\u3089\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\r\\n\\u8a66\\u9a13\\u306b\\u3064\\u3044\\u3066\\u306f\\u3001\\u7279\\u306b\\u671f\\u672b\\u8a66\\u9a13\\u306b\\u3064\\u3044\\u3066\\u306a\\u306e\\u3067\\u3059\\u304c\\u3001\\u5927\\u534a\\u306e\\u4eba\\u304c\\u52c9\\u5f37\\u3067\\u304d\\u3066\\u3044\\u306a\\u3044\\u3067\\u3042\\u308d\\u3046\\u5206\\u91ce\\u306e\\u554f\\u984c\\u304c\\u51fa\\u3055\\u308c\\u305f\\u3068\\u3044\\u3046\\u3053\\u3068\\u3068\\u554f\\u984c\\u306e\\u91cf\\u304c\\u305d\\u308c\\u306a\\u308a\\u306b\\u591a\\u304b\\u3063\\u305f\\u305f\\u3081\\u306b\\u975e\\u5e38\\u306b\\u96e3\\u3057\\u304f\\u611f\\u3058\\u307e\\u3057\\u305f\\u3002\\u5b9f\\u969b\\u306e\\u30af\\u30e9\\u30b9\\u5e73\\u5747\\u70b9\\u3082\\u4f4e\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\\r\\n\\u307e\\u305f\\u3001\\u4e2d\\u9593\\u8a66\\u9a13\\u3068\\u671f\\u672b\\u8a66\\u9a13\\u30922\\u9031\\u9023\\u7d9a\\u3067\\u5b9f\\u65bd\\u3059\\u308b\\u306e\\u306f\\u6765\\u5e74\\u4ee5\\u964d\\u306e\\u6388\\u696d\\u3067\\u306f\\u3084\\u3081\\u3066\\u3044\\u305f\\u3060\\u304d\\u305f\\u3044\\u3067\\u3059\\u3002\\u3069\\u3046\\u3057\\u3066\\u3082\\u5bfe\\u9762\\u3067\\u5b9f\\u65bd\\u3067\\u304d\\u306a\\u3044\\u306e\\u306a\\u3089\\u3059\\u3050\\u306b\\u30aa\\u30f3\\u30e9\\u30a4\\u30f3\\u306b\\u5207\\u308a\\u66ff\\u3048\\u3066\\u4e2d\\u9593\\u8a66\\u9a13\\u306e\\u671f\\u9593\\u5185\\u306b\\u5b9f\\u65bd\\u3059\\u308b\\u3079\\u304d\\u3060\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u5927\\u5909\\u3067\\u3057\\u305f\\u3002\\r\\n\\u6700\\u5f8c\\u306b\\u8ab2\\u984c\\u3068\\u8a66\\u9a13\\u306b\\u8a55\\u4fa1\\u65b9\\u6cd5\\u306a\\u306e\\u3067\\u3059\\u304c\\u3001webclass\\u3067\\u306e\\u5b8c\\u5168\\u89e3\\u7b54\\u578b\\u306e\\u305f\\u3081\\u63a1\\u70b9\\u304c\\u5c11\\u3057\\u53b3\\u3057\\u3044\\u3068\\u611f\\u3058\\u307e\\u3057\\u305f\\u3002\\u305d\\u3053\\u3082\\u3067\\u304d\\u308c\\u3070\\u4f55\\u3089\\u304b\\u306e\\u5f62\\u3067\\u6539\\u5584\\u3057\\u3066\\u3044\\u305f\\u3060\\u3051\\u308b\\u3068\\u3044\\u3044\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"\\u8ab2\\u984c\\u306e\\u8a55\\u4fa1\\u3001\\u3069\\u306e\\u70b9\\u304c\\u9593\\u9055\\u3063\\u3066\\u3044\\u3064\\u306e\\u304b\\u306a\\u3069\\u306e\\u30d5\\u30a3\\u30fc\\u30c9\\u30d0\\u30c3\\u30af\\u304c\\u9045\\u304b\\u3063\\u305f\\u308a\\u3001\\u306a\\u304b\\u3063\\u305f\\u308a\\u3057\\u305f\\r\\n\\u8a66\\u9a13\\u306b\\u95a2\\u3057\\u3066\\u306f\\u3001\\u6700\\u7d42\\u9031\\u3068\\u305d\\u306e\\u524d\\u306e\\u9031\\u3068\\uff12\\u9031\\u306b\\u304b\\u3051\\u3066\\u671f\\u672b\\u8a66\\u9a13\\u3068\\u4e2d\\u9593\\u8a66\\u9a13\\u3092\\u884c\\u306a\\u3063\\u305f\\u3002\\u305d\\u308c\\u306b\\u3088\\u308a\\u6e96\\u5099\\u304c\\u307e\\u307e\\u306a\\u3089\\u306a\\u304b\\u3063\\u305f\\u308a\\u3001\\u5c11\\u3057\\u6388\\u696d\\u3088\\u308a\\u3082\\u4e0a\\u306e\\u3082\\u306e\\u304c\\u51fa\\u305f\\u308a\\u3057\\u3066\\u3044\\u305f\", \"\\u8a66\\u9a13\\u306e\\u554f\\u984c\\u6587\\u304c\\u5206\\u304b\\u308a\\u96e3\\u304b\\u3063\\u305f\", \"\\u30fb\\u8ab2\\u984c\\u306e\\u70b9\\u6570\\u304c\\u3001\\u3053\\u306e\\u8b1b\\u7fa9\\u304c\\u5168\\u3066\\u7d42\\u308f\\u3063\\u305f\\u306e\\u306b\\u672a\\u3060\\u3059\\u3079\\u3066\\u63a1\\u70b9\\u3055\\u308c\\u3066\\u3044\\u306a\\u3044\\u70b9\\u304c\\u4e0d\\u670d\\u3002\\u53d7\\u8b1b\\u8005\\u304c\\u591a\\u3044\\u3060\\u3068\\u304b\\u3001\\u63a1\\u70b9\\u3059\\u308b\\u5074\\u3082\\u5fd9\\u3057\\u3044\\u3060\\u3068\\u304b\\u8272\\u3005\\u3042\\u308b\\u3068\\u601d\\u3044\\u307e\\u3059\\u304c\\u3001\\u305d\\u3082\\u305d\\u3082\\u63a1\\u70b9\\u3059\\u308b\\u5074\\u304c\\u634c\\u304d\\u304d\\u308c\\u306a\\u3044\\u307b\\u3069\\u8ab2\\u984c\\u3092\\u51fa\\u3057\\u3066\\u3044\\u308b\\u3068\\u3044\\u3046\\u73fe\\u72b6\\u306f\\u9069\\u5207\\u3067\\u3057\\u3087\\u3046\\u304b\\u3002\\r\\n\\u30fb\\u81ea\\u8eab\\u306e\\u52aa\\u529b\\u4e0d\\u8db3\\u304b\\u3082\\u3057\\u308c\\u307e\\u305b\\u3093\\u304c\\u3001\\u7387\\u76f4\\u306b\\u8a00\\u3063\\u3066\\u8a66\\u9a13\\u306e\\u96e3\\u6613\\u5ea6\\u304c\\u96e3\\u3057\\u3044\\u3002\\u8ab2\\u984c\\u3067\\u89e3\\u3044\\u305f\\u554f\\u984c\\u3068\\u6bd4\\u3079\\u3066\\u3082\\u96e3\\u6613\\u5ea6\\u304c\\u6570\\u6bb5\\u9055\\u3046\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u3053\\u306e\\u6388\\u696d\\u3067\\u306f\\u300c\\u914d\\u5e03\\u8cc7\\u6599\\u300d\\u300c\\u8ab2\\u984c\\u300d\\u300c\\u666e\\u6bb5\\u306e\\u8b1b\\u7fa9\\u300d\\u304c\\u4e3b\\u306b\\u63d0\\u4f9b\\u3055\\u308c\\u307e\\u3057\\u305f\\u304c\\u3001\\u305d\\u308c\\u3089\\u3092\\u7528\\u3044\\u3066\\u52c9\\u5f37\\u3092\\u3057\\u3001\\u307e\\u305f\\u8db3\\u308a\\u306a\\u3044\\u3068\\u601d\\u3063\\u305f\\u3068\\u3053\\u308d\\u3092\\u81ea\\u5206\\u3067\\u8abf\\u3079\\u3066\\u5b66\\u7fd2\\u3057\\u3066\\u3082\\u3001\\u8a66\\u9a13\\u3067\\u601d\\u3046\\u3088\\u3046\\u306a\\u70b9\\u304c\\u53d6\\u308c\\u307e\\u305b\\u3093\\u3067\\u3057\\u305f\\u3002\\u306a\\u306e\\u3067\\u8a66\\u9a13\\u96e3\\u6613\\u5ea6\\u306e\\u9ad8\\u3055\\u306b\\u306f\\u4e0d\\u6e80\\u304c\\u6b8b\\u308a\\u307e\\u3059\\u3002\\r\\n\\u30fb\\u8a55\\u4fa1\\u65b9\\u6cd5\\u306e\\u8ab2\\u984c20%\\u3001\\u30c6\\u30b9\\u30c840+40=80%\\u306f\\u4ed6\\u306e\\u6388\\u696d\\u3067\\u3082\\u3088\\u304f\\u898b\\u3089\\u308c\\u308b\\u914d\\u5206\\u306a\\u306e\\u3067\\u3001\\u305d\\u308c\\u81ea\\u4f53\\u306b\\u306f\\u4e0d\\u6e80\\u306f\\u3042\\u308a\\u307e\\u305b\\u3093\\u3002\\u3057\\u304b\\u3057\\u3001\\u5148\\u307b\\u3069\\u66f8\\u3044\\u305f\\u901a\\u308a\\u3001\\u8ab2\\u984c\\u304c\\u63a1\\u70b9\\u3055\\u308c\\u306a\\u3044\\u70b9\\u3084\\u3001\\u8a66\\u9a13\\u306e\\u96e3\\u6613\\u5ea6\\u306b\\u4e0d\\u6e80\\u304c\\u3042\\u308b\\u305f\\u3081\\u3001\\u7d50\\u679c\\u7684\\u306b\\u3053\\u306e\\u914d\\u5206\\u3082\\u826f\\u304f\\u306a\\u3044\\u306e\\u3067\\u306f\\u306a\\u3044\\u304b\\u3001\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"\\u8a66\\u9a13\\u3067\\u9078\\u629e\\u5f0f\\u3067\\u306a\\u3044\\u306e\\u306b\\u81ea\\u52d5\\u63a1\\u70b9\\u3092\\u4f7f\\u3046\\u306e\\u306f\\u3084\\u3081\\u3066\\u307b\\u3057\\u3044\\u3067\\u3059\\u3002\\r\\n\\u30d7\\u30ed\\u30b0\\u30e9\\u30e0\\u306e\\u52b9\\u7387\\u306a\\u3069\\u3001\\u554f\\u984c\\u306b\\u66f8\\u304b\\u308c\\u3066\\u3044\\u306a\\u3044\\u6761\\u4ef6\\u304c\\u3042\\u308b\\u306e\\u3082\\u826f\\u304f\\u306a\\u3044\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u5b66\\u751f\\u5168\\u54e1\\u304c\\u6280\\u8853\\u8005\\u3068\\u3057\\u3066\\u3069\\u3093\\u306a\\u30d7\\u30ed\\u30b0\\u30e9\\u30e0\\u3092\\u4f5c\\u308b\\u306e\\u304c\\u5f53\\u7136\\u304b\\u306a\\u3069\\u5fb9\\u5e95\\u3057\\u3066\\u982d\\u306b\\u5165\\u3063\\u3066\\u3044\\u308b\\u308f\\u3051\\u3067\\u306f\\u3042\\u308a\\u307e\\u305b\\u3093\\u3002\\r\\n\\u66f8\\u304b\\u308c\\u3066\\u3044\\u306a\\u3044\\u3053\\u3068\\u307e\\u3067\\u6c72\\u307f\\u53d6\\u3089\\u306a\\u3051\\u308c\\u30700\\u70b9\\u3068\\u3055\\u308c\\u305f\\u306e\\u3067\\u306f\\u7406\\u4e0d\\u5c3d\\u3067\\u3059\\u3002\", \"\\u8a66\\u9a13\\u5185\\u5bb9\\u306b\\u521d\\u3081\\u3066\\u898b\\u308b\\u554f\\u984c\\u304c\\u3042\\u3063\\u305f\\uff0e\\u3055\\u3089\\u306b\\u305d\\u306e\\u5f8c\\u306e\\u89e3\\u8aac\\u3082\\u3042\\u307e\\u308a\\u306a\\u304b\\u3063\\u305f\\u306e\\u3067\\u96e3\\u6613\\u5ea6\\u304c\\u4ed6\\u306e\\u6388\\u696d\\u306b\\u6bd4\\u3079\\u3066\\u9ad8\\u3059\\u304e\\u308b\\u3068\\u611f\\u3058\\u307e\\u3057\\u305f\\uff0e\\u305d\\u308c\\u306f\\uff0c\\u5185\\u5bb9\\u304c\\u96e3\\u3057\\u3044\\u3068\\u3044\\u3046\\u3088\\u308a\\u3082\\u6388\\u696d\\u3067\\u8a66\\u9a13\\u306b\\u51fa\\u308b\\u5185\\u5bb9\\u3092\\u7db2\\u7f85\\u3057\\u5207\\u308c\\u3066\\u3044\\u306a\\u3044\\u3053\\u3068\\u306b\\u3088\\u308b\\u3082\\u306e\\u3068\\u601d\\u3044\\u307e\\u3057\\u305f\\uff0e\\u9060\\u9694\\u306e\\u8a66\\u9a13\\u3067\\u3042\\u3063\\u305f\\u3053\\u3068\\u304c\\u5927\\u304d\\u3044\\u3068\\u3044\\u3046\\u3053\\u3068\\u306f\\u91cd\\u3005\\u627f\\u77e5\\u306e\\u4e0a\\u3067\\uff0c\\u554f\\u984c\\u5185\\u5bb9\\u304c\\u4f1d\\u308f\\u308a\\u8f9b\\u304b\\u3063\\u305f\\u306e\\u3067\\u4ed6\\u306e\\u6388\\u696d\\u306e\\u3088\\u3046\\u306b\\u3069\\u3046\\u306b\\u304b\\u5bfe\\u5fdc\\u3057\\u3066\\u6b32\\u3057\\u304b\\u3063\\u305f\\u3067\\u3059\\uff0e\\u307e\\u305f\\uff0c\\u5e73\\u5747\\u70b9\\u304c\\u4ed6\\u306e\\u6388\\u696d\\u3068\\u6bd4\\u3079\\u3066\\u4f4e\\u3059\\u304e\\u308b\\u306e\\u3067\\u8ffd\\u52a0\\u3067\\u8ab2\\u984c\\u306a\\u3069\\u304c\\u6b32\\u3057\\u304b\\u3063\\u305f\\u3067\\u3059\\uff0e\", \"\\u30fb\\u8ab2\\u984c\\u3092\\u51fa\\u3057\\u3066\\u3082\\u3001\\u89e3\\u7b54\\u3084\\u63a1\\u70b9\\u304c\\u51fa\\u306a\\u304f\\u3066\\u3068\\u3066\\u3082\\u56f0\\u308b\\u3002\\u8a66\\u9a13\\u306e\\u4e00\\u9031\\u9593\\u524d\\u306b\\u89e3\\u7b54\\u3092\\u51fa\\u3055\\u308c\\u3066\\u3082\\u3001\\u5b8c\\u74a7\\u306b\\u5fa9\\u7fd2\\u3067\\u304d\\u308b\\u308f\\u3051\\u304c\\u306a\\u3044\\u3002\\u524d\\u6301\\u3063\\u3066\\u5fa9\\u7fd2\\u3057\\u305f\\u3044\\u304b\\u3089\\u3001\\u8ab2\\u984c\\u306e\\u63d0\\u51fa\\u671f\\u9593\\u3092\\u904e\\u304e\\u305f\\u3089\\u3059\\u3050\\u306b\\u89e3\\u7b54\\u3092\\u51fa\\u3057\\u3066\\u307b\\u3057\\u3044\\u3002\\r\\n\\u30fbwebclass\\u3067\\u8a66\\u9a13\\u3092\\u3057\\u305f\\u3089\\u3001webclass\\u304c\\u6b62\\u307e\\u3063\\u3066\\u89e3\\u7b54\\u3067\\u304d\\u306a\\u304f\\u306a\\u3063\\u305f\\u5b66\\u751f\\u304c\\u591a\\u304f\\u3044\\u305f\\u3002\\u6628\\u5e74\\u3082\\u3053\\u306e\\u3088\\u3046\\u306a\\u4e8b\\u614b\\u304c\\u8d77\\u3053\\u3063\\u305f\\u3068\\u805e\\u3044\\u3066\\u3001\\u89e3\\u6c7a\\u7b56\\u3092\\u8003\\u3048\\u306a\\u304b\\u3063\\u305f\\u306e\\u304b\\u3068\\u7591\\u554f\\u306b\\u601d\\u3046\\u3002\\u3061\\u3083\\u3093\\u3068\\u3053\\u306e\\u554f\\u984c\\u3092\\u89e3\\u6c7a\\u3057\\u3066\\u304b\\u3089\\u3001\\u5b66\\u751f\\u304c\\u5b89\\u5fc3\\u3057\\u3066\\u8a66\\u9a13\\u3092\\u53d7\\u3051\\u3089\\u308c\\u308b\\u74b0\\u5883\\u3092\\u6574\\u3048\\u3066\\u307b\\u3057\\u3044\\u3002\", \"\\u8ab2\\u984c\\u306b\\u3064\\u3044\\u3066\\u306f\\u3001\\u63d0\\u51fa\\u671f\\u9650\\u5f8c\\u306b\\u9010\\u4e00\\u56de\\u7b54\\u3092\\u51fa\\u3057\\u3066\\u6b32\\u3057\\u304b\\u3063\\u305f\\u3002\\u524d\\u56de\\u306e\\u6388\\u696d\\u5185\\u5bb9\\u304c\\u7406\\u89e3\\u3067\\u304d\\u305f\\u304b\\u3092\\u6e2c\\u308b\\u57fa\\u6e96\\u304c\\u306a\\u304f\\u3001\\u308f\\u304b\\u3089\\u306a\\u3044\\u3053\\u3068\\u3092\\u305d\\u306e\\u307e\\u307e\\u306b\\u3057\\u3066\\u6b21\\u306e\\u8ab2\\u984c\\u306b\\u53d6\\u308a\\u7d44\\u3080\\u3053\\u3068\\u304c\\u7d9a\\u3044\\u3066\\u3057\\u307e\\u3063\\u305f\\u3002\", \"\\u8a66\\u9a13\\u306e\\u5b9f\\u65bd\\u65b9\\u6cd5\\u304c\\u60aa\\u304b\\u3063\\u305f\\u3002\\u6700\\u5f8c\\u306e\\uff12\\u9031\\u306b\\u4e2d\\u9593\\u8a66\\u9a13\\u3068\\u671f\\u672b\\u8a66\\u9a13\\u3092\\u3082\\u3063\\u3066\\u304d\\u305f\\u308a\\u3001Webclass\\u306e\\u63a1\\u70b9\\u30df\\u30b9\\u3084\\u554f\\u984c\\u8a2d\\u5b9a\\u306e\\u9593\\u9055\\u3044\\u3092\\u6307\\u6458\\u3059\\u308b\\u58f0\\u304c\\u3001\\u30c6\\u30b9\\u30c8\\u4e2d\\u306e\\u8cea\\u554f\\u7528Zoom\\u3067\\u3082\\u591a\\u304f\\u6319\\u304c\\u3063\\u3066\\u3044\\u305f\\u3002\", \"Zoom\\u306e\\u97f3\\u58f0\\u3001\\u8cc7\\u6599\\u753b\\u50cf\\u306e\\u753b\\u8cea\\u306a\\u3069\\u7279\\u306b\\u554f\\u984c\\u306a\\u304f\\u6388\\u696d\\u3092\\u53d7\\u3051\\u3089\\u308c\\u305f\\u3002\", \"\\u9ed2\\u677f\\u306a\\u3069\\u304c\\u306a\\u3044\\u30aa\\u30f3\\u30e9\\u30a4\\u30f3\\u3067\\u306e\\u8b1b\\u7fa9\\u3067\\u3057\\u305f\\u304c\\u3001\\u30b9\\u30e9\\u30a4\\u30c9\\u8cc7\\u6599\\u306b\\u76f4\\u63a5\\u8aac\\u660e\\u3092\\u66f8\\u3044\\u3066\\u3044\\u305f\\u306e\\u3067\\u5206\\u304b\\u308a\\u3084\\u3059\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\", \"\\u8b1b\\u7fa9\\u5168\\u4f53\\u306e\\u611f\\u60f3\\u3068\\u3057\\u3066\\u306f\\u3001\\u6bce\\u5e74\\u5358\\u4f4d\\u3092\\u843d\\u3068\\u3059\\u4eba\\u304c\\u591a\\u3044\\u3068\\u3044\\u3046\\u306e\\u3082\\u7d0d\\u5f97\\u3067\\u304d\\u308b\\u96e3\\u3057\\u3055\\u3060\\u3063\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\\u751f\\u5f92\\u306b\\u3068\\u3063\\u3066\\u4e0d\\u89aa\\u5207\\u306a\\u70b9\\u304c\\u591a\\u304f\\u3001\\u672c\\u5f53\\u306b\\u524d\\u5e74\\u5ea6\\u307e\\u3067\\u306e\\u751f\\u5f92\\u304b\\u3089\\u306e\\u8981\\u671b\\u306f\\u3061\\u3083\\u3093\\u3068\\u53d6\\u308a\\u5165\\u308c\\u3089\\u308c\\u3066\\u3044\\u308b\\u306e\\u3060\\u308d\\u3046\\u304b\\u3068\\u7591\\u554f\\u306b\\u601d\\u3044\\u307e\\u3057\\u305f\\u3002\\r\\n\\u8b1b\\u7fa9\\u306e\\u96e3\\u6613\\u5ea6\\u3092\\u7c21\\u5358\\u306b\\u3057\\u3066\\u307b\\u3057\\u3044\\u3068\\u3044\\u3046\\u308f\\u3051\\u3067\\u306f\\u306a\\u304f\\u3001\\u4eca\\u5f8c\\u5c11\\u3057\\u3067\\u3082\\u751f\\u5f92\\u306b\\u89aa\\u5207\\u306a\\u6388\\u696d\\u306b\\u3057\\u3066\\u3082\\u3089\\u3048\\u308c\\u3070\\u5358\\u4f4d\\u3082\\u53d6\\u308a\\u3084\\u3059\\u304f\\u306a\\u308b\\u306e\\u304b\\u306a\\u3068\\u3044\\u3046\\u98a8\\u306b\\u611f\\u3058\\u307e\\u3057\\u305f\\u3002\\r\\n\\u8b1b\\u7fa9\\u3067\\u5b66\\u3093\\u3060\\u5185\\u5bb9\\u81ea\\u4f53\\u306f\\u3068\\u3066\\u3082\\u826f\\u304b\\u3063\\u305f\\u3067\\u3059\\u3002\", \"\\u53d7\\u8b1b\\u524d\\u304b\\u3089\\u5642\\u306f\\u805e\\u3044\\u3066\\u3044\\u305f\\u306e\\u3067\\u5fc3\\u3057\\u3066\\u304b\\u304b\\u3063\\u305f\\u3064\\u3082\\u308a\\u3067\\u3059\\u304c\\u3001\\u305d\\u308c\\u3067\\u3082\\u601d\\u308f\\u305a\\u30af\\u30bd\\u30b2\\u30fc\\u3068\\u53eb\\u3073\\u305f\\u304f\\u306a\\u308b\\u3088\\u3046\\u306a\\u96e3\\u6613\\u5ea6\\u3067\\u3057\\u305f\\u3002\\u3053\\u308c\\u306e\\u6050\\u308d\\u3057\\u3044\\u3068\\u3053\\u308d\\u306f\\u3001\\u8ab2\\u984c\\u3084\\u6388\\u696d\\u3067\\u51fa\\u3055\\u308c\\u305f\\u554f\\u984c\\u306f\\u89e3\\u3051\\u308b\\u306e\\u3067\\u3059\\u304c\\u3001\\u4e2d\\u9593\\u30fb\\u671f\\u672b\\u30c6\\u30b9\\u30c8\\u3067\\u6025\\u6fc0\\u306b\\u96e3\\u6613\\u5ea6\\u304c\\u8df3\\u306d\\u4e0a\\u304c\\u308b\\u3068\\u3053\\u308d\\u3067\\u3059\\u306d\\u3002\\r\\n\\r\\n\\u305b\\u3081\\u3066\\u904e\\u53bb\\u554f\\u3092\\u914d\\u5e03\\u3057\\u3066\\u304f\\u308c\\u305f\\u308a\\u3059\\u308b\\u3068\\u3001\\u751f\\u5f92\\u5074\\u3068\\u3057\\u3066\\u306f\\u30c6\\u30b9\\u30c8\\u306b\\u5411\\u3051\\u3066\\u306e\\u52c9\\u5f37\\u304c\\u6357\\u308b\\u3060\\u3051\\u3067\\u306a\\u304f\\u3001\\u6388\\u696d\\u3067\\u3082\\u8981\\u70b9\\u3092\\u3057\\u3063\\u304b\\u308a\\u62bc\\u3055\\u3048\\u3066\\u52c9\\u5f37\\u3067\\u304d\\u305f\\u308a\\u3059\\u308b\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\", \"\\u8ab2\\u984c\\u306f\\u3059\\u3079\\u3066\\u51fa\\u3057\\u307e\\u3057\\u305f\\u304c\\uff0c\\u304a\\u305d\\u3089\\u304f\\u70b9\\u6570\\u304c\\u5f8c\\u6570\\u70b9\\u8db3\\u308a\\u306a\\u3044\\u3068\\u601d\\u3044\\uff0c\\u5168\\u4f53\\u7684\\u306b\\u3068\\u3066\\u3082\\u5f8c\\u6094\\u3057\\u3066\\u3044\\u307e\\u3059\\uff0e\\u4e0a\\u306e\\u3088\\u3046\\u306b\\u4e0d\\u6e80\\u3092\\u66f8\\u304d\\u307e\\u3057\\u305f\\u304c\\uff0c\\u5b9f\\u969b\\u306f\\u30c6\\u30b9\\u30c8\\u3067\\u7406\\u89e3\\u3059\\u3079\\u304d\\uff0c\\u51fa\\u6765\\u308b\\u3079\\u304d\\u90e8\\u5206\\u3092\\u30df\\u30b9\\u305b\\u305a\\u306b\\u5168\\u3066\\u53d6\\u308c\\u3066\\u3044\\u308c\\u3070\\u304a\\u305d\\u3089\\u304f\\u70b9\\u304c\\u8db3\\u308a\\u3066\\u3044\\u305f\\u3060\\u308d\\u3046\\u3053\\u3068\\u3082\\u4e8b\\u5b9f\\u3067\\u3059\\uff0e\\u6765\\u5e74\\u306f\\u5bfe\\u9762\\u3067\\u3067\\u304d\\u308b\\u3053\\u3068\\u3092\\u671b\\u307f\\uff0c\\u305d\\u306e\\u969b\\u306b\\u306f\\u9ad8\\u5f97\\u70b9\\u3067\\u5358\\u4f4d\\u304c\\u53d6\\u308c\\u308b\\u3088\\u3046\\u306b\\u5fa9\\u7fd2\\u3084\\u81ea\\u5b66\\u3092\\u3055\\u3089\\u306b\\u5897\\u3084\\u3057\\u3066\\u5148\\u751f\\u306b\\u3082\\u8cea\\u554f\\u3092\\u3059\\u308b\\u3088\\u3046\\u306b\\u3057\\u305f\\u3044\\u3068\\u8003\\u3048\\u3066\\u3044\\u307e\\u3059\\uff0e\\u6765\\u5e74\\u3082\\u3088\\u308d\\u3057\\u304f\\u304a\\u9858\\u3044\\u3057\\u307e\\u3059\\uff0e\", \"\\u30fb\\u3053\\u306e\\u6388\\u696d\\u306f\\u5358\\u4f4d\\u3092\\u843d\\u3068\\u3059\\u5b66\\u751f\\u304c\\u591a\\u3044\\u3068\\u805e\\u3044\\u305f\\u304c\\u3001\\u305d\\u306e\\u901a\\u308a\\u3060\\u3068\\u601d\\u3046\\u3002\\u5148\\u751f\\u306e\\u8aac\\u660e\\u304c\\u3001\\u4e88\\u7fd2\\u3092\\u3057\\u3066\\u3044\\u3066\\u3082\\u308f\\u304b\\u308a\\u3065\\u3089\\u3044\\u3057\\u3001\\u8ab2\\u984c\\u30fb\\u8a66\\u9a13\\u306e\\u5185\\u5bb9\\u3082\\u96e3\\u3057\\u3044\\u3002\\r\\n\\u30fb\\u8ab2\\u984c\\u306e\\u63a1\\u70b9\\u304c\\u307e\\u3060\\u3055\\u308c\\u3066\\u3044\\u306a\\u3044\\u3002\\u5fd9\\u3057\\u3044\\u306e\\u306f\\u5b66\\u751f\\u7686\\u627f\\u77e5\\u3057\\u3066\\u3044\\u308b\\u304c\\u30015\\u6708\\u51fa\\u3057\\u305f\\u8ab2\\u984c\\u3067\\u3059\\u3089\\u63a1\\u70b9\\u3055\\u308c\\u3066\\u3044\\u306a\\u3044\\u306e\\u306f\\u3044\\u304b\\u304c\\u306a\\u3082\\u306e\\u304b\\u3068\\u601d\\u3046\\u3002\", \"\\u307e\\u308f\\u308a\\u306e\\u53d7\\u8b1b\\u3057\\u3066\\u3044\\u308b\\u751f\\u5f92\\u9593\\u3067\\u3082\\u3001\\u308f\\u304b\\u308a\\u306b\\u304f\\u3044\\u3068\\u8a00\\u308f\\u308c\\u3066\\u3044\\u305f\\u8b1b\\u7fa9\\u3067\\u3057\\u305f\\u3002\\u6b21\\u5e74\\u5ea6\\u304b\\u3089\\u306f\\u308f\\u304b\\u308a\\u3084\\u3059\\u3044\\u8aac\\u660e\\u3092\\u3057\\u3066\\u3042\\u3052\\u3066\\u6b32\\u3057\\u3044\\u3067\\u3059\\u3002\", \"\\u30cf\\u30fc\\u30c9\\u30a6\\u30a7\\u30a2\\u306b\\u95a2\\u3057\\u3066\\u306f\\u3042\\u308b\\u7a0b\\u5ea6\\u306e\\u77e5\\u8b58\\u306f\\u3042\\u308a\\u307e\\u3057\\u305f\\u304c\\u3001\\u30bd\\u30d5\\u30c8\\u30a6\\u30a7\\u30a2\\u306f\\u3053\\u306e\\u8b1b\\u7fa9\\u3067\\u30a2\\u30bb\\u30f3\\u30d6\\u30eb\\u306b\\u521d\\u3081\\u3066\\u89e6\\u308c\\u3066\\u307f\\u3066\\u30b3\\u30f3\\u30d4\\u30e5\\u30fc\\u30bf\\u306e\\u4e2d\\u8eab\\u306e\\u52d5\\u304d\\u3092\\u5c11\\u3057\\u3060\\u3051\\u7406\\u89e3\\u3067\\u304d\\u305f\\u3068\\u601d\\u3044\\u307e\\u3059\\u3002\"]}}; }\n",
              "plotInterface = buildViz(1000,\n",
              "600,\n",
              "null,\n",
              "null,\n",
              "false,\n",
              "false,\n",
              "false,\n",
              "false,\n",
              "false,\n",
              "true,\n",
              "false,\n",
              "false,\n",
              "true,\n",
              "0.1,\n",
              "false,\n",
              "undefined,\n",
              "undefined,\n",
              "getDataAndInfo(),\n",
              "true,\n",
              "false,\n",
              "null,\n",
              "null,\n",
              "null,\n",
              "null,\n",
              "true,\n",
              "false,\n",
              "true,\n",
              "false,\n",
              "null,\n",
              "null,\n",
              "10,\n",
              "null,\n",
              "null,\n",
              "null,\n",
              "false,\n",
              "true,\n",
              "true,\n",
              "undefined,\n",
              "null,\n",
              "false,\n",
              "false,\n",
              "\".3f\",\n",
              "\".3f\",\n",
              "false,\n",
              "-1,\n",
              "true,\n",
              "false,\n",
              "true,\n",
              "false,\n",
              "false,\n",
              "false,\n",
              "true,\n",
              "null,\n",
              "null,\n",
              "null,\n",
              "false,\n",
              "null,\n",
              "undefined,\n",
              "undefined,\n",
              "undefined,\n",
              "undefined,\n",
              "undefined,\n",
              "undefined,\n",
              "undefined,\n",
              "14,\n",
              "0,\n",
              "null,\n",
              "\"Term\",\n",
              "true,\n",
              "false,\n",
              "false,\n",
              "false);\n",
              "\n",
              "\n",
              "autocomplete(\n",
              "    document.getElementById('searchInput'),\n",
              "    plotInterface.data.map(x => x.term).sort(),\n",
              "    plotInterface\n",
              ");\n",
              "\n",
              "</script>\n"
            ]
          },
          "metadata": {},
          "execution_count": 16
        }
      ],
      "source": [
        "class SelectPOS(st.FeatsFromSpacyDoc):\n",
        "    '''小クラス。\n",
        "    get_feats() で解析方法を指定する。\n",
        "    '''\n",
        "    poses = ['PRPON', 'NOUN', 'VERB', 'ADJ', 'ADV']\n",
        "    def __init__(self, use_pos=poses):\n",
        "        super().__init__()\n",
        "        self._use_pos = use_pos\n",
        "\n",
        "    def get_feats(self, doc):\n",
        "        return collections.Counter([c.lemma_ for c in doc if c.pos_ in self._use_pos])\n",
        "\n",
        "corpus = st.CorpusFromPandas(new_df, category_col='title', text_col='comment', nlp=nlp, feats_from_spacy_doc=SelectPOS()).build()\n",
        "html = st.produce_scattertext_explorer(corpus, category=title1, category_name=title1, not_category_name=title2)\n",
        "HTML(html)"
      ]
    }
  ],
  "metadata": {
    "interpreter": {
      "hash": "880b2a8c90f9e6beae80b56829e3f671fedd58b6d14887184ddce26124cedfbd"
    },
    "kernelspec": {
      "display_name": "Python 3 (ipykernel)",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.8.9"
    },
    "colab": {
      "provenance": []
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}