



<!DOCTYPE html>
<html lang="en" class="">
  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile#">
    <meta charset='utf-8'>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta http-equiv="Content-Language" content="en">
    
    
    <title>cartodb.js/cartodb.js at develop · CartoDB/cartodb.js · GitHub</title>
    <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png">
    <meta property="fb:app_id" content="1401488693436528">

      <meta content="@github" name="twitter:site" /><meta content="summary" name="twitter:card" /><meta content="CartoDB/cartodb.js" name="twitter:title" /><meta content="cartodb.js - CartoDB javascript library" name="twitter:description" /><meta content="https://avatars3.githubusercontent.com/u/1799254?v=2&amp;s=400" name="twitter:image:src" />
<meta content="GitHub" property="og:site_name" /><meta content="object" property="og:type" /><meta content="https://avatars3.githubusercontent.com/u/1799254?v=2&amp;s=400" property="og:image" /><meta content="CartoDB/cartodb.js" property="og:title" /><meta content="https://github.com/CartoDB/cartodb.js" property="og:url" /><meta content="cartodb.js - CartoDB javascript library" property="og:description" />

      <meta name="browser-stats-url" content="/_stats">
    <link rel="assets" href="https://assets-cdn.github.com/">
    <link rel="conduit-xhr" href="https://ghconduit.com:25035">
    

    <meta name="msapplication-TileImage" content="/windows-tile.png">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="selected-link" value="repo_source" data-pjax-transient>
      <meta name="google-analytics" content="UA-3769691-2">

    <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="0536BF43:0872:23298E2D:540AE942" name="octolytics-dimension-request_id" />
    

    
    
    <link rel="icon" type="image/x-icon" href="https://assets-cdn.github.com/favicon.ico">


    <meta content="authenticity_token" name="csrf-param" />
<meta content="UWS+5UrF3038h2P5q8X3wsL9ACVrjjRhAmlI3NBAoiwY4v+/KEsbSk5PdQriGhOdfrywukXLPfErk1dur97dtQ==" name="csrf-token" />

    <link href="https://assets-cdn.github.com/assets/github-6b2b0f2ee341c07ab104d356e99ded4e4846ace3.css" media="all" rel="stylesheet" type="text/css" />
    <link href="https://assets-cdn.github.com/assets/github2-e0bffd10797582198467c35155d23bda201cf011.css" media="all" rel="stylesheet" type="text/css" />
    


    <meta http-equiv="x-pjax-version" content="d47638c7655e4bbcca31febf1d0b0e85">

      
  <meta name="description" content="cartodb.js - CartoDB javascript library">
  <meta name="go-import" content="github.com/CartoDB/cartodb.js git https://github.com/CartoDB/cartodb.js.git">

  <meta content="1799254" name="octolytics-dimension-user_id" /><meta content="CartoDB" name="octolytics-dimension-user_login" /><meta content="4871551" name="octolytics-dimension-repository_id" /><meta content="CartoDB/cartodb.js" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="4871551" name="octolytics-dimension-repository_network_root_id" /><meta content="CartoDB/cartodb.js" name="octolytics-dimension-repository_network_root_nwo" />
  <link href="https://github.com/CartoDB/cartodb.js/commits/develop.atom" rel="alternate" title="Recent Commits to cartodb.js:develop" type="application/atom+xml">

  </head>


  <body class="logged_out  env-production windows vis-public page-blob">
    <a href="#start-of-content" tabindex="1" class="accessibility-aid js-skip-to-content">Skip to content</a>
    <div class="wrapper">
      
      
      
      


      
      <div class="header header-logged-out">
  <div class="container clearfix">

    <a class="header-logo-wordmark" href="https://github.com/" ga-data-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
      <span class="mega-octicon octicon-logo-github"></span>
    </a>

    <div class="header-actions">
        <a class="button primary" href="/join" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">Sign up</a>
      <a class="button signin" href="/login?return_to=%2FCartoDB%2Fcartodb.js%2Fblob%2Fdevelop%2Fdist%2Fcartodb.js" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">Sign in</a>
    </div>

    <div class="site-search repo-scope js-site-search">
      <form accept-charset="UTF-8" action="/CartoDB/cartodb.js/search" class="js-site-search-form" data-global-search-url="/search" data-repo-search-url="/CartoDB/cartodb.js/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
  <input type="text"
    class="js-site-search-field is-clearable"
    data-hotkey="s"
    name="q"
    placeholder="Search"
    data-global-scope-placeholder="Search GitHub"
    data-repo-scope-placeholder="Search"
    tabindex="1"
    autocapitalize="off">
  <div class="scope-badge">This repository</div>
</form>
    </div>

      <ul class="header-nav left">
          <li class="header-nav-item">
            <a class="header-nav-link" href="/explore" data-ga-click="(Logged out) Header, go to explore, text:explore">Explore</a>
          </li>
          <li class="header-nav-item">
            <a class="header-nav-link" href="/features" data-ga-click="(Logged out) Header, go to features, text:features">Features</a>
          </li>
          <li class="header-nav-item">
            <a class="header-nav-link" href="https://enterprise.github.com/" data-ga-click="(Logged out) Header, go to enterprise, text:enterprise">Enterprise</a>
          </li>
          <li class="header-nav-item">
            <a class="header-nav-link" href="/blog" data-ga-click="(Logged out) Header, go to blog, text:blog">Blog</a>
          </li>
      </ul>

  </div>
</div>



      <div id="start-of-content" class="accessibility-aid"></div>
          <div class="site" itemscope itemtype="http://schema.org/WebPage">
    <div id="js-flash-container">
      
    </div>
    <div class="pagehead repohead instapaper_ignore readability-menu">
      <div class="container">
        
<ul class="pagehead-actions">


  <li>
      <a href="/login?return_to=%2FCartoDB%2Fcartodb.js"
    class="minibutton with-count star-button tooltipped tooltipped-n"
    aria-label="You must be signed in to star a repository" rel="nofollow">
    <span class="octicon octicon-star"></span>
    Star
  </a>

    <a class="social-count js-social-count" href="/CartoDB/cartodb.js/stargazers">
      144
    </a>

  </li>

    <li>
      <a href="/login?return_to=%2FCartoDB%2Fcartodb.js"
        class="minibutton with-count js-toggler-target fork-button tooltipped tooltipped-n"
        aria-label="You must be signed in to fork a repository" rel="nofollow">
        <span class="octicon octicon-repo-forked"></span>
        Fork
      </a>
      <a href="/CartoDB/cartodb.js/network" class="social-count">
        81
      </a>
    </li>
</ul>

        <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public">
          <span class="mega-octicon octicon-repo"></span>
          <span class="author"><a href="/CartoDB" class="url fn" itemprop="url" rel="author"><span itemprop="title">CartoDB</span></a></span><!--
       --><span class="path-divider">/</span><!--
       --><strong><a href="/CartoDB/cartodb.js" class="js-current-repository js-repo-home-link">cartodb.js</a></strong>

          <span class="page-context-loader">
            <img alt="" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
          </span>

        </h1>
      </div><!-- /.container -->
    </div><!-- /.repohead -->

    <div class="container">
      <div class="repository-with-sidebar repo-container new-discussion-timeline  ">
        <div class="repository-sidebar clearfix">
            
<div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders" data-issue-count-url="/CartoDB/cartodb.js/issues/counts">
  <div class="sunken-menu-contents">
    <ul class="sunken-menu-group">
      <li class="tooltipped tooltipped-w" aria-label="Code">
        <a href="/CartoDB/cartodb.js" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-hotkey="g c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches /CartoDB/cartodb.js">
          <span class="octicon octicon-code"></span> <span class="full-word">Code</span>
          <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>

        <li class="tooltipped tooltipped-w" aria-label="Issues">
          <a href="/CartoDB/cartodb.js/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-hotkey="g i" data-selected-links="repo_issues repo_labels repo_milestones /CartoDB/cartodb.js/issues">
            <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span>
            <span class="js-issue-replace-counter"></span>
            <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>        </li>

      <li class="tooltipped tooltipped-w" aria-label="Pull Requests">
        <a href="/CartoDB/cartodb.js/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-hotkey="g p" data-selected-links="repo_pulls /CartoDB/cartodb.js/pulls">
            <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span>
            <span class="js-pull-replace-counter"></span>
            <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>


    </ul>
    <div class="sunken-menu-separator"></div>
    <ul class="sunken-menu-group">

      <li class="tooltipped tooltipped-w" aria-label="Pulse">
        <a href="/CartoDB/cartodb.js/pulse/weekly" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /CartoDB/cartodb.js/pulse/weekly">
          <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span>
          <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>

      <li class="tooltipped tooltipped-w" aria-label="Graphs">
        <a href="/CartoDB/cartodb.js/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /CartoDB/cartodb.js/graphs">
          <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span>
          <img alt="" class="mini-loader" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>
    </ul>


  </div>
</div>

              <div class="only-with-full-nav">
                
  
<div class="clone-url open"
  data-protocol-type="http"
  data-url="/users/set_protocol?protocol_selector=http&amp;protocol_type=clone">
  <h3><span class="text-emphasized">HTTPS</span> clone URL</h3>
  <div class="input-group">
    <input type="text" class="input-mini input-monospace js-url-field"
           value="https://github.com/CartoDB/cartodb.js.git" readonly="readonly">
    <span class="input-group-button">
      <button aria-label="Copy to clipboard" class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="https://github.com/CartoDB/cartodb.js.git" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button>
    </span>
  </div>
</div>

  
<div class="clone-url "
  data-protocol-type="subversion"
  data-url="/users/set_protocol?protocol_selector=subversion&amp;protocol_type=clone">
  <h3><span class="text-emphasized">Subversion</span> checkout URL</h3>
  <div class="input-group">
    <input type="text" class="input-mini input-monospace js-url-field"
           value="https://github.com/CartoDB/cartodb.js" readonly="readonly">
    <span class="input-group-button">
      <button aria-label="Copy to clipboard" class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="https://github.com/CartoDB/cartodb.js" data-copied-hint="Copied!" type="button"><span class="octicon octicon-clippy"></span></button>
    </span>
  </div>
</div>


<p class="clone-options">You can clone with
      <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>
      or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>.
  <a href="https://help.github.com/articles/which-remote-url-should-i-use" class="help tooltipped tooltipped-n" aria-label="Get help on which URL is right for you.">
    <span class="octicon octicon-question"></span>
  </a>
</p>


  <a href="http://windows.github.com" class="minibutton sidebar-button" title="Save CartoDB/cartodb.js to your computer and use it in GitHub Desktop." aria-label="Save CartoDB/cartodb.js to your computer and use it in GitHub Desktop.">
    <span class="octicon octicon-device-desktop"></span>
    Clone in Desktop
  </a>

                <a href="/CartoDB/cartodb.js/archive/develop.zip"
                   class="minibutton sidebar-button"
                   aria-label="Download the contents of CartoDB/cartodb.js as a zip file"
                   title="Download the contents of CartoDB/cartodb.js as a zip file"
                   rel="nofollow">
                  <span class="octicon octicon-cloud-download"></span>
                  Download ZIP
                </a>
              </div>
        </div><!-- /.repository-sidebar -->

        <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container>
          

<a href="/CartoDB/cartodb.js/blob/24ad42067b0fc263c28e5eb33c59d5f0d8e09227/dist/cartodb.js" class="hidden js-permalink-shortcut" data-hotkey="y">Permalink</a>

<!-- blob contrib key: blob_contributors:v21:cd313cefc88b938c5fb1e435484af4c2 -->

<div class="file-navigation">
  
<div class="select-menu js-menu-container js-select-menu left">
  <span class="minibutton select-menu-button js-menu-target css-truncate" data-hotkey="w"
    data-master-branch="develop"
    data-ref="develop"
    title="develop"
    role="button" aria-label="Switch branches or tags" tabindex="0" aria-haspopup="true">
    <span class="octicon octicon-git-branch"></span>
    <i>branch:</i>
    <span class="js-select-button css-truncate-target">develop</span>
  </span>

  <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax aria-hidden="true">

    <div class="select-menu-modal">
      <div class="select-menu-header">
        <span class="select-menu-title">Switch branches/tags</span>
        <span class="octicon octicon-x js-menu-close" role="button" aria-label="Close"></span>
      </div> <!-- /.select-menu-header -->

      <div class="select-menu-filters">
        <div class="select-menu-text-filter">
          <input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
        </div>
        <div class="select-menu-tabs">
          <ul>
            <li class="select-menu-tab">
              <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a>
            </li>
            <li class="select-menu-tab">
              <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a>
            </li>
          </ul>
        </div><!-- /.select-menu-tabs -->
      </div><!-- /.select-menu-filters -->

      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches">

        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">


            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/2.0/dist/cartodb.js"
                 data-name="2.0"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0">2.0</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/2.0.28/dist/cartodb.js"
                 data-name="2.0.28"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.28">2.0.28</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/2.1/dist/cartodb.js"
                 data-name="2.1"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.1">2.1</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/3.4.00_leaflet07/dist/cartodb.js"
                 data-name="3.4.00_leaflet07"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.4.00_leaflet07">3.4.00_leaflet07</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/3.6.02/dist/cartodb.js"
                 data-name="3.6.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.6.02">3.6.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/114_fix_offset/dist/cartodb.js"
                 data-name="114_fix_offset"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="114_fix_offset">114_fix_offset</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/233/dist/cartodb.js"
                 data-name="233"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="233">233</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/2959/dist/cartodb.js"
                 data-name="2959"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2959">2959</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-244/dist/cartodb.js"
                 data-name="CDB-244"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-244">CDB-244</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-293_title_in_legends/dist/cartodb.js"
                 data-name="CDB-293_title_in_legends"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-293_title_in_legends">CDB-293_title_in_legends</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-481_stop_propagation_in_legends/dist/cartodb.js"
                 data-name="CDB-481_stop_propagation_in_legends"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-481_stop_propagation_in_legends">CDB-481_stop_propagation_in_legends</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-732/dist/cartodb.js"
                 data-name="CDB-732"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-732">CDB-732</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1012/dist/cartodb.js"
                 data-name="CDB-1012"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1012">CDB-1012</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1243/dist/cartodb.js"
                 data-name="CDB-1243"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1243">CDB-1243</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1292/dist/cartodb.js"
                 data-name="CDB-1292"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1292">CDB-1292</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1293/dist/cartodb.js"
                 data-name="CDB-1293"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1293">CDB-1293</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1314/dist/cartodb.js"
                 data-name="CDB-1314"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1314">CDB-1314</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1316/dist/cartodb.js"
                 data-name="CDB-1316"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1316">CDB-1316</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1436/dist/cartodb.js"
                 data-name="CDB-1436"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1436">CDB-1436</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1493/dist/cartodb.js"
                 data-name="CDB-1493"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1493">CDB-1493</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1699/dist/cartodb.js"
                 data-name="CDB-1699"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1699">CDB-1699</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1848/dist/cartodb.js"
                 data-name="CDB-1848"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1848">CDB-1848</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1865/dist/cartodb.js"
                 data-name="CDB-1865"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1865">CDB-1865</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-1996/dist/cartodb.js"
                 data-name="CDB-1996"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-1996">CDB-1996</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-2007/dist/cartodb.js"
                 data-name="CDB-2007"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-2007">CDB-2007</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-2653/dist/cartodb.js"
                 data-name="CDB-2653"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-2653">CDB-2653</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-2779/dist/cartodb.js"
                 data-name="CDB-2779"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-2779">CDB-2779</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-2959/dist/cartodb.js"
                 data-name="CDB-2959"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-2959">CDB-2959</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-2960/dist/cartodb.js"
                 data-name="CDB-2960"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-2960">CDB-2960</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-2967/dist/cartodb.js"
                 data-name="CDB-2967"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-2967">CDB-2967</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-3361/dist/cartodb.js"
                 data-name="CDB-3361"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-3361">CDB-3361</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/CDB-3913/dist/cartodb.js"
                 data-name="CDB-3913"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="CDB-3913">CDB-3913</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/cdb/dist/cartodb.js"
                 data-name="cdb"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="cdb">cdb</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/cdb-113/dist/cartodb.js"
                 data-name="cdb-113"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="cdb-113">cdb-113</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/debounce/dist/cartodb.js"
                 data-name="debounce"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="debounce">debounce</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/debug/dist/cartodb.js"
                 data-name="debug"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="debug">debug</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item selected">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/develop/dist/cartodb.js"
                 data-name="develop"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="develop">develop</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/fastly/dist/cartodb.js"
                 data-name="fastly"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="fastly">fastly</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/CDB-233/dist/cartodb.js"
                 data-name="feature/CDB-233"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/CDB-233">feature/CDB-233</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/CDB-237/dist/cartodb.js"
                 data-name="feature/CDB-237"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/CDB-237">feature/CDB-237</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/CDB-237_new/dist/cartodb.js"
                 data-name="feature/CDB-237_new"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/CDB-237_new">feature/CDB-237_new</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/CDB-354/dist/cartodb.js"
                 data-name="feature/CDB-354"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/CDB-354">feature/CDB-354</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/CDB-354_old/dist/cartodb.js"
                 data-name="feature/CDB-354_old"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/CDB-354_old">feature/CDB-354_old</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/CDB-363_torque_integration/dist/cartodb.js"
                 data-name="feature/CDB-363_torque_integration"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/CDB-363_torque_integration">feature/CDB-363_torque_integration</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/CDB-779/dist/cartodb.js"
                 data-name="feature/CDB-779"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/CDB-779">feature/CDB-779</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/CDB-788/dist/cartodb.js"
                 data-name="feature/CDB-788"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/CDB-788">feature/CDB-788</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/CDB-874/dist/cartodb.js"
                 data-name="feature/CDB-874"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/CDB-874">feature/CDB-874</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/CDB-999/dist/cartodb.js"
                 data-name="feature/CDB-999"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/CDB-999">feature/CDB-999</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/google_maps/dist/cartodb.js"
                 data-name="feature/google_maps"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/google_maps">feature/google_maps</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/legends/dist/cartodb.js"
                 data-name="feature/legends"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/legends">feature/legends</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/overlays/dist/cartodb.js"
                 data-name="feature/overlays"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/overlays">feature/overlays</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/feature/sql/dist/cartodb.js"
                 data-name="feature/sql"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="feature/sql">feature/sql</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/features/CDB-407/dist/cartodb.js"
                 data-name="features/CDB-407"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="features/CDB-407">features/CDB-407</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/features/CDB-565/dist/cartodb.js"
                 data-name="features/CDB-565"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="features/CDB-565">features/CDB-565</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/fix/CDB-305/dist/cartodb.js"
                 data-name="fix/CDB-305"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="fix/CDB-305">fix/CDB-305</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/fix/CDB-354/dist/cartodb.js"
                 data-name="fix/CDB-354"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="fix/CDB-354">fix/CDB-354</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/fix/CDB-383/dist/cartodb.js"
                 data-name="fix/CDB-383"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="fix/CDB-383">fix/CDB-383</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/fix/CDB-669/dist/cartodb.js"
                 data-name="fix/CDB-669"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="fix/CDB-669">fix/CDB-669</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/fix/CDB-817/dist/cartodb.js"
                 data-name="fix/CDB-817"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="fix/CDB-817">fix/CDB-817</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/fix/CDB-963/dist/cartodb.js"
                 data-name="fix/CDB-963"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="fix/CDB-963">fix/CDB-963</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/fix/CDB-1099/dist/cartodb.js"
                 data-name="fix/CDB-1099"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="fix/CDB-1099">fix/CDB-1099</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/fixed_callback/dist/cartodb.js"
                 data-name="fixed_callback"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="fixed_callback">fixed_callback</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/fonts/dist/cartodb.js"
                 data-name="fonts"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="fonts">fonts</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/gh-pages/dist/cartodb.js"
                 data-name="gh-pages"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="gh-pages">gh-pages</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/grunt/dist/cartodb.js"
                 data-name="grunt"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="grunt">grunt</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/hotfix/3.0.05/dist/cartodb.js"
                 data-name="hotfix/3.0.05"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="hotfix/3.0.05">hotfix/3.0.05</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/hotfix/81/dist/cartodb.js"
                 data-name="hotfix/81"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="hotfix/81">hotfix/81</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/ie10/dist/cartodb.js"
                 data-name="ie10"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="ie10">ie10</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/info/dist/cartodb.js"
                 data-name="info"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="info">info</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/infowindow-v2/dist/cartodb.js"
                 data-name="infowindow-v2"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="infowindow-v2">infowindow-v2</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/interactivity_fix/dist/cartodb.js"
                 data-name="interactivity_fix"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="interactivity_fix">interactivity_fix</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/layer_definition/dist/cartodb.js"
                 data-name="layer_definition"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="layer_definition">layer_definition</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/master/dist/cartodb.js"
                 data-name="master"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="master">master</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/new_examples/dist/cartodb.js"
                 data-name="new_examples"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="new_examples">new_examples</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/orientation-fix/dist/cartodb.js"
                 data-name="orientation-fix"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="orientation-fix">orientation-fix</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/privacy-maps/dist/cartodb.js"
                 data-name="privacy-maps"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="privacy-maps">privacy-maps</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/release/2.0.0/dist/cartodb.js"
                 data-name="release/2.0.0"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="release/2.0.0">release/2.0.0</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/release/2.0.12/dist/cartodb.js"
                 data-name="release/2.0.12"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="release/2.0.12">release/2.0.12</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/release/3.1.08/dist/cartodb.js"
                 data-name="release/3.1.08"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="release/3.1.08">release/3.1.08</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/release/3.9.02/dist/cartodb.js"
                 data-name="release/3.9.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="release/3.9.02">release/3.9.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/release/3.9.06/dist/cartodb.js"
                 data-name="release/3.9.06"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="release/3.9.06">release/3.9.06</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/release/3.9.08/dist/cartodb.js"
                 data-name="release/3.9.08"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="release/3.9.08">release/3.9.08</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/remote/dist/cartodb.js"
                 data-name="remote"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="remote">remote</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/rm/dist/cartodb.js"
                 data-name="rm"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="rm">rm</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/scroll-fix/dist/cartodb.js"
                 data-name="scroll-fix"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="scroll-fix">scroll-fix</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/share_fix/dist/cartodb.js"
                 data-name="share_fix"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="share_fix">share_fix</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/slider-margin/dist/cartodb.js"
                 data-name="slider-margin"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="slider-margin">slider-margin</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/strk-develop-mapnik-token/dist/cartodb.js"
                 data-name="strk-develop-mapnik-token"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="strk-develop-mapnik-token">strk-develop-mapnik-token</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/testing/dist/cartodb.js"
                 data-name="testing"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="testing">testing</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/tmp/dist/cartodb.js"
                 data-name="tmp"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="tmp">tmp</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/travis/dist/cartodb.js"
                 data-name="travis"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="travis">travis</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/blob/zIndex/dist/cartodb.js"
                 data-name="zIndex"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="zIndex">zIndex</a>
            </div> <!-- /.select-menu-item -->
        </div>

          <div class="select-menu-no-results">Nothing to show</div>
      </div> <!-- /.select-menu-list -->

      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">


            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/v3.9.08/dist/cartodb.js"
                 data-name="v3.9.08"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="v3.9.08">v3.9.08</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/v2.0.28/dist/cartodb.js"
                 data-name="v2.0.28"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="v2.0.28">v2.0.28</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/81/dist/cartodb.js"
                 data-name="81"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="81">81</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.11.04/dist/cartodb.js"
                 data-name="3.11.04"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.11.04">3.11.04</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.11.03/dist/cartodb.js"
                 data-name="3.11.03"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.11.03">3.11.03</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.11.02/dist/cartodb.js"
                 data-name="3.11.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.11.02">3.11.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.11.01/dist/cartodb.js"
                 data-name="3.11.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.11.01">3.11.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.11.00/dist/cartodb.js"
                 data-name="3.11.00"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.11.00">3.11.00</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.10.2/dist/cartodb.js"
                 data-name="3.10.2"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.10.2">3.10.2</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.10.1/dist/cartodb.js"
                 data-name="3.10.1"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.10.1">3.10.1</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.10.0/dist/cartodb.js"
                 data-name="3.10.0"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.10.0">3.10.0</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.9.07/dist/cartodb.js"
                 data-name="3.9.07"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.9.07">3.9.07</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.9.06/dist/cartodb.js"
                 data-name="3.9.06"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.9.06">3.9.06</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.9.05/dist/cartodb.js"
                 data-name="3.9.05"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.9.05">3.9.05</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.9.04/dist/cartodb.js"
                 data-name="3.9.04"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.9.04">3.9.04</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.9.03/dist/cartodb.js"
                 data-name="3.9.03"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.9.03">3.9.03</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.9.02/dist/cartodb.js"
                 data-name="3.9.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.9.02">3.9.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.9.01/dist/cartodb.js"
                 data-name="3.9.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.9.01">3.9.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.9.00/dist/cartodb.js"
                 data-name="3.9.00"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.9.00">3.9.00</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.11/dist/cartodb.js"
                 data-name="3.8.11"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.11">3.8.11</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.10/dist/cartodb.js"
                 data-name="3.8.10"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.10">3.8.10</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.09/dist/cartodb.js"
                 data-name="3.8.09"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.09">3.8.09</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.08/dist/cartodb.js"
                 data-name="3.8.08"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.08">3.8.08</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.07/dist/cartodb.js"
                 data-name="3.8.07"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.07">3.8.07</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.06/dist/cartodb.js"
                 data-name="3.8.06"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.06">3.8.06</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.05/dist/cartodb.js"
                 data-name="3.8.05"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.05">3.8.05</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.04/dist/cartodb.js"
                 data-name="3.8.04"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.04">3.8.04</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.03/dist/cartodb.js"
                 data-name="3.8.03"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.03">3.8.03</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.02/dist/cartodb.js"
                 data-name="3.8.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.02">3.8.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.01/dist/cartodb.js"
                 data-name="3.8.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.01">3.8.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.8.00/dist/cartodb.js"
                 data-name="3.8.00"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.8.00">3.8.00</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.7.07/dist/cartodb.js"
                 data-name="3.7.07"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.7.07">3.7.07</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.7.06/dist/cartodb.js"
                 data-name="3.7.06"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.7.06">3.7.06</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.7.05/dist/cartodb.js"
                 data-name="3.7.05"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.7.05">3.7.05</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.7.04/dist/cartodb.js"
                 data-name="3.7.04"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.7.04">3.7.04</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.7.03/dist/cartodb.js"
                 data-name="3.7.03"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.7.03">3.7.03</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.7.02/dist/cartodb.js"
                 data-name="3.7.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.7.02">3.7.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.7.01/dist/cartodb.js"
                 data-name="3.7.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.7.01">3.7.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.7.00/dist/cartodb.js"
                 data-name="3.7.00"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.7.00">3.7.00</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.6.02/dist/cartodb.js"
                 data-name="3.6.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.6.02">3.6.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.6.01/dist/cartodb.js"
                 data-name="3.6.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.6.01">3.6.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.6.00/dist/cartodb.js"
                 data-name="3.6.00"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.6.00">3.6.00</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.5.07/dist/cartodb.js"
                 data-name="3.5.07"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.5.07">3.5.07</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.5.06/dist/cartodb.js"
                 data-name="3.5.06"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.5.06">3.5.06</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.5.05/dist/cartodb.js"
                 data-name="3.5.05"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.5.05">3.5.05</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.5.04/dist/cartodb.js"
                 data-name="3.5.04"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.5.04">3.5.04</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.5.03/dist/cartodb.js"
                 data-name="3.5.03"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.5.03">3.5.03</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.5.02/dist/cartodb.js"
                 data-name="3.5.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.5.02">3.5.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.5.01/dist/cartodb.js"
                 data-name="3.5.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.5.01">3.5.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.5.0/dist/cartodb.js"
                 data-name="3.5.0"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.5.0">3.5.0</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.4.03/dist/cartodb.js"
                 data-name="3.4.03"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.4.03">3.4.03</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.4.02/dist/cartodb.js"
                 data-name="3.4.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.4.02">3.4.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.4.01/dist/cartodb.js"
                 data-name="3.4.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.4.01">3.4.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.4.00/dist/cartodb.js"
                 data-name="3.4.00"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.4.00">3.4.00</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.3.05/dist/cartodb.js"
                 data-name="3.3.05"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.3.05">3.3.05</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.3.04/dist/cartodb.js"
                 data-name="3.3.04"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.3.04">3.3.04</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.3.03/dist/cartodb.js"
                 data-name="3.3.03"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.3.03">3.3.03</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.3.02/dist/cartodb.js"
                 data-name="3.3.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.3.02">3.3.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.3.01/dist/cartodb.js"
                 data-name="3.3.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.3.01">3.3.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.3.00/dist/cartodb.js"
                 data-name="3.3.00"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.3.00">3.3.00</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.2.06/dist/cartodb.js"
                 data-name="3.2.06"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.2.06">3.2.06</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.2.05/dist/cartodb.js"
                 data-name="3.2.05"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.2.05">3.2.05</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.2.04/dist/cartodb.js"
                 data-name="3.2.04"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.2.04">3.2.04</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.2.03/dist/cartodb.js"
                 data-name="3.2.03"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.2.03">3.2.03</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.2.02/dist/cartodb.js"
                 data-name="3.2.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.2.02">3.2.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.2.01/dist/cartodb.js"
                 data-name="3.2.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.2.01">3.2.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.2.00/dist/cartodb.js"
                 data-name="3.2.00"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.2.00">3.2.00</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.14/dist/cartodb.js"
                 data-name="3.1.14"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.14">3.1.14</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.13/dist/cartodb.js"
                 data-name="3.1.13"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.13">3.1.13</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.12/dist/cartodb.js"
                 data-name="3.1.12"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.12">3.1.12</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.11/dist/cartodb.js"
                 data-name="3.1.11"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.11">3.1.11</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.10/dist/cartodb.js"
                 data-name="3.1.10"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.10">3.1.10</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.09/dist/cartodb.js"
                 data-name="3.1.09"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.09">3.1.09</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.08/dist/cartodb.js"
                 data-name="3.1.08"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.08">3.1.08</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.07/dist/cartodb.js"
                 data-name="3.1.07"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.07">3.1.07</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.06/dist/cartodb.js"
                 data-name="3.1.06"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.06">3.1.06</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.05/dist/cartodb.js"
                 data-name="3.1.05"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.05">3.1.05</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.04/dist/cartodb.js"
                 data-name="3.1.04"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.04">3.1.04</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.03/dist/cartodb.js"
                 data-name="3.1.03"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.03">3.1.03</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.02/dist/cartodb.js"
                 data-name="3.1.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.02">3.1.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.01/dist/cartodb.js"
                 data-name="3.1.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.01">3.1.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.1.00/dist/cartodb.js"
                 data-name="3.1.00"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.1.00">3.1.00</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.0.06/dist/cartodb.js"
                 data-name="3.0.06"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.0.06">3.0.06</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.0.05/dist/cartodb.js"
                 data-name="3.0.05"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.0.05">3.0.05</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.0.04/dist/cartodb.js"
                 data-name="3.0.04"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.0.04">3.0.04</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.0.03/dist/cartodb.js"
                 data-name="3.0.03"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.0.03">3.0.03</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.0.02/dist/cartodb.js"
                 data-name="3.0.02"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.0.02">3.0.02</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.0.01/dist/cartodb.js"
                 data-name="3.0.01"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.0.01">3.0.01</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/3.0.0/dist/cartodb.js"
                 data-name="3.0.0"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="3.0.0">3.0.0</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.27/dist/cartodb.js"
                 data-name="2.0.27"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.27">2.0.27</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.26/dist/cartodb.js"
                 data-name="2.0.26"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.26">2.0.26</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.25/dist/cartodb.js"
                 data-name="2.0.25"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.25">2.0.25</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.24/dist/cartodb.js"
                 data-name="2.0.24"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.24">2.0.24</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.23/dist/cartodb.js"
                 data-name="2.0.23"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.23">2.0.23</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.22/dist/cartodb.js"
                 data-name="2.0.22"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.22">2.0.22</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.21/dist/cartodb.js"
                 data-name="2.0.21"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.21">2.0.21</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.20/dist/cartodb.js"
                 data-name="2.0.20"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.20">2.0.20</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.19/dist/cartodb.js"
                 data-name="2.0.19"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.19">2.0.19</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.18/dist/cartodb.js"
                 data-name="2.0.18"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.18">2.0.18</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.17/dist/cartodb.js"
                 data-name="2.0.17"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.17">2.0.17</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.16/dist/cartodb.js"
                 data-name="2.0.16"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.16">2.0.16</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.15/dist/cartodb.js"
                 data-name="2.0.15"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.15">2.0.15</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.14/dist/cartodb.js"
                 data-name="2.0.14"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.14">2.0.14</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.13/dist/cartodb.js"
                 data-name="2.0.13"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.13">2.0.13</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.12/dist/cartodb.js"
                 data-name="2.0.12"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.12">2.0.12</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.11/dist/cartodb.js"
                 data-name="2.0.11"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.11">2.0.11</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.9/dist/cartodb.js"
                 data-name="2.0.9"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.9">2.0.9</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.8/dist/cartodb.js"
                 data-name="2.0.8"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.8">2.0.8</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.5/dist/cartodb.js"
                 data-name="2.0.5"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.5">2.0.5</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.4/dist/cartodb.js"
                 data-name="2.0.4"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.4">2.0.4</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.2/dist/cartodb.js"
                 data-name="2.0.2"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.2">2.0.2</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/CartoDB/cartodb.js/tree/2.0.0/dist/cartodb.js"
                 data-name="2.0.0"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="2.0.0">2.0.0</a>
            </div> <!-- /.select-menu-item -->
        </div>

        <div class="select-menu-no-results">Nothing to show</div>
      </div> <!-- /.select-menu-list -->

    </div> <!-- /.select-menu-modal -->
  </div> <!-- /.select-menu-modal-holder -->
</div> <!-- /.select-menu -->

  <div class="button-group right">
    <a href="/CartoDB/cartodb.js/find/develop"
          class="js-show-file-finder minibutton empty-icon tooltipped tooltipped-s"
          data-pjax
          data-hotkey="t"
          aria-label="Quickly jump between files">
      <span class="octicon octicon-list-unordered"></span>
    </a>
    <button class="js-zeroclipboard minibutton zeroclipboard-button"
          data-clipboard-text="dist/cartodb.js"
          aria-label="Copy to clipboard"
          data-copied-hint="Copied!">
      <span class="octicon octicon-clippy"></span>
    </button>
  </div>

  <div class="breadcrumb">
    <span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/CartoDB/cartodb.js" class="" data-branch="develop" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">cartodb.js</span></a></span></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/CartoDB/cartodb.js/tree/develop/dist" class="" data-branch="develop" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">dist</span></a></span><span class="separator"> / </span><strong class="final-path">cartodb.js</strong>
  </div>
</div>


  <div class="commit commit-loader file-history-tease js-deferred-content" data-url="/CartoDB/cartodb.js/contributors/develop/dist/cartodb.js">
    <div class="file-history-tease-header">
      Fetching contributors&hellip;
    </div>

    <div class="participation">
      <p class="loader-loading"><img alt="" height="16" src="https://assets-cdn.github.com/images/spinners/octocat-spinner-32-EAF2F5.gif" width="16" /></p>
      <p class="loader-error">Cannot retrieve contributors at this time</p>
    </div>
  </div>

<div class="file-box">
  <div class="file">
    <div class="meta clearfix">
      <div class="info file-name">
          <span>20 lines (20 sloc)</span>
          <span class="meta-divider"></span>
        <span>547.983 kb</span>
      </div>
      <div class="actions">
        <div class="button-group">
          <a href="/CartoDB/cartodb.js/raw/develop/dist/cartodb.js" class="minibutton " id="raw-url">Raw</a>
            <a href="/CartoDB/cartodb.js/blame/develop/dist/cartodb.js" class="minibutton js-update-url-with-hash">Blame</a>
          <a href="/CartoDB/cartodb.js/commits/develop/dist/cartodb.js" class="minibutton " rel="nofollow">History</a>
        </div><!-- /.button-group -->

          <a class="octicon-button tooltipped tooltipped-nw"
             href="http://windows.github.com" aria-label="Open this file in GitHub for Windows">
              <span class="octicon octicon-device-desktop"></span>
          </a>

            <a class="octicon-button disabled tooltipped tooltipped-w" href="#"
               aria-label="You must be signed in to make or propose changes"><span class="octicon octicon-pencil"></span></a>

          <a class="octicon-button danger disabled tooltipped tooltipped-w" href="#"
             aria-label="You must be signed in to make or propose changes">
          <span class="octicon octicon-trashcan"></span>
        </a>
      </div><!-- /.actions -->
    </div>
      
  <div class="blob-wrapper data type-javascript">
      <table class="highlight tab-size-8 js-file-line-container">
      <tr>
        <td id="L1" class="blob-num js-line-number" data-line-number="1"></td>
        <td id="LC1" class="blob-code js-file-line">// cartodb.js version: 3.11.04</td>
      </tr>
      <tr>
        <td id="L2" class="blob-num js-line-number" data-line-number="2"></td>
        <td id="LC2" class="blob-code js-file-line">// uncompressed version: cartodb.uncompressed.js</td>
      </tr>
      <tr>
        <td id="L3" class="blob-num js-line-number" data-line-number="3"></td>
        <td id="LC3" class="blob-code js-file-line">// sha: c902fc8b27a9f336c82cb0b437511b712d8b8451</td>
      </tr>
      <tr>
        <td id="L4" class="blob-num js-line-number" data-line-number="4"></td>
        <td id="LC4" class="blob-code js-file-line">(function(){var root=this,__prev={jQuery:root.jQuery,$:root.$,L:root.L,Mustache:root.Mustache,Backbone:root.Backbone,_:root._};(function(e,t){function n(e){return H.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}function r(e){if(!vn[e]){var t=_.body,n=H(&quot;&lt;&quot;+e+&quot;&gt;&quot;).appendTo(t),r=n.css(&quot;display&quot;);n.remove();if(r===&quot;none&quot;||r===&quot;&quot;){mn||(mn=_.createElement(&quot;iframe&quot;),mn.frameBorder=mn.width=mn.height=0),t.appendChild(mn);if(!gn||!mn.createElement)gn=(mn.contentWindow||mn.contentDocument).document,gn.write((H.support.boxModel?&quot;&lt;!doctype html&gt;&quot;:&quot;&quot;)+&quot;&lt;html&gt;&lt;body&gt;&quot;),gn.close();n=gn.createElement(e),gn.body.appendChild(n),r=H.css(n,&quot;display&quot;),t.removeChild(mn)}vn[e]=r}return vn[e]}function i(e,t){var n={};return H.each(En.concat.apply([],En.slice(0,t)),function(){n[this]=e}),n}function s(){Sn=t}function o(){return setTimeout(s,0),Sn=H.now()}function u(){try{return new e.ActiveXObject(&quot;Microsoft.XMLHTTP&quot;)}catch(t){}}function a(){try{return new e.XMLHttpRequest}catch(t){}}function f(e,n){e.dataFilter&amp;&amp;(n=e.dataFilter(n,e.dataType));var r=e.dataTypes,i={},s,o,u=r.length,a,f=r[0],l,c,h,p,d;for(s=1;s&lt;u;s++){if(s===1)for(o in e.converters)typeof o==&quot;string&quot;&amp;&amp;(i[o.toLowerCase()]=e.converters[o]);l=f,f=r[s];if(f===&quot;*&quot;)f=l;else if(l!==&quot;*&quot;&amp;&amp;l!==f){c=l+&quot; &quot;+f,h=i[c]||i[&quot;* &quot;+f];if(!h){d=t;for(p in i){a=p.split(&quot; &quot;);if(a[0]===l||a[0]===&quot;*&quot;){d=i[a[1]+&quot; &quot;+f];if(d){p=i[p],p===!0?h=d:d===!0&amp;&amp;(h=p);break}}}}!h&amp;&amp;!d&amp;&amp;H.error(&quot;No conversion from &quot;+c.replace(&quot; &quot;,&quot; to &quot;)),h!==!0&amp;&amp;(n=h?h(n):d(p(n)))}}return n}function l(e,n,r){var i=e.contents,s=e.dataTypes,o=e.responseFields,u,a,f,l;for(a in o)a in r&amp;&amp;(n[o[a]]=r[a]);while(s[0]===&quot;*&quot;)s.shift(),u===t&amp;&amp;(u=e.mimeType||n.getResponseHeader(&quot;content-type&quot;));if(u)for(a in i)if(i[a]&amp;&amp;i[a].test(u)){s.unshift(a);break}if(s[0]in r)f=s[0];else{for(a in r){if(!s[0]||e.converters[a+&quot; &quot;+s[0]]){f=a;break}l||(l=a)}f=f||l}if(f)return f!==s[0]&amp;&amp;s.unshift(f),r[f]}function c(e,t,n,r){if(H.isArray(t))H.each(t,function(t,i){n||Ut.test(e)?r(e,i):c(e+&quot;[&quot;+(typeof i==&quot;object&quot;?t:&quot;&quot;)+&quot;]&quot;,i,n,r)});else if(!n&amp;&amp;H.type(t)===&quot;object&quot;)for(var i in t)c(e+&quot;[&quot;+i+&quot;]&quot;,t[i],n,r);else r(e,t)}function h(e,n){var r,i,s=H.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&amp;&amp;((s[r]?e:i||(i={}))[r]=n[r]);i&amp;&amp;H.extend(!0,e,i)}function p(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u=e[s],a=0,f=u?u.length:0,l=e===rn,c;for(;a&lt;f&amp;&amp;(l||!c);a++)c=u[a](n,r,i),typeof c==&quot;string&quot;&amp;&amp;(!l||o[c]?c=t:(n.dataTypes.unshift(c),c=p(e,n,r,i,c,o)));return(l||!c)&amp;&amp;!o[&quot;*&quot;]&amp;&amp;(c=p(e,n,r,i,&quot;*&quot;,o)),c}function d(e){return function(t,n){typeof t!=&quot;string&quot;&amp;&amp;(n=t,t=&quot;*&quot;);if(H.isFunction(n)){var r=t.toLowerCase().split(Zt),i=0,s=r.length,o,u,a;for(;i&lt;s;i++)o=r[i],a=/^\+/.test(o),a&amp;&amp;(o=o.substr(1)||&quot;*&quot;),u=e[o]=e[o]||[],u[a?&quot;unshift&quot;:&quot;push&quot;](n)}}}function v(e,t,n){var r=t===&quot;width&quot;?e.offsetWidth:e.offsetHeight,i=t===&quot;width&quot;?1:0,s=4;if(r&gt;0){if(n!==&quot;border&quot;)for(;i&lt;s;i+=2)n||(r-=parseFloat(H.css(e,&quot;padding&quot;+jt[i]))||0),n===&quot;margin&quot;?r+=parseFloat(H.css(e,n+jt[i]))||0:r-=parseFloat(H.css(e,&quot;border&quot;+jt[i]+&quot;Width&quot;))||0;return r+&quot;px&quot;}r=Ft(e,t);if(r&lt;0||r==null)r=e.style[t];if(Dt.test(r))return r;r=parseFloat(r)||0;if(n)for(;i&lt;s;i+=2)r+=parseFloat(H.css(e,&quot;padding&quot;+jt[i]))||0,n!==&quot;padding&quot;&amp;&amp;(r+=parseFloat(H.css(e,&quot;border&quot;+jt[i]+&quot;Width&quot;))||0),n===&quot;margin&quot;&amp;&amp;(r+=parseFloat(H.css(e,n+jt[i]))||0);return r+&quot;px&quot;}function m(e){var t=_.createElement(&quot;div&quot;);return Lt.appendChild(t),t.innerHTML=e.outerHTML,t.firstChild}function g(e){var t=(e.nodeName||&quot;&quot;).toLowerCase();t===&quot;input&quot;?y(e):t!==&quot;script&quot;&amp;&amp;typeof e.getElementsByTagName!=&quot;undefined&quot;&amp;&amp;H.grep(e.getElementsByTagName(&quot;input&quot;),y)}function y(e){if(e.type===&quot;checkbox&quot;||e.type===&quot;radio&quot;)e.defaultChecked=e.checked}function b(e){return typeof e.getElementsByTagName!=&quot;undefined&quot;?e.getElementsByTagName(&quot;*&quot;):typeof e.querySelectorAll!=&quot;undefined&quot;?e.querySelectorAll(&quot;*&quot;):[]}function w(e,t){var n;t.nodeType===1&amp;&amp;(t.clearAttributes&amp;&amp;t.clearAttributes(),t.mergeAttributes&amp;&amp;t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n===&quot;object&quot;?t.outerHTML=e.outerHTML:n!==&quot;input&quot;||e.type!==&quot;checkbox&quot;&amp;&amp;e.type!==&quot;radio&quot;?n===&quot;option&quot;?t.selected=e.defaultSelected:n===&quot;input&quot;||n===&quot;textarea&quot;?t.defaultValue=e.defaultValue:n===&quot;script&quot;&amp;&amp;t.text!==e.text&amp;&amp;(t.text=e.text):(e.checked&amp;&amp;(t.defaultChecked=t.checked=e.checked),t.value!==e.value&amp;&amp;(t.value=e.value)),t.removeAttribute(H.expando),t.removeAttribute(&quot;_submit_attached&quot;),t.removeAttribute(&quot;_change_attached&quot;))}function E(e,t){if(t.nodeType===1&amp;&amp;!!H.hasData(e)){var n,r,i,s=H._data(e),o=H._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r&lt;i;r++)H.event.add(t,n,u[n][r])}o.data&amp;&amp;(o.data=H.extend({},o.data))}}function S(e,t){return H.nodeName(e,&quot;table&quot;)?e.getElementsByTagName(&quot;tbody&quot;)[0]||e.appendChild(e.ownerDocument.createElement(&quot;tbody&quot;)):e}function x(e){var t=dt.split(&quot;|&quot;),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function T(e,t,n){t=t||0;if(H.isFunction(t))return H.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return H.grep(e,function(e,r){return e===t===n});if(typeof t==&quot;string&quot;){var r=H.grep(e,function(e){return e.nodeType===1});if(lt.test(t))return H.filter(t,r,!n);t=H.filter(t,r)}return H.grep(e,function(e,r){return H.inArray(e,t)&gt;=0===n})}function N(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function C(){return!0}function k(){return!1}function L(e,t,n){var r=t+&quot;defer&quot;,i=t+&quot;queue&quot;,s=t+&quot;mark&quot;,o=H._data(e,r);o&amp;&amp;(n===&quot;queue&quot;||!H._data(e,i))&amp;&amp;(n===&quot;mark&quot;||!H._data(e,s))&amp;&amp;setTimeout(function(){!H._data(e,i)&amp;&amp;!H._data(e,s)&amp;&amp;(H.removeData(e,r,!0),o.fire())},0)}function A(e){for(var t in e){if(t===&quot;data&quot;&amp;&amp;H.isEmptyObject(e[t]))continue;if(t!==&quot;toJSON&quot;)return!1}return!0}function O(e,n,r){if(r===t&amp;&amp;e.nodeType===1){var i=&quot;data-&quot;+n.replace(I,&quot;-$1&quot;).toLowerCase();r=e.getAttribute(i);if(typeof r==&quot;string&quot;){try{r=r===&quot;true&quot;?!0:r===&quot;false&quot;?!1:r===&quot;null&quot;?null:H.isNumeric(r)?+r:F.test(r)?H.parseJSON(r):r}catch(s){}H.data(e,n,r)}else r=t}return r}function M(e){var t=B[e]={},n,r;e=e.split(/\s+/);for(n=0,r=e.length;n&lt;r;n++)t[e[n]]=!0;return t}var _=e.document,D=e.navigator,P=e.location,H=function(){function n(){if(!r.isReady){try{_.documentElement.doScroll(&quot;left&quot;)}catch(e){setTimeout(n,1);return}r.ready()}}var r=function(e,t){return new r.fn.init(e,t,o)},i=e.jQuery,s=e.$,o,u=/^(?:[^#&lt;]*(&lt;[\w\W]+&gt;)[^&gt;]*$|#([\w\-]*)$)/,a=/\S/,f=/^\s+/,l=/\s+$/,c=/^&lt;(\w+)\s*\/?&gt;(?:&lt;\/\1&gt;)?$/,h=/^[\],:{}\s]*$/,p=/\\(?:[&quot;\\\/bfnrt]|u[0-9a-fA-F]{4})/g,d=/&quot;[^&quot;\\\n\r]*&quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,v=/(?:^|:|,)(?:\s*\[)+/g,m=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,y=/(msie) ([\w.]+)/,b=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,E=/^-ms-/,S=function(e,t){return(t+&quot;&quot;).toUpperCase()},x=D.userAgent,T,N,C,k=Object.prototype.toString,L=Object.prototype.hasOwnProperty,A=Array.prototype.push,O=Array.prototype.slice,M=String.prototype.trim,P=Array.prototype.indexOf,H={};return r.fn=r.prototype={constructor:r,init:function(e,n,i){var s,o,a,f;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(e===&quot;body&quot;&amp;&amp;!n&amp;&amp;_.body)return this.context=_,this[0]=_.body,this.selector=e,this.length=1,this;if(typeof e==&quot;string&quot;){e.charAt(0)!==&quot;&lt;&quot;||e.charAt(e.length-1)!==&quot;&gt;&quot;||e.length&lt;3?s=u.exec(e):s=[null,e,null];if(s&amp;&amp;(s[1]||!n)){if(s[1])return n=n instanceof r?n[0]:n,f=n?n.ownerDocument||n:_,a=c.exec(e),a?r.isPlainObject(n)?(e=[_.createElement(a[1])],r.fn.attr.call(e,n,!0)):e=[f.createElement(a[1])]:(a=r.buildFragment([s[1]],[f]),e=(a.cacheable?r.clone(a.fragment):a.fragment).childNodes),r.merge(this,e);o=_.getElementById(s[2]);if(o&amp;&amp;o.parentNode){if(o.id!==s[2])return i.find(e);this.length=1,this[0]=o}return this.context=_,this.selector=e,this}return!n||n.jquery?(n||i).find(e):this.constructor(n).find(e)}return r.isFunction(e)?i.ready(e):(e.selector!==t&amp;&amp;(this.selector=e.selector,this.context=e.context),r.makeArray(e,this))},selector:&quot;&quot;,jquery:&quot;1.7.2&quot;,length:0,size:function(){return this.length},toArray:function(){return O.call(this,0)},get:function(e){return e==null?this.toArray():e&lt;0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var i=this.constructor();return r.isArray(e)?A.apply(i,e):r.merge(i,e),i.prevObject=this,i.context=this.context,t===&quot;find&quot;?i.selector=this.selector+(this.selector?&quot; &quot;:&quot;&quot;)+n:t&amp;&amp;(i.selector=this.selector+&quot;.&quot;+t+&quot;(&quot;+n+&quot;)&quot;),i},each:function(e,t){return r.each(this,e,t)},ready:function(e){return r.bindReady(),N.add(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(O.apply(this,arguments),&quot;slice&quot;,O.call(arguments).join(&quot;,&quot;))},map:function(e){return this.pushStack(r.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:A,sort:[].sort,splice:[].splice},r.fn.init.prototype=r.fn,r.extend=r.fn.extend=function(){var e,n,i,s,o,u,a=arguments[0]||{},f=1,l=arguments.length,c=!1;typeof a==&quot;boolean&quot;&amp;&amp;(c=a,a=arguments[1]||{},f=2),typeof a!=&quot;object&quot;&amp;&amp;!r.isFunction(a)&amp;&amp;(a={}),l===f&amp;&amp;(a=this,--f);for(;f&lt;l;f++)if((e=arguments[f])!=null)for(n in e){i=a[n],s=e[n];if(a===s)continue;c&amp;&amp;s&amp;&amp;(r.isPlainObject(s)||(o=r.isArray(s)))?(o?(o=!1,u=i&amp;&amp;r.isArray(i)?i:[]):u=i&amp;&amp;r.isPlainObject(i)?i:{},a[n]=r.extend(c,u,s)):s!==t&amp;&amp;(a[n]=s)}return a},r.extend({noConflict:function(t){return e.$===r&amp;&amp;(e.$=s),t&amp;&amp;e.jQuery===r&amp;&amp;(e.jQuery=i),r},isReady:!1,readyWait:1,holdReady:function(e){e?r.readyWait++:r.ready(!0)},ready:function(e){if(e===!0&amp;&amp;!--r.readyWait||e!==!0&amp;&amp;!r.isReady){if(!_.body)return setTimeout(r.ready,1);r.isReady=!0;if(e!==!0&amp;&amp;--r.readyWait&gt;0)return;N.fireWith(_,[r]),r.fn.trigger&amp;&amp;r(_).trigger(&quot;ready&quot;).off(&quot;ready&quot;)}},bindReady:function(){if(!N){N=r.Callbacks(&quot;once memory&quot;);if(_.readyState===&quot;complete&quot;)return setTimeout(r.ready,1);if(_.addEventListener)_.addEventListener(&quot;DOMContentLoaded&quot;,C,!1),e.addEventListener(&quot;load&quot;,r.ready,!1);else if(_.attachEvent){_.attachEvent(&quot;onreadystatechange&quot;,C),e.attachEvent(&quot;onload&quot;,r.ready);var t=!1;try{t=e.frameElement==null}catch(i){}_.documentElement.doScroll&amp;&amp;t&amp;&amp;n()}}},isFunction:function(e){return r.type(e)===&quot;function&quot;},isArray:Array.isArray||function(e){return r.type(e)===&quot;array&quot;},isWindow:function(e){return e!=null&amp;&amp;e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&amp;&amp;isFinite(e)},type:function(e){return e==null?String(e):H[k.call(e)]||&quot;object&quot;},isPlainObject:function(e){if(!e||r.type(e)!==&quot;object&quot;||e.nodeType||r.isWindow(e))return!1;try{if(e.constructor&amp;&amp;!L.call(e,&quot;constructor&quot;)&amp;&amp;!L.call(e.constructor.prototype,&quot;isPrototypeOf&quot;))return!1}catch(n){return!1}var i;for(i in e);return i===t||L.call(e,i)},isEmptyObject:function(e){for(var t in e)return!1;return!0},error:function(e){throw new Error(e)},parseJSON:function(t){if(typeof t!=&quot;string&quot;||!t)return null;t=r.trim(t);if(e.JSON&amp;&amp;e.JSON.parse)return e.JSON.parse(t);if(h.test(t.replace(p,&quot;@&quot;).replace(d,&quot;]&quot;).replace(v,&quot;&quot;)))return(new Function(&quot;return &quot;+t))();r.error(&quot;Invalid JSON: &quot;+t)},parseXML:function(n){if(typeof n!=&quot;string&quot;||!n)return null;var i,s;try{e.DOMParser?(s=new DOMParser,i=s.parseFromString(n,&quot;text/xml&quot;)):(i=new ActiveXObject(&quot;Microsoft.XMLDOM&quot;),i.async=&quot;false&quot;,i.loadXML(n))}catch(o){i=t}return(!i||!i.documentElement||i.getElementsByTagName(&quot;parsererror&quot;).length)&amp;&amp;r.error(&quot;Invalid XML: &quot;+n),i},noop:function(){},globalEval:function(t){t&amp;&amp;a.test(t)&amp;&amp;(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(E,&quot;ms-&quot;).replace(w,S)},nodeName:function(e,t){return e.nodeName&amp;&amp;e.nodeName.toUpperCase()===t.toUpperCase()},each:function(e,n,i){var s,o=0,u=e.length,a=u===t||r.isFunction(e);if(i){if(a){for(s in e)if(n.apply(e[s],i)===!1)break}else for(;o&lt;u;)if(n.apply(e[o++],i)===!1)break}else if(a){for(s in e)if(n.call(e[s],s,e[s])===!1)break}else for(;o&lt;u;)if(n.call(e[o],o,e[o++])===!1)break;return e},trim:M?function(e){return e==null?&quot;&quot;:M.call(e)}:function(e){return e==null?&quot;&quot;:(e+&quot;&quot;).replace(f,&quot;&quot;).replace(l,&quot;&quot;)},makeArray:function(e,t){var n=t||[];if(e!=null){var i=r.type(e);e.length==null||i===&quot;string&quot;||i===&quot;function&quot;||i===&quot;regexp&quot;||r.isWindow(e)?A.call(n,e):r.merge(n,e)}return n},inArray:function(e,t,n){var r;if(t){if(P)return P.call(t,e,n);r=t.length,n=n?n&lt;0?Math.max(0,r+n):n:0;for(;n&lt;r;n++)if(n in t&amp;&amp;t[n]===e)return n}return-1},merge:function(e,n){var r=e.length,i=0;if(typeof n.length==&quot;number&quot;)for(var s=n.length;i&lt;s;i++)e[r++]=n[i];else while(n[i]!==t)e[r++]=n[i++];return e.length=r,e},grep:function(e,t,n){var r=[],i;n=!!n;for(var s=0,o=e.length;s&lt;o;s++)i=!!t(e[s],s),n!==i&amp;&amp;r.push(e[s]);return r},map:function(e,n,i){var s,o,u=[],a=0,f=e.length,l=e instanceof r||f!==t&amp;&amp;typeof f==&quot;number&quot;&amp;&amp;(f&gt;0&amp;&amp;e[0]&amp;&amp;e[f-1]||f===0||r.isArray(e));if(l)for(;a&lt;f;a++)s=n(e[a],a,i),s!=null&amp;&amp;(u[u.length]=s);else for(o in e)s=n(e[o],o,i),s!=null&amp;&amp;(u[u.length]=s);return u.concat.apply([],u)},guid:1,proxy:function(e,n){if(typeof n==&quot;string&quot;){var i=e[n];n=e,e=i}if(!r.isFunction(e))return t;var s=O.call(arguments,2),o=function(){return e.apply(n,s.concat(O.call(arguments)))};return o.guid=e.guid=e.guid||o.guid||r.guid++,o},access:function(e,n,i,s,o,u,a){var f,l=i==null,c=0,h=e.length;if(i&amp;&amp;typeof i==&quot;object&quot;){for(c in i)r.access(e,n,c,i[c],1,u,s);o=1}else if(s!==t){f=a===t&amp;&amp;r.isFunction(s),l&amp;&amp;(f?(f=n,n=function(e,t,n){return f.call(r(e),n)}):(n.call(e,s),n=null));if(n)for(;c&lt;h;c++)n(e[c],i,f?s.call(e[c],c,n(e[c],i)):s,a);o=1}return o?e:l?n.call(e):h?n(e[0],i):u},now:function(){return(new Date).getTime()},uaMatch:function(e){e=e.toLowerCase();var t=m.exec(e)||g.exec(e)||y.exec(e)||e.indexOf(&quot;compatible&quot;)&lt;0&amp;&amp;b.exec(e)||[];return{browser:t[1]||&quot;&quot;,version:t[2]||&quot;0&quot;}},sub:function(){function e(t,n){return new e.fn.init(t,n)}r.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(n,i){return i&amp;&amp;i instanceof r&amp;&amp;!(i instanceof e)&amp;&amp;(i=e(i)),r.fn.init.call(this,n,i,t)},e.fn.init.prototype=e.fn;var t=e(_);return e},browser:{}}),r.each(&quot;Boolean Number String Function Array Date RegExp Object&quot;.split(&quot; &quot;),function(e,t){H[&quot;[object &quot;+t+&quot;]&quot;]=t.toLowerCase()}),T=r.uaMatch(x),T.browser&amp;&amp;(r.browser[T.browser]=!0,r.browser.version=T.version),r.browser.webkit&amp;&amp;(r.browser.safari=!0),a.test(&quot; &quot;)&amp;&amp;(f=/^[\s\xA0]+/,l=/[\s\xA0]+$/),o=r(_),_.addEventListener?C=function(){_.removeEventListener(&quot;DOMContentLoaded&quot;,C,!1),r.ready()}:_.attachEvent&amp;&amp;(C=function(){_.readyState===&quot;complete&quot;&amp;&amp;(_.detachEvent(&quot;onreadystatechange&quot;,C),r.ready())}),r}(),B={};H.Callbacks=function(e){e=e?B[e]||M(e):{};var n=[],r=[],i,s,o,u,a,f,l=function(t){var r,i,s,o,u;for(r=0,i=t.length;r&lt;i;r++)s=t[r],o=H.type(s),o===&quot;array&quot;?l(s):o===&quot;function&quot;&amp;&amp;(!e.unique||!h.has(s))&amp;&amp;n.push(s)},c=function(t,l){l=l||[],i=!e.memory||[t,l],s=!0,o=!0,f=u||0,u=0,a=n.length;for(;n&amp;&amp;f&lt;a;f++)if(n[f].apply(t,l)===!1&amp;&amp;e.stopOnFalse){i=!0;break}o=!1,n&amp;&amp;(e.once?i===!0?h.disable():n=[]:r&amp;&amp;r.length&amp;&amp;(i=r.shift(),h.fireWith(i[0],i[1])))},h={add:function(){if(n){var e=n.length;l(arguments),o?a=n.length:i&amp;&amp;i!==!0&amp;&amp;(u=e,c(i[0],i[1]))}return this},remove:function(){if(n){var t=arguments,r=0,i=t.length;for(;r&lt;i;r++)for(var s=0;s&lt;n.length;s++)if(t[r]===n[s]){o&amp;&amp;s&lt;=a&amp;&amp;(a--,s&lt;=f&amp;&amp;f--),n.splice(s--,1);if(e.unique)break}}return this},has:function(e){if(n){var t=0,r=n.length;for(;t&lt;r;t++)if(e===n[t])return!0}return!1},empty:function(){return n=[],this},disable:function(){return n=r=i=t,this},disabled:function(){return!n},lock:function(){return r=t,(!i||i===!0)&amp;&amp;h.disable(),this},locked:function(){return!r},fireWith:function(t,n){return r&amp;&amp;(o?e.once||r.push([t,n]):(!e.once||!i)&amp;&amp;c(t,n)),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!s}};return h};var j=[].slice;H.extend({Deferred:function(e){var t=H.Callbacks(&quot;once memory&quot;),n=H.Callbacks(&quot;once memory&quot;),r=H.Callbacks(&quot;memory&quot;),i=&quot;pending&quot;,s={resolve:t,reject:n,notify:r},o={done:t.add,fail:n.add,progress:r.add,state:function(){return i},isResolved:t.fired,isRejected:n.fired,then:function(e,t,n){return u.done(e).fail(t).progress(n),this},always:function(){return u.done.apply(u,arguments).fail.apply(u,arguments),this},pipe:function(e,t,n){return H.Deferred(function(r){H.each({done:[e,&quot;resolve&quot;],fail:[t,&quot;reject&quot;],progress:[n,&quot;notify&quot;]},function(e,t){var n=t[0],i=t[1],s;H.isFunction(n)?u[e](function(){s=n.apply(this,arguments),s&amp;&amp;H.isFunction(s.promise)?s.promise().then(r.resolve,r.reject,r.notify):r[i+&quot;With&quot;](this===u?r:this,[s])}):u[e](r[i])})}).promise()},promise:function(e){if(e==null)e=o;else for(var t in o)e[t]=o[t];return e}},u=o.promise({}),a;for(a in s)u[a]=s[a].fire,u[a+&quot;With&quot;]=s[a].fireWith;return u.done(function(){i=&quot;resolved&quot;},n.disable,r.lock).fail(function(){i=&quot;rejected&quot;},t.disable,r.lock),e&amp;&amp;e.call(u,u),u},when:function(e){function t(e){return function(t){o[e]=arguments.length&gt;1?j.call(arguments,0):t,f.notifyWith(l,o)}}function n(e){return function(t){r[e]=arguments.length&gt;1?j.call(arguments,0):t,--u||f.resolveWith(f,r)}}var r=j.call(arguments,0),i=0,s=r.length,o=Array(s),u=s,a=s,f=s&lt;=1&amp;&amp;e&amp;&amp;H.isFunction(e.promise)?e:H.Deferred(),l=f.promise();if(s&gt;1){for(;i&lt;s;i++)r[i]&amp;&amp;r[i].promise&amp;&amp;H.isFunction(r[i].promise)?r[i].promise().then(n(i),f.reject,t(i)):--u;u||f.resolveWith(f,r)}else f!==e&amp;&amp;f.resolveWith(f,s?[e]:[]);return l}}),H.support=function(){var t,n,r,i,s,o,u,a,f,l,c,h,p=_.createElement(&quot;div&quot;),d=_.documentElement;p.setAttribute(&quot;className&quot;,&quot;t&quot;),p.innerHTML=&quot;   &lt;link/&gt;&lt;table&gt;&lt;/table&gt;&lt;a href=&#39;/a&#39; style=&#39;top:1px;float:left;opacity:.55;&#39;&gt;a&lt;/a&gt;&lt;input type=&#39;checkbox&#39;/&gt;&quot;,n=p.getElementsByTagName(&quot;*&quot;),r=p.getElementsByTagName(&quot;a&quot;)[0];if(!n||!n.length||!r)return{};i=_.createElement(&quot;select&quot;),s=i.appendChild(_.createElement(&quot;option&quot;)),o=p.getElementsByTagName(&quot;input&quot;)[0],t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName(&quot;tbody&quot;).length,htmlSerialize:!!p.getElementsByTagName(&quot;link&quot;).length,style:/top/.test(r.getAttribute(&quot;style&quot;)),hrefNormalized:r.getAttribute(&quot;href&quot;)===&quot;/a&quot;,opacity:/^0.55/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:o.value===&quot;on&quot;,optSelected:s.selected,getSetAttribute:p.className!==&quot;t&quot;,enctype:!!_.createElement(&quot;form&quot;).enctype,html5Clone:_.createElement(&quot;nav&quot;).cloneNode(!0).outerHTML!==&quot;&lt;:nav&gt;&lt;/:nav&gt;&quot;,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},H.boxModel=t.boxModel=_.compatMode===&quot;CSS1Compat&quot;,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,i.disabled=!0,t.optDisabled=!s.disabled;try{delete p.test}catch(v){t.deleteExpando=!1}!p.addEventListener&amp;&amp;p.attachEvent&amp;&amp;p.fireEvent&amp;&amp;(p.attachEvent(&quot;onclick&quot;,function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent(&quot;onclick&quot;)),o=_.createElement(&quot;input&quot;),o.value=&quot;t&quot;,o.setAttribute(&quot;type&quot;,&quot;radio&quot;),t.radioValue=o.value===&quot;t&quot;,o.setAttribute(&quot;checked&quot;,&quot;checked&quot;),o.setAttribute(&quot;name&quot;,&quot;t&quot;),p.appendChild(o),u=_.createDocumentFragment(),u.appendChild(p.lastChild),t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=o.checked,u.removeChild(o),u.appendChild(p);if(p.attachEvent)for(c in{submit:1,change:1,focusin:1})l=&quot;on&quot;+c,h=l in p,h||(p.setAttribute(l,&quot;return;&quot;),h=typeof p[l]==&quot;function&quot;),t[c+&quot;Bubbles&quot;]=h;return u.removeChild(p),u=i=s=p=o=null,H(function(){var n,r,i,s,o,u,f,l,c,d,v,m,g,y=_.getElementsByTagName(&quot;body&quot;)[0];!y||(l=1,g=&quot;padding:0;margin:0;border:&quot;,v=&quot;position:absolute;top:0;left:0;width:1px;height:1px;&quot;,m=g+&quot;0;visibility:hidden;&quot;,c=&quot;style=&#39;&quot;+v+g+&quot;5px solid #000;&quot;,d=&quot;&lt;div &quot;+c+&quot;display:block;&#39;&gt;&lt;div style=&#39;&quot;+g+&quot;0;display:block;overflow:hidden;&#39;&gt;&lt;/div&gt;&lt;/div&gt;&quot;+&quot;&lt;table &quot;+c+&quot;&#39; cellpadding=&#39;0&#39; cellspacing=&#39;0&#39;&gt;&quot;+&quot;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;,n=_.createElement(&quot;div&quot;),n.style.cssText=m+&quot;width:0;height:0;position:static;top:0;margin-top:&quot;+l+&quot;px&quot;,y.insertBefore(n,y.firstChild),p=_.createElement(&quot;div&quot;),n.appendChild(p),p.innerHTML=&quot;&lt;table&gt;&lt;tr&gt;&lt;td style=&#39;&quot;+g+&quot;0;display:none&#39;&gt;&lt;/td&gt;&lt;td&gt;t&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;,a=p.getElementsByTagName(&quot;td&quot;),h=a[0].offsetHeight===0,a[0].style.display=&quot;&quot;,a[1].style.display=&quot;none&quot;,t.reliableHiddenOffsets=h&amp;&amp;a[0].offsetHeight===0,e.getComputedStyle&amp;&amp;(p.innerHTML=&quot;&quot;,f=_.createElement(&quot;div&quot;),f.style.width=&quot;0&quot;,f.style.marginRight=&quot;0&quot;,p.style.width=&quot;2px&quot;,p.appendChild(f),t.reliableMarginRight=(parseInt((e.getComputedStyle(f,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!=&quot;undefined&quot;&amp;&amp;(p.innerHTML=&quot;&quot;,p.style.width=p.style.padding=&quot;1px&quot;,p.style.border=0,p.style.overflow=&quot;hidden&quot;,p.style.display=&quot;inline&quot;,p.style.zoom=1,t.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display=&quot;block&quot;,p.style.overflow=&quot;visible&quot;,p.innerHTML=&quot;&lt;div style=&#39;width:5px;&#39;&gt;&lt;/div&gt;&quot;,t.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=v+m,p.innerHTML=d,r=p.firstChild,i=r.firstChild,o=r.nextSibling.firstChild.firstChild,u={doesNotAddBorder:i.offsetTop!==5,doesAddBorderForTableAndCells:o.offsetTop===5},i.style.position=&quot;fixed&quot;,i.style.top=&quot;20px&quot;,u.fixedPosition=i.offsetTop===20||i.offsetTop===15,i.style.position=i.style.top=&quot;&quot;,r.style.overflow=&quot;hidden&quot;,r.style.position=&quot;relative&quot;,u.subtractsBorderForOverflowNotVisible=i.offsetTop===-5,u.doesNotIncludeMarginInBodyOffset=y.offsetTop!==l,e.getComputedStyle&amp;&amp;(p.style.marginTop=&quot;1%&quot;,t.pixelMargin=(e.getComputedStyle(p,null)||{marginTop:0}).marginTop!==&quot;1%&quot;),typeof n.style.zoom!=&quot;undefined&quot;&amp;&amp;(n.style.zoom=1),y.removeChild(n),f=p=n=null,H.extend(t,u))}),t}();var F=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;H.extend({cache:{},uuid:0,expando:&quot;jQuery&quot;+(H.fn.jquery+Math.random()).replace(/\D/g,&quot;&quot;),noData:{embed:!0,object:&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot;,applet:!0},hasData:function(e){return e=e.nodeType?H.cache[e[H.expando]]:e[H.expando],!!e&amp;&amp;!A(e)},data:function(e,n,r,i){if(!!H.acceptData(e)){var s,o,u,a=H.expando,f=typeof n==&quot;string&quot;,l=e.nodeType,c=l?H.cache:e,h=l?e[a]:e[a]&amp;&amp;a,p=n===&quot;events&quot;;if((!h||!c[h]||!p&amp;&amp;!i&amp;&amp;!c[h].data)&amp;&amp;f&amp;&amp;r===t)return;h||(l?e[a]=h=++H.uuid:h=a),c[h]||(c[h]={},l||(c[h].toJSON=H.noop));if(typeof n==&quot;object&quot;||typeof n==&quot;function&quot;)i?c[h]=H.extend(c[h],n):c[h].data=H.extend(c[h].data,n);return s=o=c[h],i||(o.data||(o.data={}),o=o.data),r!==t&amp;&amp;(o[H.camelCase(n)]=r),p&amp;&amp;!o[n]?s.events:(f?(u=o[n],u==null&amp;&amp;(u=o[H.camelCase(n)])):u=o,u)}},removeData:function(e,t,n){if(!!H.acceptData(e)){var r,i,s,o=H.expando,u=e.nodeType,a=u?H.cache:e,f=u?e[o]:o;if(!a[f])return;if(t){r=n?a[f]:a[f].data;if(r){H.isArray(t)||(t in r?t=[t]:(t=H.camelCase(t),t in r?t=[t]:t=t.split(&quot; &quot;)));for(i=0,s=t.length;i&lt;s;i++)delete r[t[i]];if(!(n?A:H.isEmptyObject)(r))return}}if(!n){delete a[f].data;if(!A(a[f]))return}H.support.deleteExpando||!a.setInterval?delete a[f]:a[f]=null,u&amp;&amp;(H.support.deleteExpando?delete e[o]:e.removeAttribute?e.removeAttribute(o):e[o]=null)}},_data:function(e,t,n){return H.data(e,t,n,!0)},acceptData:function(e){if(e.nodeName){var t=H.noData[e.nodeName.toLowerCase()];if(t)return t!==!0&amp;&amp;e.getAttribute(&quot;classid&quot;)===t}return!0}}),H.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=H.data(a);if(a.nodeType===1&amp;&amp;!H._data(a,&quot;parsedAttrs&quot;)){s=a.attributes;for(u=s.length;f&lt;u;f++)o=s[f].name,o.indexOf(&quot;data-&quot;)===0&amp;&amp;(o=H.camelCase(o.substring(5)),O(a,o,l[o]));H._data(a,&quot;parsedAttrs&quot;,!0)}}return l}return typeof e==&quot;object&quot;?this.each(function(){H.data(this,e)}):(r=e.split(&quot;.&quot;,2),r[1]=r[1]?&quot;.&quot;+r[1]:&quot;&quot;,i=r[1]+&quot;!&quot;,H.access(this,function(n){if(n===t)return l=this.triggerHandler(&quot;getData&quot;+i,[r[0]]),l===t&amp;&amp;a&amp;&amp;(l=H.data(a,e),l=O(a,e,l)),l===t&amp;&amp;r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=H(this);t.triggerHandler(&quot;setData&quot;+i,r),H.data(this,e,n),t.triggerHandler(&quot;changeData&quot;+i,r)})},null,n,arguments.length&gt;1,null,!1))},removeData:function(e){return this.each(function(){H.removeData(this,e)})}}),H.extend({_mark:function(e,t){e&amp;&amp;(t=(t||&quot;fx&quot;)+&quot;mark&quot;,H._data(e,t,(H._data(e,t)||0)+1))},_unmark:function(e,t,n){e!==!0&amp;&amp;(n=t,t=e,e=!1);if(t){n=n||&quot;fx&quot;;var r=n+&quot;mark&quot;,i=e?0:(H._data(t,r)||1)-1;i?H._data(t,r,i):(H.removeData(t,r,!0),L(t,n,&quot;mark&quot;))}},queue:function(e,t,n){var r;if(e)return t=(t||&quot;fx&quot;)+&quot;queue&quot;,r=H._data(e,t),n&amp;&amp;(!r||H.isArray(n)?r=H._data(e,t,H.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||&quot;fx&quot;;var n=H.queue(e,t),r=n.shift(),i={};r===&quot;inprogress&quot;&amp;&amp;(r=n.shift()),r&amp;&amp;(t===&quot;fx&quot;&amp;&amp;n.unshift(&quot;inprogress&quot;),H._data(e,t+&quot;.run&quot;,i),r.call(e,function(){H.dequeue(e,t)},i)),n.length||(H.removeData(e,t+&quot;queue &quot;+t+&quot;.run&quot;,!0),L(e,t,&quot;queue&quot;))}}),H.fn.extend({queue:function(e,n){var r=2;return typeof e!=&quot;string&quot;&amp;&amp;(n=e,e=&quot;fx&quot;,r--),arguments.length&lt;r?H.queue(this[0],e):n===t?this:this.each(function(){var t=H.queue(this,e,n);e===&quot;fx&quot;&amp;&amp;t[0]!==&quot;inprogress&quot;&amp;&amp;H.dequeue(this,e)})},dequeue:function(e){return this.each(function(){H.dequeue(this,e)})},delay:function(e,t){return e=H.fx?H.fx.speeds[e]||e:e,t=t||&quot;fx&quot;,this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||&quot;fx&quot;,[])},promise:function(e,n){function r(){--u||i.resolveWith(s,[s])}typeof e!=&quot;string&quot;&amp;&amp;(n=e,e=t),e=e||&quot;fx&quot;;var i=H.Deferred(),s=this,o=s.length,u=1,a=e+&quot;defer&quot;,f=e+&quot;queue&quot;,l=e+&quot;mark&quot;,c;while(o--)if(c=H.data(s[o],a,t,!0)||(H.data(s[o],f,t,!0)||H.data(s[o],l,t,!0))&amp;&amp;H.data(s[o],a,H.Callbacks(&quot;once memory&quot;),!0))u++,c.add(r);return r(),i.promise(n)}});var q=/[\n\t\r]/g,R=/\s+/,U=/\r/g,z=/^(?:button|input)$/i,W=/^(?:button|input|object|select|textarea)$/i,X=/^a(?:rea)?$/i,V=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,$=H.support.getSetAttribute,J,K,Q;H.fn.extend({attr:function(e,t){return H.access(this,H.attr,e,t,arguments.length&gt;1)},removeAttr:function(e){return this.each(function(){H.removeAttr(this,e)})},prop:function(e,t){return H.access(this,H.prop,e,t,arguments.length&gt;1)},removeProp:function(e){return e=H.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(H.isFunction(e))return this.each(function(t){H(this).addClass(e.call(this,t,this.className))});if(e&amp;&amp;typeof e==&quot;string&quot;){t=e.split(R);for(n=0,r=this.length;n&lt;r;n++){i=this[n];if(i.nodeType===1)if(!i.className&amp;&amp;t.length===1)i.className=e;else{s=&quot; &quot;+i.className+&quot; &quot;;for(o=0,u=t.length;o&lt;u;o++)~s.indexOf(&quot; &quot;+t[o]+&quot; &quot;)||(s+=t[o]+&quot; &quot;);i.className=H.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(H.isFunction(e))return this.each(function(t){H(this).removeClass(e.call(this,t,this.className))});if(e&amp;&amp;typeof e==&quot;string&quot;||e===t){n=(e||&quot;&quot;).split(R);for(r=0,i=this.length;r&lt;i;r++){s=this[r];if(s.nodeType===1&amp;&amp;s.className)if(e){o=(&quot; &quot;+s.className+&quot; &quot;).replace(q,&quot; &quot;);for(u=0,a=n.length;u&lt;a;u++)o=o.replace(&quot; &quot;+n[u]+&quot; &quot;,&quot; &quot;);s.className=H.trim(o)}else s.className=&quot;&quot;}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t==&quot;boolean&quot;;return H.isFunction(e)?this.each(function(n){H(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n===&quot;string&quot;){var i,s=0,o=H(this),u=t,a=e.split(R);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?&quot;addClass&quot;:&quot;removeClass&quot;](i)}else if(n===&quot;undefined&quot;||n===&quot;boolean&quot;)this.className&amp;&amp;H._data(this,&quot;__className__&quot;,this.className),this.className=this.className||e===!1?&quot;&quot;:H._data(this,&quot;__className__&quot;)||&quot;&quot;})},hasClass:function(e){var t=&quot; &quot;+e+&quot; &quot;,n=0,r=this.length;for(;n&lt;r;n++)if(this[n].nodeType===1&amp;&amp;(&quot; &quot;+this[n].className+&quot; &quot;).replace(q,&quot; &quot;).indexOf(t)&gt;-1)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!!arguments.length)return i=H.isFunction(e),this.each(function(r){var s=H(this),o;if(this.nodeType===1){i?o=e.call(this,r,s.val()):o=e,o==null?o=&quot;&quot;:typeof o==&quot;number&quot;?o+=&quot;&quot;:H.isArray(o)&amp;&amp;(o=H.map(o,function(e){return e==null?&quot;&quot;:e+&quot;&quot;})),n=H.valHooks[this.type]||H.valHooks[this.nodeName.toLowerCase()];if(!n||!(&quot;set&quot;in n)||n.set(this,o,&quot;value&quot;)===t)this.value=o}});if(s)return n=H.valHooks[s.type]||H.valHooks[s.nodeName.toLowerCase()],n&amp;&amp;&quot;get&quot;in n&amp;&amp;(r=n.get(s,&quot;value&quot;))!==t?r:(r=s.value,typeof r==&quot;string&quot;?r.replace(U,&quot;&quot;):r==null?&quot;&quot;:r)}}),H.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r,i,s=e.selectedIndex,o=[],u=e.options,a=e.type===&quot;select-one&quot;;if(s&lt;0)return null;n=a?s:0,r=a?s+1:u.length;for(;n&lt;r;n++){i=u[n];if(i.selected&amp;&amp;(H.support.optDisabled?!i.disabled:i.getAttribute(&quot;disabled&quot;)===null)&amp;&amp;(!i.parentNode.disabled||!H.nodeName(i.parentNode,&quot;optgroup&quot;))){t=H(i).val();if(a)return t;o.push(t)}}return a&amp;&amp;!o.length&amp;&amp;u.length?H(u[s]).val():o},set:function(e,t){var n=H.makeArray(t);return H(e).find(&quot;option&quot;).each(function(){this.selected=H.inArray(H(this).val(),n)&gt;=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!!e&amp;&amp;a!==3&amp;&amp;a!==8&amp;&amp;a!==2){if(i&amp;&amp;n in H.attrFn)return H(e)[n](r);if(typeof e.getAttribute==&quot;undefined&quot;)return H.prop(e,n,r);u=a!==1||!H.isXMLDoc(e),u&amp;&amp;(n=n.toLowerCase(),o=H.attrHooks[n]||(V.test(n)?K:J));if(r!==t){if(r===null){H.removeAttr(e,n);return}return o&amp;&amp;&quot;set&quot;in o&amp;&amp;u&amp;&amp;(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,&quot;&quot;+r),r)}return o&amp;&amp;&quot;get&quot;in o&amp;&amp;u&amp;&amp;(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)}},removeAttr:function(e,t){var n,r,i,s,o,u=0;if(t&amp;&amp;e.nodeType===1){r=t.toLowerCase().split(R),s=r.length;for(;u&lt;s;u++)i=r[u],i&amp;&amp;(n=H.propFix[i]||i,o=V.test(i),o||H.attr(e,i,&quot;&quot;),e.removeAttribute($?i:n),o&amp;&amp;n in e&amp;&amp;(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(z.test(e.nodeName)&amp;&amp;e.parentNode)H.error(&quot;type property can&#39;t be changed&quot;);else if(!H.support.radioValue&amp;&amp;t===&quot;radio&quot;&amp;&amp;H.nodeName(e,&quot;input&quot;)){var n=e.value;return e.setAttribute(&quot;type&quot;,t),n&amp;&amp;(e.value=n),t}}},value:{get:function(e,t){return J&amp;&amp;H.nodeName(e,&quot;button&quot;)?J.get(e,t):t in e?e.value:null},set:function(e,t,n){if(J&amp;&amp;H.nodeName(e,&quot;button&quot;))return J.set(e,t,n);e.value=t}}},propFix:{tabindex:&quot;tabIndex&quot;,readonly:&quot;readOnly&quot;,&quot;for&quot;:&quot;htmlFor&quot;,&quot;class&quot;:&quot;className&quot;,maxlength:&quot;maxLength&quot;,cellspacing:&quot;cellSpacing&quot;,cellpadding:&quot;cellPadding&quot;,rowspan:&quot;rowSpan&quot;,colspan:&quot;colSpan&quot;,usemap:&quot;useMap&quot;,frameborder:&quot;frameBorder&quot;,contenteditable:&quot;contentEditable&quot;},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!!e&amp;&amp;u!==3&amp;&amp;u!==8&amp;&amp;u!==2)return o=u!==1||!H.isXMLDoc(e),o&amp;&amp;(n=H.propFix[n]||n,s=H.propHooks[n]),r!==t?s&amp;&amp;&quot;set&quot;in s&amp;&amp;(i=s.set(e,r,n))!==t?i:e[n]=r:s&amp;&amp;&quot;get&quot;in s&amp;&amp;(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode(&quot;tabindex&quot;);return n&amp;&amp;n.specified?parseInt(n.value,10):W.test(e.nodeName)||X.test(e.nodeName)&amp;&amp;e.href?0:t}}}}),H.attrHooks.tabindex=H.propHooks.tabIndex,K={get:function(e,n){var r,i=H.prop(e,n);return i===!0||typeof i!=&quot;boolean&quot;&amp;&amp;(r=e.getAttributeNode(n))&amp;&amp;r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?H.removeAttr(e,n):(r=H.propFix[n]||n,r in e&amp;&amp;(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},$||(Q={name:!0,id:!0,coords:!0},J=H.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&amp;&amp;(Q[n]?r.nodeValue!==&quot;&quot;:r.specified)?r.nodeValue:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=_.createAttribute(n),e.setAttributeNode(r)),r.nodeValue=t+&quot;&quot;}},H.attrHooks.tabindex.set=J.set,H.each([&quot;width&quot;,&quot;height&quot;],function(e,t){H.attrHooks[t]=H.extend(H.attrHooks[t],{set:function(e,n){if(n===&quot;&quot;)return e.setAttribute(t,&quot;auto&quot;),n}})}),H.attrHooks.contenteditable={get:J.get,set:function(e,t,n){t===&quot;&quot;&amp;&amp;(t=&quot;false&quot;),J.set(e,t,n)}}),H.support.hrefNormalized||H.each([&quot;href&quot;,&quot;src&quot;,&quot;width&quot;,&quot;height&quot;],function(e,n){H.attrHooks[n]=H.extend(H.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),H.support.style||(H.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=&quot;&quot;+t}}),H.support.optSelected||(H.propHooks.selected=H.extend(H.propHooks.selected,{get:function(e){var t=e.parentNode;return t&amp;&amp;(t.selectedIndex,t.parentNode&amp;&amp;t.parentNode.selectedIndex),null}})),H.support.enctype||(H.propFix.enctype=&quot;encoding&quot;),H.support.checkOn||H.each([&quot;radio&quot;,&quot;checkbox&quot;],function(){H.valHooks[this]={get:function(e){return e.getAttribute(&quot;value&quot;)===null?&quot;on&quot;:e.value}}}),H.each([&quot;radio&quot;,&quot;checkbox&quot;],function(){H.valHooks[this]=H.extend(H.valHooks[this],{set:function(e,t){if(H.isArray(t))return e.checked=H.inArray(H(e).val(),t)&gt;=0}})});var G=/^(?:textarea|input|select)$/i,Y=/^([^\.]*)?(?:\.(.+))?$/,Z=/(?:^|\s)hover(\.\S+)?\b/,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,it=function(e){var t=rt.exec(e);return t&amp;&amp;(t[1]=(t[1]||&quot;&quot;).toLowerCase(),t[3]=t[3]&amp;&amp;new RegExp(&quot;(?:^|\\s)&quot;+t[3]+&quot;(?:\\s|$)&quot;)),t},st=function(e,t){var n=e.attributes||{};return(!t[1]||e.nodeName.toLowerCase()===t[1])&amp;&amp;(!t[2]||(n.id||{}).value===</td>
      </tr>
      <tr>
        <td id="L5" class="blob-num js-line-number" data-line-number="5"></td>
        <td id="LC5" class="blob-code js-file-line">t[2])&amp;&amp;(!t[3]||t[3].test((n[&quot;class&quot;]||{}).value))},ot=function(e){return H.event.special.hover?e:e.replace(Z,&quot;mouseenter$1 mouseleave$1&quot;)};H.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,v,m,g;if(!(e.nodeType===3||e.nodeType===8||!n||!r||!(o=H._data(e)))){r.handler&amp;&amp;(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=H.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof H==&quot;undefined&quot;||!!e&amp;&amp;H.event.triggered===e.type?t:H.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=H.trim(ot(n)).split(&quot; &quot;);for(f=0;f&lt;n.length;f++){l=Y.exec(n[f])||[],c=l[1],h=(l[2]||&quot;&quot;).split(&quot;.&quot;).sort(),g=H.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=H.event.special[c]||{},p=H.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,quick:s&amp;&amp;it(s),namespace:h.join(&quot;.&quot;)},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&amp;&amp;e.attachEvent(&quot;on&quot;+c,u)}g.add&amp;&amp;(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),H.event.global[c]=!0}e=null}},global:{},remove:function(e,t,n,r,i){var s=H.hasData(e)&amp;&amp;H._data(e),o,u,a,f,l,c,h,p,d,v,m,g;if(!!s&amp;&amp;!!(p=s.events)){t=H.trim(ot(t||&quot;&quot;)).split(&quot; &quot;);for(o=0;o&lt;t.length;o++){u=Y.exec(t[o])||[],a=f=u[1],l=u[2];if(!a){for(a in p)H.event.remove(e,a+t[o],n,r,!0);continue}d=H.event.special[a]||{},a=(r?d.delegateType:d.bindType)||a,m=p[a]||[],c=m.length,l=l?new RegExp(&quot;(^|\\.)&quot;+l.split(&quot;.&quot;).sort().join(&quot;\\.(?:.*\\.)?&quot;)+&quot;(\\.|$)&quot;):null;for(h=0;h&lt;m.length;h++)g=m[h],(i||f===g.origType)&amp;&amp;(!n||n.guid===g.guid)&amp;&amp;(!l||l.test(g.namespace))&amp;&amp;(!r||r===g.selector||r===&quot;**&quot;&amp;&amp;g.selector)&amp;&amp;(m.splice(h--,1),g.selector&amp;&amp;m.delegateCount--,d.remove&amp;&amp;d.remove.call(e,g));m.length===0&amp;&amp;c!==m.length&amp;&amp;((!d.teardown||d.teardown.call(e,l)===!1)&amp;&amp;H.removeEvent(e,a,s.handle),delete p[a])}H.isEmptyObject(p)&amp;&amp;(v=s.handle,v&amp;&amp;(v.elem=null),H.removeData(e,[&quot;events&quot;,&quot;handle&quot;],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,i,s){if(!i||i.nodeType!==3&amp;&amp;i.nodeType!==8){var o=n.type||n,u=[],a,f,l,c,h,p,d,v,m,g;if(nt.test(o+H.event.triggered))return;o.indexOf(&quot;!&quot;)&gt;=0&amp;&amp;(o=o.slice(0,-1),f=!0),o.indexOf(&quot;.&quot;)&gt;=0&amp;&amp;(u=o.split(&quot;.&quot;),o=u.shift(),u.sort());if((!i||H.event.customEvent[o])&amp;&amp;!H.event.global[o])return;n=typeof n==&quot;object&quot;?n[H.expando]?n:new H.Event(o,n):new H.Event(o),n.type=o,n.isTrigger=!0,n.exclusive=f,n.namespace=u.join(&quot;.&quot;),n.namespace_re=n.namespace?new RegExp(&quot;(^|\\.)&quot;+u.join(&quot;\\.(?:.*\\.)?&quot;)+&quot;(\\.|$)&quot;):null,p=o.indexOf(&quot;:&quot;)&lt;0?&quot;on&quot;+o:&quot;&quot;;if(!i){a=H.cache;for(l in a)a[l].events&amp;&amp;a[l].events[o]&amp;&amp;H.event.trigger(n,r,a[l].handle.elem,!0);return}n.result=t,n.target||(n.target=i),r=r!=null?H.makeArray(r):[],r.unshift(n),d=H.event.special[o]||{};if(d.trigger&amp;&amp;d.trigger.apply(i,r)===!1)return;m=[[i,d.bindType||o]];if(!s&amp;&amp;!d.noBubble&amp;&amp;!H.isWindow(i)){g=d.delegateType||o,c=nt.test(g+o)?i:i.parentNode,h=null;for(;c;c=c.parentNode)m.push([c,g]),h=c;h&amp;&amp;h===i.ownerDocument&amp;&amp;m.push([h.defaultView||h.parentWindow||e,g])}for(l=0;l&lt;m.length&amp;&amp;!n.isPropagationStopped();l++)c=m[l][0],n.type=m[l][1],v=(H._data(c,&quot;events&quot;)||{})[n.type]&amp;&amp;H._data(c,&quot;handle&quot;),v&amp;&amp;v.apply(c,r),v=p&amp;&amp;c[p],v&amp;&amp;H.acceptData(c)&amp;&amp;v.apply(c,r)===!1&amp;&amp;n.preventDefault();return n.type=o,!s&amp;&amp;!n.isDefaultPrevented()&amp;&amp;(!d._default||d._default.apply(i.ownerDocument,r)===!1)&amp;&amp;(o!==&quot;click&quot;||!H.nodeName(i,&quot;a&quot;))&amp;&amp;H.acceptData(i)&amp;&amp;p&amp;&amp;i[o]&amp;&amp;(o!==&quot;focus&quot;&amp;&amp;o!==&quot;blur&quot;||n.target.offsetWidth!==0)&amp;&amp;!H.isWindow(i)&amp;&amp;(h=i[p],h&amp;&amp;(i[p]=null),H.event.triggered=o,i[o](),H.event.triggered=t,h&amp;&amp;(i[p]=h)),n.result}},dispatch:function(n){n=H.event.fix(n||e.event);var r=(H._data(this,&quot;events&quot;)||{})[n.type]||[],i=r.delegateCount,s=[].slice.call(arguments,0),o=!n.exclusive&amp;&amp;!n.namespace,u=H.event.special[n.type]||{},a=[],f,l,c,h,p,d,v,m,g,y,b;s[0]=n,n.delegateTarget=this;if(!u.preDispatch||u.preDispatch.call(this,n)!==!1){if(i&amp;&amp;(!n.button||n.type!==&quot;click&quot;)){h=H(this),h.context=this.ownerDocument||this;for(c=n.target;c!=this;c=c.parentNode||this)if(c.disabled!==!0){d={},m=[],h[0]=c;for(f=0;f&lt;i;f++)g=r[f],y=g.selector,d[y]===t&amp;&amp;(d[y]=g.quick?st(c,g.quick):h.is(y)),d[y]&amp;&amp;m.push(g);m.length&amp;&amp;a.push({elem:c,matches:m})}}r.length&gt;i&amp;&amp;a.push({elem:this,matches:r.slice(i)});for(f=0;f&lt;a.length&amp;&amp;!n.isPropagationStopped();f++){v=a[f],n.currentTarget=v.elem;for(l=0;l&lt;v.matches.length&amp;&amp;!n.isImmediatePropagationStopped();l++){g=v.matches[l];if(o||!n.namespace&amp;&amp;!g.namespace||n.namespace_re&amp;&amp;n.namespace_re.test(g.namespace))n.data=g.data,n.handleObj=g,p=((H.event.special[g.origType]||{}).handle||g.handler).apply(v.elem,s),p!==t&amp;&amp;(n.result=p,p===!1&amp;&amp;(n.preventDefault(),n.stopPropagation()))}}return u.postDispatch&amp;&amp;u.postDispatch.call(this,n),n.result}},props:&quot;attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which&quot;.split(&quot; &quot;),fixHooks:{},keyHooks:{props:&quot;char charCode key keyCode&quot;.split(&quot; &quot;),filter:function(e,t){return e.which==null&amp;&amp;(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:&quot;button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement&quot;.split(&quot; &quot;),filter:function(e,n){var r,i,s,o=n.button,u=n.fromElement;return e.pageX==null&amp;&amp;n.clientX!=null&amp;&amp;(r=e.target.ownerDocument||_,i=r.documentElement,s=r.body,e.pageX=n.clientX+(i&amp;&amp;i.scrollLeft||s&amp;&amp;s.scrollLeft||0)-(i&amp;&amp;i.clientLeft||s&amp;&amp;s.clientLeft||0),e.pageY=n.clientY+(i&amp;&amp;i.scrollTop||s&amp;&amp;s.scrollTop||0)-(i&amp;&amp;i.clientTop||s&amp;&amp;s.clientTop||0)),!e.relatedTarget&amp;&amp;u&amp;&amp;(e.relatedTarget=u===e.target?n.toElement:u),!e.which&amp;&amp;o!==t&amp;&amp;(e.which=o&amp;1?1:o&amp;2?3:o&amp;4?2:0),e}},fix:function(e){if(e[H.expando])return e;var n,r,i=e,s=H.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=H.Event(i);for(n=o.length;n;)r=o[--n],e[r]=i[r];return e.target||(e.target=i.srcElement||_),e.target.nodeType===3&amp;&amp;(e.target=e.target.parentNode),e.metaKey===t&amp;&amp;(e.metaKey=e.ctrlKey),s.filter?s.filter(e,i):e},special:{ready:{setup:H.bindReady},load:{noBubble:!0},focus:{delegateType:&quot;focusin&quot;},blur:{delegateType:&quot;focusout&quot;},beforeunload:{setup:function(e,t,n){H.isWindow(this)&amp;&amp;(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&amp;&amp;(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=H.extend(new H.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?H.event.trigger(i,null,t):H.event.dispatch.call(t,i),i.isDefaultPrevented()&amp;&amp;n.preventDefault()}},H.event.handle=H.event.dispatch,H.removeEvent=_.removeEventListener?function(e,t,n){e.removeEventListener&amp;&amp;e.removeEventListener(t,n,!1)}:function(e,t,n){e.detachEvent&amp;&amp;e.detachEvent(&quot;on&quot;+t,n)},H.Event=function(e,t){if(!(this instanceof H.Event))return new H.Event(e,t);e&amp;&amp;e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&amp;&amp;e.getPreventDefault()?C:k):this.type=e,t&amp;&amp;H.extend(this,t),this.timeStamp=e&amp;&amp;e.timeStamp||H.now(),this[H.expando]=!0},H.Event.prototype={preventDefault:function(){this.isDefaultPrevented=C;var e=this.originalEvent;!e||(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=C;var e=this.originalEvent;!e||(e.stopPropagation&amp;&amp;e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=C,this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k},H.each({mouseenter:&quot;mouseover&quot;,mouseleave:&quot;mouseout&quot;},function(e,t){H.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n=this,r=e.relatedTarget,i=e.handleObj,s=i.selector,o;if(!r||r!==n&amp;&amp;!H.contains(n,r))e.type=i.origType,o=i.handler.apply(this,arguments),e.type=t;return o}}}),H.support.submitBubbles||(H.event.special.submit={setup:function(){if(H.nodeName(this,&quot;form&quot;))return!1;H.event.add(this,&quot;click._submit keypress._submit&quot;,function(e){var n=e.target,r=H.nodeName(n,&quot;input&quot;)||H.nodeName(n,&quot;button&quot;)?n.form:t;r&amp;&amp;!r._submit_attached&amp;&amp;(H.event.add(r,&quot;submit._submit&quot;,function(e){e._submit_bubble=!0}),r._submit_attached=!0)})},postDispatch:function(e){e._submit_bubble&amp;&amp;(delete e._submit_bubble,this.parentNode&amp;&amp;!e.isTrigger&amp;&amp;H.event.simulate(&quot;submit&quot;,this.parentNode,e,!0))},teardown:function(){if(H.nodeName(this,&quot;form&quot;))return!1;H.event.remove(this,&quot;._submit&quot;)}}),H.support.changeBubbles||(H.event.special.change={setup:function(){if(G.test(this.nodeName)){if(this.type===&quot;checkbox&quot;||this.type===&quot;radio&quot;)H.event.add(this,&quot;propertychange._change&quot;,function(e){e.originalEvent.propertyName===&quot;checked&quot;&amp;&amp;(this._just_changed=!0)}),H.event.add(this,&quot;click._change&quot;,function(e){this._just_changed&amp;&amp;!e.isTrigger&amp;&amp;(this._just_changed=!1,H.event.simulate(&quot;change&quot;,this,e,!0))});return!1}H.event.add(this,&quot;beforeactivate._change&quot;,function(e){var t=e.target;G.test(t.nodeName)&amp;&amp;!t._change_attached&amp;&amp;(H.event.add(t,&quot;change._change&quot;,function(e){this.parentNode&amp;&amp;!e.isSimulated&amp;&amp;!e.isTrigger&amp;&amp;H.event.simulate(&quot;change&quot;,this.parentNode,e,!0)}),t._change_attached=!0)})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!==&quot;radio&quot;&amp;&amp;t.type!==&quot;checkbox&quot;)return e.handleObj.handler.apply(this,arguments)},teardown:function(){return H.event.remove(this,&quot;._change&quot;),G.test(this.nodeName)}}),H.support.focusinBubbles||H.each({focus:&quot;focusin&quot;,blur:&quot;focusout&quot;},function(e,t){var n=0,r=function(e){H.event.simulate(t,e.target,H.event.fix(e),!0)};H.event.special[t]={setup:function(){n++===0&amp;&amp;_.addEventListener(e,r,!0)},teardown:function(){--n===0&amp;&amp;_.removeEventListener(e,r,!0)}}}),H.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e==&quot;object&quot;){typeof n!=&quot;string&quot;&amp;&amp;(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&amp;&amp;i==null?(i=n,r=n=t):i==null&amp;&amp;(typeof n==&quot;string&quot;?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=k;else if(!i)return this;return s===1&amp;&amp;(o=i,i=function(e){return H().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=H.guid++)),this.each(function(){H.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){if(e&amp;&amp;e.preventDefault&amp;&amp;e.handleObj){var i=e.handleObj;return H(e.delegateTarget).off(i.namespace?i.origType+&quot;.&quot;+i.namespace:i.origType,i.selector,i.handler),this}if(typeof e==&quot;object&quot;){for(var s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n==&quot;function&quot;)r=n,n=t;return r===!1&amp;&amp;(r=k),this.each(function(){H.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return H(this.context).on(e,this.selector,t,n),this},die:function(e,t){return H(this.context).off(e,this.selector||&quot;**&quot;,t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length==1?this.off(e,&quot;**&quot;):this.off(t,e,n)},trigger:function(e,t){return this.each(function(){H.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return H.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||H.guid++,r=0,i=function(n){var i=(H._data(this,&quot;lastToggle&quot;+e.guid)||0)%r;return H._data(this,&quot;lastToggle&quot;+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r&lt;t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),H.each(&quot;blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu&quot;.split(&quot; &quot;),function(e,t){H.fn[t]=function(e,n){return n==null&amp;&amp;(n=e,e=null),arguments.length&gt;0?this.on(t,null,e,n):this.trigger(t)},H.attrFn&amp;&amp;(H.attrFn[t]=!0),et.test(t)&amp;&amp;(H.event.fixHooks[t]=H.event.keyHooks),tt.test(t)&amp;&amp;(H.event.fixHooks[t]=H.event.mouseHooks)}),function(){function e(e,t,n,r,s,o){for(var u=0,a=r.length;u&lt;a;u++){var f=r[u];if(f){var l=!1;f=f[e];while(f){if(f[i]===n){l=r[f.sizset];break}if(f.nodeType===1){o||(f[i]=n,f.sizset=u);if(typeof t!=&quot;string&quot;){if(f===t){l=!0;break}}else if(h.filter(t,[f]).length&gt;0){l=f;break}}f=f[e]}r[u]=l}}}function n(e,t,n,r,s,o){for(var u=0,a=r.length;u&lt;a;u++){var f=r[u];if(f){var l=!1;f=f[e];while(f){if(f[i]===n){l=r[f.sizset];break}f.nodeType===1&amp;&amp;!o&amp;&amp;(f[i]=n,f.sizset=u);if(f.nodeName.toLowerCase()===t){l=f;break}f=f[e]}r[u]=l}}}var r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|[&#39;&quot;][^&#39;&quot;]*[&#39;&quot;]|[^\[\]&#39;&quot;]+)+\]|\\.|[^ &gt;+~,(\[\\]+)+|[&gt;+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=&quot;sizcache&quot;+(Math.random()+&quot;&quot;).replace(&quot;.&quot;,&quot;&quot;),s=0,o=Object.prototype.toString,u=!1,a=!0,f=/\\/g,l=/\r\n/g,c=/\W/;[0,0].sort(function(){return a=!1,0});var h=function(e,t,n,i){n=n||[],t=t||_;var s=t;if(t.nodeType!==1&amp;&amp;t.nodeType!==9)return[];if(!e||typeof e!=&quot;string&quot;)return n;var u,a,f,l,c,p,m,g,b=!0,w=h.isXML(t),E=[],x=e;do{r.exec(&quot;&quot;),u=r.exec(x);if(u){x=u[3],E.push(u[1]);if(u[2]){l=u[3];break}}}while(u);if(E.length&gt;1&amp;&amp;v.exec(e))if(E.length===2&amp;&amp;d.relative[E[0]])a=S(E[0]+E[1],t,i);else{a=d.relative[E[0]]?[t]:h(E.shift(),t);while(E.length)e=E.shift(),d.relative[e]&amp;&amp;(e+=E.shift()),a=S(e,a,i)}else{!i&amp;&amp;E.length&gt;1&amp;&amp;t.nodeType===9&amp;&amp;!w&amp;&amp;d.match.ID.test(E[0])&amp;&amp;!d.match.ID.test(E[E.length-1])&amp;&amp;(c=h.find(E.shift(),t,w),t=c.expr?h.filter(c.expr,c.set)[0]:c.set[0]);if(t){c=i?{expr:E.pop(),set:y(i)}:h.find(E.pop(),E.length!==1||E[0]!==&quot;~&quot;&amp;&amp;E[0]!==&quot;+&quot;||!t.parentNode?t:t.parentNode,w),a=c.expr?h.filter(c.expr,c.set):c.set,E.length&gt;0?f=y(a):b=!1;while(E.length)p=E.pop(),m=p,d.relative[p]?m=E.pop():p=&quot;&quot;,m==null&amp;&amp;(m=t),d.relative[p](f,m,w)}else f=E=[]}f||(f=a),f||h.error(p||e);if(o.call(f)===&quot;[object Array]&quot;)if(!b)n.push.apply(n,f);else if(t&amp;&amp;t.nodeType===1)for(g=0;f[g]!=null;g++)f[g]&amp;&amp;(f[g]===!0||f[g].nodeType===1&amp;&amp;h.contains(t,f[g]))&amp;&amp;n.push(a[g]);else for(g=0;f[g]!=null;g++)f[g]&amp;&amp;f[g].nodeType===1&amp;&amp;n.push(a[g]);else y(f,n);return l&amp;&amp;(h(l,s,n,i),h.uniqueSort(n)),n};h.uniqueSort=function(e){if(w){u=a,e.sort(w);if(u)for(var t=1;t&lt;e.length;t++)e[t]===e[t-1]&amp;&amp;e.splice(t--,1)}return e},h.matches=function(e,t){return h(e,null,null,t)},h.matchesSelector=function(e,t){return h(t,null,null,[e]).length&gt;0},h.find=function(e,t,n){var r,i,s,o,u,a;if(!e)return[];for(i=0,s=d.order.length;i&lt;s;i++){u=d.order[i];if(o=d.leftMatch[u].exec(e)){a=o[1],o.splice(1,1);if(a.substr(a.length-1)!==&quot;\\&quot;){o[1]=(o[1]||&quot;&quot;).replace(f,&quot;&quot;),r=d.find[u](o,t,n);if(r!=null){e=e.replace(d.match[u],&quot;&quot;);break}}}}return r||(r=typeof t.getElementsByTagName!=&quot;undefined&quot;?t.getElementsByTagName(&quot;*&quot;):[]),{set:r,expr:e}},h.filter=function(e,n,r,i){var s,o,u,a,f,l,c,p,v,m=e,g=[],y=n,b=n&amp;&amp;n[0]&amp;&amp;h.isXML(n[0]);while(e&amp;&amp;n.length){for(u in d.filter)if((s=d.leftMatch[u].exec(e))!=null&amp;&amp;s[2]){l=d.filter[u],c=s[1],o=!1,s.splice(1,1);if(c.substr(c.length-1)===&quot;\\&quot;)continue;y===g&amp;&amp;(g=[]);if(d.preFilter[u]){s=d.preFilter[u](s,y,r,g,i,b);if(!s)o=a=!0;else if(s===!0)continue}if(s)for(p=0;(f=y[p])!=null;p++)f&amp;&amp;(a=l(f,s,p,y),v=i^a,r&amp;&amp;a!=null?v?o=!0:y[p]=!1:v&amp;&amp;(g.push(f),o=!0));if(a!==t){r||(y=g),e=e.replace(d.match[u],&quot;&quot;);if(!o)return[];break}}if(e===m){if(o!=null)break;h.error(e)}m=e}return y},h.error=function(e){throw new Error(&quot;Syntax error, unrecognized expression: &quot;+e)};var p=h.getText=function(e){var t,n,r=e.nodeType,i=&quot;&quot;;if(r){if(r===1||r===9||r===11){if(typeof e.textContent==&quot;string&quot;)return e.textContent;if(typeof e.innerText==&quot;string&quot;)return e.innerText.replace(l,&quot;&quot;);for(e=e.firstChild;e;e=e.nextSibling)i+=p(e)}else if(r===3||r===4)return e.nodeValue}else for(t=0;n=e[t];t++)n.nodeType!==8&amp;&amp;(i+=p(n));return i},d=h.selectors={order:[&quot;ID&quot;,&quot;NAME&quot;,&quot;TAG&quot;],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=[&#39;&quot;]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)[&#39;&quot;]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:([&#39;&quot;])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\(([&#39;&quot;]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{&quot;class&quot;:&quot;className&quot;,&quot;for&quot;:&quot;htmlFor&quot;},attrHandle:{href:function(e){return e.getAttribute(&quot;href&quot;)},type:function(e){return e.getAttribute(&quot;type&quot;)}},relative:{&quot;+&quot;:function(e,t){var n=typeof t==&quot;string&quot;,r=n&amp;&amp;!c.test(t),i=n&amp;&amp;!r;r&amp;&amp;(t=t.toLowerCase());for(var s=0,o=e.length,u;s&lt;o;s++)if(u=e[s]){while((u=u.previousSibling)&amp;&amp;u.nodeType!==1);e[s]=i||u&amp;&amp;u.nodeName.toLowerCase()===t?u||!1:u===t}i&amp;&amp;h.filter(t,e,!0)},&quot;&gt;&quot;:function(e,t){var n,r=typeof t==&quot;string&quot;,i=0,s=e.length;if(r&amp;&amp;!c.test(t)){t=t.toLowerCase();for(;i&lt;s;i++){n=e[i];if(n){var o=n.parentNode;e[i]=o.nodeName.toLowerCase()===t?o:!1}}}else{for(;i&lt;s;i++)n=e[i],n&amp;&amp;(e[i]=r?n.parentNode:n.parentNode===t);r&amp;&amp;h.filter(t,e,!0)}},&quot;&quot;:function(t,r,i){var o,u=s++,a=e;typeof r==&quot;string&quot;&amp;&amp;!c.test(r)&amp;&amp;(r=r.toLowerCase(),o=r,a=n),a(&quot;parentNode&quot;,r,u,t,o,i)},&quot;~&quot;:function(t,r,i){var o,u=s++,a=e;typeof r==&quot;string&quot;&amp;&amp;!c.test(r)&amp;&amp;(r=r.toLowerCase(),o=r,a=n),a(&quot;previousSibling&quot;,r,u,t,o,i)}},find:{ID:function(e,t,n){if(typeof t.getElementById!=&quot;undefined&quot;&amp;&amp;!n){var r=t.getElementById(e[1]);return r&amp;&amp;r.parentNode?[r]:[]}},NAME:function(e,t){if(typeof t.getElementsByName!=&quot;undefined&quot;){var n=[],r=t.getElementsByName(e[1]);for(var i=0,s=r.length;i&lt;s;i++)r[i].getAttribute(&quot;name&quot;)===e[1]&amp;&amp;n.push(r[i]);return n.length===0?null:n}},TAG:function(e,t){if(typeof t.getElementsByTagName!=&quot;undefined&quot;)return t.getElementsByTagName(e[1])}},preFilter:{CLASS:function(e,t,n,r,i,s){e=&quot; &quot;+e[1].replace(f,&quot;&quot;)+&quot; &quot;;if(s)return e;for(var o=0,u;(u=t[o])!=null;o++)u&amp;&amp;(i^(u.className&amp;&amp;(&quot; &quot;+u.className+&quot; &quot;).replace(/[\t\n\r]/g,&quot; &quot;).indexOf(e)&gt;=0)?n||r.push(u):n&amp;&amp;(t[o]=!1));return!1},ID:function(e){return e[1].replace(f,&quot;&quot;)},TAG:function(e,t){return e[1].replace(f,&quot;&quot;).toLowerCase()},CHILD:function(e){if(e[1]===&quot;nth&quot;){e[2]||h.error(e[0]),e[2]=e[2].replace(/^\+|\s*/g,&quot;&quot;);var t=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]===&quot;even&quot;&amp;&amp;&quot;2n&quot;||e[2]===&quot;odd&quot;&amp;&amp;&quot;2n+1&quot;||!/\D/.test(e[2])&amp;&amp;&quot;0n+&quot;+e[2]||e[2]);e[2]=t[1]+(t[2]||1)-0,e[3]=t[3]-0}else e[2]&amp;&amp;h.error(e[0]);return e[0]=s++,e},ATTR:function(e,t,n,r,i,s){var o=e[1]=e[1].replace(f,&quot;&quot;);return!s&amp;&amp;d.attrMap[o]&amp;&amp;(e[1]=d.attrMap[o]),e[4]=(e[4]||e[5]||&quot;&quot;).replace(f,&quot;&quot;),e[2]===&quot;~=&quot;&amp;&amp;(e[4]=&quot; &quot;+e[4]+&quot; &quot;),e},PSEUDO:function(e,t,n,i,s){if(e[1]===&quot;not&quot;){if(!((r.exec(e[3])||&quot;&quot;).length&gt;1||/^\w/.test(e[3]))){var o=h.filter(e[3],t,n,!0^s);return n||i.push.apply(i,o),!1}e[3]=h(e[3],null,null,t)}else if(d.match.POS.test(e[0])||d.match.CHILD.test(e[0]))return!0;return e},POS:function(e){return e.unshift(!0),e}},filters:{enabled:function(e){return e.disabled===!1&amp;&amp;e.type!==&quot;hidden&quot;},disabled:function(e){return e.disabled===!0},checked:function(e){return e.checked===!0},selected:function(e){return e.parentNode&amp;&amp;e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!!e.firstChild},empty:function(e){return!e.firstChild},has:function(e,t,n){return!!h(n[3],e).length},header:function(e){return/h\d/i.test(e.nodeName)},text:function(e){var t=e.getAttribute(&quot;type&quot;),n=e.type;return e.nodeName.toLowerCase()===&quot;input&quot;&amp;&amp;&quot;text&quot;===n&amp;&amp;(t===n||t===null)},radio:function(e){return e.nodeName.toLowerCase()===&quot;input&quot;&amp;&amp;&quot;radio&quot;===e.type},checkbox:function(e){return e.nodeName.toLowerCase()===&quot;input&quot;&amp;&amp;&quot;checkbox&quot;===e.type},file:function(e){return e.nodeName.toLowerCase()===&quot;input&quot;&amp;&amp;&quot;file&quot;===e.type},password:function(e){return e.nodeName.toLowerCase()===&quot;input&quot;&amp;&amp;&quot;password&quot;===e.type},submit:function(e){var t=e.nodeName.toLowerCase();return(t===&quot;input&quot;||t===&quot;button&quot;)&amp;&amp;&quot;submit&quot;===e.type},image:function(e){return e.nodeName.toLowerCase()===&quot;input&quot;&amp;&amp;&quot;image&quot;===e.type},reset:function(e){var t=e.nodeName.toLowerCase();return(t===&quot;input&quot;||t===&quot;button&quot;)&amp;&amp;&quot;reset&quot;===e.type},button:function(e){var t=e.nodeName.toLowerCase();return t===&quot;input&quot;&amp;&amp;&quot;button&quot;===e.type||t===&quot;button&quot;},input:function(e){return/input|select|textarea|button/i.test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(e,t){return t===0},last:function(e,t,n,r){return t===r.length-1},even:function(e,t){return t%2===0},odd:function(e,t){return t%2===1},lt:function(e,t,n){return t&lt;n[3]-0},gt:function(e,t,n){return t&gt;n[3]-0},nth:function(e,t,n){return n[3]-0===t},eq:function(e,t,n){return n[3]-0===t}},filter:{PSEUDO:function(e,t,n,r){var i=t[1],s=d.filters[i];if(s)return s(e,n,t,r);if(i===&quot;contains&quot;)return(e.textContent||e.innerText||p([e])||&quot;&quot;).indexOf(t[3])&gt;=0;if(i===&quot;not&quot;){var o=t[3];for(var u=0,a=o.length;u&lt;a;u++)if(o[u]===e)return!1;return!0}h.error(i)},CHILD:function(e,t){var n,r,s,o,u,a,f,l=t[1],c=e;switch(l){case&quot;only&quot;:case&quot;first&quot;:while(c=c.previousSibling)if(c.nodeType===1)return!1;if(l===&quot;first&quot;)return!0;c=e;case&quot;last&quot;:while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0;case&quot;nth&quot;:n=t[2],r=t[3];if(n===1&amp;&amp;r===0)return!0;s=t[0],o=e.parentNode;if(o&amp;&amp;(o[i]!==s||!e.nodeIndex)){a=0;for(c=o.firstChild;c;c=c.nextSibling)c.nodeType===1&amp;&amp;(c.nodeIndex=++a);o[i]=s}return f=e.nodeIndex-r,n===0?f===0:f%n===0&amp;&amp;f/n&gt;=0}},ID:function(e,t){return e.nodeType===1&amp;&amp;e.getAttribute(&quot;id&quot;)===t},TAG:function(e,t){return t===&quot;*&quot;&amp;&amp;e.nodeType===1||!!e.nodeName&amp;&amp;e.nodeName.toLowerCase()===t},CLASS:function(e,t){return(&quot; &quot;+(e.className||e.getAttribute(&quot;class&quot;))+&quot; &quot;).indexOf(t)&gt;-1},ATTR:function(e,t){var n=t[1],r=h.attr?h.attr(e,n):d.attrHandle[n]?d.attrHandle[n](e):e[n]!=null?e[n]:e.getAttribute(n),i=r+&quot;&quot;,s=t[2],o=t[4];return r==null?s===&quot;!=&quot;:!s&amp;&amp;h.attr?r!=null:s===&quot;=&quot;?i===o:s===&quot;*=&quot;?i.indexOf(o)&gt;=0:s===&quot;~=&quot;?(&quot; &quot;+i+&quot; &quot;).indexOf(o)&gt;=0:o?s===&quot;!=&quot;?i!==o:s===&quot;^=&quot;?i.indexOf(o)===0:s===&quot;$=&quot;?i.substr(i.length-o.length)===o:s===&quot;|=&quot;?i===o||i.substr(0,o.length+1)===o+&quot;-&quot;:!1:i&amp;&amp;r!==!1},POS:function(e,t,n,r){var i=t[2],s=d.setFilters[i];if(s)return s(e,n,t,r)}}},v=d.match.POS,m=function(e,t){return&quot;\\&quot;+(t-0+1)};for(var g in d.match)d.match[g]=new RegExp(d.match[g].source+/(?![^\[]*\])(?![^\(]*\))/.source),d.leftMatch[g]=new RegExp(/(^(?:.|\r|\n)*?)/.source+d.match[g].source.replace(/\\(\d+)/g,m));d.match.globalPOS=v;var y=function(e,t){return e=Array.prototype.slice.call(e,0),t?(t.push.apply(t,e),t):e};try{Array.prototype.slice.call(_.documentElement.childNodes,0)[0].nodeType}catch(b){y=function(e,t){var n=0,r=t||[];if(o.call(e)===&quot;[object Array]&quot;)Array.prototype.push.apply(r,e);else if(typeof e.length==&quot;number&quot;)for(var i=e.length;n&lt;i;n++)r.push(e[n]);else for(;e[n];n++)r.push(e[n]);return r}}var w,E;_.documentElement.compareDocumentPosition?w=function(e,t){return e===t?(u=!0,0):!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition?-1:1:e.compareDocumentPosition(t)&amp;4?-1:1}:(w=function(e,t){if(e===t)return u=!0,0;if(e.sourceIndex&amp;&amp;t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,a=t.parentNode,f=o;if(o===a)return E(e,t);if(!o)return-1;if(!a)return 1;while(f)i.unshift(f),f=f.parentNode;f=a;while(f)s.unshift(f),f=f.parentNode;n=i.length,r=s.length;for(var l=0;l&lt;n&amp;&amp;l&lt;r;l++)if(i[l]!==s[l])return E(i[l],s[l]);return l===n?E(e,s[l],-1):E(i[l],t,1)},E=function(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}),function(){var e=_.createElement(&quot;div&quot;),n=&quot;script&quot;+(new Date).getTime(),r=_.documentElement;e.innerHTML=&quot;&lt;a name=&#39;&quot;+n+&quot;&#39;/&gt;&quot;,r.insertBefore(e,r.firstChild),_.getElementById(n)&amp;&amp;(d.find.ID=function(e,n,r){if(typeof n.getElementById!=&quot;undefined&quot;&amp;&amp;!r){var i=n.getElementById(e[1]);return i?i.id===e[1]||typeof i.getAttributeNode!=&quot;undefined&quot;&amp;&amp;i.getAttributeNode(&quot;id&quot;).nodeValue===e[1]?[i]:t:[]}},d.filter.ID=function(e,t){var n=typeof e.getAttributeNode!=&quot;undefined&quot;&amp;&amp;e.getAttributeNode(&quot;id&quot;);return e.nodeType===1&amp;&amp;n&amp;&amp;n.nodeValue===t}),r.removeChild(e),r=e=null}(),function(){var e=_.createElement(&quot;div&quot;);e.appendChild(_.createComment(&quot;&quot;)),e.getElementsByTagName(&quot;*&quot;).length&gt;0&amp;&amp;(d.find.TAG=function(e,t){var n=t.getElementsByTagName(e[1]);if(e[1]===&quot;*&quot;){var r=[];for(var i=0;n[i];i++)n[i].nodeType===1&amp;&amp;r.push(n[i]);n=r}return n}),e.innerHTML=&quot;&lt;a href=&#39;#&#39;&gt;&lt;/a&gt;&quot;,e.firstChild&amp;&amp;typeof e.firstChild.getAttribute!=&quot;undefined&quot;&amp;&amp;e.firstChild.getAttribute(&quot;href&quot;)!==&quot;#&quot;&amp;&amp;(d.attrHandle.href=function(e){return e.getAttribute(&quot;href&quot;,2)}),e=null}(),_.querySelectorAll&amp;&amp;function(){var e=h,t=_.createElement(&quot;div&quot;),n=&quot;__sizzle__&quot;;t.innerHTML=&quot;&lt;p class=&#39;TEST&#39;&gt;&lt;/p&gt;&quot;;if(!t.querySelectorAll||t.querySelectorAll(&quot;.TEST&quot;).length!==0){h=function(t,r,i,s){r=r||_;if(!s&amp;&amp;!h.isXML(r)){var o=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(t);if(o&amp;&amp;(r.nodeType===1||r.nodeType===9)){if(o[1])return y(r.getElementsByTagName(t),i);if(o[2]&amp;&amp;d.find.CLASS&amp;&amp;r.getElementsByClassName)return y(r.getElementsByClassName(o[2]),i)}if(r.nodeType===9){if(t===&quot;body&quot;&amp;&amp;r.body)return y([r.body],i);if(o&amp;&amp;o[3]){var u=r.getElementById(o[3]);if(!u||!u.parentNode)return y([],i);if(u.id===o[3])return y([u],i)}try{return y(r.querySelectorAll(t),i)}catch(a){}}else if(r.nodeType===1&amp;&amp;r.nodeName.toLowerCase()!==&quot;object&quot;){var f=r,l=r.getAttribute(&quot;id&quot;),c=l||n,p=r.parentNode,v=/^\s*[+~]/.test(t);l?c=c.replace(/&#39;/g,&quot;\\$&amp;&quot;):r.setAttribute(&quot;id&quot;,c),v&amp;&amp;p&amp;&amp;(r=r.parentNode);try{if(!v||p)return y(r.querySelectorAll(&quot;[id=&#39;&quot;+c+&quot;&#39;] &quot;+t),i)}catch(m){}finally{l||f.removeAttribute(&quot;id&quot;)}}}return e(t,r,i,s)};for(var r in e)h[r]=e[r];t=null}}(),function(){var e=_.documentElement,t=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(t){var n=!t.call(_.createElement(&quot;div&quot;),&quot;div&quot;),r=!1;try{t.call(_.documentElement,&quot;[test!=&#39;&#39;]:sizzle&quot;)}catch(i){r=!0}h.matchesSelector=function(e,i){i=i.replace(/\=\s*([^&#39;&quot;\]]*)\s*\]/g,&quot;=&#39;$1&#39;]&quot;);if(!h.isXML(e))try{if(r||!d.match.PSEUDO.test(i)&amp;&amp;!/!=/.test(i)){var s=t.call(e,i);if(s||!n||e.document&amp;&amp;e.document.nodeType!==11)return s}}catch(o){}return h(i,null,null,[e]).length&gt;0}}}(),function(){var e=_.createElement(&quot;div&quot;);e.innerHTML=&quot;&lt;div class=&#39;test e&#39;&gt;&lt;/div&gt;&lt;div class=&#39;test&#39;&gt;&lt;/div&gt;&quot;;if(!!e.getElementsByClassName&amp;&amp;e.getElementsByClassName(&quot;e&quot;).length!==0){e.lastChild.className=&quot;e&quot;;if(e.getElementsByClassName(&quot;e&quot;).length===1)return;d.order.splice(1,0,&quot;CLASS&quot;),d.find.CLASS=function(e,t,n){if(typeof t.getElementsByClassName!=&quot;undefined&quot;&amp;&amp;!n)return t.getElementsByClassName(e[1])},e=null}}(),_.documentElement.contains?h.contains=function(e,t){return e!==t&amp;&amp;(e.contains?e.contains(t):!0)}:_.documentElement.compareDocumentPosition?h.contains=function(e,t){return!!(e.compareDocumentPosition(t)&amp;16)}:h.contains=function(){return!1},h.isXML=function(e){var t=(e?e.ownerDocument||e:0).documentElement;return t?t.nodeName!==&quot;HTML&quot;:!1};var S=function(e,t,n){var r,i=[],s=&quot;&quot;,o=t.nodeType?[t]:t;while(r=d.match.PSEUDO.exec(e))s+=r[0],e=e.replace(d.match.PSEUDO,&quot;&quot;);e=d.relative[e]?e+&quot;*&quot;:e;for(var u=0,a=o.length;u&lt;a;u++)h(e,o[u],i,n);return h.filter(s,i)};h.attr=H.attr,h.selectors.attrMap={},H.find=h,H.expr=h.selectors,H.expr[&quot;:&quot;]=H.expr.filters,H.unique=h.uniqueSort,H.text=h.getText,H.isXMLDoc=h.isXML,H.contains=h.contains}();var ut=/Until$/,at=/^(?:parents|prevUntil|prevAll)/,ft=/,/,lt=/^.[^:#\[\.,]*$/,ct=Array.prototype.slice,ht=H.expr.match.globalPOS,pt={children:!0,contents:!0,next:!0,prev:!0};H.fn.extend({find:function(e){var t=this,n,r;if(typeof e!=&quot;string&quot;)return H(e).filter(function(){for(n=0,r=t.length;n&lt;r;n++)if(H.contains(t[n],this))return!0});var i=this.pushStack(&quot;&quot;,&quot;find&quot;,e),s,o,u;for(n=0,r=this.length;n&lt;r;n++){s=i.length,H.find(e,this[n],i);if(n&gt;0)for(o=s;o&lt;i.length;o++)for(u=0;u&lt;s;u++)if(i[u]===i[o]){i.splice(o--,1);break}}return i},has:function(e){var t=H(e);return this.filter(function(){for(var e=0,n=t.length;e&lt;n;e++)if(H.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(T(this,e,!1),&quot;not&quot;,e)},filter:function(e){return this.pushStack(T(this,e,!0),&quot;filter&quot;,e)},is:function(e){return!!e&amp;&amp;(typeof e==&quot;string&quot;?ht.test(e)?H(e,this.context).index(this[0])&gt;=0:H.filter(e,this).length&gt;0:this.filter(e).length&gt;0)},closest:function(e,t){var n=[],r,i,s=this[0];if(H.isArray(e)){var o=1;while(s&amp;&amp;s.ownerDocument&amp;&amp;s!==t){for(r=0;r&lt;e.length;r++)H(s).is(e[r])&amp;&amp;n.push({selector:e[r],elem:s,level:o});s=s.parentNode,o++}return n}var u=ht.test(e)||typeof e!=&quot;string&quot;?H(e,t||this.context):0;for(r=0,i=this.length;r&lt;i;r++){s=this[r];while(s){if(u?u.index(s)&gt;-1:H.find.matchesSelector(s,e)){n.push(s);break}s=s.parentNode;if(!s||!s.ownerDocument||s===t||s.nodeType===11)break}}return n=n.length&gt;1?H.unique(n):n,this.pushStack(n,&quot;closest&quot;,e)},index:function(e){return e?typeof e==&quot;string&quot;?H.inArray(this[0],H(e)):H.inArray(e.jquery?e[0]:e,this):this[0]&amp;&amp;this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e==&quot;string&quot;?H(e,t):H.makeArray(e&amp;&amp;e.nodeType?[e]:e),r=H.merge(this.get(),n);return this.pushStack(N(n[0])||N(r[0])?r:H.unique(r))},andSelf:function(){return this.add(this.prevObject)}}),H.each({parent:function(e){var t=e.parentNode;return t&amp;&amp;t.nodeType!==11?t:null},parents:function(e){return H.dir(e,&quot;parentNode&quot;)},parentsUntil:function(e,t,n){return H.dir(e,&quot;parentNode&quot;,n)},next:function(e){return H.nth(e,2,&quot;nextSibling&quot;)},prev:function(e){return H.nth(e,2,&quot;previousSibling&quot;)},nextAll:function(e){return H.dir(e,&quot;nextSibling&quot;)},prevAll:function(e){return H.dir(e,&quot;previousSibling&quot;)},nextUntil:function(e,t,n){return H.dir(e,&quot;nextSibling&quot;,n)},prevUntil:function(e,t,n){return H.dir(e,&quot;previousSibling&quot;,n)},siblings:function(e){return H.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return H.sibling(e.firstChild)},contents:function(e){return H.nodeName(e,&quot;iframe&quot;)?e.contentDocument||e.contentWindow.document:H.makeArray(e.childNodes)}},function(e,t){H.fn[e]=function(n,r){var i=H.map(this,t,n);return ut.test(e)||(r=n),r&amp;&amp;typeof r==&quot;string&quot;&amp;&amp;(i=H.filter(r,i)),i=this.length&gt;1&amp;&amp;!pt[e]?H.unique(i):i,(this.length&gt;1||ft.test(r))&amp;&amp;at.test(e)&amp;&amp;(i=i.reverse()),this.pushStack(i,e,ct.call(arguments).join(&quot;,&quot;))}}),H.extend({filter:function(e,t,n){return n&amp;&amp;(e=&quot;:not(&quot;+e+&quot;)&quot;),t.length===1?H.find.matchesSelector(t[0],e)?[t[0]]:[]:H.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&amp;&amp;s.nodeType!==9&amp;&amp;(r===t||s.nodeType!==1||!H(s).is(r)))s.nodeType===1&amp;&amp;i.push(s),s=s[n];return i},nth:function(e,t,n,r){t=t||1;var i=0;for(;e;e=e[n])if(e.nodeType===1&amp;&amp;++i===t)break;return e},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&amp;&amp;e!==t&amp;&amp;n.push(e);return n}});var dt=&quot;abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video&quot;,vt=/ jQuery\d+=&quot;(?:\d+|null)&quot;/g,mt=/^\s+/,gt=/&lt;(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^&gt;]*)\/&gt;/ig,yt=/&lt;([\w:]+)/,bt=/&lt;tbody/i,wt=/&lt;|&amp;#?\w+;/,Et=/&lt;(?:script|style)/i,St=/&lt;(?:script|object|embed|option|style)/i,xt=new RegExp(&quot;&lt;(?:&quot;+dt+&quot;)[\\s/&gt;]&quot;,&quot;i&quot;),Tt=/checked\s*(?:[^=]|=\s*.checked.)/i,Nt=/\/(java|ecma)script/i,Ct=/^\s*&lt;!(?:\[CDATA\[|\-\-)/,kt={option:[1,&quot;&lt;select multiple=&#39;multiple&#39;&gt;&quot;,&quot;&lt;/select&gt;&quot;],legend:[1,&quot;&lt;fieldset&gt;&quot;,&quot;&lt;/fieldset&gt;&quot;],thead:[1,&quot;&lt;table&gt;&quot;,&quot;&lt;/table&gt;&quot;],tr:[2,&quot;&lt;table&gt;&lt;tbody&gt;&quot;,&quot;&lt;/tbody&gt;&lt;/table&gt;&quot;],td:[3,&quot;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&quot;,&quot;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&quot;],col:[2,&quot;&lt;table&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;colgroup&gt;&quot;,&quot;&lt;/colgroup&gt;&lt;/table&gt;&quot;],area:[1,&quot;&lt;map&gt;&quot;,&quot;&lt;/map&gt;&quot;],_default:[0,&quot;&quot;,&quot;&quot;]},Lt=x(_);kt.optgroup=kt.option,kt.tbody=kt.tfoot=kt.colgroup=kt.caption=kt.thead,kt.th=kt.td,H.support.htmlSerialize||(kt._default=[1,&quot;div&lt;div&gt;&quot;,&quot;&lt;/div&gt;&quot;]),H.fn.extend({text:function(e){return H.access(this,function(e){return e===t?H.text(this):this.empty().append((this[0]&amp;&amp;this[0].ownerDocument||_).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(H.isFunction(e))return this.each(function(t){H(this).wrapAll(e.call(this,t))});if(this[0]){var t=H(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&amp;&amp;t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&amp;&amp;e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return H.isFunction(e)?this.each(function(t){H(this).wrapInner(e.call(this,t))}):this.each(function(){var t=H(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=H.isFunction(e);return this.each(function(n){H(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){H.nodeName(this,&quot;body&quot;)||H(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){this.nodeType===1&amp;&amp;this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){this.nodeType===1&amp;&amp;this.insertBefore(e,this.firstChild)})},before:function(){if(this[0]&amp;&amp;this[0].parentNode)return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=H.clean(arguments);return e.push.apply(e,this.toArray()),this.pushStack(e,&quot;before&quot;,arguments)}},after:function(){if(this[0]&amp;&amp;this[0].parentNode)return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=</td>
      </tr>
      <tr>
        <td id="L6" class="blob-num js-line-number" data-line-number="6"></td>
        <td id="LC6" class="blob-code js-file-line">this.pushStack(this,&quot;after&quot;,arguments);return e.push.apply(e,H.clean(arguments)),e}},remove:function(e,t){for(var n=0,r;(r=this[n])!=null;n++)if(!e||H.filter(e,[r]).length)!t&amp;&amp;r.nodeType===1&amp;&amp;(H.cleanData(r.getElementsByTagName(&quot;*&quot;)),H.cleanData([r])),r.parentNode&amp;&amp;r.parentNode.removeChild(r);return this},empty:function(){for(var e=0,t;(t=this[e])!=null;e++){t.nodeType===1&amp;&amp;H.cleanData(t.getElementsByTagName(&quot;*&quot;));while(t.firstChild)t.removeChild(t.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return H.clone(this,e,t)})},html:function(e){return H.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(vt,&quot;&quot;):null;if(typeof e==&quot;string&quot;&amp;&amp;!Et.test(e)&amp;&amp;(H.support.leadingWhitespace||!mt.test(e))&amp;&amp;!kt[(yt.exec(e)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase()]){e=e.replace(gt,&quot;&lt;$1&gt;&lt;/$2&gt;&quot;);try{for(;r&lt;i;r++)n=this[r]||{},n.nodeType===1&amp;&amp;(H.cleanData(n.getElementsByTagName(&quot;*&quot;)),n.innerHTML=e);n=0}catch(s){}}n&amp;&amp;this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return this[0]&amp;&amp;this[0].parentNode?H.isFunction(e)?this.each(function(t){var n=H(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!=&quot;string&quot;&amp;&amp;(e=H(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;H(this).remove(),t?H(t).before(e):H(n).append(e)})):this.length?this.pushStack(H(H.isFunction(e)?e():e),&quot;replaceWith&quot;,e):this},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){var i,s,o,u,a=e[0],f=[];if(!H.support.checkClone&amp;&amp;arguments.length===3&amp;&amp;typeof a==&quot;string&quot;&amp;&amp;Tt.test(a))return this.each(function(){H(this).domManip(e,n,r,!0)});if(H.isFunction(a))return this.each(function(i){var s=H(this);e[0]=a.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){u=a&amp;&amp;a.parentNode,H.support.parentNode&amp;&amp;u&amp;&amp;u.nodeType===11&amp;&amp;u.childNodes.length===this.length?i={fragment:u}:i=H.buildFragment(e,this,f),o=i.fragment,o.childNodes.length===1?s=o=o.firstChild:s=o.firstChild;if(s){n=n&amp;&amp;H.nodeName(s,&quot;tr&quot;);for(var l=0,c=this.length,h=c-1;l&lt;c;l++)r.call(n?S(this[l],s):this[l],i.cacheable||c&gt;1&amp;&amp;l&lt;h?H.clone(o,!0,!0):o)}f.length&amp;&amp;H.each(f,function(e,t){t.src?H.ajax({type:&quot;GET&quot;,global:!1,url:t.src,async:!1,dataType:&quot;script&quot;}):H.globalEval((t.text||t.textContent||t.innerHTML||&quot;&quot;).replace(Ct,&quot;/*$0*/&quot;)),t.parentNode&amp;&amp;t.parentNode.removeChild(t)})}return this}}),H.buildFragment=function(e,t,n){var r,i,s,o,u=e[0];return t&amp;&amp;t[0]&amp;&amp;(o=t[0].ownerDocument||t[0]),o.createDocumentFragment||(o=_),e.length===1&amp;&amp;typeof u==&quot;string&quot;&amp;&amp;u.length&lt;512&amp;&amp;o===_&amp;&amp;u.charAt(0)===&quot;&lt;&quot;&amp;&amp;!St.test(u)&amp;&amp;(H.support.checkClone||!Tt.test(u))&amp;&amp;(H.support.html5Clone||!xt.test(u))&amp;&amp;(i=!0,s=H.fragments[u],s&amp;&amp;s!==1&amp;&amp;(r=s)),r||(r=o.createDocumentFragment(),H.clean(e,o,r,n)),i&amp;&amp;(H.fragments[u]=s?r:1),{fragment:r,cacheable:i}},H.fragments={},H.each({appendTo:&quot;append&quot;,prependTo:&quot;prepend&quot;,insertBefore:&quot;before&quot;,insertAfter:&quot;after&quot;,replaceAll:&quot;replaceWith&quot;},function(e,t){H.fn[e]=function(n){var r=[],i=H(n),s=this.length===1&amp;&amp;this[0].parentNode;if(s&amp;&amp;s.nodeType===11&amp;&amp;s.childNodes.length===1&amp;&amp;i.length===1)return i[t](this[0]),this;for(var o=0,u=i.length;o&lt;u;o++){var a=(o&gt;0?this.clone(!0):this).get();H(i[o])[t](a),r=r.concat(a)}return this.pushStack(r,e,i.selector)}}),H.extend({clone:function(e,t,n){var r,i,s,o=H.support.html5Clone||H.isXMLDoc(e)||!xt.test(&quot;&lt;&quot;+e.nodeName+&quot;&gt;&quot;)?e.cloneNode(!0):m(e);if((!H.support.noCloneEvent||!H.support.noCloneChecked)&amp;&amp;(e.nodeType===1||e.nodeType===11)&amp;&amp;!H.isXMLDoc(e)){w(e,o),r=b(e),i=b(o);for(s=0;r[s];++s)i[s]&amp;&amp;w(r[s],i[s])}if(t){E(e,o);if(n){r=b(e),i=b(o);for(s=0;r[s];++s)E(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var i,s,o,u=[];t=t||_,typeof t.createElement==&quot;undefined&quot;&amp;&amp;(t=t.ownerDocument||t[0]&amp;&amp;t[0].ownerDocument||_);for(var a=0,f;(f=e[a])!=null;a++){typeof f==&quot;number&quot;&amp;&amp;(f+=&quot;&quot;);if(!f)continue;if(typeof f==&quot;string&quot;)if(!wt.test(f))f=t.createTextNode(f);else{f=f.replace(gt,&quot;&lt;$1&gt;&lt;/$2&gt;&quot;);var l=(yt.exec(f)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase(),c=kt[l]||kt._default,h=c[0],p=t.createElement(&quot;div&quot;),d=Lt.childNodes,v;t===_?Lt.appendChild(p):x(t).appendChild(p),p.innerHTML=c[1]+f+c[2];while(h--)p=p.lastChild;if(!H.support.tbody){var m=bt.test(f),y=l===&quot;table&quot;&amp;&amp;!m?p.firstChild&amp;&amp;p.firstChild.childNodes:c[1]===&quot;&lt;table&gt;&quot;&amp;&amp;!m?p.childNodes:[];for(o=y.length-1;o&gt;=0;--o)H.nodeName(y[o],&quot;tbody&quot;)&amp;&amp;!y[o].childNodes.length&amp;&amp;y[o].parentNode.removeChild(y[o])}!H.support.leadingWhitespace&amp;&amp;mt.test(f)&amp;&amp;p.insertBefore(t.createTextNode(mt.exec(f)[0]),p.firstChild),f=p.childNodes,p&amp;&amp;(p.parentNode.removeChild(p),d.length&gt;0&amp;&amp;(v=d[d.length-1],v&amp;&amp;v.parentNode&amp;&amp;v.parentNode.removeChild(v)))}var b;if(!H.support.appendChecked)if(f[0]&amp;&amp;typeof (b=f.length)==&quot;number&quot;)for(o=0;o&lt;b;o++)g(f[o]);else g(f);f.nodeType?u.push(f):u=H.merge(u,f)}if(n){i=function(e){return!e.type||Nt.test(e.type)};for(a=0;u[a];a++){s=u[a];if(r&amp;&amp;H.nodeName(s,&quot;script&quot;)&amp;&amp;(!s.type||Nt.test(s.type)))r.push(s.parentNode?s.parentNode.removeChild(s):s);else{if(s.nodeType===1){var w=H.grep(s.getElementsByTagName(&quot;script&quot;),i);u.splice.apply(u,[a+1,0].concat(w))}n.appendChild(s)}}}return u},cleanData:function(e){var t,n,r=H.cache,i=H.event.special,s=H.support.deleteExpando;for(var o=0,u;(u=e[o])!=null;o++){if(u.nodeName&amp;&amp;H.noData[u.nodeName.toLowerCase()])continue;n=u[H.expando];if(n){t=r[n];if(t&amp;&amp;t.events){for(var a in t.events)i[a]?H.event.remove(u,a):H.removeEvent(u,a,t.handle);t.handle&amp;&amp;(t.handle.elem=null)}s?delete u[H.expando]:u.removeAttribute&amp;&amp;u.removeAttribute(H.expando),delete r[n]}}}});var At=/alpha\([^)]*\)/i,Ot=/opacity=([^)]*)/,Mt=/([A-Z]|^ms)/g,_t=/^[\-+]?(?:\d*\.)?\d+$/i,Dt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,Pt=/^([\-+])=([\-+.\de]+)/,Ht=/^margin/,Bt={position:&quot;absolute&quot;,visibility:&quot;hidden&quot;,display:&quot;block&quot;},jt=[&quot;Top&quot;,&quot;Right&quot;,&quot;Bottom&quot;,&quot;Left&quot;],Ft,It,qt;H.fn.css=function(e,n){return H.access(this,function(e,n,r){return r!==t?H.style(e,n,r):H.css(e,n)},e,n,arguments.length&gt;1)},H.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ft(e,&quot;opacity&quot;);return n===&quot;&quot;?&quot;1&quot;:n}return e.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{&quot;float&quot;:H.support.cssFloat?&quot;cssFloat&quot;:&quot;styleFloat&quot;},style:function(e,n,r,i){if(!!e&amp;&amp;e.nodeType!==3&amp;&amp;e.nodeType!==8&amp;&amp;!!e.style){var s,o,u=H.camelCase(n),a=e.style,f=H.cssHooks[u];n=H.cssProps[u]||u;if(r===t)return f&amp;&amp;&quot;get&quot;in f&amp;&amp;(s=f.get(e,!1,i))!==t?s:a[n];o=typeof r,o===&quot;string&quot;&amp;&amp;(s=Pt.exec(r))&amp;&amp;(r=+(s[1]+1)*+s[2]+parseFloat(H.css(e,n)),o=&quot;number&quot;);if(r==null||o===&quot;number&quot;&amp;&amp;isNaN(r))return;o===&quot;number&quot;&amp;&amp;!H.cssNumber[u]&amp;&amp;(r+=&quot;px&quot;);if(!f||!(&quot;set&quot;in f)||(r=f.set(e,r))!==t)try{a[n]=r}catch(l){}}},css:function(e,n,r){var i,s;n=H.camelCase(n),s=H.cssHooks[n],n=H.cssProps[n]||n,n===&quot;cssFloat&quot;&amp;&amp;(n=&quot;float&quot;);if(s&amp;&amp;&quot;get&quot;in s&amp;&amp;(i=s.get(e,!0,r))!==t)return i;if(Ft)return Ft(e,n)},swap:function(e,t,n){var r={},i,s;for(s in t)r[s]=e.style[s],e.style[s]=t[s];i=n.call(e);for(s in t)e.style[s]=r[s];return i}}),H.curCSS=H.css,_.defaultView&amp;&amp;_.defaultView.getComputedStyle&amp;&amp;(It=function(e,t){var n,r,i,s,o=e.style;return t=t.replace(Mt,&quot;-$1&quot;).toLowerCase(),(r=e.ownerDocument.defaultView)&amp;&amp;(i=r.getComputedStyle(e,null))&amp;&amp;(n=i.getPropertyValue(t),n===&quot;&quot;&amp;&amp;!H.contains(e.ownerDocument.documentElement,e)&amp;&amp;(n=H.style(e,t))),!H.support.pixelMargin&amp;&amp;i&amp;&amp;Ht.test(t)&amp;&amp;Dt.test(n)&amp;&amp;(s=o.width,o.width=n,n=i.width,o.width=s),n}),_.documentElement.currentStyle&amp;&amp;(qt=function(e,t){var n,r,i,s=e.currentStyle&amp;&amp;e.currentStyle[t],o=e.style;return s==null&amp;&amp;o&amp;&amp;(i=o[t])&amp;&amp;(s=i),Dt.test(s)&amp;&amp;(n=o.left,r=e.runtimeStyle&amp;&amp;e.runtimeStyle.left,r&amp;&amp;(e.runtimeStyle.left=e.currentStyle.left),o.left=t===&quot;fontSize&quot;?&quot;1em&quot;:s,s=o.pixelLeft+&quot;px&quot;,o.left=n,r&amp;&amp;(e.runtimeStyle.left=r)),s===&quot;&quot;?&quot;auto&quot;:s}),Ft=It||qt,H.each([&quot;height&quot;,&quot;width&quot;],function(e,t){H.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth!==0?v(e,t,r):H.swap(e,Bt,function(){return v(e,t,r)})},set:function(e,t){return _t.test(t)?t+&quot;px&quot;:t}}}),H.support.opacity||(H.cssHooks.opacity={get:function(e,t){return Ot.test((t&amp;&amp;e.currentStyle?e.currentStyle.filter:e.style.filter)||&quot;&quot;)?parseFloat(RegExp.$1)/100+&quot;&quot;:t?&quot;1&quot;:&quot;&quot;},set:function(e,t){var n=e.style,r=e.currentStyle,i=H.isNumeric(t)?&quot;alpha(opacity=&quot;+t*100+&quot;)&quot;:&quot;&quot;,s=r&amp;&amp;r.filter||n.filter||&quot;&quot;;n.zoom=1;if(t&gt;=1&amp;&amp;H.trim(s.replace(At,&quot;&quot;))===&quot;&quot;){n.removeAttribute(&quot;filter&quot;);if(r&amp;&amp;!r.filter)return}n.filter=At.test(s)?s.replace(At,i):s+&quot; &quot;+i}}),H(function(){H.support.reliableMarginRight||(H.cssHooks.marginRight={get:function(e,t){return H.swap(e,{display:&quot;inline-block&quot;},function(){return t?Ft(e,&quot;margin-right&quot;):e.style.marginRight})}})}),H.expr&amp;&amp;H.expr.filters&amp;&amp;(H.expr.filters.hidden=function(e){var t=e.offsetWidth,n=e.offsetHeight;return t===0&amp;&amp;n===0||!H.support.reliableHiddenOffsets&amp;&amp;(e.style&amp;&amp;e.style.display||H.css(e,&quot;display&quot;))===&quot;none&quot;},H.expr.filters.visible=function(e){return!H.expr.filters.hidden(e)}),H.each({margin:&quot;&quot;,padding:&quot;&quot;,border:&quot;Width&quot;},function(e,t){H.cssHooks[e+t]={expand:function(n){var r,i=typeof n==&quot;string&quot;?n.split(&quot; &quot;):[n],s={};for(r=0;r&lt;4;r++)s[e+jt[r]+t]=i[r]||i[r-2]||i[0];return s}}});var Rt=/%20/g,Ut=/\[\]$/,zt=/\r?\n/g,Wt=/#.*$/,Xt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,Vt=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,$t=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,Jt=/^(?:GET|HEAD)$/,Kt=/^\/\//,Qt=/\?/,Gt=/&lt;script\b[^&lt;]*(?:(?!&lt;\/script&gt;)&lt;[^&lt;]*)*&lt;\/script&gt;/gi,Yt=/^(?:select|textarea)/i,Zt=/\s+/,en=/([?&amp;])_=[^&amp;]*/,tn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,nn=H.fn.load,rn={},sn={},on,un,an=[&quot;*/&quot;]+[&quot;*&quot;];try{on=P.href}catch(fn){on=_.createElement(&quot;a&quot;),on.href=&quot;&quot;,on=on.href}un=tn.exec(on.toLowerCase())||[],H.fn.extend({load:function(e,n,r){if(typeof e!=&quot;string&quot;&amp;&amp;nn)return nn.apply(this,arguments);if(!this.length)return this;var i=e.indexOf(&quot; &quot;);if(i&gt;=0){var s=e.slice(i,e.length);e=e.slice(0,i)}var o=&quot;GET&quot;;n&amp;&amp;(H.isFunction(n)?(r=n,n=t):typeof n==&quot;object&quot;&amp;&amp;(n=H.param(n,H.ajaxSettings.traditional),o=&quot;POST&quot;));var u=this;return H.ajax({url:e,type:o,dataType:&quot;html&quot;,data:n,complete:function(e,t,n){n=e.responseText,e.isResolved()&amp;&amp;(e.done(function(e){n=e}),u.html(s?H(&quot;&lt;div&gt;&quot;).append(n.replace(Gt,&quot;&quot;)).find(s):n)),r&amp;&amp;u.each(r,[n,t,e])}}),this},serialize:function(){return H.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?H.makeArray(this.elements):this}).filter(function(){return this.name&amp;&amp;!this.disabled&amp;&amp;(this.checked||Yt.test(this.nodeName)||Vt.test(this.type))}).map(function(e,t){var n=H(this).val();return n==null?null:H.isArray(n)?H.map(n,function(e,n){return{name:t.name,value:e.replace(zt,&quot;\r\n&quot;)}}):{name:t.name,value:n.replace(zt,&quot;\r\n&quot;)}}).get()}}),H.each(&quot;ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend&quot;.split(&quot; &quot;),function(e,t){H.fn[t]=function(e){return this.on(t,e)}}),H.each([&quot;get&quot;,&quot;post&quot;],function(e,n){H[n]=function(e,r,i,s){return H.isFunction(r)&amp;&amp;(s=s||i,i=r,r=t),H.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),H.extend({getScript:function(e,n){return H.get(e,t,n,&quot;script&quot;)},getJSON:function(e,t,n){return H.get(e,t,n,&quot;json&quot;)},ajaxSetup:function(e,t){return t?h(e,H.ajaxSettings):(t=e,e=H.ajaxSettings),h(e,t),e},ajaxSettings:{url:on,isLocal:$t.test(un[1]),global:!0,type:&quot;GET&quot;,contentType:&quot;application/x-www-form-urlencoded; charset=UTF-8&quot;,processData:!0,async:!0,accepts:{xml:&quot;application/xml, text/xml&quot;,html:&quot;text/html&quot;,text:&quot;text/plain&quot;,json:&quot;application/json, text/javascript&quot;,&quot;*&quot;:an},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:&quot;responseXML&quot;,text:&quot;responseText&quot;},converters:{&quot;* text&quot;:e.String,&quot;text html&quot;:!0,&quot;text json&quot;:H.parseJSON,&quot;text xml&quot;:H.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:d(rn),ajaxTransport:d(sn),ajax:function(e,n){function r(e,n,r,p){if(E!==2){E=2,b&amp;&amp;clearTimeout(b),y=t,m=p||&quot;&quot;,T.readyState=e&gt;0?4:0;var d,v,g,w=n,x=r?l(i,T,r):t,N,C;if(e&gt;=200&amp;&amp;e&lt;300||e===304){if(i.ifModified){if(N=T.getResponseHeader(&quot;Last-Modified&quot;))H.lastModified[h]=N;if(C=T.getResponseHeader(&quot;Etag&quot;))H.etag[h]=C}if(e===304)w=&quot;notmodified&quot;,d=!0;else try{v=f(i,x),w=&quot;success&quot;,d=!0}catch(k){w=&quot;parsererror&quot;,g=k}}else{g=w;if(!w||e)w=&quot;error&quot;,e&lt;0&amp;&amp;(e=0)}T.status=e,T.statusText=&quot;&quot;+(n||w),d?u.resolveWith(s,[v,w,T]):u.rejectWith(s,[T,w,g]),T.statusCode(c),c=t,S&amp;&amp;o.trigger(&quot;ajax&quot;+(d?&quot;Success&quot;:&quot;Error&quot;),[T,i,d?v:g]),a.fireWith(s,[T,w]),S&amp;&amp;(o.trigger(&quot;ajaxComplete&quot;,[T,i]),--H.active||H.event.trigger(&quot;ajaxStop&quot;))}}typeof e==&quot;object&quot;&amp;&amp;(n=e,e=t),n=n||{};var i=H.ajaxSetup({},n),s=i.context||i,o=s!==i&amp;&amp;(s.nodeType||s instanceof H)?H(s):H.event,u=H.Deferred(),a=H.Callbacks(&quot;once memory&quot;),c=i.statusCode||{},h,d={},v={},m,g,y,b,w,E=0,S,x,T={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=v[n]=v[n]||e,d[e]=t}return this},getAllResponseHeaders:function(){return E===2?m:null},getResponseHeader:function(e){var n;if(E===2){if(!g){g={};while(n=Xt.exec(m))g[n[1].toLowerCase()]=n[2]}n=g[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(i.mimeType=e),this},abort:function(e){return e=e||&quot;abort&quot;,y&amp;&amp;y.abort(e),r(0,e),this}};u.promise(T),T.success=T.done,T.error=T.fail,T.complete=a.add,T.statusCode=function(e){if(e){var t;if(E&lt;2)for(t in e)c[t]=[c[t],e[t]];else t=e[T.status],T.then(t,t)}return this},i.url=((e||i.url)+&quot;&quot;).replace(Wt,&quot;&quot;).replace(Kt,un[1]+&quot;//&quot;),i.dataTypes=H.trim(i.dataType||&quot;*&quot;).toLowerCase().split(Zt),i.crossDomain==null&amp;&amp;(w=tn.exec(i.url.toLowerCase()),i.crossDomain=!(!w||w[1]==un[1]&amp;&amp;w[2]==un[2]&amp;&amp;(w[3]||(w[1]===&quot;http:&quot;?80:443))==(un[3]||(un[1]===&quot;http:&quot;?80:443)))),i.data&amp;&amp;i.processData&amp;&amp;typeof i.data!=&quot;string&quot;&amp;&amp;(i.data=H.param(i.data,i.traditional)),p(rn,i,n,T);if(E===2)return!1;S=i.global,i.type=i.type.toUpperCase(),i.hasContent=!Jt.test(i.type),S&amp;&amp;H.active++===0&amp;&amp;H.event.trigger(&quot;ajaxStart&quot;);if(!i.hasContent){i.data&amp;&amp;(i.url+=(Qt.test(i.url)?&quot;&amp;&quot;:&quot;?&quot;)+i.data,delete i.data),h=i.url;if(i.cache===!1){var N=H.now(),C=i.url.replace(en,&quot;$1_=&quot;+N);i.url=C+(C===i.url?(Qt.test(i.url)?&quot;&amp;&quot;:&quot;?&quot;)+&quot;_=&quot;+N:&quot;&quot;)}}(i.data&amp;&amp;i.hasContent&amp;&amp;i.contentType!==!1||n.contentType)&amp;&amp;T.setRequestHeader(&quot;Content-Type&quot;,i.contentType),i.ifModified&amp;&amp;(h=h||i.url,H.lastModified[h]&amp;&amp;T.setRequestHeader(&quot;If-Modified-Since&quot;,H.lastModified[h]),H.etag[h]&amp;&amp;T.setRequestHeader(&quot;If-None-Match&quot;,H.etag[h])),T.setRequestHeader(&quot;Accept&quot;,i.dataTypes[0]&amp;&amp;i.accepts[i.dataTypes[0]]?i.accepts[i.dataTypes[0]]+(i.dataTypes[0]!==&quot;*&quot;?&quot;, &quot;+an+&quot;; q=0.01&quot;:&quot;&quot;):i.accepts[&quot;*&quot;]);for(x in i.headers)T.setRequestHeader(x,i.headers[x]);if(!i.beforeSend||i.beforeSend.call(s,T,i)!==!1&amp;&amp;E!==2){for(x in{success:1,error:1,complete:1})T[x](i[x]);y=p(sn,i,n,T);if(!y)r(-1,&quot;No Transport&quot;);else{T.readyState=1,S&amp;&amp;o.trigger(&quot;ajaxSend&quot;,[T,i]),i.async&amp;&amp;i.timeout&gt;0&amp;&amp;(b=setTimeout(function(){T.abort(&quot;timeout&quot;)},i.timeout));try{E=1,y.send(d,r)}catch(k){if(!(E&lt;2))throw k;r(-1,k)}}return T}return T.abort(),!1},param:function(e,n){var r=[],i=function(e,t){t=H.isFunction(t)?t():t,r[r.length]=encodeURIComponent(e)+&quot;=&quot;+encodeURIComponent(t)};n===t&amp;&amp;(n=H.ajaxSettings.traditional);if(H.isArray(e)||e.jquery&amp;&amp;!H.isPlainObject(e))H.each(e,function(){i(this.name,this.value)});else for(var s in e)c(s,e[s],n,i);return r.join(&quot;&amp;&quot;).replace(Rt,&quot;+&quot;)}}),H.extend({active:0,lastModified:{},etag:{}});var ln=H.now(),cn=/(\=)\?(&amp;|$)|\?\?/i;H.ajaxSetup({jsonp:&quot;callback&quot;,jsonpCallback:function(){return H.expando+&quot;_&quot;+ln++}}),H.ajaxPrefilter(&quot;json jsonp&quot;,function(t,n,r){var i=typeof t.data==&quot;string&quot;&amp;&amp;/^application\/x\-www\-form\-urlencoded/.test(t.contentType);if(t.dataTypes[0]===&quot;jsonp&quot;||t.jsonp!==!1&amp;&amp;(cn.test(t.url)||i&amp;&amp;cn.test(t.data))){var s,o=t.jsonpCallback=H.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,u=e[o],a=t.url,f=t.data,l=&quot;$1&quot;+o+&quot;$2&quot;;return t.jsonp!==!1&amp;&amp;(a=a.replace(cn,l),t.url===a&amp;&amp;(i&amp;&amp;(f=f.replace(cn,l)),t.data===f&amp;&amp;(a+=(/\?/.test(a)?&quot;&amp;&quot;:&quot;?&quot;)+t.jsonp+&quot;=&quot;+o))),t.url=a,t.data=f,e[o]=function(e){s=[e]},r.always(function(){e[o]=u,s&amp;&amp;H.isFunction(u)&amp;&amp;e[o](s[0])}),t.converters[&quot;script json&quot;]=function(){return s||H.error(o+&quot; was not called&quot;),s[0]},t.dataTypes[0]=&quot;json&quot;,&quot;script&quot;}}),H.ajaxSetup({accepts:{script:&quot;text/javascript, application/javascript, application/ecmascript, application/x-ecmascript&quot;},contents:{script:/javascript|ecmascript/},converters:{&quot;text script&quot;:function(e){return H.globalEval(e),e}}}),H.ajaxPrefilter(&quot;script&quot;,function(e){e.cache===t&amp;&amp;(e.cache=!1),e.crossDomain&amp;&amp;(e.type=&quot;GET&quot;,e.global=!1)}),H.ajaxTransport(&quot;script&quot;,function(e){if(e.crossDomain){var n,r=_.head||_.getElementsByTagName(&quot;head&quot;)[0]||_.documentElement;return{send:function(i,s){n=_.createElement(&quot;script&quot;),n.async=&quot;async&quot;,e.scriptCharset&amp;&amp;(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&amp;&amp;n.parentNode&amp;&amp;r.removeChild(n),n=t,i||s(200,&quot;success&quot;)},r.insertBefore(n,r.firstChild)},abort:function(){n&amp;&amp;n.onload(0,1)}}}});var hn=e.ActiveXObject?function(){for(var e in dn)dn[e](0,1)}:!1,pn=0,dn;H.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&amp;&amp;a()||u()}:a,function(e){H.extend(H.support,{ajax:!!e,cors:!!e&amp;&amp;&quot;withCredentials&quot;in e})}(H.ajaxSettings.xhr()),H.support.ajax&amp;&amp;H.ajaxTransport(function(n){if(!n.crossDomain||H.support.cors){var r;return{send:function(i,s){var o=n.xhr(),u,a;n.username?o.open(n.type,n.url,n.async,n.username,n.password):o.open(n.type,n.url,n.async);if(n.xhrFields)for(a in n.xhrFields)o[a]=n.xhrFields[a];n.mimeType&amp;&amp;o.overrideMimeType&amp;&amp;o.overrideMimeType(n.mimeType),!n.crossDomain&amp;&amp;!i[&quot;X-Requested-With&quot;]&amp;&amp;(i[&quot;X-Requested-With&quot;]=&quot;XMLHttpRequest&quot;);try{for(a in i)o.setRequestHeader(a,i[a])}catch(f){}o.send(n.hasContent&amp;&amp;n.data||null),r=function(e,i){var a,f,l,c,h;try{if(r&amp;&amp;(i||o.readyState===4)){r=t,u&amp;&amp;(o.onreadystatechange=H.noop,hn&amp;&amp;delete dn[u]);if(i)o.readyState!==4&amp;&amp;o.abort();else{a=o.status,l=o.getAllResponseHeaders(),c={},h=o.responseXML,h&amp;&amp;h.documentElement&amp;&amp;(c.xml=h);try{c.text=o.responseText}catch(e){}try{f=o.statusText}catch(p){f=&quot;&quot;}!a&amp;&amp;n.isLocal&amp;&amp;!n.crossDomain?a=c.text?200:404:a===1223&amp;&amp;(a=204)}}}catch(d){i||s(-1,d)}c&amp;&amp;s(a,f,c,l)},!n.async||o.readyState===4?r():(u=++pn,hn&amp;&amp;(dn||(dn={},H(e).unload(hn)),dn[u]=r),o.onreadystatechange=r)},abort:function(){r&amp;&amp;r(0,1)}}}});var vn={},mn,gn,yn=/^(?:toggle|show|hide)$/,bn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,wn,En=[[&quot;height&quot;,&quot;marginTop&quot;,&quot;marginBottom&quot;,&quot;paddingTop&quot;,&quot;paddingBottom&quot;],[&quot;width&quot;,&quot;marginLeft&quot;,&quot;marginRight&quot;,&quot;paddingLeft&quot;,&quot;paddingRight&quot;],[&quot;opacity&quot;]],Sn;H.fn.extend({show:function(e,t,n){var s,o;if(e||e===0)return this.animate(i(&quot;show&quot;,3),e,t,n);for(var u=0,a=this.length;u&lt;a;u++)s=this[u],s.style&amp;&amp;(o=s.style.display,!H._data(s,&quot;olddisplay&quot;)&amp;&amp;o===&quot;none&quot;&amp;&amp;(o=s.style.display=&quot;&quot;),(o===&quot;&quot;&amp;&amp;H.css(s,&quot;display&quot;)===&quot;none&quot;||!H.contains(s.ownerDocument.documentElement,s))&amp;&amp;H._data(s,&quot;olddisplay&quot;,r(s.nodeName)));for(u=0;u&lt;a;u++){s=this[u];if(s.style){o=s.style.display;if(o===&quot;&quot;||o===&quot;none&quot;)s.style.display=H._data(s,&quot;olddisplay&quot;)||&quot;&quot;}}return this},hide:function(e,t,n){if(e||e===0)return this.animate(i(&quot;hide&quot;,3),e,t,n);var r,s,o=0,u=this.length;for(;o&lt;u;o++)r=this[o],r.style&amp;&amp;(s=H.css(r,&quot;display&quot;),s!==&quot;none&quot;&amp;&amp;!H._data(r,&quot;olddisplay&quot;)&amp;&amp;H._data(r,&quot;olddisplay&quot;,s));for(o=0;o&lt;u;o++)this[o].style&amp;&amp;(this[o].style.display=&quot;none&quot;);return this},_toggle:H.fn.toggle,toggle:function(e,t,n){var r=typeof e==&quot;boolean&quot;;return H.isFunction(e)&amp;&amp;H.isFunction(t)?this._toggle.apply(this,arguments):e==null||r?this.each(function(){var t=r?e:H(this).is(&quot;:hidden&quot;);H(this)[t?&quot;show&quot;:&quot;hide&quot;]()}):this.animate(i(&quot;toggle&quot;,3),e,t,n),this},fadeTo:function(e,t,n,r){return this.filter(&quot;:hidden&quot;).css(&quot;opacity&quot;,0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,i){function s(){o.queue===!1&amp;&amp;H._mark(this);var t=H.extend({},o),n=this.nodeType===1,i=n&amp;&amp;H(this).is(&quot;:hidden&quot;),s,u,a,f,l,c,h,p,d,v,m;t.animatedProperties={};for(a in e){s=H.camelCase(a),a!==s&amp;&amp;(e[s]=e[a],delete e[a]);if((l=H.cssHooks[s])&amp;&amp;&quot;expand&quot;in l){c=l.expand(e[s]),delete e[s];for(a in c)a in e||(e[a]=c[a])}}for(s in e){u=e[s],H.isArray(u)?(t.animatedProperties[s]=u[1],u=e[s]=u[0]):t.animatedProperties[s]=t.specialEasing&amp;&amp;t.specialEasing[s]||t.easing||&quot;swing&quot;;if(u===&quot;hide&quot;&amp;&amp;i||u===&quot;show&quot;&amp;&amp;!i)return t.complete.call(this);n&amp;&amp;(s===&quot;height&quot;||s===&quot;width&quot;)&amp;&amp;(t.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],H.css(this,&quot;display&quot;)===&quot;inline&quot;&amp;&amp;H.css(this,&quot;float&quot;)===&quot;none&quot;&amp;&amp;(!H.support.inlineBlockNeedsLayout||r(this.nodeName)===&quot;inline&quot;?this.style.display=&quot;inline-block&quot;:this.style.zoom=1))}t.overflow!=null&amp;&amp;(this.style.overflow=&quot;hidden&quot;);for(a in e)f=new H.fx(this,t,a),u=e[a],yn.test(u)?(m=H._data(this,&quot;toggle&quot;+a)||(u===&quot;toggle&quot;?i?&quot;show&quot;:&quot;hide&quot;:0),m?(H._data(this,&quot;toggle&quot;+a,m===&quot;show&quot;?&quot;hide&quot;:&quot;show&quot;),f[m]()):f[u]()):(h=bn.exec(u),p=f.cur(),h?(d=parseFloat(h[2]),v=h[3]||(H.cssNumber[a]?&quot;&quot;:&quot;px&quot;),v!==&quot;px&quot;&amp;&amp;(H.style(this,a,(d||1)+v),p=(d||1)/f.cur()*p,H.style(this,a,p+v)),h[1]&amp;&amp;(d=(h[1]===&quot;-=&quot;?-1:1)*d+p),f.custom(p,d,v)):f.custom(p,u,&quot;&quot;));return!0}var o=H.speed(t,n,i);return H.isEmptyObject(e)?this.each(o.complete,[!1]):(e=H.extend({},e),o.queue===!1?this.each(s):this.queue(o.queue,s))},stop:function(e,n,r){return typeof e!=&quot;string&quot;&amp;&amp;(r=n,n=e,e=t),n&amp;&amp;e!==!1&amp;&amp;this.queue(e||&quot;fx&quot;,[]),this.each(function(){function t(e,t,n){var i=t[n];H.removeData(e,n,!0),i.stop(r)}var n,i=!1,s=H.timers,o=H._data(this);r||H._unmark(!0,this);if(e==null)for(n in o)o[n]&amp;&amp;o[n].stop&amp;&amp;n.indexOf(&quot;.run&quot;)===n.length-4&amp;&amp;t(this,o,n);else o[n=e+&quot;.run&quot;]&amp;&amp;o[n].stop&amp;&amp;t(this,o,n);for(n=s.length;n--;)s[n].elem===this&amp;&amp;(e==null||s[n].queue===e)&amp;&amp;(r?s[n](!0):s[n].saveState(),i=!0,s.splice(n,1));(!r||!i)&amp;&amp;H.dequeue(this,e)})}}),H.each({slideDown:i(&quot;show&quot;,1),slideUp:i(&quot;hide&quot;,1),slideToggle:i(&quot;toggle&quot;,1),fadeIn:{opacity:&quot;show&quot;},fadeOut:{opacity:&quot;hide&quot;},fadeToggle:{opacity:&quot;toggle&quot;}},function(e,t){H.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),H.extend({speed:function(e,t,n){var r=e&amp;&amp;typeof e==&quot;object&quot;?H.extend({},e):{complete:n||!n&amp;&amp;t||H.isFunction(e)&amp;&amp;e,duration:e,easing:n&amp;&amp;t||t&amp;&amp;!H.isFunction(t)&amp;&amp;t};r.duration=H.fx.off?0:typeof r.duration==&quot;number&quot;?r.duration:r.duration in H.fx.speeds?H.fx.speeds[r.duration]:H.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue=&quot;fx&quot;;return r.old=r.complete,r.complete=function(e){H.isFunction(r.old)&amp;&amp;r.old.call(this),r.queue?H.dequeue(this,r.queue):e!==!1&amp;&amp;H._unmark(this)},r},easing:{linear:function(e){return e},swing:function(e){return-Math.cos(e*Math.PI)/2+.5}},timers:[],fx:function(e,t,n){this.options=t,this.elem=e,this.prop=n,t.orig=t.orig||{}}}),H.fx.prototype={update:function(){this.options.step&amp;&amp;this.options.step.call(this.elem,this.now,this),(H.fx.step[this.prop]||H.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]==null||!!this.elem.style&amp;&amp;this.elem.style[this.prop]!=null){var e,t=H.css(this.elem,this.prop);return isNaN(e=parseFloat(t))?!t||t===&quot;auto&quot;?0:t:e}return this.elem[this.prop]},custom:function(e,n,r){function i(e){return s.step(e)}var s=this,u=H.fx;this.startTime=Sn||o(),this.end=n,this.now=this.start=e,this.pos=this.state=0,this.unit=r||this.unit||(H.cssNumber[this.prop]?&quot;&quot;:&quot;px&quot;),i.queue=this.options.queue,i.elem=this.elem,i.saveState=function(){H._data(s.elem,&quot;fxshow&quot;+s.prop)===t&amp;&amp;(s.options.hide?H._data(s.elem,&quot;fxshow&quot;+s.prop,s.start):s.options.show&amp;&amp;H._data(s.elem,&quot;fxshow&quot;+s.prop,s.end))},i()&amp;&amp;H.timers.push(i)&amp;&amp;!wn&amp;&amp;(wn=setInterval(u.tick,u.interval))},show:function(){var e=H._data(this.elem,&quot;fxshow&quot;+this.prop);this.options.orig[this.prop]=e||H.style(this.elem,this.prop),this.options.show=!0,e!==t?this.custom(this.cur(),e):this.custom(this.prop===&quot;width&quot;||this.prop===&quot;height&quot;?1:0,this.cur()),H(this.elem).show()},hide:function(){this.options.orig[this.prop]=H._data(this.elem,&quot;fxshow&quot;+this.prop)||H.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(e){var t,n,r,i=Sn||o(),s=!0,u=this.elem,a=this.options;if(e||i&gt;=a.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),a.animatedProperties[this.prop]=!0;for(t in a.animatedProperties)a.animatedProperties[t]!==!0&amp;&amp;(s=!1);if(s){a.overflow!=null&amp;&amp;!H.support.shrinkWrapBlocks&amp;&amp;H.each([&quot;&quot;,&quot;X&quot;,&quot;Y&quot;],function(e,t){u.style[&quot;overflow&quot;+t]=a.overflow[e]}),a.hide&amp;&amp;H(u).hide();if(a.hide||a.show)for(t in a.animatedProperties)H.style(u,t,a.orig[t]),H.removeData(u,&quot;fxshow&quot;+t,!0),H.removeData(u,&quot;toggle&quot;+t,!0);r=a.complete,r&amp;&amp;(a.complete=!1,r.call(u))}return!1}return a.duration==Infinity?this.now=i:(n=i-this.startTime,this.state=n/a.duration,this.pos=H.easing[a.animatedProperties[this.prop]](this.state,n,0,1,a.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update(),!0}},H.extend(H.fx,{tick:function(){var e,t=H.timers,n=0;for(;n&lt;t.length;n++)e=t[n],!e()&amp;&amp;t[n]===e&amp;&amp;t.splice(n--,1);t.length||H.fx.stop()},interval:13,stop:function(){clearInterval(wn),wn=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){H.style(e.elem,&quot;opacity&quot;,e.now)},_default:function(e){e.elem.style&amp;&amp;e.elem.style[e.prop]!=null?e.elem.style[e.prop]=e.now+e.unit:e.elem[e.prop]=e.now}}}),H.each(En.concat.apply([],En),function(e,t){t.indexOf(&quot;margin&quot;)&amp;&amp;(H.fx.step[t]=function(e){H.style(e.elem,t,Math.max(0,e.now)+e.unit)})}),H.expr&amp;&amp;H.expr.filters&amp;&amp;(H.expr.filters.animated=function(e){return H.grep(H.timers,function(t){return e===t.elem}).length});var xn,Tn=/^t(?:able|d|h)$/i,Nn=/^(?:body|html)$/i;&quot;getBoundingClientRect&quot;in _.documentElement?xn=function(e,t,r,i){try{i=e.getBoundingClientRect()}catch(s){}if(!i||!H.contains(r,e))return i?{top:i.top,left:i.left}:{top:0,left:0};var o=t.body,u=n(t),a=r.clientTop||o.clientTop||0,f=r.clientLeft||o.clientLeft||0,l=u.pageYOffset||H.support.boxModel&amp;&amp;r.scrollTop||o.scrollTop,c=u.pageXOffset||H.support.boxModel&amp;&amp;r.scrollLeft||o.scrollLeft,h=i.top+l-a,p=i.left+c-f;return{top:h,left:p}}:xn=function(e,t,n){var r,i=e.offsetParent,s=e,o=t.body,u=t.defaultView,a=u?u.getComputedStyle(e,null):e.currentStyle,f=e.offsetTop,l=e.offsetLeft;while((e=e.parentNode)&amp;&amp;e!==o&amp;&amp;e!==n){if(H.support.fixedPosition&amp;&amp;a.position===&quot;fixed&quot;)break;r=u?u.getComputedStyle(e,null):e.currentStyle,f-=e.scrollTop,l-=e.scrollLeft,e===i&amp;&amp;(f+=e.offsetTop,l+=e.offsetLeft,H.support.doesNotAddBorder&amp;&amp;(!H.support.doesAddBorderForTableAndCells||!Tn.test(e.nodeName))&amp;&amp;(f+=parseFloat(r.borderTopWidth)||0,l+=parseFloat(r.borderLeftWidth)||0),s=i,i=e.offsetParent),H.support.subtractsBorderForOverflowNotVisible&amp;&amp;r.overflow!==&quot;visible&quot;&amp;&amp;(f+=parseFloat(r.borderTopWidth)||0,l+=parseFloat(r.borderLeftWidth)||0),a=r}if(a.position===&quot;relative&quot;||a.position===&quot;static&quot;)f+=o.offsetTop,l+=o.offsetLeft;return H.support.fixedPosition&amp;&amp;a.position===&quot;fixed&quot;&amp;&amp;(f+=Math.max(n.scrollTop,o.scrollTop),l+=Math.max(n.scrollLeft,o.scrollLeft)),{top:f,left:l}},H.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){H.offset.setOffset(this,e,t)});var n=this[0],r=n&amp;&amp;n.ownerDocument;return r?n===r.body?H.offset.bodyOffset(n):xn(n,r,r.documentElement):null},H.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return H.support.doesNotIncludeMarginInBodyOffset&amp;&amp;(t+=parseFloat(H.css(e,&quot;marginTop&quot;))||0,n+=parseFloat(H.css(e,&quot;marginLeft&quot;))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=H.css(e,&quot;position&quot;);r===&quot;static&quot;&amp;&amp;(e.style.position=&quot;relative&quot;);var i=H(e),s=i.offset(),o=H.css(e,&quot;top&quot;),u=H.css(e,&quot;left&quot;),a=(r===&quot;absolute&quot;||r===&quot;fixed&quot;)&amp;&amp;H.inArray(&quot;auto&quot;,[o,u])&gt;-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),H.isFunction(t)&amp;&amp;(t=t.call(e,n,s)),t.top!=null&amp;&amp;(f.top=t.top-s.top+c),t.left!=null&amp;&amp;(f.left=t.left-s.left+h),&quot;using&quot;in t?t.using.call(e,f):i.css(f)}},H.fn.extend({position:function(){if(!this[0])return null;var e=this[0],t=this.offsetParent(),n=this.offset(),r=Nn.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(H.css(e,&quot;marginTop&quot;))||0,n.left-=parseFloat(H.css(e,&quot;marginLeft&quot;))||0,r.top+=parseFloat(H.css(t[0],&quot;borderTopWidth&quot;))||0,r.left+=parseFloat(H.css(t[0],&quot;borderLeftWidth&quot;))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||_.body;while(e&amp;&amp;!Nn.test(e.nodeName)&amp;&amp;H.css(e,&quot;position&quot;)===&quot;static&quot;)e=e.offsetParent;return e})}}),H.each({scrollLeft:&quot;pageXOffset&quot;,scrollTop:&quot;pageYOffset&quot;},function(e,r){var i=/Y/.test(r);H.fn[e]=function(s){return H.access(this,function(e,s,o){var u=n(e);if(o===t)return u?r in u?u[r]:H.support.boxModel&amp;&amp;u.document.documentElement[s]||u.document.body[s]:e[s];u?u.scrollTo(i?H(u).scrollLeft():o,i?o:H(u).scrollTop()):e[s]=o},e,s,arguments.length,null)}}),H.each({Height:&quot;height&quot;,Width:&quot;width&quot;},function(e,n){var r=&quot;client&quot;+e,i=&quot;scroll&quot;+e,s=&quot;offset&quot;+e;H.fn[&quot;inner&quot;+e]=function(){var e=this[0];return e?e.style?parseFloat(H.css(e,n,&quot;padding&quot;)):this[n]():null},H.fn[&quot;outer&quot;+e]=function(e){var t=this[0];return t?t.style?parseFloat(H.css(t,n,e?&quot;margin&quot;:&quot;border&quot;)):this[n]():null},H.fn[n]=function(e){return H.access(this,function(e,n,o){var u,a,f,l;if(H.isWindow(e))return u=e.document,a=u.documentElement[r],H.support.boxModel&amp;&amp;a||u.body&amp;&amp;u.body[r]||a;if(e.nodeType===9)return u=e.documentElement,u[r]&gt;=u[i]?u[r]:Math.max(e.body[i],u[i],e.body[s],u[s]);if(o===t)return f=H.css(e,n),l=parseFloat(f),H.isNumeric(l)?l:f;H(e).css(n,o)},n,e,arguments.length,null)}}),e.jQuery=e.$=H,typeof define==&quot;function&quot;&amp;&amp;define.amd&amp;&amp;define.amd.jQuery&amp;&amp;define(&quot;jquery&quot;,[],function(){return H})})(window),function(){var e=this,t=e._,n={},r=Array.prototype,i=Object.prototype,s=Function.prototype,o=r.push,u=r.slice,a=r.concat,f=i.toString,l=i.hasOwnProperty,c=r.forEach,h=r.map,p=r.reduce,d=r.reduceRight,v=r.filter,m=r.every,g=r.some,y=r.indexOf,b=r.lastIndexOf,w=Array.isArray,E=Object.keys,S=s.bind,x=function(e){return e instanceof x?e:this instanceof x?(this._wrapped=e,void 0):new x(e)};&quot;undefined&quot;!=typeof exports?(&quot;undefined&quot;!=typeof module&amp;&amp;module.exports&amp;&amp;(exports=module.exports=x),exports._=x):e._=x,x.VERSION=&quot;1.4.4&quot;;var T=x.each=x.forEach=function(e,t,r){if(null!=e)if(c&amp;&amp;e.forEach===c)e.forEach(t,r);else if(e.length===+e.length){for(var i=0,s=e.length;s&gt;i;i++)if(t.call(r,e[i],i,e)===n)return}else for(var o in e)if(x.has(e,o)&amp;&amp;t.call(r,e[o],o,e)===n)return};x.map=x.collect=function(e,t,n){var r=[];return null==e?r:h&amp;&amp;e.map===h?e.map(t,n):(T(e,function(e,i,s){r[r.length]=t.call(n,e,i,s)}),r)};var N=&quot;Reduce of empty array with no initial value&quot;;x.reduce=x.foldl=x.inject=function(e,t,n,r){var i=arguments.length&gt;2;if(null==e&amp;&amp;(e=[]),p&amp;&amp;e.reduce===p)return r&amp;&amp;(t=x.bind(t,r)),i?e.reduce(t,n):e.reduce(t);if(T(e,function(e,s,o){i?n=t.call(r,n,e,s,o):(n=e,i=!0)}),!i)throw new TypeError(N);return n},x.reduceRight=x.foldr=function(e,t,n,r){var i=arguments.length&gt;2;if(null==e&amp;&amp;(e=[]),d&amp;&amp;e.reduceRight===d)return r&amp;&amp;(t=x.bind(t,r)),i?e.reduceRight(t,n):e.reduceRight(t);var s=e.length;if(s!==+s){var o=x.keys(e);s=o.length}if(T(e,function(u,a,f){a=o?o[--s]:--s,i?n=t.call(r,n,e[a],a,f):(n=e[a],i=!0)}),!i)throw new TypeError(N);return n},x.find=x.detect=function(e,t,n){var r;return C(e,function(e,i,s){return t.call(n,e,i,s)?(r=e,!0):void 0}),r},x.filter=x.select=function(e,t,n){var r=[];return null==e?r:v&amp;&amp;e.filter===v?e.filter(t,n):(T(e,function(e,i,s){t.call(n,e,i,s)&amp;&amp;(r[r.length]=e)}),r)},x.reject=function(e,t,n){return x.filter(e,function(e,r,i){return!t.call(n,e,r,i)},n)},x.every=x.all=function(e,t,r){t||(t=x.identity);var i=!0;return null==e?i:m&amp;&amp;e.every===m?e.every(t,r):(T(e,function(e,s,o){return(i=i&amp;&amp;t.call(r,e,s,o))?void 0:n}),!!i)};var C=x.some=x.any=function(e,t,r){t||(t=x.identity);var i=!1;return null==e?i:g&amp;&amp;e.some===g?e.some(t,r):(T(e,function(e,s,o){return i||(i=t.call(r,e,s,o))?n:void 0}),!!i)};x.contains=x.include=function(e,t){return null==e?!1:y&amp;&amp;e.indexOf===y?e.indexOf(t)!=-1:C(e,function(e){return e===t})},x.invoke=function(e,t){var n=u.call(arguments,2),r=x.isFunction(t);return x.map(e,function(e){return(r?t:e[t]).apply(e,n)})},x.pluck=function(e,t){return x.map(e,function(e){return e[t]})},x.where=function(e,t,n){return x.isEmpty(t)?n?null:[]:x[n?&quot;find&quot;:&quot;filter&quot;](e,function(e){for(var n in t)if(t[n]!==e[n])return!1;return!0})},x.findWhere=function(e,t){return x.where(e,t,!0)},x.max=function(e,t,n){if(!t&amp;&amp;x.isArray(e)&amp;&amp;e[0]===+e[0]&amp;&amp;65535&gt;e.length)return Math.max.apply(Math,e);if(!t&amp;&amp;x.isEmpty(e))return-1/0;var r={computed:-1/0,value:-1/0};return T(e,function(e,i,s){var o=t?t.call(n,e,i,s):e;o&gt;=r.computed&amp;&amp;(r={value:e,computed:o})}),r.value},x.min=function(e,t,n){if(!t&amp;&amp;x.isArray(e)&amp;&amp;e[0]===+e[0]&amp;&amp;65535&gt;e.length)return Math.min.apply(Math,e);if(!t&amp;&amp;x.isEmpty(e))return 1/0;var r={computed:1/0,value:1/0};return T(e,function(e,i,s){var o=t?t.call(n,e,i,s):e;r.computed&gt;o&amp;&amp;(r={value:e,computed:o})}),r.value},x.shuffle=function(e){var t,n=0,r=[];return T(e,function(e){t=x.random(n++),r[n-1]=r[t],r[t]=e}),r};var k=function(e){return x.isFunction(e)?e:function(t){return t[e]}};x.sortBy=function(e,t,n){var r=k(t);return x.pluck(x.map(e,function(e,t,i){return{value:e</td>
      </tr>
      <tr>
        <td id="L7" class="blob-num js-line-number" data-line-number="7"></td>
        <td id="LC7" class="blob-code js-file-line">,index:t,criteria:r.call(n,e,t,i)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n&gt;r||n===void 0)return 1;if(r&gt;n||r===void 0)return-1}return e.index&lt;t.index?-1:1}),&quot;value&quot;)};var L=function(e,t,n,r){var i={},s=k(t||x.identity);return T(e,function(t,o){var u=s.call(n,t,o,e);r(i,u,t)}),i};x.groupBy=function(e,t,n){return L(e,t,n,function(e,t,n){(x.has(e,t)?e[t]:e[t]=[]).push(n)})},x.countBy=function(e,t,n){return L(e,t,n,function(e,t){x.has(e,t)||(e[t]=0),e[t]++})},x.sortedIndex=function(e,t,n,r){n=null==n?x.identity:k(n);for(var i=n.call(r,t),s=0,o=e.length;o&gt;s;){var u=s+o&gt;&gt;&gt;1;i&gt;n.call(r,e[u])?s=u+1:o=u}return s},x.toArray=function(e){return e?x.isArray(e)?u.call(e):e.length===+e.length?x.map(e,x.identity):x.values(e):[]},x.size=function(e){return null==e?0:e.length===+e.length?e.length:x.keys(e).length},x.first=x.head=x.take=function(e,t,n){return null==e?void 0:null==t||n?e[0]:u.call(e,0,t)},x.initial=function(e,t,n){return u.call(e,0,e.length-(null==t||n?1:t))},x.last=function(e,t,n){return null==e?void 0:null==t||n?e[e.length-1]:u.call(e,Math.max(e.length-t,0))},x.rest=x.tail=x.drop=function(e,t,n){return u.call(e,null==t||n?1:t)},x.compact=function(e){return x.filter(e,x.identity)};var A=function(e,t,n){return T(e,function(e){x.isArray(e)?t?o.apply(n,e):A(e,t,n):n.push(e)}),n};x.flatten=function(e,t){return A(e,t,[])},x.without=function(e){return x.difference(e,u.call(arguments,1))},x.uniq=x.unique=function(e,t,n,r){x.isFunction(t)&amp;&amp;(r=n,n=t,t=!1);var i=n?x.map(e,n,r):e,s=[],o=[];return T(i,function(n,r){(t?r&amp;&amp;o[o.length-1]===n:x.contains(o,n))||(o.push(n),s.push(e[r]))}),s},x.union=function(){return x.uniq(a.apply(r,arguments))},x.intersection=function(e){var t=u.call(arguments,1);return x.filter(x.uniq(e),function(e){return x.every(t,function(t){return x.indexOf(t,e)&gt;=0})})},x.difference=function(e){var t=a.apply(r,u.call(arguments,1));return x.filter(e,function(e){return!x.contains(t,e)})},x.zip=function(){for(var e=u.call(arguments),t=x.max(x.pluck(e,&quot;length&quot;)),n=Array(t),r=0;t&gt;r;r++)n[r]=x.pluck(e,&quot;&quot;+r);return n},x.object=function(e,t){if(null==e)return{};for(var n={},r=0,i=e.length;i&gt;r;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},x.indexOf=function(e,t,n){if(null==e)return-1;var r=0,i=e.length;if(n){if(&quot;number&quot;!=typeof n)return r=x.sortedIndex(e,t),e[r]===t?r:-1;r=0&gt;n?Math.max(0,i+n):n}if(y&amp;&amp;e.indexOf===y)return e.indexOf(t,n);for(;i&gt;r;r++)if(e[r]===t)return r;return-1},x.lastIndexOf=function(e,t,n){if(null==e)return-1;var r=null!=n;if(b&amp;&amp;e.lastIndexOf===b)return r?e.lastIndexOf(t,n):e.lastIndexOf(t);for(var i=r?n:e.length;i--;)if(e[i]===t)return i;return-1},x.range=function(e,t,n){1&gt;=arguments.length&amp;&amp;(t=e||0,e=0),n=arguments[2]||1;for(var r=Math.max(Math.ceil((t-e)/n),0),i=0,s=Array(r);r&gt;i;)s[i++]=e,e+=n;return s},x.bind=function(e,t){if(e.bind===S&amp;&amp;S)return S.apply(e,u.call(arguments,1));var n=u.call(arguments,2);return function(){return e.apply(t,n.concat(u.call(arguments)))}},x.partial=function(e){var t=u.call(arguments,1);return function(){return e.apply(this,t.concat(u.call(arguments)))}},x.bindAll=function(e){var t=u.call(arguments,1);return 0===t.length&amp;&amp;(t=x.functions(e)),T(t,function(t){e[t]=x.bind(e[t],e)}),e},x.memoize=function(e,t){var n={};return t||(t=x.identity),function(){var r=t.apply(this,arguments);return x.has(n,r)?n[r]:n[r]=e.apply(this,arguments)}},x.delay=function(e,t){var n=u.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},x.defer=function(e){return x.delay.apply(x,[e,1].concat(u.call(arguments,1)))},x.throttle=function(e,t){var n,r,i,s,o=0,u=function(){o=new Date,i=null,s=e.apply(n,r)};return function(){var a=new Date,f=t-(a-o);return n=this,r=arguments,0&gt;=f?(clearTimeout(i),i=null,o=a,s=e.apply(n,r)):i||(i=setTimeout(u,f)),s}},x.debounce=function(e,t,n){var r,i;return function(){var s=this,o=arguments,u=function(){r=null,n||(i=e.apply(s,o))},a=n&amp;&amp;!r;return clearTimeout(r),r=setTimeout(u,t),a&amp;&amp;(i=e.apply(s,o)),i}},x.once=function(e){var t,n=!1;return function(){return n?t:(n=!0,t=e.apply(this,arguments),e=null,t)}},x.wrap=function(e,t){return function(){var n=[e];return o.apply(n,arguments),t.apply(this,n)}},x.compose=function(){var e=arguments;return function(){for(var t=arguments,n=e.length-1;n&gt;=0;n--)t=[e[n].apply(this,t)];return t[0]}},x.after=function(e,t){return 0&gt;=e?t():function(){return 1&gt;--e?t.apply(this,arguments):void 0}},x.keys=E||function(e){if(e!==Object(e))throw new TypeError(&quot;Invalid object&quot;);var t=[];for(var n in e)x.has(e,n)&amp;&amp;(t[t.length]=n);return t},x.values=function(e){var t=[];for(var n in e)x.has(e,n)&amp;&amp;t.push(e[n]);return t},x.pairs=function(e){var t=[];for(var n in e)x.has(e,n)&amp;&amp;t.push([n,e[n]]);return t},x.invert=function(e){var t={};for(var n in e)x.has(e,n)&amp;&amp;(t[e[n]]=n);return t},x.functions=x.methods=function(e){var t=[];for(var n in e)x.isFunction(e[n])&amp;&amp;t.push(n);return t.sort()},x.extend=function(e){return T(u.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e},x.pick=function(e){var t={},n=a.apply(r,u.call(arguments,1));return T(n,function(n){n in e&amp;&amp;(t[n]=e[n])}),t},x.omit=function(e){var t={},n=a.apply(r,u.call(arguments,1));for(var i in e)x.contains(n,i)||(t[i]=e[i]);return t},x.defaults=function(e){return T(u.call(arguments,1),function(t){if(t)for(var n in t)null==e[n]&amp;&amp;(e[n]=t[n])}),e},x.clone=function(e){return x.isObject(e)?x.isArray(e)?e.slice():x.extend({},e):e},x.tap=function(e,t){return t(e),e};var O=function(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return e===t;e instanceof x&amp;&amp;(e=e._wrapped),t instanceof x&amp;&amp;(t=t._wrapped);var i=f.call(e);if(i!=f.call(t))return!1;switch(i){case&quot;[object String]&quot;:return e==t+&quot;&quot;;case&quot;[object Number]&quot;:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case&quot;[object Date]&quot;:case&quot;[object Boolean]&quot;:return+e==+t;case&quot;[object RegExp]&quot;:return e.source==t.source&amp;&amp;e.global==t.global&amp;&amp;e.multiline==t.multiline&amp;&amp;e.ignoreCase==t.ignoreCase}if(&quot;object&quot;!=typeof e||&quot;object&quot;!=typeof t)return!1;for(var s=n.length;s--;)if(n[s]==e)return r[s]==t;n.push(e),r.push(t);var o=0,u=!0;if(&quot;[object Array]&quot;==i){if(o=e.length,u=o==t.length)for(;o--&amp;&amp;(u=O(e[o],t[o],n,r)););}else{var a=e.constructor,l=t.constructor;if(a!==l&amp;&amp;!(x.isFunction(a)&amp;&amp;a instanceof a&amp;&amp;x.isFunction(l)&amp;&amp;l instanceof l))return!1;for(var c in e)if(x.has(e,c)&amp;&amp;(o++,!(u=x.has(t,c)&amp;&amp;O(e[c],t[c],n,r))))break;if(u){for(c in t)if(x.has(t,c)&amp;&amp;!(o--))break;u=!o}}return n.pop(),r.pop(),u};x.isEqual=function(e,t){return O(e,t,[],[])},x.isEmpty=function(e){if(null==e)return!0;if(x.isArray(e)||x.isString(e))return 0===e.length;for(var t in e)if(x.has(e,t))return!1;return!0},x.isElement=function(e){return!!e&amp;&amp;1===e.nodeType},x.isArray=w||function(e){return&quot;[object Array]&quot;==f.call(e)},x.isObject=function(e){return e===Object(e)},T([&quot;Arguments&quot;,&quot;Function&quot;,&quot;String&quot;,&quot;Number&quot;,&quot;Date&quot;,&quot;RegExp&quot;],function(e){x[&quot;is&quot;+e]=function(t){return f.call(t)==&quot;[object &quot;+e+&quot;]&quot;}}),x.isArguments(arguments)||(x.isArguments=function(e){return!!e&amp;&amp;!!x.has(e,&quot;callee&quot;)}),&quot;function&quot;!=typeof /./&amp;&amp;(x.isFunction=function(e){return&quot;function&quot;==typeof e}),x.isFinite=function(e){return isFinite(e)&amp;&amp;!isNaN(parseFloat(e))},x.isNaN=function(e){return x.isNumber(e)&amp;&amp;e!=+e},x.isBoolean=function(e){return e===!0||e===!1||&quot;[object Boolean]&quot;==f.call(e)},x.isNull=function(e){return null===e},x.isUndefined=function(e){return e===void 0},x.has=function(e,t){return l.call(e,t)},x.noConflict=function(){return e._=t,this},x.identity=function(e){return e},x.times=function(e,t,n){for(var r=Array(e),i=0;e&gt;i;i++)r[i]=t.call(n,i);return r},x.random=function(e,t){return null==t&amp;&amp;(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))};var M={escape:{&quot;&amp;&quot;:&quot;&amp;amp;&quot;,&quot;&lt;&quot;:&quot;&amp;lt;&quot;,&quot;&gt;&quot;:&quot;&amp;gt;&quot;,&#39;&quot;&#39;:&quot;&amp;quot;&quot;,&quot;&#39;&quot;:&quot;&amp;#x27;&quot;,&quot;/&quot;:&quot;&amp;#x2F;&quot;}};M.unescape=x.invert(M.escape);var _={escape:RegExp(&quot;[&quot;+x.keys(M.escape).join(&quot;&quot;)+&quot;]&quot;,&quot;g&quot;),unescape:RegExp(&quot;(&quot;+x.keys(M.unescape).join(&quot;|&quot;)+&quot;)&quot;,&quot;g&quot;)};x.each([&quot;escape&quot;,&quot;unescape&quot;],function(e){x[e]=function(t){return null==t?&quot;&quot;:(&quot;&quot;+t).replace(_[e],function(t){return M[e][t]})}}),x.result=function(e,t){if(null==e)return null;var n=e[t];return x.isFunction(n)?n.call(e):n},x.mixin=function(e){T(x.functions(e),function(t){var n=x[t]=e[t];x.prototype[t]=function(){var e=[this._wrapped];return o.apply(e,arguments),j.call(this,n.apply(x,e))}})};var D=0;x.uniqueId=function(e){var t=++D+&quot;&quot;;return e?e+t:t},x.templateSettings={evaluate:/&lt;%([\s\S]+?)%&gt;/g,interpolate:/&lt;%=([\s\S]+?)%&gt;/g,escape:/&lt;%-([\s\S]+?)%&gt;/g};var P=/(.)^/,H={&quot;&#39;&quot;:&quot;&#39;&quot;,&quot;\\&quot;:&quot;\\&quot;,&quot;\r&quot;:&quot;r&quot;,&quot;\n&quot;:&quot;n&quot;,&quot;	&quot;:&quot;t&quot;,&quot;\u2028&quot;:&quot;u2028&quot;,&quot;\u2029&quot;:&quot;u2029&quot;},B=/\\|&#39;|\r|\n|\t|\u2028|\u2029/g;x.template=function(e,t,n){var r;n=x.defaults({},n,x.templateSettings);var i=RegExp([(n.escape||P).source,(n.interpolate||P).source,(n.evaluate||P).source].join(&quot;|&quot;)+&quot;|$&quot;,&quot;g&quot;),s=0,o=&quot;__p+=&#39;&quot;;e.replace(i,function(t,n,r,i,u){return o+=e.slice(s,u).replace(B,function(e){return&quot;\\&quot;+H[e]}),n&amp;&amp;(o+=&quot;&#39;+\n((__t=(&quot;+n+&quot;))==null?&#39;&#39;:_.escape(__t))+\n&#39;&quot;),r&amp;&amp;(o+=&quot;&#39;+\n((__t=(&quot;+r+&quot;))==null?&#39;&#39;:__t)+\n&#39;&quot;),i&amp;&amp;(o+=&quot;&#39;;\n&quot;+i+&quot;\n__p+=&#39;&quot;),s=u+t.length,t}),o+=&quot;&#39;;\n&quot;,n.variable||(o=&quot;with(obj||{}){\n&quot;+o+&quot;}\n&quot;),o=&quot;var __t,__p=&#39;&#39;,__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,&#39;&#39;);};\n&quot;+o+&quot;return __p;\n&quot;;try{r=Function(n.variable||&quot;obj&quot;,&quot;_&quot;,o)}catch(u){throw u.source=o,u}if(t)return r(t,x);var a=function(e){return r.call(this,e,x)};return a.source=&quot;function(&quot;+(n.variable||&quot;obj&quot;)+&quot;){\n&quot;+o+&quot;}&quot;,a},x.chain=function(e){return x(e).chain()};var j=function(e){return this._chain?x(e).chain():e};x.mixin(x),T([&quot;pop&quot;,&quot;push&quot;,&quot;reverse&quot;,&quot;shift&quot;,&quot;sort&quot;,&quot;splice&quot;,&quot;unshift&quot;],function(e){var t=r[e];x.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),&quot;shift&quot;!=e&amp;&amp;&quot;splice&quot;!=e||0!==n.length||delete n[0],j.call(this,n)}}),T([&quot;concat&quot;,&quot;join&quot;,&quot;slice&quot;],function(e){var t=r[e];x.prototype[e]=function(){return j.call(this,t.apply(this._wrapped,arguments))}}),x.extend(x.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}.call(this),typeof JSON!=&quot;object&quot;&amp;&amp;(JSON={}),function(){&quot;use strict&quot;;function f(e){return e&lt;10?&quot;0&quot;+e:e}function quote(e){return escapable.lastIndex=0,escapable.test(e)?&#39;&quot;&#39;+e.replace(escapable,function(e){var t=meta[e];return typeof t==&quot;string&quot;?t:&quot;\\u&quot;+(&quot;0000&quot;+e.charCodeAt(0).toString(16)).slice(-4)})+&#39;&quot;&#39;:&#39;&quot;&#39;+e+&#39;&quot;&#39;}function str(e,t){var n,r,i,s,o=gap,u,a=t[e];a&amp;&amp;typeof a==&quot;object&quot;&amp;&amp;typeof a.toJSON==&quot;function&quot;&amp;&amp;(a=a.toJSON(e)),typeof rep==&quot;function&quot;&amp;&amp;(a=rep.call(t,e,a));switch(typeof a){case&quot;string&quot;:return quote(a);case&quot;number&quot;:return isFinite(a)?String(a):&quot;null&quot;;case&quot;boolean&quot;:case&quot;null&quot;:return String(a);case&quot;object&quot;:if(!a)return&quot;null&quot;;gap+=indent,u=[];if(Object.prototype.toString.apply(a)===&quot;[object Array]&quot;){s=a.length;for(n=0;n&lt;s;n+=1)u[n]=str(n,a)||&quot;null&quot;;return i=u.length===0?&quot;[]&quot;:gap?&quot;[\n&quot;+gap+u.join(&quot;,\n&quot;+gap)+&quot;\n&quot;+o+&quot;]&quot;:&quot;[&quot;+u.join(&quot;,&quot;)+&quot;]&quot;,gap=o,i}if(rep&amp;&amp;typeof rep==&quot;object&quot;){s=rep.length;for(n=0;n&lt;s;n+=1)typeof rep[n]==&quot;string&quot;&amp;&amp;(r=rep[n],i=str(r,a),i&amp;&amp;u.push(quote(r)+(gap?&quot;: &quot;:&quot;:&quot;)+i))}else for(r in a)Object.prototype.hasOwnProperty.call(a,r)&amp;&amp;(i=str(r,a),i&amp;&amp;u.push(quote(r)+(gap?&quot;: &quot;:&quot;:&quot;)+i));return i=u.length===0?&quot;{}&quot;:gap?&quot;{\n&quot;+gap+u.join(&quot;,\n&quot;+gap)+&quot;\n&quot;+o+&quot;}&quot;:&quot;{&quot;+u.join(&quot;,&quot;)+&quot;}&quot;,gap=o,i}}typeof Date.prototype.toJSON!=&quot;function&quot;&amp;&amp;(Date.prototype.toJSON=function(e){return isFinite(this.valueOf())?this.getUTCFullYear()+&quot;-&quot;+f(this.getUTCMonth()+1)+&quot;-&quot;+f(this.getUTCDate())+&quot;T&quot;+f(this.getUTCHours())+&quot;:&quot;+f(this.getUTCMinutes())+&quot;:&quot;+f(this.getUTCSeconds())+&quot;Z&quot;:null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(e){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\&quot;\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={&quot;\b&quot;:&quot;\\b&quot;,&quot;	&quot;:&quot;\\t&quot;,&quot;\n&quot;:&quot;\\n&quot;,&quot;\f&quot;:&quot;\\f&quot;,&quot;\r&quot;:&quot;\\r&quot;,&#39;&quot;&#39;:&#39;\\&quot;&#39;,&quot;\\&quot;:&quot;\\\\&quot;},rep;typeof JSON.stringify!=&quot;function&quot;&amp;&amp;(JSON.stringify=function(e,t,n){var r;gap=&quot;&quot;,indent=&quot;&quot;;if(typeof n==&quot;number&quot;)for(r=0;r&lt;n;r+=1)indent+=&quot; &quot;;else typeof n==&quot;string&quot;&amp;&amp;(indent=n);rep=t;if(!t||typeof t==&quot;function&quot;||typeof t==&quot;object&quot;&amp;&amp;typeof t.length==&quot;number&quot;)return str(&quot;&quot;,{&quot;&quot;:e});throw new Error(&quot;JSON.stringify&quot;)}),typeof JSON.parse!=&quot;function&quot;&amp;&amp;(JSON.parse=function(text,reviver){function walk(e,t){var n,r,i=e[t];if(i&amp;&amp;typeof i==&quot;object&quot;)for(n in i)Object.prototype.hasOwnProperty.call(i,n)&amp;&amp;(r=walk(i,n),r!==undefined?i[n]=r:delete i[n]);return reviver.call(e,t,i)}var j;text=String(text),cx.lastIndex=0,cx.test(text)&amp;&amp;(text=text.replace(cx,function(e){return&quot;\\u&quot;+(&quot;0000&quot;+e.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:[&quot;\\\/bfnrt]|u[0-9a-fA-F]{4})/g,&quot;@&quot;).replace(/&quot;[^&quot;\\\n\r]*&quot;|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,&quot;]&quot;).replace(/(?:^|:|,)(?:\s*\[)+/g,&quot;&quot;)))return j=eval(&quot;(&quot;+text+&quot;)&quot;),typeof reviver==&quot;function&quot;?walk({&quot;&quot;:j},&quot;&quot;):j;throw new SyntaxError(&quot;JSON.parse&quot;)})}(),function(){var e=this,t=e.Backbone,n=Array.prototype.slice,r=Array.prototype.splice,i;typeof exports!=&quot;undefined&quot;?i=exports:i=e.Backbone={},i.VERSION=&quot;0.9.2&quot;;var s=e._;!s&amp;&amp;typeof require!=&quot;undefined&quot;&amp;&amp;(s=require(&quot;underscore&quot;));var o=e.jQuery||e.Zepto||e.ender;i.setDomLibrary=function(e){o=e},i.noConflict=function(){return e.Backbone=t,this},i.emulateHTTP=!1,i.emulateJSON=!1;var u=/\s+/,a=i.Events={on:function(e,t,n){var r,i,s,o,a;if(!t)return this;e=e.split(u),r=this._callbacks||(this._callbacks={});while(i=e.shift())a=r[i],s=a?a.tail:{},s.next=o={},s.context=n,s.callback=t,r[i]={tail:o,next:a?a.next:s};return this},off:function(e,t,n){var r,i,o,a,f,l;if(!(i=this._callbacks))return;if(!(e||t||n))return delete this._callbacks,this;e=e?e.split(u):s.keys(i);while(r=e.shift()){o=i[r],delete i[r];if(!o||!t&amp;&amp;!n)continue;a=o.tail;while((o=o.next)!==a)f=o.callback,l=o.context,(t&amp;&amp;f!==t||n&amp;&amp;l!==n)&amp;&amp;this.on(r,f,l)}return this},trigger:function(e){var t,r,i,s,o,a,f;if(!(i=this._callbacks))return this;a=i.all,e=e.split(u),f=n.call(arguments,1);while(t=e.shift()){if(r=i[t]){s=r.tail;while((r=r.next)!==s)r.callback.apply(r.context||this,f)}if(r=a){s=r.tail,o=[t].concat(f);while((r=r.next)!==s)r.callback.apply(r.context||this,o)}}return this}};a.bind=a.on,a.unbind=a.off;var f=i.Model=function(e,t){var n;e||(e={}),t&amp;&amp;t.parse&amp;&amp;(e=this.parse(e));if(n=C(this,&quot;defaults&quot;))e=s.extend({},n,e);t&amp;&amp;t.collection&amp;&amp;(this.collection=t.collection),this.attributes={},this._escapedAttributes={},this.cid=s.uniqueId(&quot;c&quot;),this.changed={},this._silent={},this._pending={},this.set(e,{silent:!0}),this.changed={},this._silent={},this._pending={},this._previousAttributes=s.clone(this.attributes),this.initialize.apply(this,arguments)};s.extend(f.prototype,a,{changed:null,_silent:null,_pending:null,idAttribute:&quot;id&quot;,initialize:function(){},toJSON:function(e){return s.clone(this.attributes)},get:function(e){return this.attributes[e]},escape:function(e){var t;if(t=this._escapedAttributes[e])return t;var n=this.get(e);return this._escapedAttributes[e]=s.escape(n==null?&quot;&quot;:&quot;&quot;+n)},has:function(e){return this.get(e)!=null},set:function(e,t,n){var r,i,o;s.isObject(e)||e==null?(r=e,n=t):(r={},r[e]=t),n||(n={});if(!r)return this;r instanceof f&amp;&amp;(r=r.attributes);if(n.unset)for(i in r)r[i]=void 0;if(!this._validate(r,n))return!1;this.idAttribute in r&amp;&amp;(this.id=r[this.idAttribute]);var u=n.changes={},a=this.attributes,l=this._escapedAttributes,c=this._previousAttributes||{};for(i in r){o=r[i];if(!s.isEqual(a[i],o)||n.unset&amp;&amp;s.has(a,i))delete l[i],(n.silent?this._silent:u)[i]=!0;n.unset?delete a[i]:a[i]=o,!s.isEqual(c[i],o)||s.has(a,i)!=s.has(c,i)?(this.changed[i]=o,n.silent||(this._pending[i]=!0)):(delete this.changed[i],delete this._pending[i])}return n.silent||this.change(n),this},unset:function(e,t){return(t||(t={})).unset=!0,this.set(e,null,t)},clear:function(e){return(e||(e={})).unset=!0,this.set(s.clone(this.attributes),e)},fetch:function(e){e=e?s.clone(e):{};var t=this,n=e.success;return e.success=function(r,i,s){if(!t.set(t.parse(r,s),e))return!1;n&amp;&amp;n(t,r)},e.error=i.wrapError(e.error,t,e),(this.sync||i.sync).call(this,&quot;read&quot;,this,e)},save:function(e,t,n){var r,o;s.isObject(e)||e==null?(r=e,n=t):(r={},r[e]=t),n=n?s.clone(n):{};if(n.wait){if(!this._validate(r,n))return!1;o=s.clone(this.attributes)}var u=s.extend({},n,{silent:!0});if(r&amp;&amp;!this.set(r,n.wait?u:n))return!1;var a=this,f=n.success;n.success=function(e,t,i){var o=a.parse(e,i);n.wait&amp;&amp;(delete n.wait,o=s.extend(r||{},o));if(!a.set(o,n))return!1;f?f(a,e):a.trigger(&quot;sync&quot;,a,e,n)},n.error=i.wrapError(n.error,a,n);var l=this.isNew()?&quot;create&quot;:&quot;update&quot;,c=(this.sync||i.sync).call(this,l,this,n);return n.wait&amp;&amp;this.set(o,u),c},destroy:function(e){e=e?s.clone(e):{};var t=this,n=e.success,r=function(){t.trigger(&quot;destroy&quot;,t,t.collection,e)};if(this.isNew())return r(),!1;e.success=function(i){e.wait&amp;&amp;r(),n?n(t,i):t.trigger(&quot;sync&quot;,t,i,e)},e.error=i.wrapError(e.error,t,e);var o=(this.sync||i.sync).call(this,&quot;delete&quot;,this,e);return e.wait||r(),o},url:function(){var e=C(this,&quot;urlRoot&quot;)||C(this.collection,&quot;url&quot;)||k();return this.isNew()?e:e+(e.charAt(e.length-1)==&quot;/&quot;?&quot;&quot;:&quot;/&quot;)+encodeURIComponent(this.id)},parse:function(e,t){return e},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return this.id==null},change:function(e){e||(e={});var t=this._changing;this._changing=!0;for(var n in this._silent)this._pending[n]=!0;var r=s.extend({},e.changes,this._silent);this._silent={};for(var n in r)this.trigger(&quot;change:&quot;+n,this,this.get(n),e);if(t)return this;while(!s.isEmpty(this._pending)){this._pending={},this.trigger(&quot;change&quot;,this,e);for(var n in this.changed){if(this._pending[n]||this._silent[n])continue;delete this.changed[n]}this._previousAttributes=s.clone(this.attributes)}return this._changing=!1,this},hasChanged:function(e){return arguments.length?s.has(this.changed,e):!s.isEmpty(this.changed)},changedAttributes:function(e){if(!e)return this.hasChanged()?s.clone(this.changed):!1;var t,n=!1,r=this._previousAttributes;for(var i in e){if(s.isEqual(r[i],t=e[i]))continue;(n||(n={}))[i]=t}return n},previous:function(e){return!arguments.length||!this._previousAttributes?null:this._previousAttributes[e]},previousAttributes:function(){return s.clone(this._previousAttributes)},isValid:function(){return!this.validate(this.attributes)},_validate:function(e,t){if(t.silent||!this.validate)return!0;e=s.extend({},this.attributes,e);var n=this.validate(e,t);return n?(t&amp;&amp;t.error?t.error(this,n,t):this.trigger(&quot;error&quot;,this,n,t),!1):!0}});var l=i.Collection=function(e,t){t||(t={}),t.model&amp;&amp;(this.model=t.model),t.comparator&amp;&amp;(this.comparator=t.comparator),this._reset(),this.initialize.apply(this,arguments),e&amp;&amp;this.reset(e,{silent:!0,parse:t.parse})};s.extend(l.prototype,a,{model:f,initialize:function(){},toJSON:function(e){return this.map(function(t){return t.toJSON(e)})},add:function(e,t){var n,i,o,u,a,f,l={},c={},h=[];t||(t={}),e=s.isArray(e)?e.slice():[e];for(n=0,o=e.length;n&lt;o;n++){if(!(u=e[n]=this._prepareModel(e[n],t)))throw new Error(&quot;Can&#39;t add an invalid model to a collection&quot;);a=u.cid,f=u.id;if(l[a]||this._byCid[a]||f!=null&amp;&amp;(c[f]||this._byId[f])){h.push(n);continue}l[a]=c[f]=u}n=h.length;while(n--)e.splice(h[n],1);for(n=0,o=e.length;n&lt;o;n++)(u=e[n]).on(&quot;all&quot;,this._onModelEvent,this),this._byCid[u.cid]=u,u.id!=null&amp;&amp;(this._byId[u.id]=u);this.length+=o,i=t.at!=null?t.at:this.models.length,r.apply(this.models,[i,0].concat(e)),this.comparator&amp;&amp;this.sort({silent:!0});if(t.silent)return this;for(n=0,o=this.models.length;n&lt;o;n++){if(!l[(u=this.models[n]).cid])continue;t.index=n,u.trigger(&quot;add&quot;,u,this,t)}return this},remove:function(e,t){var n,r,i,o;t||(t={}),e=s.isArray(e)?e.slice():[e];for(n=0,r=e.length;n&lt;r;n++){o=this.getByCid(e[n])||this.get(e[n]);if(!o)continue;delete this._byId[o.id],delete this._byCid[o.cid],i=this.indexOf(o),this.models.splice(i,1),this.length--,t.silent||(t.index=i,o.trigger(&quot;remove&quot;,o,this,t)),this._removeReference(o)}return this},push:function(e,t){return e=this._prepareModel(e,t),this.add(e,t),e},pop:function(e){var t=this.at(this.length-1);return this.remove(t,e),t},unshift:function(e,t){return e=this._prepareModel(e,t),this.add(e,s.extend({at:0},t)),e},shift:function(e){var t=this.at(0);return this.remove(t,e),t},get:function(e){return e==null?void 0:this._byId[e.id!=null?e.id:e]},getByCid:function(e){return e&amp;&amp;this._byCid[e.cid||e]},at:function(e){return this.models[e]},where:function(e){return s.isEmpty(e)?[]:this.filter(function(t){for(var n in e)if(e[n]!==t.get(n))return!1;return!0})},sort:function(e){e||(e={});if(!this.comparator)throw new Error(&quot;Cannot sort a set without a comparator&quot;);var t=s.bind(this.comparator,this);return this.comparator.length==1?this.models=this.sortBy(t):this.models.sort(t),e.silent||this.trigger(&quot;reset&quot;,this,e),this},pluck:function(e){return s.map(this.models,function(t){return t.get(e)})},reset:function(e,t){e||(e=[]),t||(t={});for(var n=0,r=this.models.length;n&lt;r;n++)this._removeReference(this.models[n]);return this._reset(),this.add(e,s.extend({silent:!0},t)),t.silent||this.trigger(&quot;reset&quot;,this,t),this},fetch:function(e){e=e?s.clone(e):{},e.parse===undefined&amp;&amp;(e.parse=!0);var t=this,n=e.success;return e.success=function(r,i,s){t[e.add?&quot;add&quot;:&quot;reset&quot;](t.parse(r,s),e),n&amp;&amp;n(t,r)},e.error=i.wrapError(e.error,t,e),(this.sync||i.sync).call(this,&quot;read&quot;,this,e)},create:function(e,t){var n=this;t=t?s.clone(t):{},e=this._prepareModel(e,t);if(!e)return!1;t.wait||n.add(e,t);var r=t.success;return t.success=function(i,s,o){t.wait&amp;&amp;n.add(i,t),r?r(i,s):i.trigger(&quot;sync&quot;,e,s,t)},e.save(null,t),e},parse:function(e,t){return e},chain:function(){return s(this.models).chain()},_reset:function(e){this.length=0,this.models=[],this._byId={},this._byCid={}},_prepareModel:function(e,t){t||(t={});if(e instanceof f)e.collection||(e.collection=this);else{var n=e;t.collection=this,e=new this.model(n,t),e._validate(e.attributes,t)||(e=!1)}return e},_removeReference:function(e){this==e.collection&amp;&amp;delete e.collection,e.off(&quot;all&quot;,this._onModelEvent,this)},_onModelEvent:function(e,t,n,r){if((e==&quot;add&quot;||e==&quot;remove&quot;)&amp;&amp;n!=this)return;e==&quot;destroy&quot;&amp;&amp;this.remove(t,r),t&amp;&amp;e===&quot;change:&quot;+t.idAttribute&amp;&amp;(delete this._byId[t.previous(t.idAttribute)],this._byId[t.id]=t),this.trigger.apply(this,arguments)}});var c=[&quot;forEach&quot;,&quot;each&quot;,&quot;map&quot;,&quot;reduce&quot;,&quot;reduceRight&quot;,&quot;find&quot;,&quot;detect&quot;,&quot;filter&quot;,&quot;select&quot;,&quot;reject&quot;,&quot;every&quot;,&quot;all&quot;,&quot;some&quot;,&quot;any&quot;,&quot;include&quot;,&quot;contains&quot;,&quot;invoke&quot;,&quot;max&quot;,&quot;min&quot;,&quot;sortBy&quot;,&quot;sortedIndex&quot;,&quot;toArray&quot;,&quot;size&quot;,&quot;first&quot;,&quot;initial&quot;,&quot;rest&quot;,&quot;last&quot;,&quot;without&quot;,&quot;indexOf&quot;,&quot;shuffle&quot;,&quot;lastIndexOf&quot;,&quot;isEmpty&quot;,&quot;groupBy&quot;];s.each(c,function(e){l.prototype[e]=function(){return s[e].apply(s,[this.models].concat(s.toArray(arguments)))}});var h=i.Router=function(e){e||(e={}),e.routes&amp;&amp;(this.routes=e.routes),this._bindRoutes(),this.initialize.apply(this,arguments)},p=/:\w+/g,d=/\*\w+/g,v=/[-[\]{}()+?.,\\^$|#\s]/g;s.extend(h.prototype,a,{initialize:function(){},route:function(e,t,n){return i.history||(i.history=new m),s.isRegExp(e)||(e=this._routeToRegExp(e)),n||(n=this[t]),i.history.route(e,s.bind(function(r){var s=this._extractParameters(e,r);n&amp;&amp;n.apply(this,s),this.trigger.apply(this,[&quot;route:&quot;+t].concat(s)),i.history.trigger(&quot;route&quot;,this,t,s)},this)),this},navigate:function(e,t){i.history.navigate(e,t)},_bindRoutes:function(){if(!this.routes)return;var e=[];for(var t in this.routes)e.unshift([t,this.routes[t]]);for(var n=0,r=e.length;n&lt;r;n++)this.route(e[n][0],e[n][1],this[e[n][1]])},_routeToRegExp:function(e){return e=e.replace(v,&quot;\\$&amp;&quot;).replace(p,&quot;([^/]+)&quot;).replace(d,&quot;(.*?)&quot;),new RegExp(&quot;^&quot;+e+&quot;$&quot;)},_extractParameters:function(e,t){return e.exec(t).slice(1)}});var m=i.History=function(){this.handlers=[],s.bindAll(this,&quot;checkUrl&quot;)},g=/^[#\/]/,y=/msie [\w.]+/;m.started=!1,s.extend(m.prototype,a,{interval:50,getHash:function(e){var t=e?e.location:window.location,n=t.href.match(/#(.*)$/);return n?n[1]:&quot;&quot;},getFragment:function(e,t){if(e==null)if(this._hasPushState||t){e=window.location.pathname;var n=window.location.search;n&amp;&amp;(e+=n)}else e=this.getHash();return e.indexOf(this.options.root)||(e=e.substr(this.options.root.length)),e.replace(g,&quot;&quot;)},start:function(e){if(m.started)throw new Error(&quot;Backbone.history has already been started&quot;);m.started=!0,this.options=s.extend({},{root:&quot;/&quot;},this.options,e),this._wantsHashChange=this.options.hashChange!==!1,this._wantsPushState=!!this.options.pushState,this._hasPushState=!!(this.options.pushState&amp;&amp;window.history&amp;&amp;window.history.pushState);var t=this.getFragment(),n=document.documentMode,r=y.exec(navigator.userAgent.toLowerCase())&amp;&amp;(!n||n&lt;=7);r&amp;&amp;(this.iframe=o(&#39;&lt;iframe src=&quot;javascript:0&quot; tabindex=&quot;-1&quot; /&gt;&#39;).hide().appendTo(&quot;body&quot;)[0].contentWindow,this.navigate(t)),this._hasPushState?o(window).bind(&quot;popstate&quot;,this.checkUrl):this._wantsHashChange&amp;&amp;&quot;onhashchange&quot;in window&amp;&amp;!r?o(window).bind(&quot;hashchange&quot;,this.checkUrl):this._wantsHashChange&amp;&amp;(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),this.fragment=t;var i=window.location,u=i.pathname==this.options.root;if(this._wantsHashChange&amp;&amp;this._wantsPushState&amp;&amp;!this._hasPushState&amp;&amp;!u)return this.fragment=this.getFragment(null,!0),window.location.replace(this.options.root+&quot;#&quot;+this.fragment),!0;this._wantsPushState&amp;&amp;this._hasPushState&amp;&amp;u&amp;&amp;i.hash&amp;&amp;(this.fragment=this.getHash().replace(g,&quot;&quot;),window.history.replaceState({},document.title,i.protocol+&quot;//&quot;+i.host+this.options.root+this.fragment));if(!this.options.silent)return this.loadUrl()},stop:function(){o(window).unbind(&quot;popstate&quot;,this.checkUrl).unbind(&quot;hashchange&quot;,this.checkUrl),clearInterval(this._checkUrlInterval),m.started=!1},route:function(e,t){this.handlers.unshift({route:e,callback:t})},checkUrl:function(e){var t=this.getFragment();t==this.fragment&amp;&amp;this.iframe&amp;&amp;(t=this.getFragment(this.getHash(this.iframe)));if(t==this.fragment)return!1;this.iframe&amp;&amp;this.navigate(t),this.loadUrl()||this.loadUrl(this.getHash())},loadUrl:function(e){var t=this.fragment=this.getFragment(e),n=s.any(this.handlers,function(e){if(e.route.test(t))return e.callback(t),!0});return n},navigate:function(e,t){if(!m.started)return!1;if(!t||t===!0)t={trigger:t};var n=(e||&quot;&quot;).replace(g,&quot;&quot;);if(this.fragment==n)return;this._hasPushState?(n.indexOf(this.options.root)!=0&amp;&amp;(n=this.options.root+n),this.fragment=n,window.history[t.replace?&quot;replaceState&quot;:&quot;pushState&quot;]({},document.title,n)):this._wantsHashChange?(this.fragment=n,this._updateHash(window.location,n,t.replace),this.iframe&amp;&amp;n!=this.getFragment(this.getHash(this.iframe))&amp;&amp;(t.replace||this.iframe.document.open().close(),this._updateHash(this.iframe.location,n,t.replace))):window.location.assign(this.options.root+e),t.trigger&amp;&amp;this.loadUrl(e)},_updateHash:function(e,t,n){n?e.replace(e.toString().replace(/(javascript:|#).*$/,&quot;&quot;)+&quot;#&quot;+t):e.hash=t}});var b=i.View=function(e){this.cid=s.uniqueId(&quot;view&quot;),this._configure(e||{}),this._ensureElement(),this.initialize.apply(this,arguments),this.delegateEvents()},w=/^(\S+)\s*(.*)$/,E=[&quot;model&quot;,&quot;collection&quot;,&quot;el&quot;,&quot;id&quot;,&quot;attributes&quot;,&quot;className&quot;,&quot;tagName&quot;];s.extend(b.prototype,a,{tagName:&quot;div&quot;,$:function(e){return this.$el.find(e)},initialize:function(){},render:function(){return this},remove:function(){return this.$el.remove(),this},make:function(e,t,n){var r=document.createElement(e);return t&amp;&amp;o(r).attr(t),n&amp;&amp;o(r).html(n),r},setElement:function(e,t){return this.$el&amp;&amp;this.undelegateEvents(),this.$el=e instanceof o?e:o(e),this.el=this.$el[0],t!==!1&amp;&amp;this.delegateEvents(),this},delegateEvents:function(e){if(!e&amp;&amp;!(e=C(this,&quot;events&quot;)))return;this.undelegateEvents();for(var t in e){var n=e[t];s.isFunction(n)||(n=this[e[t]]);if(!n)throw new Error(&#39;Method &quot;&#39;+e[t]+&#39;&quot; does not exist&#39;);var r=t.match(w),i=r[1],o=r[2];n=s.bind(n,this),i+=&quot;.delegateEvents&quot;+this.cid,o===&quot;&quot;?this.$el.bind(i,n):this.$el.delegate(o,i,n)}},undelegateEvents:function(){this.$el.unbind(&quot;.delegateEvents&quot;+this.cid)},_configure:function(e){this.options&amp;&amp;(e=s.extend({},this.options,e));for(var t=0,n=E.length;t&lt;n;t++){var r=E[t];e[r]&amp;&amp;(this[r]=e[r])}this.options=e},_ensureElement:function(){if(!this.el){var e=C(this,&quot;attributes&quot;)||{};this.id&amp;&amp;(e.id=this.id),this.className&amp;&amp;(e[&quot;class&quot;]=this.className),this.setElement(this.make(this.tagName,e),!1)}else this.setElement(this.el,!1)}});var S=function(e,t){var n=N(this,e,t);return n.extend=this.extend,n};f.extend=l.extend=h.extend=b.extend=S;var x={create:&quot;POST&quot;,update:&quot;PUT&quot;,&quot;delete&quot;:&quot;DELETE&quot;,read:&quot;GET&quot;};i.sync=function(e,t,n){var r=x[e];n||(n={});var u={type:r,dataType:&quot;json&quot;};return n.url||(u.url=C(t,&quot;url&quot;)||k()),!n.data&amp;&amp;t&amp;&amp;(e==&quot;create&quot;||e==&quot;update&quot;)&amp;&amp;(u.contentType=&quot;application/json&quot;,u.data=JSON.stringify(t.toJSON())),i.emulateJSON&amp;&amp;(u.contentType=&quot;application/x-www-form-urlencoded&quot;,u.data=u.data?{model:u.data}:{}),i.emulateHTTP&amp;&amp;(r===&quot;PUT&quot;||r===&quot;DELETE&quot;)&amp;&amp;(i.emulateJSON&amp;&amp;(u.data._method=r),u.type=&quot;POST&quot;,u.beforeSend=function(e){e.setRequestHeader(&quot;X-HTTP-Method-Override&quot;,r)}),u.type!==&quot;GET&quot;&amp;&amp;!i.emulateJSON&amp;&amp;(u.processData=!1),o.ajax(s.extend(u,n))},i.wrapError=function(e,t,n){return function(r,i){i=r===t?i:r,e?e(t,i,n):t.trigger(&quot;error&quot;,t,i,n)}};var T=function(){},N=function(e,t,n){var r;return t&amp;&amp;t.hasOwnProperty(&quot;constructor&quot;)?r=t.constructor:r=function(){e.apply(this,arguments)},s.extend(r,e),T.prototype=e.prototype,r.prototype=new T,t&amp;&amp;s.extend(r.prototype,t),n&amp;&amp;s.extend(r,n),r.prototype.constructor=r,r.__super__=e.prototype,r},C=function(e,t){return!e||!e[t]?null:s.isFunction(e[t])?e[t]():e[t]},k=function(){throw new Error(&#39;A &quot;url&quot; property or function must be specified&#39;)}}.call(this),function(e,t,n){var r=e.L,i={};i.version=&quot;0.7.3&quot;,typeof module==&quot;object&quot;&amp;&amp;typeof module.exports==&quot;object&quot;?module.exports=i:typeof define==&quot;function&quot;&amp;&amp;define.amd&amp;&amp;define(i),i.noConflict=function(){return e.L=r,this},e.L=i,i.Util={extend:function(e){var t=Array.prototype.slice.call(arguments,1),n,r,i,s;for(r=0,i=t.length;r&lt;i;r++){s=t[r]||{};for(n in s)s.hasOwnProperty(n)&amp;&amp;(e[n]=s[n])}return e},bind:function(e,t){var n=arguments.length&gt;2?Array.prototype.slice.call(arguments,2):null;return function(){return e.apply(t,n||arguments)}},stamp:function(){var e=0,t=&quot;_leaflet_id&quot;;return function(n){return n[t]=n[t]||++e,n[t]}}(),invokeEach:function(e,t,n){var r,i;if(typeof e==&quot;object&quot;){i=Array.prototype.slice.call(arguments,3);for(r in e)t.apply(n,[r,e[r]].concat(i));return!0}return!1},limitExecByInterval:function(e,t,n){var r,i;return function s(){var o=arguments;if(r){i=!0;return}r=!0,setTimeout(function(){r=!1,i&amp;&amp;(s.apply(n,o),i=!1)},t),e.apply(n,o)}},falseFn:function(){return!1},formatNum:function(e,t){var n=Math.pow(10,t||5);return Math.round(e*n)/n},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,&quot;&quot;)},splitWords:function(e){return i.Util.trim(e).split(/\s+/)},setOptions:function(e,t){return e.options=i.extend({},e.options,t),e.options},getParamString:function(e,t,n){var r=[];for(var i in e)r.push(encodeURIComponent(n?i.toUpperCase():i)+&quot;=&quot;+encodeURIComponent(e[i]));return(!t||t.indexOf(&quot;?&quot;)===-1?&quot;?&quot;:&quot;&amp;&quot;)+r.join(&quot;&amp;&quot;)},template:function(e,t){return e.replace(/\{ *([\w_]+) *\}/g,function(e,r){var i=t[r];if(i===n)throw new Error(&quot;No value provided for variable &quot;+e);return typeof i==&quot;function&quot;&amp;&amp;(i=i(t)),i})},isArray:Array.isArray||function(e){return Object.prototype.toString.call(e)===&quot;[object Array]&quot;},emptyImageUrl:&quot;data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=&quot;},function(){function t(t){var n,r,i=[&quot;webkit&quot;,&quot;moz&quot;,&quot;o&quot;,&quot;ms&quot;];for(n=0;n&lt;i.length&amp;&amp;!r;n++)r=e[i[n]+t];return r}function r(t){var r=+(new Date),i=Math.max(0,16-(r-n));return n=r+i,e.setTimeout(t,i)}var n=0,s=e.requestAnimationFrame||t(&quot;RequestAnimationFrame&quot;)||r,o=e.cancelAnimationFrame||t(&quot;CancelAnimationFrame&quot;)||t(&quot;CancelRequestAnimationFrame&quot;)||function(t){e.clearTimeout(t)};i.Util.requestAnimFrame=function(t,n,o,u){t=i.bind(t,n);if(!o||s!==r)return s.call(e,t,u);t()},i.Util.cancelAnimFrame=function(t){t&amp;&amp;o.call(e,t)}}(),i.extend=i.Util.extend,i.bind=i.Util.bind,i.stamp=i.Util.stamp,i.setOptions=i.Util.setOptions,i.Class=function(){},i.Class.extend=function(e){var t=function(){this.initialize&amp;&amp;this.initialize.apply(this,arguments),this._initHooks&amp;&amp;this.callInitHooks()},n=function(){};n.prototype=this.prototype;var r=new n;r.constructor=t,t.prototype=r;for(var s in this)this.hasOwnProperty(s)&amp;&amp;s!==&quot;prototype&quot;&amp;&amp;(t[s]=this[s]);e.statics&amp;&amp;(i.extend(t,e.statics),delete e.statics),e.includes&amp;&amp;(i.Util.extend.apply(null,[r].concat(e.includes)),delete e.includes),e.options&amp;&amp;r.options&amp;&amp;(e.options=i.extend({},r.options,e.options)),i.extend(r,e),r._initHooks=[];var o=this;return t.__super__=o.prototype,r.callInitHooks=function(){if(this._initHooksCalled)return;o.prototype.callInitHooks&amp;&amp;o.prototype.callInitHooks.call(this),this._initHooksCalled=!0;for(var e=0,t=r._initHooks.length;e&lt;t;e++)r._initHooks[e].call(this)},t},i.Class.include=function(e){i.extend(this.prototype,e)},i.Class.mergeOptions=function(e){i.extend(this.prototype.options,e)},i.Class</td>
      </tr>
      <tr>
        <td id="L8" class="blob-num js-line-number" data-line-number="8"></td>
        <td id="LC8" class="blob-code js-file-line">.addInitHook=function(e){var t=Array.prototype.slice.call(arguments,1),n=typeof e==&quot;function&quot;?e:function(){this[e].apply(this,t)};this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(n)};var s=&quot;_leaflet_events&quot;;i.Mixin={},i.Mixin.Events={addEventListener:function(e,t,n){if(i.Util.invokeEach(e,this.addEventListener,this,t,n))return this;var r=this[s]=this[s]||{},o=n&amp;&amp;n!==this&amp;&amp;i.stamp(n),u,a,f,l,c,h,p;e=i.Util.splitWords(e);for(u=0,a=e.length;u&lt;a;u++)f={action:t,context:n||this},l=e[u],o?(c=l+&quot;_idx&quot;,h=c+&quot;_len&quot;,p=r[c]=r[c]||{},p[o]||(p[o]=[],r[h]=(r[h]||0)+1),p[o].push(f)):(r[l]=r[l]||[],r[l].push(f));return this},hasEventListeners:function(e){var t=this[s];return!!t&amp;&amp;(e in t&amp;&amp;t[e].length&gt;0||e+&quot;_idx&quot;in t&amp;&amp;t[e+&quot;_idx_len&quot;]&gt;0)},removeEventListener:function(e,t,n){if(!this[s])return this;if(!e)return this.clearAllEventListeners();if(i.Util.invokeEach(e,this.removeEventListener,this,t,n))return this;var r=this[s],o=n&amp;&amp;n!==this&amp;&amp;i.stamp(n),u,a,f,l,c,h,p,d,v;e=i.Util.splitWords(e);for(u=0,a=e.length;u&lt;a;u++){f=e[u],h=f+&quot;_idx&quot;,p=h+&quot;_len&quot;,d=r[h];if(!t)delete r[f],delete r[h],delete r[p];else{l=o&amp;&amp;d?d[o]:r[f];if(l){for(c=l.length-1;c&gt;=0;c--)l[c].action===t&amp;&amp;(!n||l[c].context===n)&amp;&amp;(v=l.splice(c,1),v[0].action=i.Util.falseFn);n&amp;&amp;d&amp;&amp;l.length===0&amp;&amp;(delete d[o],r[p]--)}}}return this},clearAllEventListeners:function(){return delete this[s],this},fireEvent:function(e,t){if(!this.hasEventListeners(e))return this;var n=i.Util.extend({},t,{type:e,target:this}),r=this[s],o,u,a,f,l;if(r[e]){o=r[e].slice();for(u=0,a=o.length;u&lt;a;u++)o[u].action.call(o[u].context,n)}f=r[e+&quot;_idx&quot;];for(l in f){o=f[l].slice();if(o)for(u=0,a=o.length;u&lt;a;u++)o[u].action.call(o[u].context,n)}return this},addOneTimeEventListener:function(e,t,n){if(i.Util.invokeEach(e,this.addOneTimeEventListener,this,t,n))return this;var r=i.bind(function(){this.removeEventListener(e,t,n).removeEventListener(e,r,n)},this);return this.addEventListener(e,t,n).addEventListener(e,r,n)}},i.Mixin.Events.on=i.Mixin.Events.addEventListener,i.Mixin.Events.off=i.Mixin.Events.removeEventListener,i.Mixin.Events.once=i.Mixin.Events.addOneTimeEventListener,i.Mixin.Events.fire=i.Mixin.Events.fireEvent,function(){var r=&quot;ActiveXObject&quot;in e,s=r&amp;&amp;!t.addEventListener,o=navigator.userAgent.toLowerCase(),u=o.indexOf(&quot;webkit&quot;)!==-1,a=o.indexOf(&quot;chrome&quot;)!==-1,f=o.indexOf(&quot;phantom&quot;)!==-1,l=o.indexOf(&quot;android&quot;)!==-1,c=o.search(&quot;android [23]&quot;)!==-1,h=o.indexOf(&quot;gecko&quot;)!==-1,p=typeof orientation!=n+&quot;&quot;,d=e.navigator&amp;&amp;e.navigator.msPointerEnabled&amp;&amp;e.navigator.msMaxTouchPoints&amp;&amp;!e.PointerEvent,v=e.PointerEvent&amp;&amp;e.navigator.pointerEnabled&amp;&amp;e.navigator.maxTouchPoints||d,m=&quot;devicePixelRatio&quot;in e&amp;&amp;e.devicePixelRatio&gt;1||&quot;matchMedia&quot;in e&amp;&amp;e.matchMedia(&quot;(min-resolution:144dpi)&quot;)&amp;&amp;e.matchMedia(&quot;(min-resolution:144dpi)&quot;).matches,g=t.documentElement,y=r&amp;&amp;&quot;transition&quot;in g.style,b=&quot;WebKitCSSMatrix&quot;in e&amp;&amp;&quot;m11&quot;in new e.WebKitCSSMatrix&amp;&amp;!c,w=&quot;MozPerspective&quot;in g.style,E=&quot;OTransition&quot;in g.style,S=!e.L_DISABLE_3D&amp;&amp;(y||b||w||E)&amp;&amp;!f,x=!e.L_NO_TOUCH&amp;&amp;!f&amp;&amp;function(){var e=&quot;ontouchstart&quot;;if(v||e in g)return!0;var n=t.createElement(&quot;div&quot;),r=!1;return n.setAttribute?(n.setAttribute(e,&quot;return;&quot;),typeof n[e]==&quot;function&quot;&amp;&amp;(r=!0),n.removeAttribute(e),n=null,r):!1}();i.Browser={ie:r,ielt9:s,webkit:u,gecko:h&amp;&amp;!u&amp;&amp;!e.opera&amp;&amp;!r,android:l,android23:c,chrome:a,ie3d:y,webkit3d:b,gecko3d:w,opera3d:E,any3d:S,mobile:p,mobileWebkit:p&amp;&amp;u,mobileWebkit3d:p&amp;&amp;b,mobileOpera:p&amp;&amp;e.opera,touch:x,msPointer:d,pointer:v,retina:m}}(),i.Point=function(e,t,n){this.x=n?Math.round(e):e,this.y=n?Math.round(t):t},i.Point.prototype={clone:function(){return new i.Point(this.x,this.y)},add:function(e){return this.clone()._add(i.point(e))},_add:function(e){return this.x+=e.x,this.y+=e.y,this},subtract:function(e){return this.clone()._subtract(i.point(e))},_subtract:function(e){return this.x-=e.x,this.y-=e.y,this},divideBy:function(e){return this.clone()._divideBy(e)},_divideBy:function(e){return this.x/=e,this.y/=e,this},multiplyBy:function(e){return this.clone()._multiplyBy(e)},_multiplyBy:function(e){return this.x*=e,this.y*=e,this},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},distanceTo:function(e){e=i.point(e);var t=e.x-this.x,n=e.y-this.y;return Math.sqrt(t*t+n*n)},equals:function(e){return e=i.point(e),e.x===this.x&amp;&amp;e.y===this.y},contains:function(e){return e=i.point(e),Math.abs(e.x)&lt;=Math.abs(this.x)&amp;&amp;Math.abs(e.y)&lt;=Math.abs(this.y)},toString:function(){return&quot;Point(&quot;+i.Util.formatNum(this.x)+&quot;, &quot;+i.Util.formatNum(this.y)+&quot;)&quot;}},i.point=function(e,t,r){return e instanceof i.Point?e:i.Util.isArray(e)?new i.Point(e[0],e[1]):e===n||e===null?e:new i.Point(e,t,r)},i.Bounds=function(e,t){if(!e)return;var n=t?[e,t]:e;for(var r=0,i=n.length;r&lt;i;r++)this.extend(n[r])},i.Bounds.prototype={extend:function(e){return e=i.point(e),!this.min&amp;&amp;!this.max?(this.min=e.clone(),this.max=e.clone()):(this.min.x=Math.min(e.x,this.min.x),this.max.x=Math.max(e.x,this.max.x),this.min.y=Math.min(e.y,this.min.y),this.max.y=Math.max(e.y,this.max.y)),this},getCenter:function(e){return new i.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,e)},getBottomLeft:function(){return new i.Point(this.min.x,this.max.y)},getTopRight:function(){return new i.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(e){var t,n;return typeof e[0]==&quot;number&quot;||e instanceof i.Point?e=i.point(e):e=i.bounds(e),e instanceof i.Bounds?(t=e.min,n=e.max):t=n=e,t.x&gt;=this.min.x&amp;&amp;n.x&lt;=this.max.x&amp;&amp;t.y&gt;=this.min.y&amp;&amp;n.y&lt;=this.max.y},intersects:function(e){e=i.bounds(e);var t=this.min,n=this.max,r=e.min,s=e.max,o=s.x&gt;=t.x&amp;&amp;r.x&lt;=n.x,u=s.y&gt;=t.y&amp;&amp;r.y&lt;=n.y;return o&amp;&amp;u},isValid:function(){return!!this.min&amp;&amp;!!this.max}},i.bounds=function(e,t){return!e||e instanceof i.Bounds?e:new i.Bounds(e,t)},i.Transformation=function(e,t,n,r){this._a=e,this._b=t,this._c=n,this._d=r},i.Transformation.prototype={transform:function(e,t){return this._transform(e.clone(),t)},_transform:function(e,t){return t=t||1,e.x=t*(this._a*e.x+this._b),e.y=t*(this._c*e.y+this._d),e},untransform:function(e,t){return t=t||1,new i.Point((e.x/t-this._b)/this._a,(e.y/t-this._d)/this._c)}},i.DomUtil={get:function(e){return typeof e==&quot;string&quot;?t.getElementById(e):e},getStyle:function(e,n){var r=e.style[n];!r&amp;&amp;e.currentStyle&amp;&amp;(r=e.currentStyle[n]);if((!r||r===&quot;auto&quot;)&amp;&amp;t.defaultView){var i=t.defaultView.getComputedStyle(e,null);r=i?i[n]:null}return r===&quot;auto&quot;?null:r},getViewportOffset:function(e){var n=0,r=0,s=e,o=t.body,u=t.documentElement,a;do{n+=s.offsetTop||0,r+=s.offsetLeft||0,n+=parseInt(i.DomUtil.getStyle(s,&quot;borderTopWidth&quot;),10)||0,r+=parseInt(i.DomUtil.getStyle(s,&quot;borderLeftWidth&quot;),10)||0,a=i.DomUtil.getStyle(s,&quot;position&quot;);if(s.offsetParent===o&amp;&amp;a===&quot;absolute&quot;)break;if(a===&quot;fixed&quot;){n+=o.scrollTop||u.scrollTop||0,r+=o.scrollLeft||u.scrollLeft||0;break}if(a===&quot;relative&quot;&amp;&amp;!s.offsetLeft){var f=i.DomUtil.getStyle(s,&quot;width&quot;),l=i.DomUtil.getStyle(s,&quot;max-width&quot;),c=s.getBoundingClientRect();if(f!==&quot;none&quot;||l!==&quot;none&quot;)r+=c.left+s.clientLeft;n+=c.top+(o.scrollTop||u.scrollTop||0);break}s=s.offsetParent}while(s);s=e;do{if(s===o)break;n-=s.scrollTop||0,r-=s.scrollLeft||0,s=s.parentNode}while(s);return new i.Point(r,n)},documentIsLtr:function(){return i.DomUtil._docIsLtrCached||(i.DomUtil._docIsLtrCached=!0,i.DomUtil._docIsLtr=i.DomUtil.getStyle(t.body,&quot;direction&quot;)===&quot;ltr&quot;),i.DomUtil._docIsLtr},create:function(e,n,r){var i=t.createElement(e);return i.className=n,r&amp;&amp;r.appendChild(i),i},hasClass:function(e,t){if(e.classList!==n)return e.classList.contains(t);var r=i.DomUtil._getClass(e);return r.length&gt;0&amp;&amp;(new RegExp(&quot;(^|\\s)&quot;+t+&quot;(\\s|$)&quot;)).test(r)},addClass:function(e,t){if(e.classList!==n){var r=i.Util.splitWords(t);for(var s=0,o=r.length;s&lt;o;s++)e.classList.add(r[s])}else if(!i.DomUtil.hasClass(e,t)){var u=i.DomUtil._getClass(e);i.DomUtil._setClass(e,(u?u+&quot; &quot;:&quot;&quot;)+t)}},removeClass:function(e,t){e.classList!==n?e.classList.remove(t):i.DomUtil._setClass(e,i.Util.trim((&quot; &quot;+i.DomUtil._getClass(e)+&quot; &quot;).replace(&quot; &quot;+t+&quot; &quot;,&quot; &quot;)))},_setClass:function(e,t){e.className.baseVal===n?e.className=t:e.className.baseVal=t},_getClass:function(e){return e.className.baseVal===n?e.className:e.className.baseVal},setOpacity:function(e,t){if(&quot;opacity&quot;in e.style)e.style.opacity=t;else if(&quot;filter&quot;in e.style){var n=!1,r=&quot;DXImageTransform.Microsoft.Alpha&quot;;try{n=e.filters.item(r)}catch(i){if(t===1)return}t=Math.round(t*100),n?(n.Enabled=t!==100,n.Opacity=t):e.style.filter+=&quot; progid:&quot;+r+&quot;(opacity=&quot;+t+&quot;)&quot;}},testProp:function(e){var n=t.documentElement.style;for(var r=0;r&lt;e.length;r++)if(e[r]in n)return e[r];return!1},getTranslateString:function(e){var t=i.Browser.webkit3d,n=&quot;translate&quot;+(t?&quot;3d&quot;:&quot;&quot;)+&quot;(&quot;,r=(t?&quot;,0&quot;:&quot;&quot;)+&quot;)&quot;;return n+e.x+&quot;px,&quot;+e.y+&quot;px&quot;+r},getScaleString:function(e,t){var n=i.DomUtil.getTranslateString(t.add(t.multiplyBy(-1*e))),r=&quot; scale(&quot;+e+&quot;) &quot;;return n+r},setPosition:function(e,t,n){e._leaflet_pos=t,!n&amp;&amp;i.Browser.any3d?e.style[i.DomUtil.TRANSFORM]=i.DomUtil.getTranslateString(t):(e.style.left=t.x+&quot;px&quot;,e.style.top=t.y+&quot;px&quot;)},getPosition:function(e){return e._leaflet_pos}},i.DomUtil.TRANSFORM=i.DomUtil.testProp([&quot;transform&quot;,&quot;WebkitTransform&quot;,&quot;OTransform&quot;,&quot;MozTransform&quot;,&quot;msTransform&quot;]),i.DomUtil.TRANSITION=i.DomUtil.testProp([&quot;webkitTransition&quot;,&quot;transition&quot;,&quot;OTransition&quot;,&quot;MozTransition&quot;,&quot;msTransition&quot;]),i.DomUtil.TRANSITION_END=i.DomUtil.TRANSITION===&quot;webkitTransition&quot;||i.DomUtil.TRANSITION===&quot;OTransition&quot;?i.DomUtil.TRANSITION+&quot;End&quot;:&quot;transitionend&quot;,function(){if(&quot;onselectstart&quot;in t)i.extend(i.DomUtil,{disableTextSelection:function(){i.DomEvent.on(e,&quot;selectstart&quot;,i.DomEvent.preventDefault)},enableTextSelection:function(){i.DomEvent.off(e,&quot;selectstart&quot;,i.DomEvent.preventDefault)}});else{var n=i.DomUtil.testProp([&quot;userSelect&quot;,&quot;WebkitUserSelect&quot;,&quot;OUserSelect&quot;,&quot;MozUserSelect&quot;,&quot;msUserSelect&quot;]);i.extend(i.DomUtil,{disableTextSelection:function(){if(n){var e=t.documentElement.style;this._userSelect=e[n],e[n]=&quot;none&quot;}},enableTextSelection:function(){n&amp;&amp;(t.documentElement.style[n]=this._userSelect,delete this._userSelect)}})}i.extend(i.DomUtil,{disableImageDrag:function(){i.DomEvent.on(e,&quot;dragstart&quot;,i.DomEvent.preventDefault)},enableImageDrag:function(){i.DomEvent.off(e,&quot;dragstart&quot;,i.DomEvent.preventDefault)}})}(),i.LatLng=function(e,t,r){e=parseFloat(e),t=parseFloat(t);if(isNaN(e)||isNaN(t))throw new Error(&quot;Invalid LatLng object: (&quot;+e+&quot;, &quot;+t+&quot;)&quot;);this.lat=e,this.lng=t,r!==n&amp;&amp;(this.alt=parseFloat(r))},i.extend(i.LatLng,{DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,MAX_MARGIN:1e-9}),i.LatLng.prototype={equals:function(e){if(!e)return!1;e=i.latLng(e);var t=Math.max(Math.abs(this.lat-e.lat),Math.abs(this.lng-e.lng));return t&lt;=i.LatLng.MAX_MARGIN},toString:function(e){return&quot;LatLng(&quot;+i.Util.formatNum(this.lat,e)+&quot;, &quot;+i.Util.formatNum(this.lng,e)+&quot;)&quot;},distanceTo:function(e){e=i.latLng(e);var t=6378137,n=i.LatLng.DEG_TO_RAD,r=(e.lat-this.lat)*n,s=(e.lng-this.lng)*n,o=this.lat*n,u=e.lat*n,a=Math.sin(r/2),f=Math.sin(s/2),l=a*a+f*f*Math.cos(o)*Math.cos(u);return t*2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l))},wrap:function(e,t){var n=this.lng;return e=e||-180,t=t||180,n=(n+t)%(t-e)+(n&lt;e||n===t?t:e),new i.LatLng(this.lat,n)}},i.latLng=function(e,t){return e instanceof i.LatLng?e:i.Util.isArray(e)?typeof e[0]==&quot;number&quot;||typeof e[0]==&quot;string&quot;?new i.LatLng(e[0],e[1],e[2]):null:e===n||e===null?e:typeof e==&quot;object&quot;&amp;&amp;&quot;lat&quot;in e?new i.LatLng(e.lat,&quot;lng&quot;in e?e.lng:e.lon):t===n?null:new i.LatLng(e,t)},i.LatLngBounds=function(e,t){if(!e)return;var n=t?[e,t]:e;for(var r=0,i=n.length;r&lt;i;r++)this.extend(n[r])},i.LatLngBounds.prototype={extend:function(e){if(!e)return this;var t=i.latLng(e);return t!==null?e=t:e=i.latLngBounds(e),e instanceof i.LatLng?!this._southWest&amp;&amp;!this._northEast?(this._southWest=new i.LatLng(e.lat,e.lng),this._northEast=new i.LatLng(e.lat,e.lng)):(this._southWest.lat=Math.min(e.lat,this._southWest.lat),this._southWest.lng=Math.min(e.lng,this._southWest.lng),this._northEast.lat=Math.max(e.lat,this._northEast.lat),this._northEast.lng=Math.max(e.lng,this._northEast.lng)):e instanceof i.LatLngBounds&amp;&amp;(this.extend(e._southWest),this.extend(e._northEast)),this},pad:function(e){var t=this._southWest,n=this._northEast,r=Math.abs(t.lat-n.lat)*e,s=Math.abs(t.lng-n.lng)*e;return new i.LatLngBounds(new i.LatLng(t.lat-r,t.lng-s),new i.LatLng(n.lat+r,n.lng+s))},getCenter:function(){return new i.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new i.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new i.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(e){typeof e[0]==&quot;number&quot;||e instanceof i.LatLng?e=i.latLng(e):e=i.latLngBounds(e);var t=this._southWest,n=this._northEast,r,s;return e instanceof i.LatLngBounds?(r=e.getSouthWest(),s=e.getNorthEast()):r=s=e,r.lat&gt;=t.lat&amp;&amp;s.lat&lt;=n.lat&amp;&amp;r.lng&gt;=t.lng&amp;&amp;s.lng&lt;=n.lng},intersects:function(e){e=i.latLngBounds(e);var t=this._southWest,n=this._northEast,r=e.getSouthWest(),s=e.getNorthEast(),o=s.lat&gt;=t.lat&amp;&amp;r.lat&lt;=n.lat,u=s.lng&gt;=t.lng&amp;&amp;r.lng&lt;=n.lng;return o&amp;&amp;u},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(&quot;,&quot;)},equals:function(e){return e?(e=i.latLngBounds(e),this._southWest.equals(e.getSouthWest())&amp;&amp;this._northEast.equals(e.getNorthEast())):!1},isValid:function(){return!!this._southWest&amp;&amp;!!this._northEast}},i.latLngBounds=function(e,t){return!e||e instanceof i.LatLngBounds?e:new i.LatLngBounds(e,t)},i.Projection={},i.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(e){var t=i.LatLng.DEG_TO_RAD,n=this.MAX_LATITUDE,r=Math.max(Math.min(n,e.lat),-n),s=e.lng*t,o=r*t;return o=Math.log(Math.tan(Math.PI/4+o/2)),new i.Point(s,o)},unproject:function(e){var t=i.LatLng.RAD_TO_DEG,n=e.x*t,r=(2*Math.atan(Math.exp(e.y))-Math.PI/2)*t;return new i.LatLng(r,n)}},i.Projection.LonLat={project:function(e){return new i.Point(e.lng,e.lat)},unproject:function(e){return new i.LatLng(e.y,e.x)}},i.CRS={latLngToPoint:function(e,t){var n=this.projection.project(e),r=this.scale(t);return this.transformation._transform(n,r)},pointToLatLng:function(e,t){var n=this.scale(t),r=this.transformation.untransform(e,n);return this.projection.unproject(r)},project:function(e){return this.projection.project(e)},scale:function(e){return 256*Math.pow(2,e)},getSize:function(e){var t=this.scale(e);return i.point(t,t)}},i.CRS.Simple=i.extend({},i.CRS,{projection:i.Projection.LonLat,transformation:new i.Transformation(1,0,-1,0),scale:function(e){return Math.pow(2,e)}}),i.CRS.EPSG3857=i.extend({},i.CRS,{code:&quot;EPSG:3857&quot;,projection:i.Projection.SphericalMercator,transformation:new i.Transformation(.5/Math.PI,.5,-0.5/Math.PI,.5),project:function(e){var t=this.projection.project(e),n=6378137;return t.multiplyBy(n)}}),i.CRS.EPSG900913=i.extend({},i.CRS.EPSG3857,{code:&quot;EPSG:900913&quot;}),i.CRS.EPSG4326=i.extend({},i.CRS,{code:&quot;EPSG:4326&quot;,projection:i.Projection.LonLat,transformation:new i.Transformation(1/360,.5,-1/360,.5)}),i.Map=i.Class.extend({includes:i.Mixin.Events,options:{crs:i.CRS.EPSG3857,fadeAnimation:i.DomUtil.TRANSITION&amp;&amp;!i.Browser.android23,trackResize:!0,markerZoomAnimation:i.DomUtil.TRANSITION&amp;&amp;i.Browser.any3d},initialize:function(e,t){t=i.setOptions(this,t),this._initContainer(e),this._initLayout(),this._onResize=i.bind(this._onResize,this),this._initEvents(),t.maxBounds&amp;&amp;this.setMaxBounds(t.maxBounds),t.center&amp;&amp;t.zoom!==n&amp;&amp;this.setView(i.latLng(t.center),t.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._tileLayersNum=0,this.callInitHooks(),this._addLayers(t.layers)},setView:function(e,t){return t=t===n?this.getZoom():t,this._resetView(i.latLng(e),this._limitZoom(t)),this},setZoom:function(e,t){return this._loaded?this.setView(this.getCenter(),e,{zoom:t}):(this._zoom=this._limitZoom(e),this)},zoomIn:function(e,t){return this.setZoom(this._zoom+(e||1),t)},zoomOut:function(e,t){return this.setZoom(this._zoom-(e||1),t)},setZoomAround:function(e,t,n){var r=this.getZoomScale(t),s=this.getSize().divideBy(2),o=e instanceof i.Point?e:this.latLngToContainerPoint(e),u=o.subtract(s).multiplyBy(1-1/r),a=this.containerPointToLatLng(s.add(u));return this.setView(a,t,{zoom:n})},fitBounds:function(e,t){t=t||{},e=e.getBounds?e.getBounds():i.latLngBounds(e);var n=i.point(t.paddingTopLeft||t.padding||[0,0]),r=i.point(t.paddingBottomRight||t.padding||[0,0]),s=this.getBoundsZoom(e,!1,n.add(r)),o=r.subtract(n).divideBy(2),u=this.project(e.getSouthWest(),s),a=this.project(e.getNorthEast(),s),f=this.unproject(u.add(a).divideBy(2).add(o),s);return s=t&amp;&amp;t.maxZoom?Math.min(t.maxZoom,s):s,this.setView(f,s,t)},fitWorld:function(e){return this.fitBounds([[-90,-180],[90,180]],e)},panTo:function(e,t){return this.setView(e,this._zoom,{pan:t})},panBy:function(e){return this.fire(&quot;movestart&quot;),this._rawPanBy(i.point(e)),this.fire(&quot;move&quot;),this.fire(&quot;moveend&quot;)},setMaxBounds:function(e){return e=i.latLngBounds(e),this.options.maxBounds=e,e?(this._loaded&amp;&amp;this._panInsideMaxBounds(),this.on(&quot;moveend&quot;,this._panInsideMaxBounds,this)):this.off(&quot;moveend&quot;,this._panInsideMaxBounds,this)},panInsideBounds:function(e,t){var n=this.getCenter(),r=this._limitCenter(n,this._zoom,e);return n.equals(r)?this:this.panTo(r,t)},addLayer:function(e){var t=i.stamp(e);return this._layers[t]?this:(this._layers[t]=e,e.options&amp;&amp;(!isNaN(e.options.maxZoom)||!isNaN(e.options.minZoom))&amp;&amp;(this._zoomBoundLayers[t]=e,this._updateZoomLevels()),this.options.zoomAnimation&amp;&amp;i.TileLayer&amp;&amp;e instanceof i.TileLayer&amp;&amp;(this._tileLayersNum++,this._tileLayersToLoad++,e.on(&quot;load&quot;,this._onTileLayerLoad,this)),this._loaded&amp;&amp;this._layerAdd(e),this)},removeLayer:function(e){var t=i.stamp(e);return this._layers[t]?(this._loaded&amp;&amp;e.onRemove(this),delete this._layers[t],this._loaded&amp;&amp;this.fire(&quot;layerremove&quot;,{layer:e}),this._zoomBoundLayers[t]&amp;&amp;(delete this._zoomBoundLayers[t],this._updateZoomLevels()),this.options.zoomAnimation&amp;&amp;i.TileLayer&amp;&amp;e instanceof i.TileLayer&amp;&amp;(this._tileLayersNum--,this._tileLayersToLoad--,e.off(&quot;load&quot;,this._onTileLayerLoad,this)),this):this},hasLayer:function(e){return e?i.stamp(e)in this._layers:!1},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},invalidateSize:function(e){if(!this._loaded)return this;e=i.extend({animate:!1,pan:!0},e===!0?{animate:!0}:e);var t=this.getSize();this._sizeChanged=!0,this._initialCenter=null;var n=this.getSize(),r=t.divideBy(2).round(),s=n.divideBy(2).round(),o=r.subtract(s);return!o.x&amp;&amp;!o.y?this:(e.animate&amp;&amp;e.pan?this.panBy(o):(e.pan&amp;&amp;this._rawPanBy(o),this.fire(&quot;move&quot;),e.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(i.bind(this.fire,this,&quot;moveend&quot;),200)):this.fire(&quot;moveend&quot;)),this.fire(&quot;resize&quot;,{oldSize:t,newSize:n}))},addHandler:function(e,t){if(!t)return this;var n=this[e]=new t(this);return this._handlers.push(n),this.options[e]&amp;&amp;n.enable(),this},remove:function(){this._loaded&amp;&amp;this.fire(&quot;unload&quot;),this._initEvents(&quot;off&quot;);try{delete this._container._leaflet}catch(e){this._container._leaflet=n}return this._clearPanes(),this._clearControlPos&amp;&amp;this._clearControlPos(),this._clearHandlers(),this},getCenter:function(){return this._checkIfLoaded(),this._initialCenter&amp;&amp;!this._moved()?this._initialCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var e=this.getPixelBounds(),t=this.unproject(e.getBottomLeft()),n=this.unproject(e.getTopRight());return new i.LatLngBounds(t,n)},getMinZoom:function(){return this.options.minZoom===n?this._layersMinZoom===n?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===n?this._layersMaxZoom===n?Infinity:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(e,t,n){e=i.latLngBounds(e);var r=this.getMinZoom()-(t?1:0),s=this.getMaxZoom(),o=this.getSize(),u=e.getNorthWest(),a=e.getSouthEast(),f=!0,l;n=i.point(n||[0,0]);do r++,l=this.project(a,r).subtract(this.project(u,r)).add(n),f=t?l.x&lt;o.x||l.y&lt;o.y:o.contains(l);while(f&amp;&amp;r&lt;=s);return f&amp;&amp;t?null:t?r:r-1},getSize:function(){if(!this._size||this._sizeChanged)this._size=new i.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1;return this._size.clone()},getPixelBounds:function(){var e=this._getTopLeftPoint();return new i.Bounds(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._initialTopLeftPoint},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(e){var t=this.options.crs;return t.scale(e)/t.scale(this._zoom)},getScaleZoom:function(e){return this._zoom+Math.log(e)/Math.LN2},project:function(e,t){return t=t===n?this._zoom:t,this.options.crs.latLngToPoint(i.latLng(e),t)},unproject:function(e,t){return t=t===n?this._zoom:t,this.options.crs.pointToLatLng(i.point(e),t)},layerPointToLatLng:function(e){var t=i.point(e).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(e){var t=this.project(i.latLng(e))._round();return t._subtract(this.getPixelOrigin())},containerPointToLayerPoint:function(e){return i.point(e).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(e){return i.point(e).add(this._getMapPanePos())},containerPointToLatLng:function(e){var t=this.containerPointToLayerPoint(i.point(e));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(e){return this.layerPointToContainerPoint(this.latLngToLayerPoint(i.latLng(e)))},mouseEventToContainerPoint:function(e){return i.DomEvent.getMousePosition(e,this._container)},mouseEventToLayerPoint:function(e){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e))},mouseEventToLatLng:function(e){return this.layerPointToLatLng(this.mouseEventToLayerPoint(e))},_initContainer:function(e){var t=this._container=i.DomUtil.get(e);if(!t)throw new Error(&quot;Map container not found.&quot;);if(t._leaflet)throw new Error(&quot;Map container is already initialized.&quot;);t._leaflet=!0},_initLayout:function(){var e=this._container;i.DomUtil.addClass(e,&quot;leaflet-container&quot;+(i.Browser.touch?&quot; leaflet-touch&quot;:&quot;&quot;)+(i.Browser.retina?&quot; leaflet-retina&quot;:&quot;&quot;)+(i.Browser.ielt9?&quot; leaflet-oldie&quot;:&quot;&quot;)+(this.options.fadeAnimation?&quot; leaflet-fade-anim&quot;:&quot;&quot;));var t=i.DomUtil.getStyle(e,&quot;position&quot;);t!==&quot;absolute&quot;&amp;&amp;t!==&quot;relative&quot;&amp;&amp;t!==&quot;fixed&quot;&amp;&amp;(e.style.position=&quot;relative&quot;),this._initPanes(),this._initControlPos&amp;&amp;this._initControlPos()},_initPanes:function(){var e=this._panes={};this._mapPane=e.mapPane=this._createPane(&quot;leaflet-map-pane&quot;,this._container),this._tilePane=e.tilePane=this._createPane(&quot;leaflet-tile-pane&quot;,this._mapPane),e.objectsPane=this._createPane(&quot;leaflet-objects-pane&quot;,this._mapPane),e.shadowPane=this._createPane(&quot;leaflet-shadow-pane&quot;),e.overlayPane=this._createPane(&quot;leaflet-overlay-pane&quot;),e.markerPane=this._createPane(&quot;leaflet-marker-pane&quot;),e.popupPane=this._createPane(&quot;leaflet-popup-pane&quot;);var t=&quot; leaflet-zoom-hide&quot;;this.options.markerZoomAnimation||(i.DomUtil.addClass(e.markerPane,t),i.DomUtil.addClass(e.shadowPane,t),i.DomUtil.addClass(e.popupPane,t))},_createPane:function(e,t){return i.DomUtil.create(&quot;div&quot;,e,t||this._panes.objectsPane)},_clearPanes:function(){this._container.removeChild(this._mapPane)},_addLayers:function(e){e=e?i.Util.isArray(e)?e:[e]:[];for(var t=0,n=e.length;t&lt;n;t++)this.addLayer(e[t])},_resetView:function(e,t,n,r){var s=this._zoom!==t;r||(this.fire(&quot;movestart&quot;),s&amp;&amp;this.fire(&quot;zoomstart&quot;)),this._zoom=t,this._initialCenter=e,this._initialTopLeftPoint=this._getNewTopLeftPoint(e),n?this._initialTopLeftPoint._add(this._getMapPanePos()):i.DomUtil.setPosition(this._mapPane,new i.Point(0,0)),this._tileLayersToLoad=this._tileLayersNum;var o=!this._loaded;this._loaded=!0,this.fire(&quot;viewreset&quot;,{hard:!n}),o&amp;&amp;(this.fire(&quot;load&quot;),this.eachLayer(this._layerAdd,this)),this.fire(&quot;move&quot;),(s||r)&amp;&amp;this.fire(&quot;zoomend&quot;),this.fire(&quot;moveend&quot;,{hard:!n})},_rawPanBy:function(e){i.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(e))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_updateZoomLevels:function(){var e,t=Infinity,r=-Infinity,i=this._getZoomSpan();for(e in this._zoomBoundLayers){var s=this._zoomBoundLayers[e];isNaN(s.options.minZoom)||(t=Math.min(t,s.options.minZoom)),isNaN(s.options.maxZoom)||(r=Math.max(r,s.options.maxZoom))}e===n?this._layersMaxZoom=this._layersMinZoom=n:(this._layersMaxZoom=r,this._layersMinZoom=t),i!==this._getZoomSpan()&amp;&amp;this.fire(&quot;zoomlevelschange&quot;)},_panInsideMaxBounds:function(){this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error(&quot;Set map center and zoom first.&quot;)},_initEvents:function(t){if(!i.DomEvent)return;t=t||&quot;on&quot;,i.DomEvent[t](this._container,&quot;click&quot;,this._onMouseClick,this);var n=[&quot;dblclick&quot;,&quot;mousedown&quot;,&quot;mouseup&quot;,&quot;mouseenter&quot;,&quot;mouseleave&quot;,&quot;mousemove&quot;,&quot;contextmenu&quot;],r,s;for(r=0,s=n.length;r&lt;s;r++)i.DomEvent[t](this._container,n[r],this._fireMouseEvent,this);this.options.trackResize&amp;&amp;i.DomEvent[t](e,&quot;resize&quot;,this._onResize,this)},_onResize:function(){i.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=i.Util.requestAnimFrame(function(){this.invalidateSize({debounceMoveend:!0})},this,!1,this._container)},_onMouseClick:function(e){if(!this._loaded||!e._simulated&amp;&amp;(this.dragging&amp;&amp;this.dragging.moved()||this.boxZoom&amp;&amp;this.boxZoom.moved())||i.DomEvent._skipped(e))return;this.fire(&quot;preclick&quot;),this._fireMouseEvent(e)},_fireMouseEvent:function(e){if(!this._loaded||i.DomEvent._skipped(e))return;var t=e.type;t=t===&quot;mouseenter&quot;?&quot;mouseover&quot;:t===&quot;mouseleave&quot;?&quot;mouseout&quot;:t;if(!this.hasEventListeners(t))return;t===&quot;contextmenu&quot;&amp;&amp;i.DomEvent.preventDefault(e);var n=this.mouseEventToContainerPoint(e),r=this.containerPointToLayerPoint(n),s=this.layerPointToLatLng(r);this.fire(t,{latlng:s,layerPoint:r,containerPoint:n,originalEvent:e})},_onTileLayerLoad:function(){this._tileLayersToLoad--,this._tileLayersNum&amp;&amp;!this._tileLayersToLoad&amp;&amp;this.fire(&quot;tilelayersload&quot;)},_clearHandlers:function(){for(var e=0,t=this._handlers.length;e&lt;t;e++)this._handlers[e].disable()},whenReady:function(e,t){return this._loaded?e.call(t||this,this):this.on(&quot;load&quot;,e,t),this},_layerAdd:function(e){e.onAdd(this),this.fire(&quot;layeradd&quot;,{layer:e})},_getMapPanePos:function(){return i.DomUtil.getPosition(this._mapPane)},_moved:function(){var e=this._getMapPanePos();return e&amp;&amp;!e.equals([0,0])},_getTopLeftPoint:function(){return this.getPixelOrigin().subtract(this._getMapPanePos())},_getNewTopLeftPoint:function(e,t){var n=this.getSize()._divideBy(2);return this.project(e,t)._subtract(n)._round()},_latLngToNewLayerPoint:function(e,t,n){var r=this._getNewTopLeftPoint(n,t).add(this._getMapPanePos());return this.project(e,t)._subtract(r)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(e){return this.latLngToLayerPoint(e).subtract(this._getCenterLayerPoint())},_limitCenter:function(e,t,n){if(!n)return e;var r=this.project(e,t),s=this.getSize().divideBy(2),o=new i.Bounds(r.subtract(s),r.add(s)),u=this._getBoundsOffset(o,n,t);return this.unproject(r.add(u),t)},_limitOffset:function(e,t){if(!t)return e;var n=this.getPixelBounds(),r=new i.Bounds(n.min.add(e),n.max.add(e));return e.add(this._getBoundsOffset(r,t))},_getBoundsOffset:function(e,t,n){var r=this.project(t.getNorthWest(),n).subtract(e.min),s=this.project(t.getSouthEast(),n).subtract(e.max),o=this._rebound(r.x,-s.x),u=this._rebound(r.y,-s.y);return new i.Point(o,u)},_rebound:function(e,t){return e+t&gt;0?Math.round(e-t)/2:Math.max(0,Math.ceil(e))-Math.max(0,Math.floor(t))},_limitZoom:function(e){var t=this.getMinZoom(),n=this.getMaxZoom();return Math.max(t,Math.min(n,e))}}),i.map=function(e,t){return new i.Map(e,t)},i.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(e){var t=i.LatLng.DEG_TO_RAD,n=this.MAX_LATITUDE,r=Math.max(Math.min(n,e.lat),-n),s=this.R_MAJOR,o=this.R_MINOR,u=e.lng*t*s,a=r*t,f=o/s,l=Math.sqrt(1-f*f),c=l*Math.sin(a);c=Math.pow((1-c)/(1+c),l*.5);var h=Math.tan(.5*(Math.PI*.5-a))/c;return a=-s*Math.log(h),new i.Point(u,a)},unproject:function(e){var t=i.LatLng.RAD_TO_DEG,n=this.R_MAJOR,r=this.R_MINOR,s=e.x*t/n,o=r/n,u=Math.sqrt(1-o*o),a=Math.exp(-e.y/n),f=Math.PI/2-2*Math.atan(a),l=15,c=1e-7,h=l,p=.1,d;while(Math.abs(p)&gt;c&amp;&amp;--h&gt;0)d=u*Math.sin(f),p=Math.PI/2-2*Math.atan(a*Math.pow((1-d)/(1+d),.5*u))-f,f+=p;return new i.LatLng(f*t,s)}},i.CRS.EPSG3395=i.extend({},i.CRS,{code:&quot;EPSG:3395&quot;,projection:i.Projection.Mercator,transformation:function(){var e=i.Projection.Mercator,t=e.R_MAJOR,n=.5/(Math.PI*t);return new i.Transformation(n,.5,-n,.5)}()}),i.TileLayer=i.Class.extend({includes:i.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:&quot;abc&quot;,errorTileUrl:&quot;&quot;,attribution:&quot;&quot;,zoomOffset:0,opacity:1,unloadInvisibleTiles:i.Browser.mobile,updateWhenIdle:i.Browser.mobile},initialize:function(e,t){t=i.setOptions(this,t),t.detectRetina&amp;&amp;i.Browser.retina&amp;&amp;t.maxZoom&gt;0&amp;&amp;(t.tileSize=Math.floor(t.tileSize/2),t.zoomOffset++,t.minZoom&gt;0&amp;&amp;t.minZoom--,this.options.maxZoom--),t.bounds&amp;&amp;(t.bounds=i.latLngBounds(t.bounds)),this._url=e;var n=this.options.subdomains;typeof n==&quot;string&quot;&amp;&amp;(this.options.subdomains=n.split(&quot;&quot;))},onAdd:function(e){this._map=e,this._animated=e._zoomAnimated,this._initContainer(),e.on({viewreset:this._reset,moveend:this._update},this),this._animated&amp;&amp;e.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||(this._limitedUpdate=i.Util.limitExecByInterval(this._update,150,this),e.on(&quot;move&quot;,this._limitedUpdate,this)),this._reset(),this._update()},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){this._container.parentNode.removeChild(this._container),e.off({viewreset:this._reset,moveend:this._update},this),this._animated&amp;&amp;e.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||e.off(&quot;move&quot;,this._limitedUpdate,this),this._container=null,this._map=null},bringToFront:function(){var e=this._map._panes.tilePane;return this._container&amp;&amp;(e.appendChild(this._container),this._setAutoZIndex(e,Math.max)),this},bringToBack:function(){var e=this._map._panes.tilePane;return this._container&amp;&amp;(e.insertBefore(this._container,e.firstChild),this._setAutoZIndex(e,Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(e){return this.options.opacity=e,this._map&amp;&amp;this._updateOpacity(),this},setZIndex:function(e){return this.options.zIndex=e,this._updateZIndex(),this},setUrl:function(e,t){return this._url=e,t||this.redraw(),this},redraw:function(){return this._map&amp;&amp;(this._reset({hard:!0}),this._update()),this},_updateZIndex:function(){this._container&amp;&amp;this.options.zIndex!==n&amp;&amp;(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(e,t){var n=e.children,r=-t(Infinity,-Infinity),i,s,o;for(s=0,o=n.length;s&lt;o;s++)n[s]!==this._container&amp;&amp;(i=parseInt(n[s].style.zIndex,10),isNaN(i)||(r=t(r,i)));this.options.zIndex=this._container.style.zIndex=(isFinite(r)?r:0)+t(1,-1)},_updateOpacity:function(){var e,t=this._tiles;if(i.Browser.ielt9)for(e in t)i.DomUtil.setOpacity(t[e],this.options.opacity);else i.DomUtil.setOpacity(this._container,this.options.opacity)},_initContainer:function(){var e=this._map._panes.tilePane;if(!this._container){this._container=i.DomUtil.create(&quot;div&quot;,&quot;leaflet-layer&quot;),this._updateZIndex();if(this._animated){var t=&quot;leaflet-tile-container&quot;;this._bgBuffer=i.DomUtil.create(&quot;div&quot;,t,this._container),this._tileContainer=i.DomUtil.create(&quot;div&quot;,t,this._container)}else this._tileContainer=this._container;e.appendChild(this._container),this.options.opacity&lt;1&amp;&amp;this._updateOpacity()}},_reset:function(e){for(var t in this._tiles)this.fire(&quot;tileunload&quot;,{tile:this._tiles[t]});this._tiles={},this._tilesToLoad=0,this.options.reuseTiles&amp;&amp;(this._unusedTiles=[]),this._tileContainer.innerHTML=&quot;&quot;,this._animated&amp;&amp;e&amp;&amp;e.hard&amp;&amp;this._clearBgBuffer(),this._initContainer()},_getTileSize:function(){var e=this._map,t=e.getZoom()+this.options.zoomOffset,n=this.options.maxNativeZoom,r=this.options.tileSize;return n&amp;&amp;t&gt;n&amp;&amp;(r=Math.round(e.getZoomScale(t)/e.getZoomScale(n)*r)),r},_update:function(){if(!this._map)return;var e=this._map,t=e.getPixelBounds(),n=e.getZoom(),r=this._getTileSize(</td>
      </tr>
      <tr>
        <td id="L9" class="blob-num js-line-number" data-line-number="9"></td>
        <td id="LC9" class="blob-code js-file-line">);if(n&gt;this.options.maxZoom||n&lt;this.options.minZoom)return;var s=i.bounds(t.min.divideBy(r)._floor(),t.max.divideBy(r)._floor());this._addTilesFromCenterOut(s),(this.options.unloadInvisibleTiles||this.options.reuseTiles)&amp;&amp;this._removeOtherTiles(s)},_addTilesFromCenterOut:function(e){var n=[],r=e.getCenter(),s,o,u;for(s=e.min.y;s&lt;=e.max.y;s++)for(o=e.min.x;o&lt;=e.max.x;o++)u=new i.Point(o,s),this._tileShouldBeLoaded(u)&amp;&amp;n.push(u);var a=n.length;if(a===0)return;n.sort(function(e,t){return e.distanceTo(r)-t.distanceTo(r)});var f=t.createDocumentFragment();this._tilesToLoad||this.fire(&quot;loading&quot;),this._tilesToLoad+=a;for(o=0;o&lt;a;o++)this._addTile(n[o],f);this._tileContainer.appendChild(f)},_tileShouldBeLoaded:function(e){if(e.x+&quot;:&quot;+e.y in this._tiles)return!1;var t=this.options;if(!t.continuousWorld){var n=this._getWrapTileNum();if(t.noWrap&amp;&amp;(e.x&lt;0||e.x&gt;=n.x)||e.y&lt;0||e.y&gt;=n.y)return!1}if(t.bounds){var r=t.tileSize,i=e.multiplyBy(r),s=i.add([r,r]),o=this._map.unproject(i),u=this._map.unproject(s);!t.continuousWorld&amp;&amp;!t.noWrap&amp;&amp;(o=o.wrap(),u=u.wrap());if(!t.bounds.intersects([o,u]))return!1}return!0},_removeOtherTiles:function(e){var t,n,r,i;for(i in this._tiles)t=i.split(&quot;:&quot;),n=parseInt(t[0],10),r=parseInt(t[1],10),(n&lt;e.min.x||n&gt;e.max.x||r&lt;e.min.y||r&gt;e.max.y)&amp;&amp;this._removeTile(i)},_removeTile:function(e){var t=this._tiles[e];this.fire(&quot;tileunload&quot;,{tile:t,url:t.src}),this.options.reuseTiles?(i.DomUtil.removeClass(t,&quot;leaflet-tile-loaded&quot;),this._unusedTiles.push(t)):t.parentNode===this._tileContainer&amp;&amp;this._tileContainer.removeChild(t),i.Browser.android||(t.onload=null,t.src=i.Util.emptyImageUrl),delete this._tiles[e]},_addTile:function(e,t){var n=this._getTilePos(e),r=this._getTile();i.DomUtil.setPosition(r,n,i.Browser.chrome),this._tiles[e.x+&quot;:&quot;+e.y]=r,this._loadTile(r,e),r.parentNode!==this._tileContainer&amp;&amp;t.appendChild(r)},_getZoomForUrl:function(){var e=this.options,t=this._map.getZoom();return e.zoomReverse&amp;&amp;(t=e.maxZoom-t),t+=e.zoomOffset,e.maxNativeZoom?Math.min(t,e.maxNativeZoom):t},_getTilePos:function(e){var t=this._map.getPixelOrigin(),n=this._getTileSize();return e.multiplyBy(n).subtract(t)},getTileUrl:function(e){return i.Util.template(this._url,i.extend({s:this._getSubdomain(e),z:e.z,x:e.x,y:e.y},this.options))},_getWrapTileNum:function(){var e=this._map.options.crs,t=e.getSize(this._map.getZoom());return t.divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(e){var t=this._getWrapTileNum();!this.options.continuousWorld&amp;&amp;!this.options.noWrap&amp;&amp;(e.x=(e.x%t.x+t.x)%t.x),this.options.tms&amp;&amp;(e.y=t.y-e.y-1),e.z=this._getZoomForUrl()},_getSubdomain:function(e){var t=Math.abs(e.x+e.y)%this.options.subdomains.length;return this.options.subdomains[t]},_getTile:function(){if(this.options.reuseTiles&amp;&amp;this._unusedTiles.length&gt;0){var e=this._unusedTiles.pop();return this._resetTile(e),e}return this._createTile()},_resetTile:function(){},_createTile:function(){var e=i.DomUtil.create(&quot;img&quot;,&quot;leaflet-tile&quot;);return e.style.width=e.style.height=this._getTileSize()+&quot;px&quot;,e.galleryimg=&quot;no&quot;,e.onselectstart=e.onmousemove=i.Util.falseFn,i.Browser.ielt9&amp;&amp;this.options.opacity!==n&amp;&amp;i.DomUtil.setOpacity(e,this.options.opacity),i.Browser.mobileWebkit3d&amp;&amp;(e.style.WebkitBackfaceVisibility=&quot;hidden&quot;),e},_loadTile:function(e,t){e._layer=this,e.onload=this._tileOnLoad,e.onerror=this._tileOnError,this._adjustTilePoint(t),e.src=this.getTileUrl(t),this.fire(&quot;tileloadstart&quot;,{tile:e,url:e.src})},_tileLoaded:function(){this._tilesToLoad--,this._animated&amp;&amp;i.DomUtil.addClass(this._tileContainer,&quot;leaflet-zoom-animated&quot;),this._tilesToLoad||(this.fire(&quot;load&quot;),this._animated&amp;&amp;(clearTimeout(this._clearBgBufferTimer),this._clearBgBufferTimer=setTimeout(i.bind(this._clearBgBuffer,this),500)))},_tileOnLoad:function(){var e=this._layer;this.src!==i.Util.emptyImageUrl&amp;&amp;(i.DomUtil.addClass(this,&quot;leaflet-tile-loaded&quot;),e.fire(&quot;tileload&quot;,{tile:this,url:this.src})),e._tileLoaded()},_tileOnError:function(){var e=this._layer;e.fire(&quot;tileerror&quot;,{tile:this,url:this.src});var t=e.options.errorTileUrl;t&amp;&amp;(this.src=t),e._tileLoaded()}}),i.tileLayer=function(e,t){return new i.TileLayer(e,t)},i.TileLayer.WMS=i.TileLayer.extend({defaultWmsParams:{service:&quot;WMS&quot;,request:&quot;GetMap&quot;,version:&quot;1.1.1&quot;,layers:&quot;&quot;,styles:&quot;&quot;,format:&quot;image/jpeg&quot;,transparent:!1},initialize:function(e,t){this._url=e;var n=i.extend({},this.defaultWmsParams),r=t.tileSize||this.options.tileSize;t.detectRetina&amp;&amp;i.Browser.retina?n.width=n.height=r*2:n.width=n.height=r;for(var s in t)!this.options.hasOwnProperty(s)&amp;&amp;s!==&quot;crs&quot;&amp;&amp;(n[s]=t[s]);this.wmsParams=n,i.setOptions(this,t)},onAdd:function(e){this._crs=this.options.crs||e.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var t=this._wmsVersion&gt;=1.3?&quot;crs&quot;:&quot;srs&quot;;this.wmsParams[t]=this._crs.code,i.TileLayer.prototype.onAdd.call(this,e)},getTileUrl:function(e){var t=this._map,n=this.options.tileSize,r=e.multiplyBy(n),s=r.add([n,n]),o=this._crs.project(t.unproject(r,e.z)),u=this._crs.project(t.unproject(s,e.z)),a=this._wmsVersion&gt;=1.3&amp;&amp;this._crs===i.CRS.EPSG4326?[u.y,o.x,o.y,u.x].join(&quot;,&quot;):[o.x,u.y,u.x,o.y].join(&quot;,&quot;),f=i.Util.template(this._url,{s:this._getSubdomain(e)});return f+i.Util.getParamString(this.wmsParams,f,!0)+&quot;&amp;BBOX=&quot;+a},setParams:function(e,t){return i.extend(this.wmsParams,e),t||this.redraw(),this}}),i.tileLayer.wms=function(e,t){return new i.TileLayer.WMS(e,t)},i.TileLayer.Canvas=i.TileLayer.extend({options:{async:!1},initialize:function(e){i.setOptions(this,e)},redraw:function(){this._map&amp;&amp;(this._reset({hard:!0}),this._update());for(var e in this._tiles)this._redrawTile(this._tiles[e]);return this},_redrawTile:function(e){this.drawTile(e,e._tilePoint,this._map._zoom)},_createTile:function(){var e=i.DomUtil.create(&quot;canvas&quot;,&quot;leaflet-tile&quot;);return e.width=e.height=this.options.tileSize,e.onselectstart=e.onmousemove=i.Util.falseFn,e},_loadTile:function(e,t){e._layer=this,e._tilePoint=t,this._redrawTile(e),this.options.async||this.tileDrawn(e)},drawTile:function(){},tileDrawn:function(e){this._tileOnLoad.call(e)}}),i.tileLayer.canvas=function(e){return new i.TileLayer.Canvas(e)},i.ImageOverlay=i.Class.extend({includes:i.Mixin.Events,options:{opacity:1},initialize:function(e,t,n){this._url=e,this._bounds=i.latLngBounds(t),i.setOptions(this,n)},onAdd:function(e){this._map=e,this._image||this._initImage(),e._panes.overlayPane.appendChild(this._image),e.on(&quot;viewreset&quot;,this._reset,this),e.options.zoomAnimation&amp;&amp;i.Browser.any3d&amp;&amp;e.on(&quot;zoomanim&quot;,this._animateZoom,this),this._reset()},onRemove:function(e){e.getPanes().overlayPane.removeChild(this._image),e.off(&quot;viewreset&quot;,this._reset,this),e.options.zoomAnimation&amp;&amp;e.off(&quot;zoomanim&quot;,this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},setOpacity:function(e){return this.options.opacity=e,this._updateOpacity(),this},bringToFront:function(){return this._image&amp;&amp;this._map._panes.overlayPane.appendChild(this._image),this},bringToBack:function(){var e=this._map._panes.overlayPane;return this._image&amp;&amp;e.insertBefore(this._image,e.firstChild),this},setUrl:function(e){this._url=e,this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=i.DomUtil.create(&quot;img&quot;,&quot;leaflet-image-layer&quot;),this._map.options.zoomAnimation&amp;&amp;i.Browser.any3d?i.DomUtil.addClass(this._image,&quot;leaflet-zoom-animated&quot;):i.DomUtil.addClass(this._image,&quot;leaflet-zoom-hide&quot;),this._updateOpacity(),i.extend(this._image,{galleryimg:&quot;no&quot;,onselectstart:i.Util.falseFn,onmousemove:i.Util.falseFn,onload:i.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(e){var t=this._map,n=this._image,r=t.getZoomScale(e.zoom),s=this._bounds.getNorthWest(),o=this._bounds.getSouthEast(),u=t._latLngToNewLayerPoint(s,e.zoom,e.center),a=t._latLngToNewLayerPoint(o,e.zoom,e.center)._subtract(u),f=u._add(a._multiplyBy(.5*(1-1/r)));n.style[i.DomUtil.TRANSFORM]=i.DomUtil.getTranslateString(f)+&quot; scale(&quot;+r+&quot;) &quot;},_reset:function(){var e=this._image,t=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),n=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(t);i.DomUtil.setPosition(e,t),e.style.width=n.x+&quot;px&quot;,e.style.height=n.y+&quot;px&quot;},_onImageLoad:function(){this.fire(&quot;load&quot;)},_updateOpacity:function(){i.DomUtil.setOpacity(this._image,this.options.opacity)}}),i.imageOverlay=function(e,t,n){return new i.ImageOverlay(e,t,n)},i.Icon=i.Class.extend({options:{className:&quot;&quot;},initialize:function(e){i.setOptions(this,e)},createIcon:function(e){return this._createIcon(&quot;icon&quot;,e)},createShadow:function(e){return this._createIcon(&quot;shadow&quot;,e)},_createIcon:function(e,t){var n=this._getIconUrl(e);if(!n){if(e===&quot;icon&quot;)throw new Error(&quot;iconUrl not set in Icon options (see the docs).&quot;);return null}var r;return!t||t.tagName!==&quot;IMG&quot;?r=this._createImg(n):r=this._createImg(n,t),this._setIconStyles(r,e),r},_setIconStyles:function(e,t){var n=this.options,r=i.point(n[t+&quot;Size&quot;]),s;t===&quot;shadow&quot;?s=i.point(n.shadowAnchor||n.iconAnchor):s=i.point(n.iconAnchor),!s&amp;&amp;r&amp;&amp;(s=r.divideBy(2,!0)),e.className=&quot;leaflet-marker-&quot;+t+&quot; &quot;+n.className,s&amp;&amp;(e.style.marginLeft=-s.x+&quot;px&quot;,e.style.marginTop=-s.y+&quot;px&quot;),r&amp;&amp;(e.style.width=r.x+&quot;px&quot;,e.style.height=r.y+&quot;px&quot;)},_createImg:function(e,n){return n=n||t.createElement(&quot;img&quot;),n.src=e,n},_getIconUrl:function(e){return i.Browser.retina&amp;&amp;this.options[e+&quot;RetinaUrl&quot;]?this.options[e+&quot;RetinaUrl&quot;]:this.options[e+&quot;Url&quot;]}}),i.icon=function(e){return new i.Icon(e)},i.Icon.Default=i.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(e){var t=e+&quot;Url&quot;;if(this.options[t])return this.options[t];i.Browser.retina&amp;&amp;e===&quot;icon&quot;&amp;&amp;(e+=&quot;-2x&quot;);var n=i.Icon.Default.imagePath;if(!n)throw new Error(&quot;Couldn&#39;t autodetect L.Icon.Default.imagePath, set it manually.&quot;);return n+&quot;/marker-&quot;+e+&quot;.png&quot;}}),i.Icon.Default.imagePath=function(){var e=t.getElementsByTagName(&quot;script&quot;),n=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/,r,i,s,o,u;for(r=0,i=e.length;r&lt;i;r++){s=e[r].src,o=s.match(n);if(o)return u=s.split(n)[0],(u?u+&quot;/&quot;:&quot;&quot;)+&quot;images&quot;}}(),i.Marker=i.Class.extend({includes:i.Mixin.Events,options:{icon:new i.Icon.Default,title:&quot;&quot;,alt:&quot;&quot;,clickable:!0,draggable:!1,keyboard:!0,zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250},initialize:function(e,t){i.setOptions(this,t),this._latlng=i.latLng(e)},onAdd:function(e){this._map=e,e.on(&quot;viewreset&quot;,this.update,this),this._initIcon(),this.update(),this.fire(&quot;add&quot;),e.options.zoomAnimation&amp;&amp;e.options.markerZoomAnimation&amp;&amp;e.on(&quot;zoomanim&quot;,this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){this.dragging&amp;&amp;this.dragging.disable(),this._removeIcon(),this._removeShadow(),this.fire(&quot;remove&quot;),e.off({viewreset:this.update,zoomanim:this._animateZoom},this),this._map=null},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=i.latLng(e),this.update(),this.fire(&quot;move&quot;,{latlng:this._latlng})},setZIndexOffset:function(e){return this.options.zIndexOffset=e,this.update(),this},setIcon:function(e){return this.options.icon=e,this._map&amp;&amp;(this._initIcon(),this.update()),this._popup&amp;&amp;this.bindPopup(this._popup),this},update:function(){if(this._icon){var e=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(e)}return this},_initIcon:function(){var e=this.options,t=this._map,n=t.options.zoomAnimation&amp;&amp;t.options.markerZoomAnimation,r=n?&quot;leaflet-zoom-animated&quot;:&quot;leaflet-zoom-hide&quot;,s=e.icon.createIcon(this._icon),o=!1;s!==this._icon&amp;&amp;(this._icon&amp;&amp;this._removeIcon(),o=!0,e.title&amp;&amp;(s.title=e.title),e.alt&amp;&amp;(s.alt=e.alt)),i.DomUtil.addClass(s,r),e.keyboard&amp;&amp;(s.tabIndex=&quot;0&quot;),this._icon=s,this._initInteraction(),e.riseOnHover&amp;&amp;i.DomEvent.on(s,&quot;mouseover&quot;,this._bringToFront,this).on(s,&quot;mouseout&quot;,this._resetZIndex,this);var u=e.icon.createShadow(this._shadow),a=!1;u!==this._shadow&amp;&amp;(this._removeShadow(),a=!0),u&amp;&amp;i.DomUtil.addClass(u,r),this._shadow=u,e.opacity&lt;1&amp;&amp;this._updateOpacity();var f=this._map._panes;o&amp;&amp;f.markerPane.appendChild(this._icon),u&amp;&amp;a&amp;&amp;f.shadowPane.appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&amp;&amp;i.DomEvent.off(this._icon,&quot;mouseover&quot;,this._bringToFront).off(this._icon,&quot;mouseout&quot;,this._resetZIndex),this._map._panes.markerPane.removeChild(this._icon),this._icon=null},_removeShadow:function(){this._shadow&amp;&amp;this._map._panes.shadowPane.removeChild(this._shadow),this._shadow=null},_setPos:function(e){i.DomUtil.setPosition(this._icon,e),this._shadow&amp;&amp;i.DomUtil.setPosition(this._shadow,e),this._zIndex=e.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(e){this._icon.style.zIndex=this._zIndex+e},_animateZoom:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center).round();this._setPos(t)},_initInteraction:function(){if(!this.options.clickable)return;var e=this._icon,t=[&quot;dblclick&quot;,&quot;mousedown&quot;,&quot;mouseover&quot;,&quot;mouseout&quot;,&quot;contextmenu&quot;];i.DomUtil.addClass(e,&quot;leaflet-clickable&quot;),i.DomEvent.on(e,&quot;click&quot;,this._onMouseClick,this),i.DomEvent.on(e,&quot;keypress&quot;,this._onKeyPress,this);for(var n=0;n&lt;t.length;n++)i.DomEvent.on(e,t[n],this._fireMouseEvent,this);i.Handler.MarkerDrag&amp;&amp;(this.dragging=new i.Handler.MarkerDrag(this),this.options.draggable&amp;&amp;this.dragging.enable())},_onMouseClick:function(e){var t=this.dragging&amp;&amp;this.dragging.moved();(this.hasEventListeners(e.type)||t)&amp;&amp;i.DomEvent.stopPropagation(e);if(t)return;if((!this.dragging||!this.dragging._enabled)&amp;&amp;this._map.dragging&amp;&amp;this._map.dragging.moved())return;this.fire(e.type,{originalEvent:e,latlng:this._latlng})},_onKeyPress:function(e){e.keyCode===13&amp;&amp;this.fire(&quot;click&quot;,{originalEvent:e,latlng:this._latlng})},_fireMouseEvent:function(e){this.fire(e.type,{originalEvent:e,latlng:this._latlng}),e.type===&quot;contextmenu&quot;&amp;&amp;this.hasEventListeners(e.type)&amp;&amp;i.DomEvent.preventDefault(e),e.type!==&quot;mousedown&quot;?i.DomEvent.stopPropagation(e):i.DomEvent.preventDefault(e)},setOpacity:function(e){return this.options.opacity=e,this._map&amp;&amp;this._updateOpacity(),this},_updateOpacity:function(){i.DomUtil.setOpacity(this._icon,this.options.opacity),this._shadow&amp;&amp;i.DomUtil.setOpacity(this._shadow,this.options.opacity)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)}}),i.marker=function(e,t){return new i.Marker(e,t)},i.DivIcon=i.Icon.extend({options:{iconSize:[12,12],className:&quot;leaflet-div-icon&quot;,html:!1},createIcon:function(e){var n=e&amp;&amp;e.tagName===&quot;DIV&quot;?e:t.createElement(&quot;div&quot;),r=this.options;return r.html!==!1?n.innerHTML=r.html:n.innerHTML=&quot;&quot;,r.bgPos&amp;&amp;(n.style.backgroundPosition=-r.bgPos.x+&quot;px &quot;+ -r.bgPos.y+&quot;px&quot;),this._setIconStyles(n,&quot;icon&quot;),n},createShadow:function(){return null}}),i.divIcon=function(e){return new i.DivIcon(e)},i.Map.mergeOptions({closePopupOnClick:!0}),i.Popup=i.Class.extend({includes:i.Mixin.Events,options:{minWidth:50,maxWidth:300,autoPan:!0,closeButton:!0,offset:[0,7],autoPanPadding:[5,5],keepInView:!1,className:&quot;&quot;,zoomAnimation:!0},initialize:function(e,t){i.setOptions(this,e),this._source=t,this._animated=i.Browser.any3d&amp;&amp;this.options.zoomAnimation,this._isOpen=!1},onAdd:function(e){this._map=e,this._container||this._initLayout();var t=e.options.fadeAnimation;t&amp;&amp;i.DomUtil.setOpacity(this._container,0),e._panes.popupPane.appendChild(this._container),e.on(this._getEvents(),this),this.update(),t&amp;&amp;i.DomUtil.setOpacity(this._container,1),this.fire(&quot;open&quot;),e.fire(&quot;popupopen&quot;,{popup:this}),this._source&amp;&amp;this._source.fire(&quot;popupopen&quot;,{popup:this})},addTo:function(e){return e.addLayer(this),this},openOn:function(e){return e.openPopup(this),this},onRemove:function(e){e._panes.popupPane.removeChild(this._container),i.Util.falseFn(this._container.offsetWidth),e.off(this._getEvents(),this),e.options.fadeAnimation&amp;&amp;i.DomUtil.setOpacity(this._container,0),this._map=null,this.fire(&quot;close&quot;),e.fire(&quot;popupclose&quot;,{popup:this}),this._source&amp;&amp;this._source.fire(&quot;popupclose&quot;,{popup:this})},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=i.latLng(e),this._map&amp;&amp;(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(e){return this._content=e,this.update(),this},update:function(){if(!this._map)return;this._container.style.visibility=&quot;hidden&quot;,this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility=&quot;&quot;,this._adjustPan()},_getEvents:function(){var e={viewreset:this._updatePosition};this._animated&amp;&amp;(e.zoomanim=this._zoomAnimation);if(&quot;closeOnClick&quot;in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick)e.preclick=this._close;return this.options.keepInView&amp;&amp;(e.moveend=this._adjustPan),e},_close:function(){this._map&amp;&amp;this._map.closePopup(this)},_initLayout:function(){var e=&quot;leaflet-popup&quot;,t=e+&quot; &quot;+this.options.className+&quot; leaflet-zoom-&quot;+(this._animated?&quot;animated&quot;:&quot;hide&quot;),n=this._container=i.DomUtil.create(&quot;div&quot;,t),r;this.options.closeButton&amp;&amp;(r=this._closeButton=i.DomUtil.create(&quot;a&quot;,e+&quot;-close-button&quot;,n),r.href=&quot;#close&quot;,r.innerHTML=&quot;&amp;#215;&quot;,i.DomEvent.disableClickPropagation(r),i.DomEvent.on(r,&quot;click&quot;,this._onCloseButtonClick,this));var s=this._wrapper=i.DomUtil.create(&quot;div&quot;,e+&quot;-content-wrapper&quot;,n);i.DomEvent.disableClickPropagation(s),this._contentNode=i.DomUtil.create(&quot;div&quot;,e+&quot;-content&quot;,s),i.DomEvent.disableScrollPropagation(this._contentNode),i.DomEvent.on(s,&quot;contextmenu&quot;,i.DomEvent.stopPropagation),this._tipContainer=i.DomUtil.create(&quot;div&quot;,e+&quot;-tip-container&quot;,n),this._tip=i.DomUtil.create(&quot;div&quot;,e+&quot;-tip&quot;,this._tipContainer)},_updateContent:function(){if(!this._content)return;if(typeof this._content==&quot;string&quot;)this._contentNode.innerHTML=this._content;else{while(this._contentNode.hasChildNodes())this._contentNode.removeChild(this._contentNode.firstChild);this._contentNode.appendChild(this._content)}this.fire(&quot;contentupdate&quot;)},_updateLayout:function(){var e=this._contentNode,t=e.style;t.width=&quot;&quot;,t.whiteSpace=&quot;nowrap&quot;;var n=e.offsetWidth;n=Math.min(n,this.options.maxWidth),n=Math.max(n,this.options.minWidth),t.width=n+1+&quot;px&quot;,t.whiteSpace=&quot;&quot;,t.height=&quot;&quot;;var r=e.offsetHeight,s=this.options.maxHeight,o=&quot;leaflet-popup-scrolled&quot;;s&amp;&amp;r&gt;s?(t.height=s+&quot;px&quot;,i.DomUtil.addClass(e,o)):i.DomUtil.removeClass(e,o),this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(!this._map)return;var e=this._map.latLngToLayerPoint(this._latlng),t=this._animated,n=i.point(this.options.offset);t&amp;&amp;i.DomUtil.setPosition(this._container,e),this._containerBottom=-n.y-(t?0:e.y),this._containerLeft=-Math.round(this._containerWidth/2)+n.x+(t?0:e.x),this._container.style.bottom=this._containerBottom+&quot;px&quot;,this._container.style.left=this._containerLeft+&quot;px&quot;},_zoomAnimation:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center);i.DomUtil.setPosition(this._container,t)},_adjustPan:function(){if(!this.options.autoPan)return;var e=this._map,t=this._container.offsetHeight,n=this._containerWidth,r=new i.Point(this._containerLeft,-t-this._containerBottom);this._animated&amp;&amp;r._add(i.DomUtil.getPosition(this._container));var s=e.layerPointToContainerPoint(r),o=i.point(this.options.autoPanPadding),u=i.point(this.options.autoPanPaddingTopLeft||o),a=i.point(this.options.autoPanPaddingBottomRight||o),f=e.getSize(),l=0,c=0;s.x+n+a.x&gt;f.x&amp;&amp;(l=s.x+n-f.x+a.x),s.x-l-u.x&lt;0&amp;&amp;(l=s.x-u.x),s.y+t+a.y&gt;f.y&amp;&amp;(c=s.y+t-f.y+a.y),s.y-c-u.y&lt;0&amp;&amp;(c=s.y-u.y),(l||c)&amp;&amp;e.fire(&quot;autopanstart&quot;).panBy([l,c])},_onCloseButtonClick:function(e){this._close(),i.DomEvent.stop(e)}}),i.popup=function(e,t){return new i.Popup(e,t)},i.Map.include({openPopup:function(e,t,n){this.closePopup();if(!(e instanceof i.Popup)){var r=e;e=(new i.Popup(n)).setLatLng(t).setContent(r)}return e._isOpen=!0,this._popup=e,this.addLayer(e)},closePopup:function(e){if(!e||e===this._popup)e=this._popup,this._popup=null;return e&amp;&amp;(this.removeLayer(e),e._isOpen=!1),this}}),i.Marker.include({openPopup:function(){return this._popup&amp;&amp;this._map&amp;&amp;!this._map.hasLayer(this._popup)&amp;&amp;(this._popup.setLatLng(this._latlng),this._map.openPopup(this._popup)),this},closePopup:function(){return this._popup&amp;&amp;this._popup._close(),this},togglePopup:function(){return this._popup&amp;&amp;(this._popup._isOpen?this.closePopup():this.openPopup()),this},bindPopup:function(e,t){var n=i.point(this.options.icon.options.popupAnchor||[0,0]);return n=n.add(i.Popup.prototype.options.offset),t&amp;&amp;t.offset&amp;&amp;(n=n.add(t.offset)),t=i.extend({offset:n},t),this._popupHandlersAdded||(this.on(&quot;click&quot;,this.togglePopup,this).on(&quot;remove&quot;,this.closePopup,this).on(&quot;move&quot;,this._movePopup,this),this._popupHandlersAdded=!0),e instanceof i.Popup?(i.setOptions(e,t),this._popup=e):this._popup=(new i.Popup(t,this)).setContent(e),this},setPopupContent:function(e){return this._popup&amp;&amp;this._popup.setContent(e),this},unbindPopup:function(){return this._popup&amp;&amp;(this._popup=null,this.off(&quot;click&quot;,this.togglePopup,this).off(&quot;remove&quot;,this.closePopup,this).off(&quot;move&quot;,this._movePopup,this),this._popupHandlersAdded=!1),this},getPopup:function(){return this._popup},_movePopup:function(e){this._popup.setLatLng(e.latlng)}}),i.LayerGroup=i.Class.extend({initialize:function(e){this._layers={};var t,n;if(e)for(t=0,n=e.length;t&lt;n;t++)this.addLayer(e[t])},addLayer:function(e){var t=this.getLayerId(e);return this._layers[t]=e,this._map&amp;&amp;this._map.addLayer(e),this},removeLayer:function(e){var t=e in this._layers?e:this.getLayerId(e);return this._map&amp;&amp;this._layers[t]&amp;&amp;this._map.removeLayer(this._layers[t]),delete this._layers[t],this},hasLayer:function(e){return e?e in this._layers||this.getLayerId(e)in this._layers:!1},clearLayers:function(){return this.eachLayer(this.removeLayer,this),this},invoke:function(e){var t=Array.prototype.slice.call(arguments,1),n,r;for(n in this._layers)r=this._layers[n],r[e]&amp;&amp;r[e].apply(r,t);return this},onAdd:function(e){this._map=e,this.eachLayer(e.addLayer,e)},onRemove:function(e){this.eachLayer(e.removeLayer,e),this._map=null},addTo:function(e){return e.addLayer(this),this},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},getLayer:function(e){return this._layers[e]},getLayers:function(){var e=[];for(var t in this._layers)e.push(this._layers[t]);return e},setZIndex:function(e){return this.invoke(&quot;setZIndex&quot;,e)},getLayerId:function(e){return i.stamp(e)}}),i.layerGroup=function(e){return new i.LayerGroup(e)},i.FeatureGroup=i.LayerGroup.extend({includes:i.Mixin.Events,statics:{EVENTS:&quot;click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose&quot;},addLayer:function(e){return this.hasLayer(e)?this:(&quot;on&quot;in e&amp;&amp;e.on(i.FeatureGroup.EVENTS,this._propagateEvent,this),i.LayerGroup.prototype.addLayer.call(this,e),this._popupContent&amp;&amp;e.bindPopup&amp;&amp;e.bindPopup(this._popupContent,this._popupOptions),this.fire(&quot;layeradd&quot;,{layer:e}))},removeLayer:function(e){return this.hasLayer(e)?(e in this._layers&amp;&amp;(e=this._layers[e]),e.off(i.FeatureGroup.EVENTS,this._propagateEvent,this),i.LayerGroup.prototype.removeLayer.call(this,e),this._popupContent&amp;&amp;this.invoke(&quot;unbindPopup&quot;),this.fire(&quot;layerremove&quot;,{layer:e})):this},bindPopup:function(e,t){return this._popupContent=e,this._popupOptions=t,this.invoke(&quot;bindPopup&quot;,e,t)},openPopup:function(e){for(var t in this._layers){this._layers[t].openPopup(e);break}return this},setStyle:function(e){return this.invoke(&quot;setStyle&quot;,e)},bringToFront:function(){return this.invoke(&quot;bringToFront&quot;)},bringToBack:function(){return this.invoke(&quot;bringToBack&quot;)},getBounds:function(){var e=new i.LatLngBounds;return this.eachLayer(function(t){e.extend(t instanceof i.Marker?t.getLatLng():t.getBounds())}),e},_propagateEvent:function(e){e=i.extend({layer:e.target,target:this},e),this.fire(e.type,e)}}),i.featureGroup=function(e){return new i.FeatureGroup(e)},i.Path=i.Class.extend({includes:[i.Mixin.Events],statics:{CLIP_PADDING:function(){var t=i.Browser.mobile?1280:2e3,n=(t/Math.max(e.outerWidth,e.outerHeight)-1)/2;return Math.max(0,Math.min(.5,n))}()},options:{stroke:!0,color:&quot;#0033ff&quot;,dashArray:null,lineCap:null,lineJoin:null,weight:5,opacity:.5,fill:!1,fillColor:null,fillOpacity:.2,clickable:!0},initialize:function(e){i.setOptions(this,e)},onAdd:function(e){this._map=e,this._container||(this._initElements(),this._initEvents()),this.projectLatlngs(),this._updatePath(),this._container&amp;&amp;this._map._pathRoot.appendChild(this._container),this.fire(&quot;add&quot;),e.on({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){e._pathRoot.removeChild(this._container),this.fire(&quot;remove&quot;),this._map=null,i.Browser.vml&amp;&amp;(this._container=null,this._stroke=null,this._fill=null),e.off({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},projectLatlngs:function(){},setStyle:function(e){return i.setOptions(this,e),this._container&amp;&amp;this._updateStyle(),this},redraw:function(){return this._map&amp;&amp;(this.projectLatlngs(),this._updatePath()),this}}),i.Map.include({_updatePathViewport:function(){var e=i.Path.CLIP_PADDING,t=this.getSize(),n=i.DomUtil.getPosition(this._mapPane),r=n.multiplyBy(-1)._subtract(t.multiplyBy(e)._round()),s=r.add(t.multiplyBy(1+e*2)._round());this._pathViewport=new i.Bounds(r,s)}}),i.Path.SVG_NS=&quot;http://www.w3.org/2000/svg&quot;,i.Browser.svg=!!t.createElementNS&amp;&amp;!!t.createElementNS(i.Path.SVG_NS,&quot;svg&quot;).createSVGRect,i.Path=i.Path.extend({statics:{SVG:i.Browser.svg},bringToFront:function(){var e=this._map._pathRoot,t=this._container;return t&amp;&amp;e.lastChild!==t&amp;&amp;e.appendChild(t),this},bringToBack:function(){var e=this._map._pathRoot,t=this._container,n=e.firstChild;return t&amp;&amp;n!==t&amp;&amp;e.insertBefore(t,n),this},getPathString:function(){},_createElement:function(e){return t.createElementNS(i.Path.SVG_NS,e)},_initElements:function(){this._map._initPathRoot(),this._initPath(),this._initStyle()},_initPath:function(){this._container=this._createElement(&quot;g&quot;),this._path=this._createElement(&quot;path&quot;),this.options.className&amp;&amp;i.DomUtil.addClass(this._path,this.options.className),this._container.appendChild(this._path)},_initStyle:function(){this.options.stroke&amp;&amp;(this._path.setAttribute(&quot;stroke-linejoin&quot;,&quot;round&quot;),this._path.setAttribute(&quot;stroke-linecap&quot;,&quot;round&quot;)),this.options.fill&amp;&amp;this._path.setAttribute(&quot;fill-rule&quot;,&quot;evenodd&quot;),this.options.pointerEvents&amp;&amp;this._path.setAttribute(&quot;pointer-events&quot;,this.options.pointerEvents),!this.options.clickable&amp;&amp;!this.options.pointerEvents&amp;&amp;this._path.setAttribute(&quot;pointer-events&quot;,&quot;none&quot;),this._updateStyle()},_updateStyle:function(){this.options.stroke?(this._path.setAttribute(&quot;stroke&quot;,this.options.color),this._path.setAttribute(&quot;stroke-opacity&quot;,this.options.opacity),this._path.setAttribute(&quot;stroke-width&quot;,this.options.weight),this.options.dashArray?this._path.setAttribute(&quot;stroke-dasharray&quot;,this.options.dashArray):this._path.removeAttribute(&quot;stroke-dasharray&quot;),this.options.lineCap&amp;&amp;this._path.setAttribute(&quot;stroke-linecap&quot;,this.options.lineCap),this.options.lineJoin&amp;&amp;this._path.setAttribute(&quot;stroke-linejoin&quot;,this.options.lineJoin)):this._path.setAttribute(&quot;stroke&quot;,&quot;none&quot;),this.options.fill?(this._path.setAttribute(&quot;fill&quot;,this.options.fillColor||this.options.color),this._path.setAttribute(&quot;fill-opacity&quot;,this.options.fillOpacity)):this._path.setAttribute(&quot;fill&quot;,&quot;none&quot;)},_updatePath:function(){var e=this.getPathString();e||(e=&quot;M0 0&quot;),this._path.setAttribute(&quot;d&quot;,e)},_initEvents:function(){if(this.options.clickable){(i.Browser.svg||!i.Browser.vml)&amp;&amp;i.DomUtil.addClass(this._path,&quot;leaflet-clickable&quot;),i.DomEvent.on(this._container,&quot;click&quot;,this._onMouseClick,this);var e=[&quot;dblclick&quot;,&quot;mousedown&quot;,&quot;mouseover&quot;,&quot;mouseout&quot;,&quot;mousemove&quot;,&quot;contextmenu&quot;];for(var t=0;t&lt;e.length;t++)i.DomEvent.on(this._container,e[t],this._fireMouseEvent,this)}},_onMouseClick:function(e){if(this._map.dragging&amp;&amp;this._map.dragging.moved())return;this._fireMouseEvent(e)},_fireMouseEvent:function(e){if(!this.hasEventListeners(e.type))return;var t=this._map,n=t.mouseEventToContainerPoint(e),r=t.containerPointToLayerPoint(n),s=t.layerPointToLatLng(r);this.fire(e.type,{latlng:s,layerPoint:r,containerPoint:n,originalEvent:e}),e.type===&quot;contextmenu&quot;&amp;&amp;i.DomEvent.preventDefault(e),e.type!==&quot;mousemove&quot;&amp;&amp;i.DomEvent.stopPropagation(e)}}),i.Map.include({_initPathRoot:function(){this._pathRoot||(this._pathRoot=i.Path.prototype._createElement(&quot;svg&quot;),this._panes.overlayPane.appendChild(this._pathRoot),this.options.zoomAnimation&amp;&amp;i.Browser.any3d?(i.DomUtil.addClass(this._pathRoot,&quot;leaflet-zoom-animated&quot;),this.on({zoomanim:this._animatePathZoom,zoomend:this._endPathZoom})):i.DomUtil.addClass(this._pathRoot,&quot;leaflet-zoom-hide&quot;),this.on(&quot;moveend&quot;,this._updateSvgViewport),this._updateSvgViewport())},_animatePathZoom:function(e){var t=this.getZoomScale(e.zoom),n=this._getCenterOffset(e.center)._multiplyBy(-t)._add(this._pathViewport.min);this._pathRoot.style[i.DomUtil.TRANSFORM]=i.DomUtil.getTranslateString(n)+&quot; scale(&quot;+t+&quot;) &quot;,this._pathZooming=!0},_endPathZoom:function(){this._pathZooming=!1},_updateSvgViewport:function(){if(this._pathZooming)return;this._updatePathViewport();var e=this._pathViewport,t=e.min,n=e.max,r=n.x-t.x,s=n.y-t.y,o=this._pathRoot,u=this._panes.overlayPane;i.Browser.mobileWebkit&amp;&amp;u.removeChild(o),i.DomUtil.setPosition(o,t),o.setAttribute(&quot;width&quot;,r),o.setAttribute(&quot;height&quot;,s),o.setAttribute(&quot;viewBox&quot;,[t.x,t.y,r,s].join(&quot; &quot;)),i.Browser.mobileWebkit&amp;&amp;u.appendChild(o)}}),i.Path.include({bindPopup:function(e,t){if(e instanceof i.Popup)this._popup=e;else{if(!this._popup||t)this._popup=new i.Popup(t,this);this._popup.setContent(e)}return this._popupHandlersAdded||(this.on(&quot;click&quot;,this._openPopup,this).on(&quot;remove&quot;,this.closePopup,this),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&amp;&amp;(this._popup=null,this.off(&quot;click&quot;,this._openPopup).off(&quot;remove&quot;,this.closePopup),this._popupHandlersAdded=!1),this},openPopup:function(e){return this._popup&amp;&amp;(e=e||this._latlng||this._latlngs[Math.floor(this._latlngs.length/2)],this._openPopup({latlng:e})),this},closePopup:function(){return this._popup&amp;&amp;this._popup._close(),this},_openPopup:function(e){this._popup.setLatLng(e.latlng),this._map.openPopup(this._popup)}}),i.Browser.vml=!i.Browser.svg&amp;&amp;function(){try{var e=t.createElement(&quot;div&quot;);e.innerHTML=&#39;&lt;v:shape adj=&quot;1&quot;/&gt;&#39;;var n=e.firstChild;return n.style.behavior=&quot;url(#default#VML)&quot;,n&amp;&amp;typeof n.adj==&quot;object&quot;}catch(r){return!1}}(),i.Path=i.Browser.svg||!i.Browser.vml?i.Path:i.Path.extend({statics:{VML:!0,CLIP_PADDING:.02},_createElement:function(){try{return t.namespaces.add(&quot;lvml&quot;,&quot;urn:schemas-microsoft-com:vml&quot;),function(e){return t.createElement(&quot;&lt;lvml:&quot;+e+&#39; class=&quot;lvml&quot;&gt;&#39;)}}catch(e){return function(e){return t.createElement(&quot;&lt;&quot;+e+&#39; xmlns=&quot;urn:schemas-microsoft.com:vml&quot; class=&quot;lvml&quot;&gt;&#39;)}}}(),_initPath:function(){var e=this._container=this._createElement(&quot;shape&quot;);i.DomUtil.addClass(e,&quot;leaflet-vml-shape&quot;+(this.options.className?&quot; &quot;+this.options.className:&quot;&quot;)),this.options.clickable&amp;&amp;i.DomUtil.addClass(e,&quot;leaflet-clickable&quot;),e.coordsize=&quot;1 1&quot;,this._path=this._createElement(&quot;path&quot;),e.appendChild(this._path),this._map._pathRoot.appendChild(e)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var e=this._stroke,t=this._fill,n=this.options,r=this._container;r.stroked=n.stroke,r.filled=n.fill,n.stroke?(e||(e=this._stroke=this._createElement(&quot;stroke&quot;),e.endcap=&quot;round&quot;,r.appendChild(e)),e.weight=n.weight+&quot;px&quot;,e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=i.Util.isArray(n.dashArray)?n.dashArray.join(&quot; &quot;):n.dashArray.replace(/( *, *)/g,&quot; &quot;):e.dashStyle=&quot;&quot;,n.lineCap&amp;&amp;(e.endcap=n.lineCap.replace(&quot;butt&quot;,&quot;flat&quot;)),n.lineJoin&amp;&amp;(e.joinstyle=n.lineJoin)):e&amp;&amp;(r.removeChild(e),this._stroke=null),n.fill?(t||(t=this._fill=this._createElement(&quot;fill&quot;),r.appendChild(t)),t.color=n.fillColor||n.color,t.opacity=n.fillOpacity):t&amp;&amp;(r.removeChild(t),this._fill=null)},_updatePath:function(){var e=this._container.style;e.display=&quot;none&quot;,this._path.v=this.getPathString()+&quot; &quot;,e.display=&quot;&quot;}}),i.Map.include(i.Browser.svg||!i.Browser.vml?{}:{_initPathRoot:function(){if(this._pathRoot)return;var e=this._pathRoot=t.createElement(&quot;div&quot;);e.className=&quot;leaflet-vml-container&quot;,this._panes.overlayPane.appendChild(e),this.on(&quot;moveend&quot;,this._updatePathViewport),this._updatePathViewport()}}),i.Browser.canvas=function(){return!!t.createElement(&quot;canvas&quot;).getContext}(),i.Path=i.Path.SVG&amp;&amp;!e.L_PREFER_CANVAS||!i.Browser.canvas?i.Path:i.Path.extend({statics:{CANVAS:!0,SVG:!1},redraw:function(){return this._map&amp;&amp;(this.projectLatlngs(),this._requestUpdate()),this},setStyle:function(e){return i.setOptions(this,e),this._map&amp;&amp;(this._updateStyle(),this._requestUpdate()),this},onRemove:function(e){e.off(&quot;viewreset&quot;,this.projectLatlngs,this).off(&quot;moveend&quot;,this._updatePath,this),this.options.clickable&amp;&amp;(this._map.off(&quot;click&quot;,this._onClick,this),this._map.off(&quot;mousemove&quot;,this._onMouseMove,this)),this._requestUpdate(),this.fire(&quot;remove&quot;),this._map=null},_requestUpdate:function(){this._map&amp;&amp;!i.Path._updateRequest&amp;&amp;(i.</td>
      </tr>
      <tr>
        <td id="L10" class="blob-num js-line-number" data-line-number="10"></td>
        <td id="LC10" class="blob-code js-file-line">Path._updateRequest=i.Util.requestAnimFrame(this._fireMapMoveEnd,this._map))},_fireMapMoveEnd:function(){i.Path._updateRequest=null,this.fire(&quot;moveend&quot;)},_initElements:function(){this._map._initPathRoot(),this._ctx=this._map._canvasCtx},_updateStyle:function(){var e=this.options;e.stroke&amp;&amp;(this._ctx.lineWidth=e.weight,this._ctx.strokeStyle=e.color),e.fill&amp;&amp;(this._ctx.fillStyle=e.fillColor||e.color)},_drawPath:function(){var e,t,n,r,s,o;this._ctx.beginPath();for(e=0,n=this._parts.length;e&lt;n;e++){for(t=0,r=this._parts[e].length;t&lt;r;t++)s=this._parts[e][t],o=(t===0?&quot;move&quot;:&quot;line&quot;)+&quot;To&quot;,this._ctx[o](s.x,s.y);this instanceof i.Polygon&amp;&amp;this._ctx.closePath()}},_checkIfEmpty:function(){return!this._parts.length},_updatePath:function(){if(this._checkIfEmpty())return;var e=this._ctx,t=this.options;this._drawPath(),e.save(),this._updateStyle(),t.fill&amp;&amp;(e.globalAlpha=t.fillOpacity,e.fill()),t.stroke&amp;&amp;(e.globalAlpha=t.opacity,e.stroke()),e.restore()},_initEvents:function(){this.options.clickable&amp;&amp;(this._map.on(&quot;mousemove&quot;,this._onMouseMove,this),this._map.on(&quot;click&quot;,this._onClick,this))},_onClick:function(e){this._containsPoint(e.layerPoint)&amp;&amp;this.fire(&quot;click&quot;,e)},_onMouseMove:function(e){if(!this._map||this._map._animatingZoom)return;this._containsPoint(e.layerPoint)?(this._ctx.canvas.style.cursor=&quot;pointer&quot;,this._mouseInside=!0,this.fire(&quot;mouseover&quot;,e)):this._mouseInside&amp;&amp;(this._ctx.canvas.style.cursor=&quot;&quot;,this._mouseInside=!1,this.fire(&quot;mouseout&quot;,e))}}),i.Map.include(i.Path.SVG&amp;&amp;!e.L_PREFER_CANVAS||!i.Browser.canvas?{}:{_initPathRoot:function(){var e=this._pathRoot,n;e||(e=this._pathRoot=t.createElement(&quot;canvas&quot;),e.style.position=&quot;absolute&quot;,n=this._canvasCtx=e.getContext(&quot;2d&quot;),n.lineCap=&quot;round&quot;,n.lineJoin=&quot;round&quot;,this._panes.overlayPane.appendChild(e),this.options.zoomAnimation&amp;&amp;(this._pathRoot.className=&quot;leaflet-zoom-animated&quot;,this.on(&quot;zoomanim&quot;,this._animatePathZoom),this.on(&quot;zoomend&quot;,this._endPathZoom)),this.on(&quot;moveend&quot;,this._updateCanvasViewport),this._updateCanvasViewport())},_updateCanvasViewport:function(){if(this._pathZooming)return;this._updatePathViewport();var e=this._pathViewport,t=e.min,n=e.max.subtract(t),r=this._pathRoot;i.DomUtil.setPosition(r,t),r.width=n.x,r.height=n.y,r.getContext(&quot;2d&quot;).translate(-t.x,-t.y)}}),i.LineUtil={simplify:function(e,t){if(!t||!e.length)return e.slice();var n=t*t;return e=this._reducePoints(e,n),e=this._simplifyDP(e,n),e},pointToSegmentDistance:function(e,t,n){return Math.sqrt(this._sqClosestPointOnSegment(e,t,n,!0))},closestPointOnSegment:function(e,t,n){return this._sqClosestPointOnSegment(e,t,n)},_simplifyDP:function(e,t){var r=e.length,i=typeof Uint8Array!=n+&quot;&quot;?Uint8Array:Array,s=new i(r);s[0]=s[r-1]=1,this._simplifyDPStep(e,s,t,0,r-1);var o,u=[];for(o=0;o&lt;r;o++)s[o]&amp;&amp;u.push(e[o]);return u},_simplifyDPStep:function(e,t,n,r,i){var s=0,o,u,a;for(u=r+1;u&lt;=i-1;u++)a=this._sqClosestPointOnSegment(e[u],e[r],e[i],!0),a&gt;s&amp;&amp;(o=u,s=a);s&gt;n&amp;&amp;(t[o]=1,this._simplifyDPStep(e,t,n,r,o),this._simplifyDPStep(e,t,n,o,i))},_reducePoints:function(e,t){var n=[e[0]];for(var r=1,i=0,s=e.length;r&lt;s;r++)this._sqDist(e[r],e[i])&gt;t&amp;&amp;(n.push(e[r]),i=r);return i&lt;s-1&amp;&amp;n.push(e[s-1]),n},clipSegment:function(e,t,n,r){var i=r?this._lastCode:this._getBitCode(e,n),s=this._getBitCode(t,n),o,u,a;this._lastCode=s;for(;;){if(!(i|s))return[e,t];if(i&amp;s)return!1;o=i||s,u=this._getEdgeIntersection(e,t,o,n),a=this._getBitCode(u,n),o===i?(e=u,i=a):(t=u,s=a)}},_getEdgeIntersection:function(e,t,n,r){var s=t.x-e.x,o=t.y-e.y,u=r.min,a=r.max;if(n&amp;8)return new i.Point(e.x+s*(a.y-e.y)/o,a.y);if(n&amp;4)return new i.Point(e.x+s*(u.y-e.y)/o,u.y);if(n&amp;2)return new i.Point(a.x,e.y+o*(a.x-e.x)/s);if(n&amp;1)return new i.Point(u.x,e.y+o*(u.x-e.x)/s)},_getBitCode:function(e,t){var n=0;return e.x&lt;t.min.x?n|=1:e.x&gt;t.max.x&amp;&amp;(n|=2),e.y&lt;t.min.y?n|=4:e.y&gt;t.max.y&amp;&amp;(n|=8),n},_sqDist:function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},_sqClosestPointOnSegment:function(e,t,n,r){var s=t.x,o=t.y,u=n.x-s,a=n.y-o,f=u*u+a*a,l;return f&gt;0&amp;&amp;(l=((e.x-s)*u+(e.y-o)*a)/f,l&gt;1?(s=n.x,o=n.y):l&gt;0&amp;&amp;(s+=u*l,o+=a*l)),u=e.x-s,a=e.y-o,r?u*u+a*a:new i.Point(s,o)}},i.Polyline=i.Path.extend({initialize:function(e,t){i.Path.prototype.initialize.call(this,t),this._latlngs=this._convertLatLngs(e)},options:{smoothFactor:1,noClip:!1},projectLatlngs:function(){this._originalPoints=[];for(var e=0,t=this._latlngs.length;e&lt;t;e++)this._originalPoints[e]=this._map.latLngToLayerPoint(this._latlngs[e])},getPathString:function(){for(var e=0,t=this._parts.length,n=&quot;&quot;;e&lt;t;e++)n+=this._getPathPartStr(this._parts[e]);return n},getLatLngs:function(){return this._latlngs},setLatLngs:function(e){return this._latlngs=this._convertLatLngs(e),this.redraw()},addLatLng:function(e){return this._latlngs.push(i.latLng(e)),this.redraw()},spliceLatLngs:function(){var e=[].splice.apply(this._latlngs,arguments);return this._convertLatLngs(this._latlngs,!0),this.redraw(),e},closestLayerPoint:function(e){var t=Infinity,n=this._parts,r,s,o=null;for(var u=0,a=n.length;u&lt;a;u++){var f=n[u];for(var l=1,c=f.length;l&lt;c;l++){r=f[l-1],s=f[l];var h=i.LineUtil._sqClosestPointOnSegment(e,r,s,!0);h&lt;t&amp;&amp;(t=h,o=i.LineUtil._sqClosestPointOnSegment(e,r,s))}}return o&amp;&amp;(o.distance=Math.sqrt(t)),o},getBounds:function(){return new i.LatLngBounds(this.getLatLngs())},_convertLatLngs:function(e,t){var n,r,s=t?e:[];for(n=0,r=e.length;n&lt;r;n++){if(i.Util.isArray(e[n])&amp;&amp;typeof e[n][0]!=&quot;number&quot;)return;s[n]=i.latLng(e[n])}return s},_initEvents:function(){i.Path.prototype._initEvents.call(this)},_getPathPartStr:function(e){var t=i.Path.VML;for(var n=0,r=e.length,s=&quot;&quot;,o;n&lt;r;n++)o=e[n],t&amp;&amp;o._round(),s+=(n?&quot;L&quot;:&quot;M&quot;)+o.x+&quot; &quot;+o.y;return s},_clipPoints:function(){var e=this._originalPoints,t=e.length,n,r,s;if(this.options.noClip){this._parts=[e];return}this._parts=[];var o=this._parts,u=this._map._pathViewport,a=i.LineUtil;for(n=0,r=0;n&lt;t-1;n++){s=a.clipSegment(e[n],e[n+1],u,n);if(!s)continue;o[r]=o[r]||[],o[r].push(s[0]);if(s[1]!==e[n+1]||n===t-2)o[r].push(s[1]),r++}},_simplifyPoints:function(){var e=this._parts,t=i.LineUtil;for(var n=0,r=e.length;n&lt;r;n++)e[n]=t.simplify(e[n],this.options.smoothFactor)},_updatePath:function(){if(!this._map)return;this._clipPoints(),this._simplifyPoints(),i.Path.prototype._updatePath.call(this)}}),i.polyline=function(e,t){return new i.Polyline(e,t)},i.PolyUtil={},i.PolyUtil.clipPolygon=function(e,t){var n,r=[1,4,2,8],s,o,u,a,f,l,c,h,p=i.LineUtil;for(s=0,l=e.length;s&lt;l;s++)e[s]._code=p._getBitCode(e[s],t);for(u=0;u&lt;4;u++){c=r[u],n=[];for(s=0,l=e.length,o=l-1;s&lt;l;o=s++)a=e[s],f=e[o],a._code&amp;c?f._code&amp;c||(h=p._getEdgeIntersection(f,a,c,t),h._code=p._getBitCode(h,t),n.push(h)):(f._code&amp;c&amp;&amp;(h=p._getEdgeIntersection(f,a,c,t),h._code=p._getBitCode(h,t),n.push(h)),n.push(a));e=n}return e},i.Polygon=i.Polyline.extend({options:{fill:!0},initialize:function(e,t){i.Polyline.prototype.initialize.call(this,e,t),this._initWithHoles(e)},_initWithHoles:function(e){var t,n,r;if(e&amp;&amp;i.Util.isArray(e[0])&amp;&amp;typeof e[0][0]!=&quot;number&quot;){this._latlngs=this._convertLatLngs(e[0]),this._holes=e.slice(1);for(t=0,n=this._holes.length;t&lt;n;t++)r=this._holes[t]=this._convertLatLngs(this._holes[t]),r[0].equals(r[r.length-1])&amp;&amp;r.pop()}e=this._latlngs,e.length&gt;=2&amp;&amp;e[0].equals(e[e.length-1])&amp;&amp;e.pop()},projectLatlngs:function(){i.Polyline.prototype.projectLatlngs.call(this),this._holePoints=[];if(!this._holes)return;var e,t,n,r;for(e=0,n=this._holes.length;e&lt;n;e++){this._holePoints[e]=[];for(t=0,r=this._holes[e].length;t&lt;r;t++)this._holePoints[e][t]=this._map.latLngToLayerPoint(this._holes[e][t])}},setLatLngs:function(e){return e&amp;&amp;i.Util.isArray(e[0])&amp;&amp;typeof e[0][0]!=&quot;number&quot;?(this._initWithHoles(e),this.redraw()):i.Polyline.prototype.setLatLngs.call(this,e)},_clipPoints:function(){var e=this._originalPoints,t=[];this._parts=[e].concat(this._holePoints);if(this.options.noClip)return;for(var n=0,r=this._parts.length;n&lt;r;n++){var s=i.PolyUtil.clipPolygon(this._parts[n],this._map._pathViewport);s.length&amp;&amp;t.push(s)}this._parts=t},_getPathPartStr:function(e){var t=i.Polyline.prototype._getPathPartStr.call(this,e);return t+(i.Browser.svg?&quot;z&quot;:&quot;x&quot;)}}),i.polygon=function(e,t){return new i.Polygon(e,t)},function(){function e(e){return i.FeatureGroup.extend({initialize:function(e,t){this._layers={},this._options=t,this.setLatLngs(e)},setLatLngs:function(t){var n=0,r=t.length;this.eachLayer(function(e){n&lt;r?e.setLatLngs(t[n++]):this.removeLayer(e)},this);while(n&lt;r)this.addLayer(new e(t[n++],this._options));return this},getLatLngs:function(){var e=[];return this.eachLayer(function(t){e.push(t.getLatLngs())}),e}})}i.MultiPolyline=e(i.Polyline),i.MultiPolygon=e(i.Polygon),i.multiPolyline=function(e,t){return new i.MultiPolyline(e,t)},i.multiPolygon=function(e,t){return new i.MultiPolygon(e,t)}}(),i.Rectangle=i.Polygon.extend({initialize:function(e,t){i.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(e),t)},setBounds:function(e){this.setLatLngs(this._boundsToLatLngs(e))},_boundsToLatLngs:function(e){return e=i.latLngBounds(e),[e.getSouthWest(),e.getNorthWest(),e.getNorthEast(),e.getSouthEast()]}}),i.rectangle=function(e,t){return new i.Rectangle(e,t)},i.Circle=i.Path.extend({initialize:function(e,t,n){i.Path.prototype.initialize.call(this,n),this._latlng=i.latLng(e),this._mRadius=t},options:{fill:!0},setLatLng:function(e){return this._latlng=i.latLng(e),this.redraw()},setRadius:function(e){return this._mRadius=e,this.redraw()},projectLatlngs:function(){var e=this._getLngRadius(),t=this._latlng,n=this._map.latLngToLayerPoint([t.lat,t.lng-e]);this._point=this._map.latLngToLayerPoint(t),this._radius=Math.max(this._point.x-n.x,1)},getBounds:function(){var e=this._getLngRadius(),t=this._mRadius/40075017*360,n=this._latlng;return new i.LatLngBounds([n.lat-t,n.lng-e],[n.lat+t,n.lng+e])},getLatLng:function(){return this._latlng},getPathString:function(){var e=this._point,t=this._radius;return this._checkIfEmpty()?&quot;&quot;:i.Browser.svg?&quot;M&quot;+e.x+&quot;,&quot;+(e.y-t)+&quot;A&quot;+t+&quot;,&quot;+t+&quot;,0,1,1,&quot;+(e.x-.1)+&quot;,&quot;+(e.y-t)+&quot; z&quot;:(e._round(),t=Math.round(t),&quot;AL &quot;+e.x+&quot;,&quot;+e.y+&quot; &quot;+t+&quot;,&quot;+t+&quot; 0,&quot;+23592600)},getRadius:function(){return this._mRadius},_getLatRadius:function(){return this._mRadius/40075017*360},_getLngRadius:function(){return this._getLatRadius()/Math.cos(i.LatLng.DEG_TO_RAD*this._latlng.lat)},_checkIfEmpty:function(){if(!this._map)return!1;var e=this._map._pathViewport,t=this._radius,n=this._point;return n.x-t&gt;e.max.x||n.y-t&gt;e.max.y||n.x+t&lt;e.min.x||n.y+t&lt;e.min.y}}),i.circle=function(e,t,n){return new i.Circle(e,t,n)},i.CircleMarker=i.Circle.extend({options:{radius:10,weight:2},initialize:function(e,t){i.Circle.prototype.initialize.call(this,e,null,t),this._radius=this.options.radius},projectLatlngs:function(){this._point=this._map.latLngToLayerPoint(this._latlng)},_updateStyle:function(){i.Circle.prototype._updateStyle.call(this),this.setRadius(this.options.radius)},setLatLng:function(e){return i.Circle.prototype.setLatLng.call(this,e),this._popup&amp;&amp;this._popup._isOpen&amp;&amp;this._popup.setLatLng(e),this},setRadius:function(e){return this.options.radius=this._radius=e,this.redraw()},getRadius:function(){return this._radius}}),i.circleMarker=function(e,t){return new i.CircleMarker(e,t)},i.Polyline.include(i.Path.CANVAS?{_containsPoint:function(e,t){var n,r,s,o,u,a,f,l=this.options.weight/2;i.Browser.touch&amp;&amp;(l+=10);for(n=0,o=this._parts.length;n&lt;o;n++){f=this._parts[n];for(r=0,u=f.length,s=u-1;r&lt;u;s=r++){if(!t&amp;&amp;r===0)continue;a=i.LineUtil.pointToSegmentDistance(e,f[s],f[r]);if(a&lt;=l)return!0}}return!1}}:{}),i.Polygon.include(i.Path.CANVAS?{_containsPoint:function(e){var t=!1,n,r,s,o,u,a,f,l;if(i.Polyline.prototype._containsPoint.call(this,e,!0))return!0;for(o=0,f=this._parts.length;o&lt;f;o++){n=this._parts[o];for(u=0,l=n.length,a=l-1;u&lt;l;a=u++)r=n[u],s=n[a],r.y&gt;e.y!=s.y&gt;e.y&amp;&amp;e.x&lt;(s.x-r.x)*(e.y-r.y)/(s.y-r.y)+r.x&amp;&amp;(t=!t)}return t}}:{}),i.Circle.include(i.Path.CANVAS?{_drawPath:function(){var e=this._point;this._ctx.beginPath(),this._ctx.arc(e.x,e.y,this._radius,0,Math.PI*2,!1)},_containsPoint:function(e){var t=this._point,n=this.options.stroke?this.options.weight/2:0;return e.distanceTo(t)&lt;=this._radius+n}}:{}),i.CircleMarker.include(i.Path.CANVAS?{_updateStyle:function(){i.Path.prototype._updateStyle.call(this)}}:{}),i.GeoJSON=i.FeatureGroup.extend({initialize:function(e,t){i.setOptions(this,t),this._layers={},e&amp;&amp;this.addData(e)},addData:function(e){var t=i.Util.isArray(e)?e:e.features,n,r,s;if(t){for(n=0,r=t.length;n&lt;r;n++)s=t[n],(s.geometries||s.geometry||s.features||s.coordinates)&amp;&amp;this.addData(t[n]);return this}var o=this.options;if(o.filter&amp;&amp;!o.filter(e))return;var u=i.GeoJSON.geometryToLayer(e,o.pointToLayer,o.coordsToLatLng,o);return u.feature=i.GeoJSON.asFeature(e),u.defaultOptions=u.options,this.resetStyle(u),o.onEachFeature&amp;&amp;o.onEachFeature(e,u),this.addLayer(u)},resetStyle:function(e){var t=this.options.style;t&amp;&amp;(i.Util.extend(e.options,e.defaultOptions),this._setLayerStyle(e,t))},setStyle:function(e){this.eachLayer(function(t){this._setLayerStyle(t,e)},this)},_setLayerStyle:function(e,t){typeof t==&quot;function&quot;&amp;&amp;(t=t(e.feature)),e.setStyle&amp;&amp;e.setStyle(t)}}),i.extend(i.GeoJSON,{geometryToLayer:function(e,t,n,r){var s=e.type===&quot;Feature&quot;?e.geometry:e,o=s.coordinates,u=[],a,f,l,c;n=n||this.coordsToLatLng;switch(s.type){case&quot;Point&quot;:return a=n(o),t?t(e,a):new i.Marker(a);case&quot;MultiPoint&quot;:for(l=0,c=o.length;l&lt;c;l++)a=n(o[l]),u.push(t?t(e,a):new i.Marker(a));return new i.FeatureGroup(u);case&quot;LineString&quot;:return f=this.coordsToLatLngs(o,0,n),new i.Polyline(f,r);case&quot;Polygon&quot;:if(o.length===2&amp;&amp;!o[1].length)throw new Error(&quot;Invalid GeoJSON object.&quot;);return f=this.coordsToLatLngs(o,1,n),new i.Polygon(f,r);case&quot;MultiLineString&quot;:return f=this.coordsToLatLngs(o,1,n),new i.MultiPolyline(f,r);case&quot;MultiPolygon&quot;:return f=this.coordsToLatLngs(o,2,n),new i.MultiPolygon(f,r);case&quot;GeometryCollection&quot;:for(l=0,c=s.geometries.length;l&lt;c;l++)u.push(this.geometryToLayer({geometry:s.geometries[l],type:&quot;Feature&quot;,properties:e.properties},t,n,r));return new i.FeatureGroup(u);default:throw new Error(&quot;Invalid GeoJSON object.&quot;)}},coordsToLatLng:function(e){return new i.LatLng(e[1],e[0],e[2])},coordsToLatLngs:function(e,t,n){var r,i,s,o=[];for(i=0,s=e.length;i&lt;s;i++)r=t?this.coordsToLatLngs(e[i],t-1,n):(n||this.coordsToLatLng)(e[i]),o.push(r);return o},latLngToCoords:function(e){var t=[e.lng,e.lat];return e.alt!==n&amp;&amp;t.push(e.alt),t},latLngsToCoords:function(e){var t=[];for(var n=0,r=e.length;n&lt;r;n++)t.push(i.GeoJSON.latLngToCoords(e[n]));return t},getFeature:function(e,t){return e.feature?i.extend({},e.feature,{geometry:t}):i.GeoJSON.asFeature(t)},asFeature:function(e){return e.type===&quot;Feature&quot;?e:{type:&quot;Feature&quot;,properties:{},geometry:e}}});var o={toGeoJSON:function(){return i.GeoJSON.getFeature(this,{type:&quot;Point&quot;,coordinates:i.GeoJSON.latLngToCoords(this.getLatLng())})}};i.Marker.include(o),i.Circle.include(o),i.CircleMarker.include(o),i.Polyline.include({toGeoJSON:function(){return i.GeoJSON.getFeature(this,{type:&quot;LineString&quot;,coordinates:i.GeoJSON.latLngsToCoords(this.getLatLngs())})}}),i.Polygon.include({toGeoJSON:function(){var e=[i.GeoJSON.latLngsToCoords(this.getLatLngs())],t,n,r;e[0].push(e[0][0]);if(this._holes)for(t=0,n=this._holes.length;t&lt;n;t++)r=i.GeoJSON.latLngsToCoords(this._holes[t]),r.push(r[0]),e.push(r);return i.GeoJSON.getFeature(this,{type:&quot;Polygon&quot;,coordinates:e})}}),function(){function e(e){return function(){var t=[];return this.eachLayer(function(e){t.push(e.toGeoJSON().geometry.coordinates)}),i.GeoJSON.getFeature(this,{type:e,coordinates:t})}}i.MultiPolyline.include({toGeoJSON:e(&quot;MultiLineString&quot;)}),i.MultiPolygon.include({toGeoJSON:e(&quot;MultiPolygon&quot;)}),i.LayerGroup.include({toGeoJSON:function(){var t=this.feature&amp;&amp;this.feature.geometry,n=[],r;if(t&amp;&amp;t.type===&quot;MultiPoint&quot;)return e(&quot;MultiPoint&quot;).call(this);var s=t&amp;&amp;t.type===&quot;GeometryCollection&quot;;return this.eachLayer(function(e){e.toGeoJSON&amp;&amp;(r=e.toGeoJSON(),n.push(s?r.geometry:i.GeoJSON.asFeature(r)))}),s?i.GeoJSON.getFeature(this,{geometries:n,type:&quot;GeometryCollection&quot;}):{type:&quot;FeatureCollection&quot;,features:n}}})}(),i.geoJson=function(e,t){return new i.GeoJSON(e,t)},i.DomEvent={addListener:function(e,t,n,r){var s=i.stamp(n),o=&quot;_leaflet_&quot;+t+s,u,a,f;return e[o]?this:(u=function(t){return n.call(r||e,t||i.DomEvent._getEvent())},i.Browser.pointer&amp;&amp;t.indexOf(&quot;touch&quot;)===0?this.addPointerListener(e,t,u,s):(i.Browser.touch&amp;&amp;t===&quot;dblclick&quot;&amp;&amp;this.addDoubleTapListener&amp;&amp;this.addDoubleTapListener(e,u,s),&quot;addEventListener&quot;in e?t===&quot;mousewheel&quot;?(e.addEventListener(&quot;DOMMouseScroll&quot;,u,!1),e.addEventListener(t,u,!1)):t===&quot;mouseenter&quot;||t===&quot;mouseleave&quot;?(a=u,f=t===&quot;mouseenter&quot;?&quot;mouseover&quot;:&quot;mouseout&quot;,u=function(t){if(!i.DomEvent._checkMouse(e,t))return;return a(t)},e.addEventListener(f,u,!1)):t===&quot;click&quot;&amp;&amp;i.Browser.android?(a=u,u=function(e){return i.DomEvent._filterClick(e,a)},e.addEventListener(t,u,!1)):e.addEventListener(t,u,!1):&quot;attachEvent&quot;in e&amp;&amp;e.attachEvent(&quot;on&quot;+t,u),e[o]=u,this))},removeListener:function(e,t,n){var r=i.stamp(n),s=&quot;_leaflet_&quot;+t+r,o=e[s];return o?(i.Browser.pointer&amp;&amp;t.indexOf(&quot;touch&quot;)===0?this.removePointerListener(e,t,r):i.Browser.touch&amp;&amp;t===&quot;dblclick&quot;&amp;&amp;this.removeDoubleTapListener?this.removeDoubleTapListener(e,r):&quot;removeEventListener&quot;in e?t===&quot;mousewheel&quot;?(e.removeEventListener(&quot;DOMMouseScroll&quot;,o,!1),e.removeEventListener(t,o,!1)):t===&quot;mouseenter&quot;||t===&quot;mouseleave&quot;?e.removeEventListener(t===&quot;mouseenter&quot;?&quot;mouseover&quot;:&quot;mouseout&quot;,o,!1):e.removeEventListener(t,o,!1):&quot;detachEvent&quot;in e&amp;&amp;e.detachEvent(&quot;on&quot;+t,o),e[s]=null,this):this},stopPropagation:function(e){return e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,i.DomEvent._skipped(e),this},disableScrollPropagation:function(e){var t=i.DomEvent.stopPropagation;return i.DomEvent.on(e,&quot;mousewheel&quot;,t).on(e,&quot;MozMousePixelScroll&quot;,t)},disableClickPropagation:function(e){var t=i.DomEvent.stopPropagation;for(var n=i.Draggable.START.length-1;n&gt;=0;n--)i.DomEvent.on(e,i.Draggable.START[n],t);return i.DomEvent.on(e,&quot;click&quot;,i.DomEvent._fakeStop).on(e,&quot;dblclick&quot;,t)},preventDefault:function(e){return e.preventDefault?e.preventDefault():e.returnValue=!1,this},stop:function(e){return i.DomEvent.preventDefault(e).stopPropagation(e)},getMousePosition:function(e,t){if(!t)return new i.Point(e.clientX,e.clientY);var n=t.getBoundingClientRect();return new i.Point(e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop)},getWheelDelta:function(e){var t=0;return e.wheelDelta&amp;&amp;(t=e.wheelDelta/120),e.detail&amp;&amp;(t=-e.detail/3),t},_skipEvents:{},_fakeStop:function(e){i.DomEvent._skipEvents[e.type]=!0},_skipped:function(e){var t=this._skipEvents[e.type];return this._skipEvents[e.type]=!1,t},_checkMouse:function(e,t){var n=t.relatedTarget;if(!n)return!0;try{while(n&amp;&amp;n!==e)n=n.parentNode}catch(r){return!1}return n!==e},_getEvent:function(){var t=e.event;if(!t){var n=arguments.callee.caller;while(n){t=n.arguments[0];if(t&amp;&amp;e.Event===t.constructor)break;n=n.caller}}return t},_filterClick:function(e,t){var n=e.timeStamp||e.originalEvent.timeStamp,r=i.DomEvent._lastClick&amp;&amp;n-i.DomEvent._lastClick;if(r&amp;&amp;r&gt;100&amp;&amp;r&lt;500||e.target._simulatedClick&amp;&amp;!e._simulated){i.DomEvent.stop(e);return}return i.DomEvent._lastClick=n,t(e)}},i.DomEvent.on=i.DomEvent.addListener,i.DomEvent.off=i.DomEvent.removeListener,i.Draggable=i.Class.extend({includes:i.Mixin.Events,statics:{START:i.Browser.touch?[&quot;touchstart&quot;,&quot;mousedown&quot;]:[&quot;mousedown&quot;],END:{mousedown:&quot;mouseup&quot;,touchstart:&quot;touchend&quot;,pointerdown:&quot;touchend&quot;,MSPointerDown:&quot;touchend&quot;},MOVE:{mousedown:&quot;mousemove&quot;,touchstart:&quot;touchmove&quot;,pointerdown:&quot;touchmove&quot;,MSPointerDown:&quot;touchmove&quot;}},initialize:function(e,t){this._element=e,this._dragStartTarget=t||e},enable:function(){if(this._enabled)return;for(var e=i.Draggable.START.length-1;e&gt;=0;e--)i.DomEvent.on(this._dragStartTarget,i.Draggable.START[e],this._onDown,this);this._enabled=!0},disable:function(){if(!this._enabled)return;for(var e=i.Draggable.START.length-1;e&gt;=0;e--)i.DomEvent.off(this._dragStartTarget,i.Draggable.START[e],this._onDown,this);this._enabled=!1,this._moved=!1},_onDown:function(e){this._moved=!1;if(e.shiftKey||e.which!==1&amp;&amp;e.button!==1&amp;&amp;!e.touches)return;i.DomEvent.stopPropagation(e);if(i.Draggable._disabled)return;i.DomUtil.disableImageDrag(),i.DomUtil.disableTextSelection();if(this._moving)return;var n=e.touches?e.touches[0]:e;this._startPoint=new i.Point(n.clientX,n.clientY),this._startPos=this._newPos=i.DomUtil.getPosition(this._element),i.DomEvent.on(t,i.Draggable.MOVE[e.type],this._onMove,this).on(t,i.Draggable.END[e.type],this._onUp,this)},_onMove:function(e){if(e.touches&amp;&amp;e.touches.length&gt;1){this._moved=!0;return}var n=e.touches&amp;&amp;e.touches.length===1?e.touches[0]:e,r=new i.Point(n.clientX,n.clientY),s=r.subtract(this._startPoint);if(!s.x&amp;&amp;!s.y)return;if(i.Browser.touch&amp;&amp;Math.abs(s.x)+Math.abs(s.y)&lt;3)return;i.DomEvent.preventDefault(e),this._moved||(this.fire(&quot;dragstart&quot;),this._moved=!0,this._startPos=i.DomUtil.getPosition(this._element).subtract(s),i.DomUtil.addClass(t.body,&quot;leaflet-dragging&quot;),this._lastTarget=e.target||e.srcElement,i.DomUtil.addClass(this._lastTarget,&quot;leaflet-drag-target&quot;)),this._newPos=this._startPos.add(s),this._moving=!0,i.Util.cancelAnimFrame(this._animRequest),this._animRequest=i.Util.requestAnimFrame(this._updatePosition,this,!0,this._dragStartTarget)},_updatePosition:function(){this.fire(&quot;predrag&quot;),i.DomUtil.setPosition(this._element,this._newPos),this.fire(&quot;drag&quot;)},_onUp:function(){i.DomUtil.removeClass(t.body,&quot;leaflet-dragging&quot;),this._lastTarget&amp;&amp;(i.DomUtil.removeClass(this._lastTarget,&quot;leaflet-drag-target&quot;),this._lastTarget=null);for(var e in i.Draggable.MOVE)i.DomEvent.off(t,i.Draggable.MOVE[e],this._onMove).off(t,i.Draggable.END[e],this._onUp);i.DomUtil.enableImageDrag(),i.DomUtil.enableTextSelection(),this._moved&amp;&amp;this._moving&amp;&amp;(i.Util.cancelAnimFrame(this._animRequest),this.fire(&quot;dragend&quot;,{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1}}),i.Handler=i.Class.extend({initialize:function(e){this._map=e},enable:function(){if(this._enabled)return;this._enabled=!0,this.addHooks()},disable:function(){if(!this._enabled)return;this._enabled=!1,this.removeHooks()},enabled:function(){return!!this._enabled}}),i.Map.mergeOptions({dragging:!0,inertia:!i.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:Infinity,inertiaThreshold:i.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:!1}),i.Map.Drag=i.Handler.extend({addHooks:function(){if(!this._draggable){var e=this._map;this._draggable=new i.Draggable(e._mapPane,e._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),e.options.worldCopyJump&amp;&amp;(this._draggable.on(&quot;predrag&quot;,this._onPreDrag,this),e.on(&quot;viewreset&quot;,this._onViewReset,this),e.whenReady(this._onViewReset,this))}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&amp;&amp;this._draggable._moved},_onDragStart:function(){var e=this._map;e._panAnim&amp;&amp;e._panAnim.stop(),e.fire(&quot;movestart&quot;).fire(&quot;dragstart&quot;),e.options.inertia&amp;&amp;(this._positions=[],this._times=[])},_onDrag:function(){if(this._map.options.inertia){var e=this._lastTime=+(new Date),t=this._lastPos=this._draggable._newPos;this._positions.push(t),this._times.push(e),e-this._times[0]&gt;200&amp;&amp;(this._positions.shift(),this._times.shift())}this._map.fire(&quot;move&quot;).fire(&quot;drag&quot;)},_onViewReset:function(){var e=this._map.getSize()._divideBy(2),t=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=t.subtract(e).x,this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var e=this._worldWidth,t=Math.round(e/2),n=this._initialWorldOffset,r=this._draggable._newPos.x,i=(r-t+n)%e+t-n,s=(r+t+n)%e-t-n,o=Math.abs(i+n)&lt;Math.abs(s+n)?i:s;this._draggable._newPos.x=o},_onDragEnd:function(e){var t=this._map,n=t.options,r=+(new Date)-this._lastTime,s=!n.inertia||r&gt;n.inertiaThreshold||!this._positions[0];t.fire(&quot;dragend&quot;,e);if(s)t.fire(&quot;moveend&quot;);else{var o=this._lastPos.subtract(this._positions[0]),u=(this._lastTime+r-this._times[0])/1e3,a=n.easeLinearity,f=o.multiplyBy(a/u),l=f.distanceTo([0,0]),c=Math.min(n.inertiaMaxSpeed,l),h=f.multiplyBy(c/l),p=c/(n.inertiaDeceleration*a),d=h.multiplyBy(-p/2).round();!d.x||!d.y?t.fire(&quot;moveend&quot;):(d=t._limitOffset(d,t.options.maxBounds),i.Util.requestAnimFrame(function(){t.panBy(d,{duration:p,easeLinearity:a,noMoveStart:!0})}))}}}),i.Map.addInitHook(&quot;addHandler&quot;,&quot;dragging&quot;,i.Map.Drag),i.Map.mergeOptions({doubleClickZoom:!0}),i.Map.DoubleClickZoom=i.Handler.extend({addHooks:function(){this._map.on(&quot;dblclick&quot;,this._onDoubleClick,this)},removeHooks:function(){this._map.off(&quot;dblclick&quot;,this._onDoubleClick,this)},_onDoubleClick:function(e){var t=this._map,n=t.getZoom()+(e.originalEvent.shiftKey?-1:1);t.options.doubleClickZoom===&quot;center&quot;?t.setZoom(n):t.setZoomAround(e.containerPoint,n)}}),i.Map.addInitHook(&quot;addHandler&quot;,&quot;doubleClickZoom&quot;,i.Map.DoubleClickZoom),i.Map.mergeOptions({scrollWheelZoom:!0}),i.Map.ScrollWheelZoom=i.Handler.extend({addHooks:function(){i.DomEvent.on(this._map._container,&quot;mousewheel&quot;,this._onWheelScroll,this),i.DomEvent.on(this._map._container,&quot;MozMousePixelScroll&quot;,i.DomEvent.preventDefault),this._delta=0},removeHooks:function(){i.DomEvent.off(this._map._container,&quot;mousewheel&quot;,this._onWheelScroll),i.DomEvent.off(this._map._container,&quot;MozMousePixelScroll&quot;,i.DomEvent.preventDefault)},_onWheelScroll:function(e){var t=i.DomEvent.getWheelDelta(e);this._delta+=t,this._lastMousePos=this._map.mouseEventToContainerPoint(e),this._startTime||(this._startTime=+(new Date));var n=Math.max(40-(+(new Date)-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(i.bind(this._performZoom,this),n),i.DomEvent.preventDefault(e),i.DomEvent.stopPropagation(e)},_performZoom:function(){var e=this._map,t=this._delta,n=e.getZoom();t=t&gt;0?Math.ceil(t):Math.floor(t),t=Math.max(Math.min(t,4),-4),t=e._limitZoom(n+t)-n,this._delta=0,this._startTime=null;if(!t)return;e.options.scrollWheelZoom===&quot;center&quot;?e.setZoom(n+t):e.setZoomAround(this._lastMousePos,n+t)}}),i.Map.addInitHook(&quot;addHandler&quot;,&quot;scrollWheelZoom&quot;,i.Map.ScrollWheelZoom),i.extend(i.DomEvent,{_touchstart:i.Browser.msPointer?&quot;MSPointerDown&quot;:i.Browser.pointer?&quot;pointerdown&quot;:&quot;touchstart&quot;,_touchend:i.Browser.msPointer?&quot;MSPointerUp&quot;:i.Browser.pointer?&quot;pointerup&quot;:&quot;touchend&quot;,addDoubleTapListener:function(e,n,r){function p(e){var t;i.Browser.pointer?(h.push(e.pointerId),t=h.length):t=e.touches.length;if(t&gt;1)return;var n=Date.now(),r=n-(s||n);a=e.touches?e.touches[0]:e,o=r&gt;0&amp;&amp;r&lt;=u,s=n}function d(e){if(i.Browser.pointer){var t=h.indexOf(e.pointerId);if(t===-1)return;h.splice(t,1)}if(o){if(i.Browser.pointer){var r={},u;for(var f in a)u=a[f],typeof u==&quot;function&quot;?r[f]=u.bind(a):r[f]=u;a=r}a.type=&quot;dblclick&quot;,n(a),s=null}}var s,o=!1,u=250,a,f=&quot;_leaflet_&quot;,l=this._touchstart,c=this._touchend,h=[];e[f+l+r]=p,e[f+c+r]=d;var v=i.Browser.pointer?t.documentElement:e;return e.addEventListener(l,p,!1),v.addEventListener(c,d,!1),i.Browser.pointer&amp;&amp;v.addEventListener(i.DomEvent.POINTER_CANCEL,d,!1),this},removeDoubleTapListener:function(e,n){var r=&quot;_leaflet_&quot;;return e.removeEventListener(this._touchstart,e[r+this._touchstart+n],!1),(i.Browser.pointer?t.documentElement:e).removeEventListener(this._touchend,e[r+this._touchend+n],!1),i.Browser.pointer&amp;&amp;t.documentElement.removeEventListener(i.DomEvent.POINTER_CANCEL,e[r+this._touchend+n],!1),this}}),i.extend(i.DomEvent,{POINTER_DOWN:i.Browser.msPointer?&quot;MSPointerDown&quot;:&quot;pointerdown&quot;,POINTER_MOVE:i.Browser.msPointer?&quot;MSPointerMove&quot;:&quot;pointermove&quot;,POINTER_UP:i.Browser.msPointer?&quot;MSPointerUp&quot;:&quot;pointerup&quot;,POINTER_CANCEL:i.Browser.msPointer?&quot;MSPointerCancel&quot;:&quot;pointercancel&quot;,_pointers:[],_pointerDocumentListener:!1,addPointerListener:function(e,t,n,r){switch(t){case&quot;touchstart&quot;:return this.addPointerListenerStart(e,t,n,r);case&quot;touchend&quot;:return this.addPointerListenerEnd(e,t,n,r);case&quot;touchmove&quot;:return this.addPointerListenerMove(e,t,n,r);default:throw&quot;Unknown touch event type&quot;}},addPointerListenerStart:function(e,n,r,s){var o=&quot;_leaflet_&quot;,u=this._pointers,a=function(e){i.DomEvent.preventDefault(e);var t=!1;for(var n=0;n&lt;u.length;n++)if(u[n].pointerId===e.pointerId){t=!0;break}t||u.push(e),e.touches=u.slice(),e.changedTouches=[e],r(e)};e[o+&quot;touchstart&quot;+s]=a,e.addEventListener(this.POINTER_DOWN,a,!1);if(!this._pointerDocumentListener){var f=function(e){for(var t=0;t&lt;u.length;t++)if(u[t].pointerId===e.pointerId){u.splice(t,1);break}};t.documentElement.addEventListener(this.POINTER_UP,f,!1),t.documentElement.addEventListener(this.POINTER_CANCEL,f,!1),this._pointerDocumentListener=!0}return this},addPointerListenerMove:function(e,t,n,r){function o(e){if((e.pointerType===e.MSPOINTER_TYPE_MOUSE||e.pointerType===&quot;mouse&quot;)&amp;&amp;e.buttons===0)return;for(var t=0;t&lt;s.length;t++)if(s[t].pointerId===e.pointerId){s[t]=e;break}e.touches=s.slice(),e.changedTouches=[e],n(e)}var i=&quot;_leaflet_&quot;,s=this._pointers;return e[i+&quot;touchmove&quot;+r]=o,e.addEventListener(this.POINTER_MOVE,o,!1),this},addPointerListenerEnd:function(e,t,n,r){var i=&quot;_leaflet_&quot;,s=this._pointers,o=function(e){for(var t=0;t&lt;s.length;t++)if(s[t].pointerId===e.pointerId){s.splice(t,1);break}e.touches=s.slice(),e.changedTouches=[e],n(e)};return e[i+&quot;touchend&quot;+r]=o,e.addEventListener(this.POINTER_UP,o,!1),e.addEventListener(this.POINTER_CANCEL,o,!1),this},removePointerListener:function(e,t,n){var r=&quot;_leaflet_&quot;,i=e[r+t+n];switch(t){case&quot;touchstart&quot;:e.removeEventListener(this.POINTER_DOWN,i,!1);break;case&quot;touchmove&quot;:e.removeEventListener(this.POINTER_MOVE,i,!1);break;case&quot;touchend&quot;:e.removeEventListener(this.POINTER_UP,i,!1),e.removeEventListener(this.POINTER_CANCEL,i,!1)}return this}}),i.Map.mergeOptions({touchZoom:i.Browser.touch&amp;&amp;!i.Browser.android23,bounceAtZoomLimits:!0}),i.Map.TouchZoom=i.Handler.extend({addHooks:function(){i.DomEvent.on(this._map._container,&quot;touchstart&quot;,this._onTouchStart,this)},removeHooks:function(){i.DomEvent.off(this._map._container,&quot;touchstart&quot;,this._onTouchStart,this)},_onTouchStart:function(e){var n=this._map;if(!e.touches||e.touches.length!==2||n._animatingZoom||this._zooming)return;var r=n.mouseEventToLayerPoint(e.touches[0]),s=n.mouseEventToLayerPoint(e.touches[1]),o=n._getCenterLayerPoint();this._startCenter=r.add(s)._divideBy(2),this._startDist=r.distanceTo(s),this._moved=!1,this._zooming=!0,this._centerOffset=o.subtract(this._startCenter),n._panAnim&amp;&amp;n._panAnim.stop(),i.DomEvent.on(t,&quot;touchmove&quot;,this._onTouchMove,this).on(t,&quot;touchend&quot;,this._onTouchEnd,this),i.DomEvent.preventDefault(e)},_onTouchMove:function(e){var t=this._map;if(!e.touches||e.touches.length!==2||!this._zooming)return;var n=t.mouseEventToLayerPoint(e.touches[0]),r=t.mouseEventToLayerPoint(e.touches[1]);this._scale=n.distanceTo(r)/this._startDist,this._delta=n._add(r)._divideBy(2)._subtract(this._startCenter);if(this._scale===1)return;if(!t.options.bounceAtZoomLimits)if(t.getZoom()===t.getMinZoom()&amp;&amp;this._scale&lt;1||t.getZoom()===t.getMaxZoom()&amp;&amp;this._scale&gt;1)return;this._moved||(i.DomUtil.addClass(t._mapPane,&quot;leaflet-touching&quot;),t.fire(&quot;movestart&quot;).fire(&quot;zoomstart&quot;),this._moved=!0),i.Util.cancelAnimFrame(this._animRequest),this._animRequest=i.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),i.DomEvent.preventDefault(e)},_updateOnMove:function(){var e=this._map,t=this._getScaleOrigin(),n=e.layerPointToLatLng(t),r=e.getScaleZoom(this._scale);e._animateZoom(n,r,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=!1;return}var e=this._map;this._zooming=!1,i.DomUtil.removeClass(e._mapPane,&quot;leaflet-touching&quot;),i.Util.cancelAnimFrame(this._animRequest),i.DomEvent.off(t,&quot;touchmove&quot;,this._onTouchMove).off(t,&quot;touchend&quot;,this._onTouchEnd);var n=this._getScaleOrigin(),r=e.layerPointToLatLng(n),s=e.getZoom(),o=e.getScaleZoom(this._scale)-s,u=o&gt;0?Math.ceil(o):Math.floor(o),a=e._limitZoom(s+u),f=e.getZoomScale(a)/this._scale;e._animateZoom(r,a,n,f)},_getScaleOrigin:function(){var e=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(e)}}),i.Map.addInitHook(&quot;addHandler&quot;,&quot;touchZoom&quot;,i.Map.TouchZoom),i.Map.mergeOptions({tap:!0,tapTolerance:15}),i.Map.Tap=i.Handler.extend({addHooks:function(){i.DomEvent.on(this._map._container,&quot;touchstart&quot;,this._onDown,this)},removeHooks:function(){i.DomEvent.off(this._map._container,&quot;touchstart&quot;,this._onDown,this)},_onDown:function(e){if(!e.touches)return;i.DomEvent.preventDefault(e),this._fireClick=!0;if(e.touches.length&gt;1){this._fireClick=!1,clearTimeout(this._holdTimeout);return}var n=e.touches[0],r=n.target;this._startPos=this._newPos=new i.Point(n.clientX,n.clientY),r.tagName&amp;&amp;r.tagName.toLowerCase()===&quot;a&quot;&amp;&amp;i.DomUtil.addClass(r,&quot;leaflet-active&quot;),this._holdTimeout=setTimeout(i.bind(function(){this._isTapValid()&amp;&amp;(this._fireClick=!1,this._onUp(),this._simulateEvent(&quot;contextmenu&quot;,n))},this),1e3),i.DomEvent.on(t,&quot;touchmove&quot;,this._onMove,this).on(t,&quot;touchend&quot;,this._onUp,this</td>
      </tr>
      <tr>
        <td id="L11" class="blob-num js-line-number" data-line-number="11"></td>
        <td id="LC11" class="blob-code js-file-line">)},_onUp:function(e){clearTimeout(this._holdTimeout),i.DomEvent.off(t,&quot;touchmove&quot;,this._onMove,this).off(t,&quot;touchend&quot;,this._onUp,this);if(this._fireClick&amp;&amp;e&amp;&amp;e.changedTouches){var n=e.changedTouches[0],r=n.target;r&amp;&amp;r.tagName&amp;&amp;r.tagName.toLowerCase()===&quot;a&quot;&amp;&amp;i.DomUtil.removeClass(r,&quot;leaflet-active&quot;),this._isTapValid()&amp;&amp;this._simulateEvent(&quot;click&quot;,n)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)&lt;=this._map.options.tapTolerance},_onMove:function(e){var t=e.touches[0];this._newPos=new i.Point(t.clientX,t.clientY)},_simulateEvent:function(n,r){var i=t.createEvent(&quot;MouseEvents&quot;);i._simulated=!0,r.target._simulatedClick=!0,i.initMouseEvent(n,!0,!0,e,1,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),r.target.dispatchEvent(i)}}),i.Browser.touch&amp;&amp;!i.Browser.pointer&amp;&amp;i.Map.addInitHook(&quot;addHandler&quot;,&quot;tap&quot;,i.Map.Tap),i.Map.mergeOptions({boxZoom:!0}),i.Map.BoxZoom=i.Handler.extend({initialize:function(e){this._map=e,this._container=e._container,this._pane=e._panes.overlayPane,this._moved=!1},addHooks:function(){i.DomEvent.on(this._container,&quot;mousedown&quot;,this._onMouseDown,this)},removeHooks:function(){i.DomEvent.off(this._container,&quot;mousedown&quot;,this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(e){this._moved=!1;if(!e.shiftKey||e.which!==1&amp;&amp;e.button!==1)return!1;i.DomUtil.disableTextSelection(),i.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(e),i.DomEvent.on(t,&quot;mousemove&quot;,this._onMouseMove,this).on(t,&quot;mouseup&quot;,this._onMouseUp,this).on(t,&quot;keydown&quot;,this._onKeyDown,this)},_onMouseMove:function(e){this._moved||(this._box=i.DomUtil.create(&quot;div&quot;,&quot;leaflet-zoom-box&quot;,this._pane),i.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor=&quot;crosshair&quot;,this._map.fire(&quot;boxzoomstart&quot;));var t=this._startLayerPoint,n=this._box,r=this._map.mouseEventToLayerPoint(e),s=r.subtract(t),o=new i.Point(Math.min(r.x,t.x),Math.min(r.y,t.y));i.DomUtil.setPosition(n,o),this._moved=!0,n.style.width=Math.max(0,Math.abs(s.x)-4)+&quot;px&quot;,n.style.height=Math.max(0,Math.abs(s.y)-4)+&quot;px&quot;},_finish:function(){this._moved&amp;&amp;(this._pane.removeChild(this._box),this._container.style.cursor=&quot;&quot;),i.DomUtil.enableTextSelection(),i.DomUtil.enableImageDrag(),i.DomEvent.off(t,&quot;mousemove&quot;,this._onMouseMove).off(t,&quot;mouseup&quot;,this._onMouseUp).off(t,&quot;keydown&quot;,this._onKeyDown)},_onMouseUp:function(e){this._finish();var t=this._map,n=t.mouseEventToLayerPoint(e);if(this._startLayerPoint.equals(n))return;var r=new i.LatLngBounds(t.layerPointToLatLng(this._startLayerPoint),t.layerPointToLatLng(n));t.fitBounds(r),t.fire(&quot;boxzoomend&quot;,{boxZoomBounds:r})},_onKeyDown:function(e){e.keyCode===27&amp;&amp;this._finish()}}),i.Map.addInitHook(&quot;addHandler&quot;,&quot;boxZoom&quot;,i.Map.BoxZoom),i.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),i.Map.Keyboard=i.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(e){this._map=e,this._setPanOffset(e.options.keyboardPanOffset),this._setZoomOffset(e.options.keyboardZoomOffset)},addHooks:function(){var e=this._map._container;e.tabIndex===-1&amp;&amp;(e.tabIndex=&quot;0&quot;),i.DomEvent.on(e,&quot;focus&quot;,this._onFocus,this).on(e,&quot;blur&quot;,this._onBlur,this).on(e,&quot;mousedown&quot;,this._onMouseDown,this),this._map.on(&quot;focus&quot;,this._addHooks,this).on(&quot;blur&quot;,this._removeHooks,this)},removeHooks:function(){this._removeHooks();var e=this._map._container;i.DomEvent.off(e,&quot;focus&quot;,this._onFocus,this).off(e,&quot;blur&quot;,this._onBlur,this).off(e,&quot;mousedown&quot;,this._onMouseDown,this),this._map.off(&quot;focus&quot;,this._addHooks,this).off(&quot;blur&quot;,this._removeHooks,this)},_onMouseDown:function(){if(this._focused)return;var n=t.body,r=t.documentElement,i=n.scrollTop||r.scrollTop,s=n.scrollLeft||r.scrollLeft;this._map._container.focus(),e.scrollTo(s,i)},_onFocus:function(){this._focused=!0,this._map.fire(&quot;focus&quot;)},_onBlur:function(){this._focused=!1,this._map.fire(&quot;blur&quot;)},_setPanOffset:function(e){var t=this._panKeys={},n=this.keyCodes,r,i;for(r=0,i=n.left.length;r&lt;i;r++)t[n.left[r]]=[-1*e,0];for(r=0,i=n.right.length;r&lt;i;r++)t[n.right[r]]=[e,0];for(r=0,i=n.down.length;r&lt;i;r++)t[n.down[r]]=[0,e];for(r=0,i=n.up.length;r&lt;i;r++)t[n.up[r]]=[0,-1*e]},_setZoomOffset:function(e){var t=this._zoomKeys={},n=this.keyCodes,r,i;for(r=0,i=n.zoomIn.length;r&lt;i;r++)t[n.zoomIn[r]]=e;for(r=0,i=n.zoomOut.length;r&lt;i;r++)t[n.zoomOut[r]]=-e},_addHooks:function(){i.DomEvent.on(t,&quot;keydown&quot;,this._onKeyDown,this)},_removeHooks:function(){i.DomEvent.off(t,&quot;keydown&quot;,this._onKeyDown,this)},_onKeyDown:function(e){var t=e.keyCode,n=this._map;if(t in this._panKeys){if(n._panAnim&amp;&amp;n._panAnim._inProgress)return;n.panBy(this._panKeys[t]),n.options.maxBounds&amp;&amp;n.panInsideBounds(n.options.maxBounds)}else{if(!(t in this._zoomKeys))return;n.setZoom(n.getZoom()+this._zoomKeys[t])}i.DomEvent.stop(e)}}),i.Map.addInitHook(&quot;addHandler&quot;,&quot;keyboard&quot;,i.Map.Keyboard),i.Handler.MarkerDrag=i.Handler.extend({initialize:function(e){this._marker=e},addHooks:function(){var e=this._marker._icon;this._draggable||(this._draggable=new i.Draggable(e,e)),this._draggable.on(&quot;dragstart&quot;,this._onDragStart,this).on(&quot;drag&quot;,this._onDrag,this).on(&quot;dragend&quot;,this._onDragEnd,this),this._draggable.enable(),i.DomUtil.addClass(this._marker._icon,&quot;leaflet-marker-draggable&quot;)},removeHooks:function(){this._draggable.off(&quot;dragstart&quot;,this._onDragStart,this).off(&quot;drag&quot;,this._onDrag,this).off(&quot;dragend&quot;,this._onDragEnd,this),this._draggable.disable(),i.DomUtil.removeClass(this._marker._icon,&quot;leaflet-marker-draggable&quot;)},moved:function(){return this._draggable&amp;&amp;this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire(&quot;movestart&quot;).fire(&quot;dragstart&quot;)},_onDrag:function(){var e=this._marker,t=e._shadow,n=i.DomUtil.getPosition(e._icon),r=e._map.layerPointToLatLng(n);t&amp;&amp;i.DomUtil.setPosition(t,n),e._latlng=r,e.fire(&quot;move&quot;,{latlng:r}).fire(&quot;drag&quot;)},_onDragEnd:function(e){this._marker.fire(&quot;moveend&quot;).fire(&quot;dragend&quot;,e)}}),i.Control=i.Class.extend({options:{position:&quot;topright&quot;},initialize:function(e){i.setOptions(this,e)},getPosition:function(){return this.options.position},setPosition:function(e){var t=this._map;return t&amp;&amp;t.removeControl(this),this.options.position=e,t&amp;&amp;t.addControl(this),this},getContainer:function(){return this._container},addTo:function(e){this._map=e;var t=this._container=this.onAdd(e),n=this.getPosition(),r=e._controlCorners[n];return i.DomUtil.addClass(t,&quot;leaflet-control&quot;),n.indexOf(&quot;bottom&quot;)!==-1?r.insertBefore(t,r.firstChild):r.appendChild(t),this},removeFrom:function(e){var t=this.getPosition(),n=e._controlCorners[t];return n.removeChild(this._container),this._map=null,this.onRemove&amp;&amp;this.onRemove(e),this},_refocusOnMap:function(){this._map&amp;&amp;this._map.getContainer().focus()}}),i.control=function(e){return new i.Control(e)},i.Map.include({addControl:function(e){return e.addTo(this),this},removeControl:function(e){return e.removeFrom(this),this},_initControlPos:function(){function r(r,s){var o=t+r+&quot; &quot;+t+s;e[r+s]=i.DomUtil.create(&quot;div&quot;,o,n)}var e=this._controlCorners={},t=&quot;leaflet-&quot;,n=this._controlContainer=i.DomUtil.create(&quot;div&quot;,t+&quot;control-container&quot;,this._container);r(&quot;top&quot;,&quot;left&quot;),r(&quot;top&quot;,&quot;right&quot;),r(&quot;bottom&quot;,&quot;left&quot;),r(&quot;bottom&quot;,&quot;right&quot;)},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}}),i.Control.Zoom=i.Control.extend({options:{position:&quot;topleft&quot;,zoomInText:&quot;+&quot;,zoomInTitle:&quot;Zoom in&quot;,zoomOutText:&quot;-&quot;,zoomOutTitle:&quot;Zoom out&quot;},onAdd:function(e){var t=&quot;leaflet-control-zoom&quot;,n=i.DomUtil.create(&quot;div&quot;,t+&quot; leaflet-bar&quot;);return this._map=e,this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,t+&quot;-in&quot;,n,this._zoomIn,this),this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,t+&quot;-out&quot;,n,this._zoomOut,this),this._updateDisabled(),e.on(&quot;zoomend zoomlevelschange&quot;,this._updateDisabled,this),n},onRemove:function(e){e.off(&quot;zoomend zoomlevelschange&quot;,this._updateDisabled,this)},_zoomIn:function(e){this._map.zoomIn(e.shiftKey?3:1)},_zoomOut:function(e){this._map.zoomOut(e.shiftKey?3:1)},_createButton:function(e,t,n,r,s,o){var u=i.DomUtil.create(&quot;a&quot;,n,r);u.innerHTML=e,u.href=&quot;#&quot;,u.title=t;var a=i.DomEvent.stopPropagation;return i.DomEvent.on(u,&quot;click&quot;,a).on(u,&quot;mousedown&quot;,a).on(u,&quot;dblclick&quot;,a).on(u,&quot;click&quot;,i.DomEvent.preventDefault).on(u,&quot;click&quot;,s,o).on(u,&quot;click&quot;,this._refocusOnMap,o),u},_updateDisabled:function(){var e=this._map,t=&quot;leaflet-disabled&quot;;i.DomUtil.removeClass(this._zoomInButton,t),i.DomUtil.removeClass(this._zoomOutButton,t),e._zoom===e.getMinZoom()&amp;&amp;i.DomUtil.addClass(this._zoomOutButton,t),e._zoom===e.getMaxZoom()&amp;&amp;i.DomUtil.addClass(this._zoomInButton,t)}}),i.Map.mergeOptions({zoomControl:!0}),i.Map.addInitHook(function(){this.options.zoomControl&amp;&amp;(this.zoomControl=new i.Control.Zoom,this.addControl(this.zoomControl))}),i.control.zoom=function(e){return new i.Control.Zoom(e)},i.Control.Attribution=i.Control.extend({options:{position:&quot;bottomright&quot;,prefix:&#39;&lt;a href=&quot;http://leafletjs.com&quot; title=&quot;A JS library for interactive maps&quot;&gt;Leaflet&lt;/a&gt;&#39;},initialize:function(e){i.setOptions(this,e),this._attributions={}},onAdd:function(e){this._container=i.DomUtil.create(&quot;div&quot;,&quot;leaflet-control-attribution&quot;),i.DomEvent.disableClickPropagation(this._container);for(var t in e._layers)e._layers[t].getAttribution&amp;&amp;this.addAttribution(e._layers[t].getAttribution());return e.on(&quot;layeradd&quot;,this._onLayerAdd,this).on(&quot;layerremove&quot;,this._onLayerRemove,this),this._update(),this._container},onRemove:function(e){e.off(&quot;layeradd&quot;,this._onLayerAdd).off(&quot;layerremove&quot;,this._onLayerRemove)},setPrefix:function(e){return this.options.prefix=e,this._update(),this},addAttribution:function(e){if(!e)return;return this._attributions[e]||(this._attributions[e]=0),this._attributions[e]++,this._update(),this},removeAttribution:function(e){if(!e)return;return this._attributions[e]&amp;&amp;(this._attributions[e]--,this._update()),this},_update:function(){if(!this._map)return;var e=[];for(var t in this._attributions)this._attributions[t]&amp;&amp;e.push(t);var n=[];this.options.prefix&amp;&amp;n.push(this.options.prefix),e.length&amp;&amp;n.push(e.join(&quot;, &quot;)),this._container.innerHTML=n.join(&quot; | &quot;)},_onLayerAdd:function(e){e.layer.getAttribution&amp;&amp;this.addAttribution(e.layer.getAttribution())},_onLayerRemove:function(e){e.layer.getAttribution&amp;&amp;this.removeAttribution(e.layer.getAttribution())}}),i.Map.mergeOptions({attributionControl:!0}),i.Map.addInitHook(function(){this.options.attributionControl&amp;&amp;(this.attributionControl=(new i.Control.Attribution).addTo(this))}),i.control.attribution=function(e){return new i.Control.Attribution(e)},i.Control.Scale=i.Control.extend({options:{position:&quot;bottomleft&quot;,maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(e){this._map=e;var t=&quot;leaflet-control-scale&quot;,n=i.DomUtil.create(&quot;div&quot;,t),r=this.options;return this._addScales(r,t,n),e.on(r.updateWhenIdle?&quot;moveend&quot;:&quot;move&quot;,this._update,this),e.whenReady(this._update,this),n},onRemove:function(e){e.off(this.options.updateWhenIdle?&quot;moveend&quot;:&quot;move&quot;,this._update,this)},_addScales:function(e,t,n){e.metric&amp;&amp;(this._mScale=i.DomUtil.create(&quot;div&quot;,t+&quot;-line&quot;,n)),e.imperial&amp;&amp;(this._iScale=i.DomUtil.create(&quot;div&quot;,t+&quot;-line&quot;,n))},_update:function(){var e=this._map.getBounds(),t=e.getCenter().lat,n=6378137*Math.PI*Math.cos(t*Math.PI/180),r=n*(e.getNorthEast().lng-e.getSouthWest().lng)/180,i=this._map.getSize(),s=this.options,o=0;i.x&gt;0&amp;&amp;(o=r*(s.maxWidth/i.x)),this._updateScales(s,o)},_updateScales:function(e,t){e.metric&amp;&amp;t&amp;&amp;this._updateMetric(t),e.imperial&amp;&amp;t&amp;&amp;this._updateImperial(t)},_updateMetric:function(e){var t=this._getRoundNum(e);this._mScale.style.width=this._getScaleWidth(t/e)+&quot;px&quot;,this._mScale.innerHTML=t&lt;1e3?t+&quot; m&quot;:t/1e3+&quot; km&quot;},_updateImperial:function(e){var t=e*3.2808399,n=this._iScale,r,i,s;t&gt;5280?(r=t/5280,i=this._getRoundNum(r),n.style.width=this._getScaleWidth(i/r)+&quot;px&quot;,n.innerHTML=i+&quot; mi&quot;):(s=this._getRoundNum(t),n.style.width=this._getScaleWidth(s/t)+&quot;px&quot;,n.innerHTML=s+&quot; ft&quot;)},_getScaleWidth:function(e){return Math.round(this.options.maxWidth*e)-10},_getRoundNum:function(e){var t=Math.pow(10,(Math.floor(e)+&quot;&quot;).length-1),n=e/t;return n=n&gt;=10?10:n&gt;=5?5:n&gt;=3?3:n&gt;=2?2:1,t*n}}),i.control.scale=function(e){return new i.Control.Scale(e)},i.Control.Layers=i.Control.extend({options:{collapsed:!0,position:&quot;topright&quot;,autoZIndex:!0},initialize:function(e,t,n){i.setOptions(this,n),this._layers={},this._lastZIndex=0,this._handlingClick=!1;for(var r in e)this._addLayer(e[r],r);for(r in t)this._addLayer(t[r],r,!0)},onAdd:function(e){return this._initLayout(),this._update(),e.on(&quot;layeradd&quot;,this._onLayerChange,this).on(&quot;layerremove&quot;,this._onLayerChange,this),this._container},onRemove:function(e){e.off(&quot;layeradd&quot;,this._onLayerChange,this).off(&quot;layerremove&quot;,this._onLayerChange,this)},addBaseLayer:function(e,t){return this._addLayer(e,t),this._update(),this},addOverlay:function(e,t){return this._addLayer(e,t,!0),this._update(),this},removeLayer:function(e){var t=i.stamp(e);return delete this._layers[t],this._update(),this},_initLayout:function(){var e=&quot;leaflet-control-layers&quot;,t=this._container=i.DomUtil.create(&quot;div&quot;,e);t.setAttribute(&quot;aria-haspopup&quot;,!0),i.Browser.touch?i.DomEvent.on(t,&quot;click&quot;,i.DomEvent.stopPropagation):i.DomEvent.disableClickPropagation(t).disableScrollPropagation(t);var n=this._form=i.DomUtil.create(&quot;form&quot;,e+&quot;-list&quot;);if(this.options.collapsed){i.Browser.android||i.DomEvent.on(t,&quot;mouseover&quot;,this._expand,this).on(t,&quot;mouseout&quot;,this._collapse,this);var r=this._layersLink=i.DomUtil.create(&quot;a&quot;,e+&quot;-toggle&quot;,t);r.href=&quot;#&quot;,r.title=&quot;Layers&quot;,i.Browser.touch?i.DomEvent.on(r,&quot;click&quot;,i.DomEvent.stop).on(r,&quot;click&quot;,this._expand,this):i.DomEvent.on(r,&quot;focus&quot;,this._expand,this),i.DomEvent.on(n,&quot;click&quot;,function(){setTimeout(i.bind(this._onInputClick,this),0)},this),this._map.on(&quot;click&quot;,this._collapse,this)}else this._expand();this._baseLayersList=i.DomUtil.create(&quot;div&quot;,e+&quot;-base&quot;,n),this._separator=i.DomUtil.create(&quot;div&quot;,e+&quot;-separator&quot;,n),this._overlaysList=i.DomUtil.create(&quot;div&quot;,e+&quot;-overlays&quot;,n),t.appendChild(n)},_addLayer:function(e,t,n){var r=i.stamp(e);this._layers[r]={layer:e,name:t,overlay:n},this.options.autoZIndex&amp;&amp;e.setZIndex&amp;&amp;(this._lastZIndex++,e.setZIndex(this._lastZIndex))},_update:function(){if(!this._container)return;this._baseLayersList.innerHTML=&quot;&quot;,this._overlaysList.innerHTML=&quot;&quot;;var e=!1,t=!1,n,r;for(n in this._layers)r=this._layers[n],this._addItem(r),t=t||r.overlay,e=e||!r.overlay;this._separator.style.display=t&amp;&amp;e?&quot;&quot;:&quot;none&quot;},_onLayerChange:function(e){var t=this._layers[i.stamp(e.layer)];if(!t)return;this._handlingClick||this._update();var n=t.overlay?e.type===&quot;layeradd&quot;?&quot;overlayadd&quot;:&quot;overlayremove&quot;:e.type===&quot;layeradd&quot;?&quot;baselayerchange&quot;:null;n&amp;&amp;this._map.fire(n,t)},_createRadioElement:function(e,n){var r=&#39;&lt;input type=&quot;radio&quot; class=&quot;leaflet-control-layers-selector&quot; name=&quot;&#39;+e+&#39;&quot;&#39;;n&amp;&amp;(r+=&#39; checked=&quot;checked&quot;&#39;),r+=&quot;/&gt;&quot;;var i=t.createElement(&quot;div&quot;);return i.innerHTML=r,i.firstChild},_addItem:function(e){var n=t.createElement(&quot;label&quot;),r,s=this._map.hasLayer(e.layer);e.overlay?(r=t.createElement(&quot;input&quot;),r.type=&quot;checkbox&quot;,r.className=&quot;leaflet-control-layers-selector&quot;,r.defaultChecked=s):r=this._createRadioElement(&quot;leaflet-base-layers&quot;,s),r.layerId=i.stamp(e.layer),i.DomEvent.on(r,&quot;click&quot;,this._onInputClick,this);var o=t.createElement(&quot;span&quot;);o.innerHTML=&quot; &quot;+e.name,n.appendChild(r),n.appendChild(o);var u=e.overlay?this._overlaysList:this._baseLayersList;return u.appendChild(n),n},_onInputClick:function(){var e,t,n,r=this._form.getElementsByTagName(&quot;input&quot;),i=r.length;this._handlingClick=!0;for(e=0;e&lt;i;e++)t=r[e],n=this._layers[t.layerId],t.checked&amp;&amp;!this._map.hasLayer(n.layer)?this._map.addLayer(n.layer):!t.checked&amp;&amp;this._map.hasLayer(n.layer)&amp;&amp;this._map.removeLayer(n.layer);this._handlingClick=!1,this._refocusOnMap()},_expand:function(){i.DomUtil.addClass(this._container,&quot;leaflet-control-layers-expanded&quot;)},_collapse:function(){this._container.className=this._container.className.replace(&quot; leaflet-control-layers-expanded&quot;,&quot;&quot;)}}),i.control.layers=function(e,t,n){return new i.Control.Layers(e,t,n)},i.PosAnimation=i.Class.extend({includes:i.Mixin.Events,run:function(e,t,n,r){this.stop(),this._el=e,this._inProgress=!0,this._newPos=t,this.fire(&quot;start&quot;),e.style[i.DomUtil.TRANSITION]=&quot;all &quot;+(n||.25)+&quot;s cubic-bezier(0,0,&quot;+(r||.5)+&quot;,1)&quot;,i.DomEvent.on(e,i.DomUtil.TRANSITION_END,this._onTransitionEnd,this),i.DomUtil.setPosition(e,t),i.Util.falseFn(e.offsetWidth),this._stepTimer=setInterval(i.bind(this._onStep,this),50)},stop:function(){if(!this._inProgress)return;i.DomUtil.setPosition(this._el,this._getPos()),this._onTransitionEnd(),i.Util.falseFn(this._el.offsetWidth)},_onStep:function(){var e=this._getPos();if(!e){this._onTransitionEnd();return}this._el._leaflet_pos=e,this.fire(&quot;step&quot;)},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var t,n,r,s=this._el,o=e.getComputedStyle(s);if(i.Browser.any3d){r=o[i.DomUtil.TRANSFORM].match(this._transformRe);if(!r)return;t=parseFloat(r[1]),n=parseFloat(r[2])}else t=parseFloat(o.left),n=parseFloat(o.top);return new i.Point(t,n,!0)},_onTransitionEnd:function(){i.DomEvent.off(this._el,i.DomUtil.TRANSITION_END,this._onTransitionEnd,this);if(!this._inProgress)return;this._inProgress=!1,this._el.style[i.DomUtil.TRANSITION]=&quot;&quot;,this._el._leaflet_pos=this._newPos,clearInterval(this._stepTimer),this.fire(&quot;step&quot;).fire(&quot;end&quot;)}}),i.Map.include({setView:function(e,t,r){t=t===n?this._zoom:this._limitZoom(t),e=this._limitCenter(i.latLng(e),t,this.options.maxBounds),r=r||{},this._panAnim&amp;&amp;this._panAnim.stop();if(this._loaded&amp;&amp;!r.reset&amp;&amp;r!==!0){r.animate!==n&amp;&amp;(r.zoom=i.extend({animate:r.animate},r.zoom),r.pan=i.extend({animate:r.animate},r.pan));var s=this._zoom!==t?this._tryAnimatedZoom&amp;&amp;this._tryAnimatedZoom(e,t,r.zoom):this._tryAnimatedPan(e,r.pan);if(s)return clearTimeout(this._sizeTimer),this}return this._resetView(e,t),this},panBy:function(e,t){e=i.point(e).round(),t=t||{};if(!e.x&amp;&amp;!e.y)return this;this._panAnim||(this._panAnim=new i.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),t.noMoveStart||this.fire(&quot;movestart&quot;);if(t.animate!==!1){i.DomUtil.addClass(this._mapPane,&quot;leaflet-pan-anim&quot;);var n=this._getMapPanePos().subtract(e);this._panAnim.run(this._mapPane,n,t.duration||.25,t.easeLinearity)}else this._rawPanBy(e),this.fire(&quot;move&quot;).fire(&quot;moveend&quot;);return this},_onPanTransitionStep:function(){this.fire(&quot;move&quot;)},_onPanTransitionEnd:function(){i.DomUtil.removeClass(this._mapPane,&quot;leaflet-pan-anim&quot;),this.fire(&quot;moveend&quot;)},_tryAnimatedPan:function(e,t){var n=this._getCenterOffset(e)._floor();return(t&amp;&amp;t.animate)!==!0&amp;&amp;!this.getSize().contains(n)?!1:(this.panBy(n,t),!0)}}),i.PosAnimation=i.DomUtil.TRANSITION?i.PosAnimation:i.PosAnimation.extend({run:function(e,t,n,r){this.stop(),this._el=e,this._inProgress=!0,this._duration=n||.25,this._easeOutPower=1/Math.max(r||.5,.2),this._startPos=i.DomUtil.getPosition(e),this._offset=t.subtract(this._startPos),this._startTime=+(new Date),this.fire(&quot;start&quot;),this._animate()},stop:function(){if(!this._inProgress)return;this._step(),this._complete()},_animate:function(){this._animId=i.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(){var e=+(new Date)-this._startTime,t=this._duration*1e3;e&lt;t?this._runFrame(this._easeOut(e/t)):(this._runFrame(1),this._complete())},_runFrame:function(e){var t=this._startPos.add(this._offset.multiplyBy(e));i.DomUtil.setPosition(this._el,t),this.fire(&quot;step&quot;)},_complete:function(){i.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire(&quot;end&quot;)},_easeOut:function(e){return 1-Math.pow(1-e,this._easeOutPower)}}),i.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4}),i.DomUtil.TRANSITION&amp;&amp;i.Map.addInitHook(function(){this._zoomAnimated=this.options.zoomAnimation&amp;&amp;i.DomUtil.TRANSITION&amp;&amp;i.Browser.any3d&amp;&amp;!i.Browser.android23&amp;&amp;!i.Browser.mobileOpera,this._zoomAnimated&amp;&amp;i.DomEvent.on(this._mapPane,i.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)}),i.Map.include(i.DomUtil.TRANSITION?{_catchTransitionEnd:function(e){this._animatingZoom&amp;&amp;e.propertyName.indexOf(&quot;transform&quot;)&gt;=0&amp;&amp;this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName(&quot;leaflet-zoom-animated&quot;).length},_tryAnimatedZoom:function(e,t,n){if(this._animatingZoom)return!0;n=n||{};if(!this._zoomAnimated||n.animate===!1||this._nothingToAnimate()||Math.abs(t-this._zoom)&gt;this.options.zoomAnimationThreshold)return!1;var r=this.getZoomScale(t),i=this._getCenterOffset(e)._divideBy(1-1/r),s=this._getCenterLayerPoint()._add(i);return n.animate!==!0&amp;&amp;!this.getSize().contains(i)?!1:(this.fire(&quot;movestart&quot;).fire(&quot;zoomstart&quot;),this._animateZoom(e,t,s,r,null,!0),!0)},_animateZoom:function(e,t,n,r,s,o,u){u||(this._animatingZoom=!0),i.DomUtil.addClass(this._mapPane,&quot;leaflet-zoom-anim&quot;),this._animateToCenter=e,this._animateToZoom=t,i.Draggable&amp;&amp;(i.Draggable._disabled=!0),i.Util.requestAnimFrame(function(){this.fire(&quot;zoomanim&quot;,{center:e,zoom:t,origin:n,scale:r,delta:s,backwards:o})},this)},_onZoomTransitionEnd:function(){this._animatingZoom=!1,i.DomUtil.removeClass(this._mapPane,&quot;leaflet-zoom-anim&quot;),this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),i.Draggable&amp;&amp;(i.Draggable._disabled=!1)}}:{}),i.TileLayer.include({_animateZoom:function(e){this._animating||(this._animating=!0,this._prepareBgBuffer());var t=this._bgBuffer,n=i.DomUtil.TRANSFORM,r=e.delta?i.DomUtil.getTranslateString(e.delta):t.style[n],s=i.DomUtil.getScaleString(e.scale,e.origin);t.style[n]=e.backwards?s+&quot; &quot;+r:r+&quot; &quot;+s},_endZoomAnim:function(){var e=this._tileContainer,t=this._bgBuffer;e.style.visibility=&quot;&quot;,e.parentNode.appendChild(e),i.Util.falseFn(t.offsetWidth),this._animating=!1},_clearBgBuffer:function(){var e=this._map;e&amp;&amp;!e._animatingZoom&amp;&amp;!e.touchZoom._zooming&amp;&amp;(this._bgBuffer.innerHTML=&quot;&quot;,this._bgBuffer.style[i.DomUtil.TRANSFORM]=&quot;&quot;)},_prepareBgBuffer:function(){var e=this._tileContainer,t=this._bgBuffer,n=this._getLoadedTilesPercentage(t),r=this._getLoadedTilesPercentage(e);if(t&amp;&amp;n&gt;.5&amp;&amp;r&lt;.5){e.style.visibility=&quot;hidden&quot;,this._stopLoadingImages(e);return}t.style.visibility=&quot;hidden&quot;,t.style[i.DomUtil.TRANSFORM]=&quot;&quot;,this._tileContainer=t,t=this._bgBuffer=e,this._stopLoadingImages(t),clearTimeout(this._clearBgBufferTimer)},_getLoadedTilesPercentage:function(e){var t=e.getElementsByTagName(&quot;img&quot;),n,r,i=0;for(n=0,r=t.length;n&lt;r;n++)t[n].complete&amp;&amp;i++;return i/r},_stopLoadingImages:function(e){var t=Array.prototype.slice.call(e.getElementsByTagName(&quot;img&quot;)),n,r,s;for(n=0,r=t.length;n&lt;r;n++)s=t[n],s.complete||(s.onload=i.Util.falseFn,s.onerror=i.Util.falseFn,s.src=i.Util.emptyImageUrl,s.parentNode.removeChild(s))}}),i.Map.include({_defaultLocateOptions:{watch:!1,setView:!1,maxZoom:Infinity,timeout:1e4,maximumAge:0,enableHighAccuracy:!1},locate:function(e){e=this._locateOptions=i.extend(this._defaultLocateOptions,e);if(!navigator.geolocation)return this._handleGeolocationError({code:0,message:&quot;Geolocation not supported.&quot;}),this;var t=i.bind(this._handleGeolocationResponse,this),n=i.bind(this._handleGeolocationError,this);return e.watch?this._locationWatchId=navigator.geolocation.watchPosition(t,n,e):navigator.geolocation.getCurrentPosition(t,n,e),this},stopLocate:function(){return navigator.geolocation&amp;&amp;navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&amp;&amp;(this._locateOptions.setView=!1),this},_handleGeolocationError:function(e){var t=e.code,n=e.message||(t===1?&quot;permission denied&quot;:t===2?&quot;position unavailable&quot;:&quot;timeout&quot;);this._locateOptions.setView&amp;&amp;!this._loaded&amp;&amp;this.fitWorld(),this.fire(&quot;locationerror&quot;,{code:t,message:&quot;Geolocation error: &quot;+n+&quot;.&quot;})},_handleGeolocationResponse:function(e){var t=e.coords.latitude,n=e.coords.longitude,r=new i.LatLng(t,n),s=180*e.coords.accuracy/40075017,o=s/Math.cos(i.LatLng.DEG_TO_RAD*t),u=i.latLngBounds([t-s,n-o],[t+s,n+o]),a=this._locateOptions;if(a.setView){var f=Math.min(this.getBoundsZoom(u),a.maxZoom);this.setView(r,f)}var l={latlng:r,bounds:u,timestamp:e.timestamp};for(var c in e.coords)typeof e.coords[c]==&quot;number&quot;&amp;&amp;(l[c]=e.coords[c]);this.fire(&quot;locationfound&quot;,l)}})}(window,document),!function(e,t,n){t[e]=n(e,t)}(&quot;bean&quot;,this,function(e,t){var n=window,r=t[e],i=/over|out/,s=/[^\.]*(?=\..*)\.|.*/,o=/\..*/,u=&quot;addEventListener&quot;,a=&quot;attachEvent&quot;,f=&quot;removeEventListener&quot;,l=&quot;detachEvent&quot;,c=document||{},h=c.documentElement||{},p=h[u],d=p?u:a,v=Array.prototype.slice,m=/click|mouse(?!(.*wheel|scroll))|menu|drag|drop/i,g=/mouse.*(wheel|scroll)/i,y=/^text/i,b=/^touch|^gesture/i,w={one:1},E=function(e,t,n){for(n=0;n&lt;t.length;n++)e[t[n]]=1;return e}({},(&quot;click dblclick mouseup mousedown contextmenu mousewheel mousemultiwheel DOMMouseScroll mouseover mouseout mousemove selectstart selectend keydown keypress keyup orientationchange focus blur change reset select submit load unload beforeunload resize move DOMContentLoaded readystatechange error abort scroll &quot;+(p?&quot;show input invalid touchstart touchmove touchend touchcancel gesturestart gesturechange gestureend MSPointerUp MSPointerDown MSPointerCancel MSPointerMove MSPointerOver MSPointerOut message readystatechange pageshow pagehide popstate hashchange offline online afterprint beforeprint dragstart dragenter dragover dragleave drag drop dragend loadstart progress suspend emptied stalled loadmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate play pause ratechange volumechange cuechange checking noupdate downloading cached updateready obsolete &quot;:&quot;&quot;)).split(&quot; &quot;)),S=function(){function e(e,t){while((t=t.parentNode)!==null)if(t===e)return!0;return!1}function t(t){var n=t.relatedTarget;return n?n!==this&amp;&amp;n.prefix!==&quot;xul&quot;&amp;&amp;!/document/.test(this.toString())&amp;&amp;!e(this,n):n===null}return{mouseenter:{base:&quot;mouseover&quot;,condition:t},mouseleave:{base:&quot;mouseout&quot;,condition:t},mousewheel:{base:/Firefox/.test(navigator.userAgent)?&quot;DOMMouseScroll&quot;:&quot;mousewheel&quot;}}}(),x=function(){var e=&quot;altKey attrChange attrName bubbles cancelable ctrlKey currentTarget detail eventPhase getModifierState isTrusted metaKey relatedNode relatedTarget shiftKey srcElement target timeStamp type view which&quot;.split(&quot; &quot;),t=e.concat(&quot;button buttons clientX clientY dataTransfer fromElement offsetX offsetY pageX pageY screenX screenY toElement&quot;.split(&quot; &quot;)),n=t.concat(&quot;wheelDelta wheelDeltaX wheelDeltaY wheelDeltaZ axis&quot;.split(&quot; &quot;)),r=e.concat(&quot;char charCode key keyCode keyIdentifier keyLocation&quot;.split(&quot; &quot;)),s=e.concat([&quot;data&quot;]),o=e.concat(&quot;touches targetTouches changedTouches scale rotation&quot;.split(&quot; &quot;)),u=&quot;preventDefault&quot;,a=function(e){return function(){e[u]?e[u]():e.returnValue=!1}},f=&quot;stopPropagation&quot;,l=function(e){return function(){e[f]?e[f]():e.cancelBubble=!0}},p=function(e){return function(){e[u](),e[f](),e.stopped=!0}},d=function(e,t,n){var r,i;for(r=n.length;r--;)i=n[r],!(i in t)&amp;&amp;i in e&amp;&amp;(t[i]=e[i])};return function(v,w){var E={originalEvent:v,isNative:w};if(!v)return E;var S,x=v.type,T=v.target||v.srcElement;E[u]=a(v),E[f]=l(v),E.stop=p(E),E.target=T&amp;&amp;T.nodeType===3?T.parentNode:T;if(w){if(x.indexOf(&quot;key&quot;)!==-1)S=r,E.keyCode=v.which||v.keyCode;else if(m.test(x)){S=t,E.rightClick=v.which===3||v.button===2,E.pos={x:0,y:0};if(v.pageX||v.pageY)E.clientX=v.pageX,E.clientY=v.pageY;else if(v.clientX||v.clientY)E.clientX=v.clientX+c.body.scrollLeft+h.scrollLeft,E.clientY=v.clientY+c.body.scrollTop+h.scrollTop;i.test(x)&amp;&amp;(E.relatedTarget=v.relatedTarget||v[(x===&quot;mouseover&quot;?&quot;from&quot;:&quot;to&quot;)+&quot;Element&quot;])}else b.test(x)?S=o:g.test(x)?S=n:y.test(x)&amp;&amp;(S=s);d(v,E,S||e)}return E}}(),T=function(e,t){return!p&amp;&amp;!t&amp;&amp;(e===c||e===n)?h:e},N=function(){function e(e,t,n,r,i){this.element=e,this.type=t,this.handler=n,this.original=r,this.namespaces=i,this.custom=S[t],this.isNative=E[t]&amp;&amp;e[d],this.eventType=p||this.isNative?t:&quot;propertychange&quot;,this.customType=!p&amp;&amp;!this.isNative&amp;&amp;t,this.target=T(e,this.isNative),this.eventSupport=this.target[d]}return e.prototype={inNamespaces:function(e){var t,n;if(!e)return!0;if(!this.namespaces)return!1;for(t=e.length;t--;)for(n=this.namespaces.length;n--;)if(e[t]===this.namespaces[n])return!0;return!1},matches:function(e,t,n){return this.element===e&amp;&amp;(!t||this.original===t)&amp;&amp;(!n||this.handler===n)}},e}(),C=function(){var e={},t=function(n,r,i,s,o){if(!r||r===&quot;*&quot;)for(var u in e)u.charAt(0)===&quot;$&quot;&amp;&amp;t(n,u.substr(1),i,s,o);else{var a=0,f,l=e[&quot;$&quot;+r],c=n===&quot;*&quot;;if(!l)return;for(f=l.length;a&lt;f;a++)if(c||l[a].matches(n,i,s))if(!o(l[a],l,a,r))return}},n=function(t,n,r){var i,s=e[&quot;$&quot;+n];if(s)for(i=s.length;i--;)if(s[i].matches(t,r,null))return!0;return!1},r=function(e,n,r){var i=[];return t(e,n,r,null,function(e){return i.push(e)}),i},i=function(t){return(e[&quot;$&quot;+t.type]||(e[&quot;$&quot;+t.type]=[])).push(t),t},s=function(n){t(n.element,n.type,null,n.handler,function(t,n,r){return n.splice(r,1),n.length===0&amp;&amp;delete e[&quot;$&quot;+t.type],!1})},o=function(){var t,n=[];for(t in e)t.charAt(0)===&quot;$&quot;&amp;&amp;(n=n.concat(e[t]));return n};return{has:n,get:r,put:i,del:s,entries:o}}(),k=p?function(e,t,n,r){e[r?u:f](t,n,!1)}:function(e,t,n,r,i){i&amp;&amp;r&amp;&amp;e[&quot;_on&quot;+i]===null&amp;&amp;(e[&quot;_on&quot;+i]=0),e[r?a:l](&quot;on&quot;+t,n)},L=function(e,t,r){return function(i){return i=x(i||((this.ownerDocument||this.document||this).parentWindow||n).event,!0),t.apply(e,[i].concat(r))}},A=function(e,t,r,i,s,o){return function(u){if(i?i.apply(this,arguments):p?!0:u&amp;&amp;u.propertyName===&quot;_on&quot;+r||!u)u&amp;&amp;(u=x(u||((this.ownerDocument||this.document||this).parentWindow||n).event,o)),t.apply(e,u&amp;&amp;(!s||s.length===0)?arguments:v.call(arguments,u?0:1).concat(s))}},O=function(e,t,n,r,i){return function(){e(t,n,i),r.apply(this,arguments)}},M=function(e,t,n,r){var i,s,u,a=t&amp;&amp;t.replace(o,&quot;&quot;),f=C.get(e,a,n);for(i=0,s=f.length;i&lt;s;i++)f[i].inNamespaces(r)&amp;&amp;((u=f[i]).eventSupport&amp;&amp;k(u.target,u.eventType,u.handler,!1,u.type),C.del(u))},_=function(e,t,n,r,i){var u,a=t.replace(o,&quot;&quot;),f=t.replace(s,&quot;&quot;).split(&quot;.&quot;);if(C.has(e,a,n))return e;a===&quot;unload&quot;&amp;&amp;(n=O(M,e,a,n,r)),S[a]&amp;&amp;(S[a].condition&amp;&amp;(n=A(e,n,a,S[a].condition,!0)),a=S[a].base||a),u=C.put(new N(e,a,n,r,f[0]&amp;&amp;f)),u.handler=u.isNative?L(e,u.handler,i):A(e,u.handler,a,!1,i,!1),u.eventSupport&amp;&amp;k(u.target,u.eventType,u.handler,!0,u.customType)},D=function(e,t,n){return function(r){var i,s,o=typeof e==&quot;string&quot;?n(e,this):e;for(i=r.target;i&amp;&amp;i!==this;i=i.parentNode)for(s=o.length;s--;)if(o[s]===i)return t.apply(i,arguments)}},P=function(e,t,n){var r,i,u,a,f,l=M,c=t&amp;&amp;typeof t==&quot;string&quot;;if(c&amp;&amp;t.indexOf(&quot; &quot;)&gt;0){t=t.split(&quot; &quot;);for(f=t.length;f--;)P(e,t[f],n);return e}u=c&amp;&amp;t.replace(o,&quot;&quot;),u&amp;&amp;S[u]&amp;&amp;(u=S[u].type);if(!t||c){if(a=c&amp;&amp;t.replace(s,&quot;&quot;))a=a.split(&quot;.&quot;);l(e,u,n,a)}else if(typeof t==&quot;function&quot;)l(e,null,t);else for(r in t)t.hasOwnProperty(r)&amp;&amp;P(e,r,t[r]);return e},H=function(e,t,n,r,i){var s,o,u,a,f=n,l=n&amp;&amp;typeof n==&quot;string&quot;;if(t&amp;&amp;!n&amp;&amp;typeof t==&quot;object&quot;)for(s in t)t.hasOwnProperty(s)&amp;&amp;H.apply(this,[e,s,t[s]]);else{a=arguments.length&gt;3?v.call(arguments,3):[],o=(l?n:t).split(&quot; &quot;),l&amp;&amp;(n=D(t,f=r,i))&amp;&amp;(a=v.call(a,1)),this===w&amp;&amp;(n=O(P,e,t,n,f));for(u=o.length;u--;)_(e,o[u],n,f,a)}return e},B=function(){return H.apply(w,arguments)},j=p?function(e,t,r){var i=c.createEvent(e?&quot;HTMLEvents&quot;:&quot;UIEvents&quot;);i[e?&quot;initEvent&quot;:&quot;initUIEvent&quot;](t,!0,!0,n,1),r.dispatchEvent(i)}:function(e,t,n){n=T(n,e),e?n.fireEvent(&quot;on&quot;+t,c.createEventObject()):n[&quot;_on&quot;+t]++},F=function(e,t,n){var r,i,u,a,f,l=t.split(&quot; &quot;);for(r=l.length;r--;){t=l[r].replace(o,&quot;&quot;);if(a=l[r].replace(s,&quot;&quot;))a=a.split(&quot;.&quot;);if(!a&amp;&amp;!n&amp;&amp;e[d])j(E[t],t,e);else{f=C.get(e,t),n=[!1].concat(n);for(i=0,u=f.length;i&lt;u;i++)f[i].inNamespaces(a)&amp;&amp;f[i].handler.apply(e,n)}}return e},I=function(e,t,n){var r=0,i=C.get(t,n),s=i.length;for(;r&lt;s;r++)i[r].original&amp;&amp;H(e,i[r].type,i[r].original);return e},q={add:H,one:B,remove:P,clone:I,fire:F,noConflict:function(){return t[e]=r,this}};if(n[a]){var R=function(){var e,t=C.entries();for(e in t)t[e].type&amp;&amp;t[e].type!==&quot;unload&quot;&amp;&amp;P(t[e].element,t[e].type);n[l](&quot;onunload&quot;,R),n.CollectGarbage&amp;&amp;n.CollectGarbage()};n[a](&quot;onunload&quot;,R)}return q});var html4={};html4.atype={NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10},html4.ATTRIBS={&quot;*::class&quot;:9,&quot;*::dir&quot;:0,&quot;*::id&quot;:4,&quot;*::lang&quot;:0,&quot;*::onclick&quot;:2,&quot;*::ondblclick&quot;:2,&quot;*::onkeydown&quot;:2,&quot;*::onkeypress&quot;:2,&quot;*::onkeyup&quot;:2,&quot;*::onload&quot;:2,&quot;*::onmousedown&quot;:2,&quot;*::onmousemove&quot;:2,&quot;*::onmouseout&quot;:2,&quot;*::onmouseover&quot;:2,&quot;*::onmouseup&quot;:2,&quot;*::style&quot;:3,&quot;*::title&quot;:0,&quot;a::accesskey&quot;:0,&quot;a::coords&quot;:0,&quot;a::href&quot;:1,&quot;a::hreflang&quot;:0,&quot;a::name&quot;:7,&quot;a::onblur&quot;:2,&quot;a::onfocus&quot;:2,&quot;a::rel&quot;:0,&quot;a::rev&quot;:0,&quot;a::shape&quot;:0,&quot;a::tabindex&quot;:0,&quot;a::target&quot;:10,&quot;a::type&quot;:0,&quot;area::accesskey&quot;:0,&quot;area::alt&quot;:0,&quot;area::coords&quot;:0,&quot;area::href&quot;:1,&quot;area::nohref&quot;:0,&quot;area::onblur&quot;:2,&quot;area::onfocus&quot;:2,&quot;area::shape&quot;:0,&quot;area::tabindex&quot;:0,&quot;area::target&quot;:10,&quot;bdo::dir&quot;:0,&quot;blockquote::cite&quot;:1,&quot;br::clear&quot;:0,&quot;button::accesskey&quot;:0,&quot;button::disabled&quot;:0,&quot;button::name&quot;:8,&quot;button::onblur&quot;</td>
      </tr>
      <tr>
        <td id="L12" class="blob-num js-line-number" data-line-number="12"></td>
        <td id="LC12" class="blob-code js-file-line">:2,&quot;button::onfocus&quot;:2,&quot;button::tabindex&quot;:0,&quot;button::type&quot;:0,&quot;button::value&quot;:0,&quot;canvas::height&quot;:0,&quot;canvas::width&quot;:0,&quot;caption::align&quot;:0,&quot;col::align&quot;:0,&quot;col::char&quot;:0,&quot;col::charoff&quot;:0,&quot;col::span&quot;:0,&quot;col::valign&quot;:0,&quot;col::width&quot;:0,&quot;colgroup::align&quot;:0,&quot;colgroup::char&quot;:0,&quot;colgroup::charoff&quot;:0,&quot;colgroup::span&quot;:0,&quot;colgroup::valign&quot;:0,&quot;colgroup::width&quot;:0,&quot;del::cite&quot;:1,&quot;del::datetime&quot;:0,&quot;dir::compact&quot;:0,&quot;div::align&quot;:0,&quot;dl::compact&quot;:0,&quot;font::color&quot;:0,&quot;font::face&quot;:0,&quot;font::size&quot;:0,&quot;form::accept&quot;:0,&quot;form::action&quot;:1,&quot;form::autocomplete&quot;:0,&quot;form::enctype&quot;:0,&quot;form::method&quot;:0,&quot;form::name&quot;:7,&quot;form::onreset&quot;:2,&quot;form::onsubmit&quot;:2,&quot;form::target&quot;:10,&quot;h1::align&quot;:0,&quot;h2::align&quot;:0,&quot;h3::align&quot;:0,&quot;h4::align&quot;:0,&quot;h5::align&quot;:0,&quot;h6::align&quot;:0,&quot;hr::align&quot;:0,&quot;hr::noshade&quot;:0,&quot;hr::size&quot;:0,&quot;hr::width&quot;:0,&quot;iframe::align&quot;:0,&quot;iframe::frameborder&quot;:0,&quot;iframe::height&quot;:0,&quot;iframe::marginheight&quot;:0,&quot;iframe::marginwidth&quot;:0,&quot;iframe::width&quot;:0,&quot;img::align&quot;:0,&quot;img::alt&quot;:0,&quot;img::border&quot;:0,&quot;img::height&quot;:0,&quot;img::hspace&quot;:0,&quot;img::ismap&quot;:0,&quot;img::name&quot;:7,&quot;img::src&quot;:1,&quot;img::usemap&quot;:11,&quot;img::vspace&quot;:0,&quot;img::width&quot;:0,&quot;input::accept&quot;:0,&quot;input::accesskey&quot;:0,&quot;input::align&quot;:0,&quot;input::alt&quot;:0,&quot;input::autocomplete&quot;:0,&quot;input::checked&quot;:0,&quot;input::disabled&quot;:0,&quot;input::ismap&quot;:0,&quot;input::maxlength&quot;:0,&quot;input::name&quot;:8,&quot;input::onblur&quot;:2,&quot;input::onchange&quot;:2,&quot;input::onfocus&quot;:2,&quot;input::onselect&quot;:2,&quot;input::readonly&quot;:0,&quot;input::size&quot;:0,&quot;input::src&quot;:1,&quot;input::tabindex&quot;:0,&quot;input::type&quot;:0,&quot;input::usemap&quot;:11,&quot;input::value&quot;:0,&quot;ins::cite&quot;:1,&quot;ins::datetime&quot;:0,&quot;label::accesskey&quot;:0,&quot;label::for&quot;:5,&quot;label::onblur&quot;:2,&quot;label::onfocus&quot;:2,&quot;legend::accesskey&quot;:0,&quot;legend::align&quot;:0,&quot;li::type&quot;:0,&quot;li::value&quot;:0,&quot;map::name&quot;:7,&quot;menu::compact&quot;:0,&quot;ol::compact&quot;:0,&quot;ol::start&quot;:0,&quot;ol::type&quot;:0,&quot;optgroup::disabled&quot;:0,&quot;optgroup::label&quot;:0,&quot;option::disabled&quot;:0,&quot;option::label&quot;:0,&quot;option::selected&quot;:0,&quot;option::value&quot;:0,&quot;p::align&quot;:0,&quot;pre::width&quot;:0,&quot;q::cite&quot;:1,&quot;select::disabled&quot;:0,&quot;select::multiple&quot;:0,&quot;select::name&quot;:8,&quot;select::onblur&quot;:2,&quot;select::onchange&quot;:2,&quot;select::onfocus&quot;:2,&quot;select::size&quot;:0,&quot;select::tabindex&quot;:0,&quot;table::align&quot;:0,&quot;table::bgcolor&quot;:0,&quot;table::border&quot;:0,&quot;table::cellpadding&quot;:0,&quot;table::cellspacing&quot;:0,&quot;table::frame&quot;:0,&quot;table::rules&quot;:0,&quot;table::summary&quot;:0,&quot;table::width&quot;:0,&quot;tbody::align&quot;:0,&quot;tbody::char&quot;:0,&quot;tbody::charoff&quot;:0,&quot;tbody::valign&quot;:0,&quot;td::abbr&quot;:0,&quot;td::align&quot;:0,&quot;td::axis&quot;:0,&quot;td::bgcolor&quot;:0,&quot;td::char&quot;:0,&quot;td::charoff&quot;:0,&quot;td::colspan&quot;:0,&quot;td::headers&quot;:6,&quot;td::height&quot;:0,&quot;td::nowrap&quot;:0,&quot;td::rowspan&quot;:0,&quot;td::scope&quot;:0,&quot;td::valign&quot;:0,&quot;td::width&quot;:0,&quot;textarea::accesskey&quot;:0,&quot;textarea::cols&quot;:0,&quot;textarea::disabled&quot;:0,&quot;textarea::name&quot;:8,&quot;textarea::onblur&quot;:2,&quot;textarea::onchange&quot;:2,&quot;textarea::onfocus&quot;:2,&quot;textarea::onselect&quot;:2,&quot;textarea::readonly&quot;:0,&quot;textarea::rows&quot;:0,&quot;textarea::tabindex&quot;:0,&quot;tfoot::align&quot;:0,&quot;tfoot::char&quot;:0,&quot;tfoot::charoff&quot;:0,&quot;tfoot::valign&quot;:0,&quot;th::abbr&quot;:0,&quot;th::align&quot;:0,&quot;th::axis&quot;:0,&quot;th::bgcolor&quot;:0,&quot;th::char&quot;:0,&quot;th::charoff&quot;:0,&quot;th::colspan&quot;:0,&quot;th::headers&quot;:6,&quot;th::height&quot;:0,&quot;th::nowrap&quot;:0,&quot;th::rowspan&quot;:0,&quot;th::scope&quot;:0,&quot;th::valign&quot;:0,&quot;th::width&quot;:0,&quot;thead::align&quot;:0,&quot;thead::char&quot;:0,&quot;thead::charoff&quot;:0,&quot;thead::valign&quot;:0,&quot;tr::align&quot;:0,&quot;tr::bgcolor&quot;:0,&quot;tr::char&quot;:0,&quot;tr::charoff&quot;:0,&quot;tr::valign&quot;:0,&quot;ul::compact&quot;:0,&quot;ul::type&quot;:0},html4.eflags={OPTIONAL_ENDTAG:1,EMPTY:2,CDATA:4,RCDATA:8,UNSAFE:16,FOLDABLE:32,SCRIPT:64,STYLE:128},html4.ELEMENTS={a:0,abbr:0,acronym:0,address:0,applet:16,area:2,b:0,base:18,basefont:18,bdo:0,big:0,blockquote:0,body:49,br:2,button:0,canvas:0,caption:0,center:0,cite:0,code:0,col:2,colgroup:1,dd:1,del:0,dfn:0,dir:0,div:0,dl:0,dt:1,em:0,fieldset:0,font:0,form:0,frame:18,frameset:16,h1:0,h2:0,h3:0,h4:0,h5:0,h6:0,head:49,hr:2,html:49,i:0,iframe:4,img:2,input:2,ins:0,isindex:18,kbd:0,label:0,legend:0,li:1,link:18,map:0,menu:0,meta:18,nobr:0,noembed:4,noframes:20,noscript:20,object:16,ol:0,optgroup:0,option:1,p:1,param:18,pre:0,q:0,s:0,samp:0,script:84,select:0,small:0,span:0,strike:0,strong:0,style:148,sub:0,sup:0,table:0,tbody:1,td:1,textarea:8,tfoot:1,th:1,thead:1,title:24,tr:1,tt:0,u:0,ul:0,&quot;var&quot;:0},html4.ueffects={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2},html4.URIEFFECTS={&quot;a::href&quot;:2,&quot;area::href&quot;:2,&quot;blockquote::cite&quot;:0,&quot;body::background&quot;:1,&quot;del::cite&quot;:0,&quot;form::action&quot;:2,&quot;img::src&quot;:1,&quot;input::src&quot;:1,&quot;ins::cite&quot;:0,&quot;q::cite&quot;:0},html4.ltypes={UNSANDBOXED:2,SANDBOXED:1,DATA:0},html4.LOADERTYPES={&quot;a::href&quot;:2,&quot;area::href&quot;:2,&quot;blockquote::cite&quot;:2,&quot;body::background&quot;:1,&quot;del::cite&quot;:2,&quot;form::action&quot;:2,&quot;img::src&quot;:1,&quot;input::src&quot;:1,&quot;ins::cite&quot;:2,&quot;q::cite&quot;:2};var html=function(e){function o(e){e=t(e);if(n.hasOwnProperty(e))return n[e];var r=e.match(i);return r?String.fromCharCode(parseInt(r[1],10)):(r=e.match(s))?String.fromCharCode(parseInt(r[1],16)):&quot;&quot;}function u(e,t){return o(t)}function f(e){return e.replace(a,&quot;&quot;)}function c(e){return e.replace(l,u)}function y(e){return e.replace(h,&quot;&amp;amp;&quot;).replace(d,&quot;&amp;lt;&quot;).replace(v,&quot;&amp;gt;&quot;).replace(m,&quot;&amp;#34;&quot;).replace(g,&quot;&amp;#61;&quot;)}function b(e){return e.replace(p,&quot;&amp;amp;$1&quot;).replace(d,&quot;&amp;lt;&quot;).replace(v,&quot;&amp;gt;&quot;)}function S(n){return function(i,s){i=String(i);var o=null,u=!1,a=[],l=void 0,h=void 0,p=void 0;n.startDoc&amp;&amp;n.startDoc(s);while(i){var d=i.match(u?w:E);i=i.substring(d[0].length);if(u){if(d[1]){var v=t(d[1]),m;if(d[2]){var g=d[3];switch(g.charCodeAt(0)){case 34:case 39:g=g.substring(1,g.length-1)}m=c(f(g))}else m=v;a.push(v,m)}else if(d[4]){h!==void 0&amp;&amp;(p?n.startTag&amp;&amp;n.startTag(l,a,s):n.endTag&amp;&amp;n.endTag(l,s));if(p&amp;&amp;h&amp;(e.eflags.CDATA|e.eflags.RCDATA)){o===null?o=t(i):o=o.substring(o.length-i.length);var y=o.indexOf(&quot;&lt;/&quot;+l);y&lt;0&amp;&amp;(y=i.length),y&amp;&amp;(h&amp;e.eflags.CDATA?n.cdata&amp;&amp;n.cdata(i.substring(0,y),s):n.rcdata&amp;&amp;n.rcdata(b(i.substring(0,y)),s),i=i.substring(y))}l=h=p=void 0,a.length=0,u=!1}}else if(d[1])n.pcdata&amp;&amp;n.pcdata(d[0],s);else if(d[3])p=!d[2],u=!0,l=t(d[3]),h=e.ELEMENTS.hasOwnProperty(l)?e.ELEMENTS[l]:void 0;else if(d[4])n.pcdata&amp;&amp;n.pcdata(d[4],s);else if(d[5]&amp;&amp;n.pcdata){var S=d[5];n.pcdata(S===&quot;&lt;&quot;?&quot;&amp;lt;&quot;:S===&quot;&gt;&quot;?&quot;&amp;gt;&quot;:&quot;&amp;amp;&quot;,s)}}n.endDoc&amp;&amp;n.endDoc(s)}}function x(t){var n,r;return S({startDoc:function(e){n=[],r=!1},startTag:function(i,s,o){if(r)return;if(!e.ELEMENTS.hasOwnProperty(i))return;var u=e.ELEMENTS[i];if(u&amp;e.eflags.FOLDABLE)return;if(u&amp;e.eflags.UNSAFE){r=!(u&amp;e.eflags.EMPTY);return}s=t(i,s);if(s){u&amp;e.eflags.EMPTY||n.push(i),o.push(&quot;&lt;&quot;,i);for(var a=0,f=s.length;a&lt;f;a+=2){var l=s[a],c=s[a+1];c!==null&amp;&amp;c!==void 0&amp;&amp;o.push(&quot; &quot;,l,&#39;=&quot;&#39;,y(c),&#39;&quot;&#39;)}o.push(&quot;&gt;&quot;)}},endTag:function(t,i){if(r){r=!1;return}if(!e.ELEMENTS.hasOwnProperty(t))return;var s=e.ELEMENTS[t];if(!(s&amp;(e.eflags.UNSAFE|e.eflags.EMPTY|e.eflags.FOLDABLE))){var o;if(s&amp;e.eflags.OPTIONAL_ENDTAG)for(o=n.length;--o&gt;=0;){var u=n[o];if(u===t)break;if(!(e.ELEMENTS[u]&amp;e.eflags.OPTIONAL_ENDTAG))return}else for(o=n.length;--o&gt;=0;)if(n[o]===t)break;if(o&lt;0)return;for(var a=n.length;--a&gt;o;){var u=n[a];e.ELEMENTS[u]&amp;e.eflags.OPTIONAL_ENDTAG||i.push(&quot;&lt;/&quot;,u,&quot;&gt;&quot;)}n.length=o,i.push(&quot;&lt;/&quot;,t,&quot;&gt;&quot;)}},pcdata:function(e,t){r||t.push(e)},rcdata:function(e,t){r||t.push(e)},cdata:function(e,t){r||t.push(e)},endDoc:function(e){for(var t=n.length;--t&gt;=0;)e.push(&quot;&lt;/&quot;,n[t],&quot;&gt;&quot;);n.length=0}})}function N(t,n,i){var s=[];return x(function(s,o){for(var u=0;u&lt;o.length;u+=2){var a=o[u],f=o[u+1],l=null,c;if((c=s+&quot;::&quot;+a,e.ATTRIBS.hasOwnProperty(c))||(c=&quot;*::&quot;+a,e.ATTRIBS.hasOwnProperty(c)))l=e.ATTRIBS[c];if(l!==null)switch(l){case e.atype.NONE:break;case e.atype.SCRIPT:case e.atype.STYLE:f=null;break;case e.atype.ID:case e.atype.IDREF:case e.atype.IDREFS:case e.atype.GLOBAL_NAME:case e.atype.LOCAL_NAME:case e.atype.CLASSES:f=i?i(f):f;break;case e.atype.URI:var h=(&quot;&quot;+f).match(T);h?!h[1]||r.test(h[1])?f=n&amp;&amp;n(f):f=null:f=null;break;case e.atype.URI_FRAGMENT:f&amp;&amp;&quot;#&quot;===f.charAt(0)?(f=i?i(f):f,f&amp;&amp;(f=&quot;#&quot;+f)):f=null;break;default:f=null}else f=null;o[u+1]=f}return o})(t,s),s.join(&quot;&quot;)}var t;&quot;script&quot;===&quot;SCRIPT&quot;.toLowerCase()?t=function(e){return e.toLowerCase()}:t=function(e){return e.replace(/[A-Z]/g,function(e){return String.fromCharCode(e.charCodeAt(0)|32)})};var n={lt:&quot;&lt;&quot;,gt:&quot;&gt;&quot;,amp:&quot;&amp;&quot;,nbsp:&quot; &quot;,quot:&#39;&quot;&#39;,apos:&quot;&#39;&quot;},r=/^(?:https?|mailto|data)$/i,i=/^#(\d+)$/,s=/^#x([0-9A-Fa-f]+)$/,a=/\0/g,l=/&amp;(#\d+|#x[0-9A-Fa-f]+|\w+);/g,h=/&amp;/g,p=/&amp;([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,d=/&lt;/g,v=/&gt;/g,m=/\&quot;/g,g=/\=/g,w=new RegExp(&quot;^\\s*(?:(?:([a-z][a-z-]*)(\\s*=\\s*(\&quot;[^\&quot;]*\&quot;|&#39;[^&#39;]*&#39;|(?=[a-z][a-z-]*\\s*=)|[^&gt;\&quot;&#39;\\s]*))?)|(/?&gt;)|[\\s\\S][^a-z\\s&gt;]*)&quot;,&quot;i&quot;),E=new RegExp(&quot;^(?:&amp;(\\#[0-9]+|\\#[x][0-9a-f]+|\\w+);|&lt;!--[\\s\\S]*?--&gt;|&lt;!\\w[^&gt;]*&gt;|&lt;\\?[^&gt;*]*&gt;|&lt;(/)?([a-z][a-z0-9]*)|([^&lt;&amp;&gt;]+)|([&lt;&amp;&gt;]))&quot;,&quot;i&quot;),T=new RegExp(&quot;^(?:([^:/?#]+):)?&quot;);return{escapeAttrib:y,makeHtmlSanitizer:x,makeSaxParser:S,normalizeRCData:b,sanitize:N,unescapeEntities:c}}(html4),html_sanitize=html.sanitize;typeof window!=&quot;undefined&quot;&amp;&amp;(window.html=html,window.html_sanitize=html_sanitize),html4.ATTRIBS[&quot;*::style&quot;]=0,html4.ELEMENTS.style=0,html4.ATTRIBS[&quot;a::target&quot;]=0,html4.ELEMENTS.video=0,html4.ATTRIBS[&quot;video::src&quot;]=0,html4.ATTRIBS[&quot;video::poster&quot;]=0,html4.ATTRIBS[&quot;video::controls&quot;]=0,html4.ELEMENTS.audio=0,html4.ATTRIBS[&quot;audio::src&quot;]=0,html4.ATTRIBS[&quot;video::autoplay&quot;]=0,html4.ATTRIBS[&quot;video::controls&quot;]=0;var Mustache=typeof module!=&quot;undefined&quot;&amp;&amp;module.exports||{};(function(e){function a(e){return u.test(e)}function p(e){return String(e).replace(/[&amp;&lt;&gt;&quot;&#39;\/]/g,function(e){return h[e]||e})}function d(e,t,n,r){r=r||&quot;&lt;template&gt;&quot;;var i=t.split(&quot;\n&quot;),s=Math.max(n-3,0),o=Math.min(i.length,n+3),u=i.slice(s,o),a;for(var f=0,l=u.length;f&lt;l;++f)a=f+s+1,u[f]=(a===n?&quot; &gt;&gt; &quot;:&quot;    &quot;)+u[f];return e.template=t,e.line=n,e.file=r,e.message=[r+&quot;:&quot;+n,u.join(&quot;\n&quot;),&quot;&quot;,e.message].join(&quot;\n&quot;),e}function v(e,t,n){if(e===&quot;.&quot;)return t[t.length-1];var r=e.split(&quot;.&quot;),i=r.length-1,s=r[i],o,u,a=t.length,f,l;while(a){l=t.slice(0),u=t[--a],f=0;while(f&lt;i){u=u[r[f++]];if(u==null)break;l.push(u)}if(u&amp;&amp;typeof u==&quot;object&quot;&amp;&amp;s in u){o=u[s];break}}return typeof o==&quot;function&quot;&amp;&amp;(o=o.call(l[l.length-1])),o==null?n:o}function m(e,t,n,r){var i=&quot;&quot;,u=v(e,t);if(r){if(u==null||u===!1||s(u)&amp;&amp;u.length===0)i+=n()}else if(s(u))o(u,function(e){t.push(e),i+=n(),t.pop()});else if(typeof u==&quot;object&quot;)t.push(u),i+=n(),t.pop();else if(typeof u==&quot;function&quot;){var a=t[t.length-1],f=function(e){return S(e,a)};i+=u.call(a,n(),f)||&quot;&quot;}else u&amp;&amp;(i+=n());return i}function g(t,n){n=n||{};var r=n.tags||e.tags,i=r[0],s=r[r.length-1],o=[&#39;var buffer = &quot;&quot;;&#39;,&quot;\nvar line = 1;&quot;,&quot;\ntry {&quot;,&#39;\nbuffer += &quot;&#39;],u=[],l=!1,c=!1,h=function(){if(l&amp;&amp;!c&amp;&amp;!n.space)while(u.length)o.splice(u.pop(),1);else u=[];l=!1,c=!1},p=[],v,m,g,y=function(e){r=f(e).split(/\s+/),m=r[0],g=r[r.length-1]},b=function(e){o.push(&#39;&quot;;&#39;,v,&#39;\nvar partial = partials[&quot;&#39;+f(e)+&#39;&quot;];&#39;,&quot;\nif (partial) {&quot;,&quot;\n  buffer += render(partial,stack[stack.length - 1],partials);&quot;,&quot;\n}&quot;,&#39;\nbuffer += &quot;&#39;)},w=function(e,r){var i=f(e);if(i===&quot;&quot;)throw d(new Error(&quot;Section name may not be empty&quot;),t,N,n.file);p.push({name:i,inverted:r}),o.push(&#39;&quot;;&#39;,v,&#39;\nvar name = &quot;&#39;+i+&#39;&quot;;&#39;,&quot;\nvar callback = (function () {&quot;,&quot;\n  return function () {&quot;,&#39;\n    var buffer = &quot;&quot;;&#39;,&#39;\nbuffer += &quot;&#39;)},E=function(e){w(e,!0)},S=function(e){var r=f(e),i=p.length!=0&amp;&amp;p[p.length-1].name;if(!i||r!=i)throw d(new Error(&#39;Section named &quot;&#39;+r+&#39;&quot; was never opened&#39;),t,N,n.file);var s=p.pop();o.push(&#39;&quot;;&#39;,&quot;\n    return buffer;&quot;,&quot;\n  };&quot;,&quot;\n})();&quot;),s.inverted?o.push(&quot;\nbuffer += renderSection(name,stack,callback,true);&quot;):o.push(&quot;\nbuffer += renderSection(name,stack,callback);&quot;),o.push(&#39;\nbuffer += &quot;&#39;)},x=function(e){o.push(&#39;&quot;;&#39;,v,&#39;\nbuffer += lookup(&quot;&#39;+f(e)+&#39;&quot;,stack,&quot;&quot;);&#39;,&#39;\nbuffer += &quot;&#39;)},T=function(e){o.push(&#39;&quot;;&#39;,v,&#39;\nbuffer += escapeHTML(lookup(&quot;&#39;+f(e)+&#39;&quot;,stack,&quot;&quot;));&#39;,&#39;\nbuffer += &quot;&#39;)},N=1,C,k;for(var L=0,A=t.length;L&lt;A;++L)if(t.slice(L,L+i.length)===i){L+=i.length,C=t.substr(L,1),v=&quot;\nline = &quot;+N+&quot;;&quot;,m=i,g=s,l=!0;switch(C){case&quot;!&quot;:L++,k=null;break;case&quot;=&quot;:L++,s=&quot;=&quot;+s,k=y;break;case&quot;&gt;&quot;:L++,k=b;break;case&quot;#&quot;:L++,k=w;break;case&quot;^&quot;:L++,k=E;break;case&quot;/&quot;:L++,k=S;break;case&quot;{&quot;:s=&quot;}&quot;+s;case&quot;&amp;&quot;:L++,c=!0,k=x;break;default:c=!0,k=T}var O=t.indexOf(s,L);if(O===-1)throw d(new Error(&#39;Tag &quot;&#39;+i+&#39;&quot; was not closed properly&#39;),t,N,n.file);var M=t.substring(L,O);k&amp;&amp;k(M);var _=0;while(~(_=M.indexOf(&quot;\n&quot;,_)))N++,_++;L=O+s.length-1,i=m,s=g}else{C=t.substr(L,1);switch(C){case&#39;&quot;&#39;:case&quot;\\&quot;:c=!0,o.push(&quot;\\&quot;+C);break;case&quot;\r&quot;:break;case&quot;\n&quot;:u.push(o.length),o.push(&quot;\\n&quot;),h(),N++;break;default:a(C)?u.push(o.length):c=!0,o.push(C)}}if(p.length!=0)throw d(new Error(&#39;Section &quot;&#39;+p[p.length-1].name+&#39;&quot; was not closed properly&#39;),t,N,n.file);h(),o.push(&#39;&quot;;&#39;,&quot;\nreturn buffer;&quot;,&quot;\n} catch (e) { throw {error: e, line: line}; }&quot;);var D=o.join(&quot;&quot;).replace(/buffer \+= &quot;&quot;;\n/g,&quot;&quot;);return n.debug&amp;&amp;(typeof console!=&quot;undefined&quot;&amp;&amp;console.log?console.log(D):typeof print==&quot;function&quot;&amp;&amp;print(D)),D}function y(e,t){var n=&quot;view,partials,stack,lookup,escapeHTML,renderSection,render&quot;,r=g(e,t),i=new Function(n,r);return function(n,r){r=r||{};var s=[n];try{return i(n,r,s,v,p,m,S)}catch(o){throw d(o.error,e,o.line,t.file)}}}function w(){b={}}function E(e,t){return t=t||{},t.cache!==!1?(b[e]||(b[e]=y(e,t)),b[e]):y(e,t)}function S(e,t,n){return E(e)(t,n)}e.name=&quot;mustache.js&quot;,e.version=&quot;0.5.0-dev&quot;,e.tags=[&quot;{{&quot;,&quot;}}&quot;],e.parse=g,e.compile=E,e.render=S,e.clearCache=w,e.to_html=function(e,t,n,r){var i=S(e,t,n);if(typeof r!=&quot;function&quot;)return i;r(i)};var t=Object.prototype.toString,n=Array.isArray,r=Array.prototype.forEach,i=String.prototype.trim,s;n?s=n:s=function(e){return t.call(e)===&quot;[object Array]&quot;};var o;r?o=function(e,t,n){return r.call(e,t,n)}:o=function(e,t,n){for(var r=0,i=e.length;r&lt;i;++r)t.call(n,e[r],r,e)};var u=/^\s*$/,f;if(i)f=function(e){return e==null?&quot;&quot;:i.call(e)};else{var l,c;a(&quot; &quot;)?(l=/^\s+/,c=/\s+$/):(l=/^[\s\xA0]+/,c=/[\s\xA0]+$/),f=function(e){return e==null?&quot;&quot;:String(e).replace(l,&quot;&quot;).replace(c,&quot;&quot;)}}var h={&quot;&amp;&quot;:&quot;&amp;amp;&quot;,&quot;&lt;&quot;:&quot;&amp;lt;&quot;,&quot;&gt;&quot;:&quot;&amp;gt;&quot;,&#39;&quot;&#39;:&quot;&amp;quot;&quot;,&quot;&#39;&quot;:&quot;&amp;#39;&quot;,&quot;/&quot;:&quot;&amp;#x2F;&quot;},b={}})(Mustache),function(e,t,n){t[e]=n()}(&quot;reqwest&quot;,this,function(){function handleReadyState(e,t,n){return function(){if(e._aborted)return n(e.request);e.request&amp;&amp;e.request[readyState]==4&amp;&amp;(e.request.onreadystatechange=noop,twoHundo.test(e.request.status)?t(e.request):n(e.request))}}function setHeaders(e,t){var n=t.headers||{},r;n.Accept=n.Accept||defaultHeaders.accept[t.type]||defaultHeaders.accept[&quot;*&quot;],!t.crossOrigin&amp;&amp;!n[requestedWith]&amp;&amp;(n[requestedWith]=defaultHeaders.requestedWith),n[contentType]||(n[contentType]=t.contentType||defaultHeaders.contentType);for(r in n)n.hasOwnProperty(r)&amp;&amp;e.setRequestHeader(r,n[r])}function setCredentials(e,t){typeof t.withCredentials!=&quot;undefined&quot;&amp;&amp;typeof e.withCredentials!=&quot;undefined&quot;&amp;&amp;(e.withCredentials=!!t.withCredentials)}function generalCallback(e){lastValue=e}function urlappend(e,t){return e+(/\?/.test(e)?&quot;&amp;&quot;:&quot;?&quot;)+t}function handleJsonp(e,t,n,r){var i=uniqid++,s=e.jsonpCallback||&quot;callback&quot;,o=e.jsonpCallbackName||reqwest.getcallbackPrefix(i),u=new RegExp(&quot;((^|\\?|&amp;)&quot;+s+&quot;)=([^&amp;]+)&quot;),a=r.match(u),f=doc.createElement(&quot;script&quot;),l=0,c=navigator.userAgent.indexOf(&quot;MSIE 10.0&quot;)!==-1;return a?a[3]===&quot;?&quot;?r=r.replace(u,&quot;$1=&quot;+o):o=a[3]:r=urlappend(r,s+&quot;=&quot;+o),win[o]=generalCallback,f.type=&quot;text/javascript&quot;,typeof f.onreadystatechange!=&quot;undefined&quot;&amp;&amp;!c&amp;&amp;(f.event=&quot;onclick&quot;,f.htmlFor=f.id=&quot;_reqwest_&quot;+i),f.onload=f.onreadystatechange=function(){if(f[readyState]&amp;&amp;f[readyState]!==&quot;complete&quot;&amp;&amp;f[readyState]!==&quot;loaded&quot;||l)return!1;f.onload=f.onreadystatechange=null,f.onclick&amp;&amp;f.onclick(),e.success&amp;&amp;e.success(lastValue),lastValue=undefined,head.removeChild(f),l=1},f.src=r,f.async=!0,head.appendChild(f),{abort:function(){f.onload=f.onreadystatechange=null,e.error&amp;&amp;e.error({},&quot;Request is aborted: timeout&quot;,{}),lastValue=undefined,head.removeChild(f),l=1}}}function getRequest(e,t){var n=this.o,r=(n.method||&quot;GET&quot;).toUpperCase(),i=typeof n==&quot;string&quot;?n:n.url,s=n.processData!==!1&amp;&amp;n.data&amp;&amp;typeof n.data!=&quot;string&quot;?reqwest.toQueryString(n.data):n.data||null,o;return(n.type==&quot;jsonp&quot;||r==&quot;GET&quot;)&amp;&amp;s&amp;&amp;(i=urlappend(i,s),s=null),n.type==&quot;jsonp&quot;?handleJsonp(n,e,t,i):(o=xhr(),o.open(r,i,!0),setHeaders(o,n),setCredentials(o,n),o.onreadystatechange=handleReadyState(this,e,t),n.before&amp;&amp;n.before(o),o.send(s),o)}function Reqwest(e,t){this.o=e,this.fn=t,init.apply(this,arguments)}function setType(e){var t=e.match(/\.(json|jsonp|html|xml)(\?|$)/);return t?t[1]:&quot;js&quot;}function init(o,fn){function complete(e){o.timeout&amp;&amp;clearTimeout(self.timeout),self.timeout=null;while(self._completeHandlers.length&gt;0)self._completeHandlers.shift()(e)}function success(resp){var r=resp.responseText;if(r)switch(type){case&quot;json&quot;:try{resp=win.JSON?win.JSON.parse(r):eval(&quot;(&quot;+r+&quot;)&quot;)}catch(err){return error(resp,&quot;Could not parse JSON in response&quot;,err)}break;case&quot;js&quot;:resp=eval(r);break;case&quot;html&quot;:resp=r;break;case&quot;xml&quot;:resp=resp.responseXML&amp;&amp;resp.responseXML.parseError&amp;&amp;resp.responseXML.parseError.errorCode&amp;&amp;resp.responseXML.parseError.reason?null:resp.responseXML}self._responseArgs.resp=resp,self._fulfilled=!0,fn(resp);while(self._fulfillmentHandlers.length&gt;0)self._fulfillmentHandlers.shift()(resp);complete(resp)}function error(e,t,n){self._responseArgs.resp=e,self._responseArgs.msg=t,self._responseArgs.t=n,self._erred=!0;while(self._errorHandlers.length&gt;0)self._errorHandlers.shift()(e,t,n);complete(e)}this.url=typeof o==&quot;string&quot;?o:o.url,this.timeout=null,this._fulfilled=!1,this._fulfillmentHandlers=[],this._errorHandlers=[],this._completeHandlers=[],this._erred=!1,this._responseArgs={};var self=this,type=o.type||setType(this.url);fn=fn||function(){},o.timeout&amp;&amp;(this.timeout=setTimeout(function(){self.abort()},o.timeout)),o.success&amp;&amp;this._fulfillmentHandlers.push(function(){o.success.apply(o,arguments)}),o.error&amp;&amp;this._errorHandlers.push(function(){o.error.apply(o,arguments)}),o.complete&amp;&amp;this._completeHandlers.push(function(){o.complete.apply(o,arguments)}),this.request=getRequest.call(this,success,error)}function reqwest(e,t){return new Reqwest(e,t)}function normalize(e){return e?e.replace(/\r?\n/g,&quot;\r\n&quot;):&quot;&quot;}function serial(e,t){var n=e.name,r=e.tagName.toLowerCase(),i=function(e){e&amp;&amp;!e.disabled&amp;&amp;t(n,normalize(e.attributes.value&amp;&amp;e.attributes.value.specified?e.value:e.text))},s,o,u,a;if(e.disabled||!n)return;switch(r){case&quot;input&quot;:/reset|button|image|file/i.test(e.type)||(s=/checkbox/i.test(e.type),o=/radio/i.test(e.type),u=e.value,(!s&amp;&amp;!o||e.checked)&amp;&amp;t(n,normalize(s&amp;&amp;u===&quot;&quot;?&quot;on&quot;:u)));break;case&quot;textarea&quot;:t(n,normalize(e.value));break;case&quot;select&quot;:if(e.type.toLowerCase()===&quot;select-one&quot;)i(e.selectedIndex&gt;=0?e.options[e.selectedIndex]:null);else for(a=0;e.length&amp;&amp;a&lt;e.length;a++)e.options[a].selected&amp;&amp;i(e.options[a])}}function eachFormElement(){var e=this,t,n,r=function(t,n){var r,i,s;for(r=0;r&lt;n.length;r++){s=t[byTag](n[r]);for(i=0;i&lt;s.length;i++)serial(s[i],e)}};for(n=0;n&lt;arguments.length;n++)t=arguments[n],/input|select|textarea/i.test(t.tagName)&amp;&amp;serial(t,e),r(t,[&quot;input&quot;,&quot;select&quot;,&quot;textarea&quot;])}function serializeQueryString(){return reqwest.toQueryString(reqwest.serializeArray.apply(null,arguments))}function serializeHash(){var e={};return eachFormElement.apply(function(t,n){t in e?(e[t]&amp;&amp;!isArray(e[t])&amp;&amp;(e[t]=[e[t]]),e[t].push(n)):e[t]=n},arguments),e}var win=window,doc=document,twoHundo=/^20\d$/,byTag=&quot;getElementsByTagName&quot;,readyState=&quot;readyState&quot;,contentType=&quot;Content-Type&quot;,requestedWith=&quot;X-Requested-With&quot;,head=doc[byTag](&quot;head&quot;)[0],uniqid=0,callbackPrefix=&quot;reqwest_&quot;+ +(new Date),lastValue,xmlHttpRequest=&quot;XMLHttpRequest&quot;,noop=function(){},isArray=typeof Array.isArray==&quot;function&quot;?Array.isArray:function(e){return e instanceof Array},defaultHeaders={contentType:&quot;application/x-www-form-urlencoded&quot;,requestedWith:xmlHttpRequest,accept:{&quot;*&quot;:&quot;text/javascript, text/html, application/xml, text/xml, */*&quot;,xml:&quot;application/xml, text/xml&quot;,html:&quot;text/html&quot;,text:&quot;text/plain&quot;,json:&quot;application/json, text/javascript&quot;,js:&quot;application/javascript, text/javascript&quot;}},xhr=win[xmlHttpRequest]?function(){return new XMLHttpRequest}:function(){return new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;)};return Reqwest.prototype={abort:function(){this._aborted=!0,this.request.abort()},retry:function(){init.call(this,this.o,this.fn)},then:function(e,t){return this._fulfilled?e(this._responseArgs.resp):this._erred?t(this._responseArgs.resp,this._responseArgs.msg,this._responseArgs.t):(this._fulfillmentHandlers.push(e),this._errorHandlers.push(t)),this},always:function(e){return this._fulfilled||this._erred?e(this._responseArgs.resp):this._completeHandlers.push(e),this},fail:function(e){return this._erred?e(this._responseArgs.resp,this._responseArgs.msg,this._responseArgs.t):this._errorHandlers.push(e),this}},reqwest.serializeArray=function(){var e=[];return eachFormElement.apply(function(t,n){e.push({name:t,value:n})},arguments),e},reqwest.serialize=function(){if(arguments.length===0)return&quot;&quot;;var e,t,n=Array.prototype.slice.call(arguments,0);return e=n.pop(),e&amp;&amp;e.nodeType&amp;&amp;n.push(e)&amp;&amp;(e=null),e&amp;&amp;(e=e.type),e==&quot;map&quot;?t=serializeHash:e==&quot;array&quot;?t=reqwest.serializeArray:t=serializeQueryString,t.apply(null,n)},reqwest.toQueryString=function(e){var t=&quot;&quot;,n,r=encodeURIComponent,i=function(e,n){t+=r(e)+&quot;=&quot;+r(n)+&quot;&amp;&quot;},s,o;if(isArray(e))for(n=0;e&amp;&amp;n&lt;e.length;n++)i(e[n].name,e[n].value);else for(s in e){if(!Object.hasOwnProperty.call(e,s))continue;o=e[s];if(isArray(o))for(n=0;n&lt;o.length;n++)i(s,o[n]);else i(s,e[s])}return t.replace(/&amp;$/,&quot;&quot;).replace(/%20/g,&quot;+&quot;)},reqwest.getcallbackPrefix=function(){return callbackPrefix},reqwest.compat=function(e,t){return e&amp;&amp;(e.type&amp;&amp;(e.method=e.type)&amp;&amp;delete e.type,e.dataType&amp;&amp;(e.type=e.dataType),e.jsonpCallback&amp;&amp;(e.jsonpCallbackName=e.jsonpCallback)&amp;&amp;delete e.jsonpCallback,e.jsonp&amp;&amp;(e.jsonpCallback=e.jsonp)),new Reqwest(e,t)},reqwest}),wax=wax||{},wax.attribution=function(){var e={},t=document.createElement(&quot;div&quot;);return t.className=&quot;map-attribution&quot;,e.content=function(e){return typeof e==&quot;undefined&quot;?t.innerHTML:(t.innerHTML=wax.u.sanitize(e),this)},e.element=function(){return t},e.init=function(){return this},e},wax=wax||{},wax.bwdetect=function(e,t){function a(){wax.bw=-1;var e=new Image;e.src=s;var t=!0,i=setTimeout(function(){t&amp;&amp;wax.bw==-1&amp;&amp;(n.bw(0),t=!1)},r);e.onload=function(){t&amp;&amp;wax.bw==-1&amp;&amp;(clearTimeout(i),n.bw(1),t=!1)}}var n={},r=e.threshold||400,s=&quot;http://a.tiles.mapbox.com/mapbox/1.0.0/blue-marble-topo-bathy-jul/0/0/0.png?preventcache=&quot;+ +(new Date),o=1,u=e.auto===undefined?!0:e.auto;return n.bw=function(e){if(!arguments.length)return o;var n=o;wax.bwlisteners&amp;&amp;wax.bwlisteners.length&amp;&amp;function(){listeners=wax.bwlisteners,wax.bwlisteners=[];for(i=0;i&lt;listeners;i++)listeners[i](e)}(),wax.bw=e,o!=(o=e)&amp;&amp;t(e)},n.add=function(){return u&amp;&amp;a(),this},wax.bw==-1?(wax.bwlisteners=wax.bwlisteners||[],wax.bwlisteners.push(n.bw)):wax.bw!==undefined?n.bw(wax.bw):n.add(),n},wax.formatter=function(x){var formatter={},f;if(x&amp;&amp;typeof x==&quot;string&quot;)try{eval(&quot;f = &quot;+x)}catch(e){console&amp;&amp;console.log(e)}else x&amp;&amp;typeof x==&quot;function&quot;?f=x:f=function(){};return formatter.format=function(e,t){try{return wax.u.sanitize(f(e,t))}catch(n){console&amp;&amp;console.log(n)}},formatter},wax.gi=function(e,t){function s(e){return e&gt;=93&amp;&amp;e--,e&gt;=35&amp;&amp;e--,e-=32,e}t=t||{};var n={},r=t.resolution||4,i=t.tileSize||256;return n.grid_tile=function(){return e},n.getKey=function(t,n){if(!e||!e.grid)return;if(n&lt;0||t&lt;0)return;if(Math.floor(n)&gt;=i||Math.floor(t)&gt;=i)return;return s(e.grid[Math.floor(n/r)].charCodeAt(Math.floor(t/r)))},n.gridFeature=function(t,n){var r=this.getKey(t,n),i=e.keys;if(i&amp;&amp;i[r]&amp;&amp;e.data[i[r]])return e.data[i[r]]},n.tileFeature=function(t,n,r){if(!e)return;var i=wax.u.offset(r);return feature=this.gridFeature(t-i.left,n-i.top),feature},n},wax.gm=function(){function o(e){return typeof e==&quot;string&quot;&amp;&amp;(e=[e]),function(r){if(!r)return;var i=new RegExp(n.tileRegexp()),s=i.exec(r);if(!s)return;return e[parseInt(s[2],10)%e.length].replace(/\{z\}/g,s[1]).replace(/\{x\}/g,s[2]).replace(/\{y\}/g,s[3])}}var e=4,t={},n={},r,i,s=function(e){if(e)return e.replace(/(\.png|\.jpg|\.jpeg)(\d*)/,&quot;.grid.json&quot;)};return n.tileRegexp=function(){var e=r.tiles[0],t=e.indexOf(&quot;?&quot;);t!==-1&amp;&amp;(e=e.substr(0,t)),e=e.replace(/[\(\)\?\$\*\+\^]/g,&quot;.&quot;),e.indexOf(&quot;https&quot;)===0?e=e.replace(&quot;:443&quot;,&quot;[:0-9]*&quot;):e.indexOf(&quot;http&quot;)===0&amp;&amp;(e=e.replace(&quot;:80&quot;,&quot;[:0-9]*&quot;));var n=&quot;&quot;;if(r.tiles.length&gt;1){var i=r.tiles[0],s=r.tiles[1];for(var o=0;o&lt;i.length;++o)i.charAt(o)!=s.charAt(o)?n+=&quot;.&quot;:n+=e.charAt(o)||&quot;&quot;}else n=e;return n.replace(/\{x\}/,&quot;(\\d+)&quot;).replace(/\{y\}/,&quot;(\\d+)&quot;).replace(/\{z\}/,&quot;(\\d+)&quot;)},n.formatter=function(e){return arguments.length?(i=wax.formatter(e),n):i},n.template=function(e){return arguments.length?(i=wax.template(e),n):i},n.gridUrl=function(e){return arguments.length?(e?s=typeof e==&quot;function&quot;?e:o(e):s=function(){return null},n):s},n.getGrid=function(t,r){var o=s(t);return!i||!o?r(null,null):(wax.request.get(o,function(t,n){if(t)return r(t,null);r(null,wax.gi(n,{formatter:i,resolution:e}))}),n)},n.tilejson=function(t){return arguments.length?(t.template?n.template(t.template):t.formatter?n.formatter(t.formatter):i=undefined,n.gridUrl(t.grids),t.resolution&amp;&amp;(e=t.resolution),r=t,n):r},n},wax=wax||{},wax.hash=function(e){function i(){return location.hash.substring(1)}function s(e){var t=window.location;t.replace(t.toString().replace(t.hash||/$/,&quot;#&quot;+e))}function o(t){var n=t.split(&quot;/&quot;);for(var r=0;r&lt;n.length;r++){n[r]=Number(n[r]);if(isNaN(n[r]))return!0}if(n.length&lt;3)return!0;n.length==3&amp;&amp;e.setCenterZoom(n)}function u(){var n=e.getCenterZoom();t!==n&amp;&amp;(t=n,s(t))}function a(e){if(e===t)return;o(t=e)&amp;&amp;u()}e=e||{};var t,n={},r=90-1e-8,f=wax.u.throttle(u,500);return n.add=function(){return a(i()),e.bindChange(f),n},n.remove=function(){return e.unbindChange(f),n},n},wax=wax||{},wax.interaction=function(){function v(t){var n=o(),r=new RegExp(e.tileRegexp());for(var i=0;i&lt;n.length;i++)if(t){var s=n[i][0]&lt;=t.y&amp;&amp;n[i][0]+256&gt;t.y&amp;&amp;n[i][1]&lt;=t.x&amp;&amp;n[i][1]+256&gt;t.x;if(s&amp;&amp;r.exec(n[i][2].src))return n[i][2]}return!1}function m(){return r?(window.clearTimeout(r),r=null,!0):!1}function g(r){if(n)return;var i=r.type!=&quot;MSPointerMove&quot;?r:r.originalEvent,s=wax.u.eventoffset(i);t.screen_feature(s,function(n){n?bean.fire(t,&quot;on&quot;,{parent:f(),data:n,formatter:e.formatter().format,e:r}):bean.fire(t,&quot;off&quot;)})}function y(e){n=!0;var r=e.type!=&quot;MSPointerDown&quot;?e:e.originalEvent;i=wax.u.eventoffset(r),e.type===&quot;mousedown&quot;?(bean.add(document.body,&quot;click&quot;,E),bean.add(document.body,&quot;mouseup&quot;,b)):e.type===&quot;touchstart&quot;&amp;&amp;e.touches.length===1?(bean.fire(t,&quot;off&quot;),bean.add(f(),p)):e.originalEvent.type===&quot;MSPointerDown&quot;&amp;&amp;e.originalEvent.touches&amp;&amp;e.originalEvent.touches.length===1&amp;&amp;(bean.fire(t,&quot;off&quot;),bean.add(f(),d))}function b(){n=!1}function w(){bean.remove(f(),p),bean.remove(f(),d),n=!1}function E(e){var o={},u=e.type!=&quot;MSPointerMove&quot;&amp;&amp;e.type!=&quot;MSPointerUp&quot;?e:e.originalEvent,a=wax.u.eventoffset(u);n=!1;for(var l in u)o[l]=u[l];return o.changedTouches=[],bean.remove(document.body,&quot;mouseup&quot;,E),bean.remove(f(),p),bean.remove(f(),d),e.type===&quot;touchend&quot;?t.click(e,i):o.type===&quot;MSPointerMove&quot;||o.type===&quot;MSPointerUp&quot;?t.click(o,a):Math.round(a.y/s)===Math.round(i.y/s)&amp;&amp;Math.round(a.x/s)===Math.round(i.x/s)&amp;&amp;(r?m():r=window.setTimeout(function(){r=null,t.click(o,a)},150)),E}var e=wax.gm(),t={},n=!1,r=null,i,s=4,o,u,a,f,l,c,h={mousemove:g,touchstart:y,mousedown:y},p={touchend:E,touchmove:E,touchcancel:w},d={MSPointerUp:E,MSPointerMove:E,MSPointerCancel:w};return t.click=function(n,r){t.screen_feature(r,function(r){r&amp;&amp;bean.fire(t,&quot;on&quot;,{parent:f(),data:r,formatter:e.formatter().format,e:n})})},t.screen_feature=function(t,n){var r=v(t);r||n(null),e.getGrid(r.src,function(e,i){if(e||!i)return n(null);var s=i.tileFeature(t.x,t.y,r);n(s)})},t.attach=function(e){return arguments.length?(u=e,t):u},t.detach=function(e){return arguments.length?(a=e,t):a},t.map=function(e){return arguments.length?(l=e,u&amp;&amp;u(l),bean.add(f(),h),bean.add(f(),&quot;touchstart&quot;,y),bean.add(f(),&quot;MSPointerDown&quot;,y),t):l},t.grid=function(e){return arguments.length?(o=e,t):o},t.remove=function(e){return a&amp;&amp;a(l),bean.remove(f(),h),bean.fire(t,&quot;remove&quot;),t},t.tilejson=function(n){return arguments.length?(e.tilejson(n),t):e.tilejson()},t.formatter=function(){return e.formatter()},t.on=function(e,n){return bean.add(t,e,n),t},t.off=function(e,n){return bean.remove(t,e,n),t},t.gridmanager=function(n){return arguments.length?(e=n,t):e},t.parent=function(e){return f=e,t},t};var wax=wax||{};wax.location=function(){function t(e){if(e.e.type===&quot;mousemove&quot;||!e.e.type)return;var t=e.formatter({format:&quot;location&quot;},e.data);t&amp;&amp;(window.location.href=t)}var e={};return e.events=function(){return{on:t}},e};var wax=wax||{};wax.request={cache:{},locks:{},promises:{},get:function(e,t){if(this.cache[e])return t(this.cache[e][0],this.cache[e][1]);this.promises[e]=this.promises[e]||[],this.promises[e].push(t);if(this.locks[e])return;var n=this;this.locks[e]=!0,reqwest({url:e+(~e.indexOf(&quot;?&quot;)?&quot;&amp;&quot;:&quot;?&quot;)+&quot;callback=grid&quot;,type:&quot;jsonp&quot;,jsonpCallback:&quot;callback&quot;,success:function(t){n.locks[e]=!1,n.cache[e]=[null,t];for(var r=0;r&lt;n.promises[e].length;r++)n.promises[e][r](n.cache[e][0],n.cache[e][1])},error:function(t){n.locks[e]=!1,n.cache[e]=[t,null];for(var r=0;r&lt;n.promises[e].length;r++)n.promises[e][r](n.cache[e][0],n.cache[e][1])}})}},wax.template=function(e){var t={};return t.format=function(t,n){var r={};for(var i in n)r[i]=n[i];return t.format&amp;&amp;(r[&quot;__&quot;+t.format+&quot;__&quot;]=!0),wax.u.sanitize(Mustache.to_html(e,r))},t};if(!wax)var wax={};wax.tilejson=function(e,t){reqwest({url:e+(~e.indexOf(&quot;?&quot;)?&quot;&amp;&quot;:&quot;?&quot;)+&quot;callback=grid&quot;,type:&quot;jsonp&quot;,jsonpCallback:&quot;callback&quot;,success:t,error:t})};var wax=wax||{};wax.u={offset:function(e){var t=e.offsetWidth||parseInt(e.style.width,10),n=e.offsetHeight||parseInt(e.style.height,10),r=document.body,i=0,s=0,o=function(e){if(e===r||e===document.documentElement)return;i+=e.offsetTop,s+=e.offsetLeft;var t=e.style.transform||e.style.WebkitTransform||e.style.OTransform||e.style.MozTransform||e.style.msTransform;if(t){var n;if(n=t.match(/translate\((.+)px, (.+)px\)/))i+=parseInt(n[2],10),s+=parseInt(n[1],10);else if(n=t.match(/translate3d\((.+)px, (.+)px, (.+)px\)/))i+=parseInt(n[2],10),s+=parseInt(n[1],10);else if(n=t.match(/matrix3d\(([\-\d,\s]+)\)/)){var o=n[1].split(&quot;,&quot;);i+=parseInt(o[13],10),s+=parseInt(o[12],10)}else if(n=t.match(/matrix\(.+, .+, .+, .+, (.+), (.+)\)/))i+=parseInt(n[2],10),s+=parseInt(n[1],10)}};if(typeof e.getBoundingClientRect!=&quot;undefined&quot;){var u=document.body,a=e.ownerDocument.documentElement,f=document.clientTop||u.clientTop||0,l=document.clientLeft||u.clientLeft||0,c=window.pageYOffset||a.scrollTop,h=window.pageXOffset||a.scrollLeft,p=e.getBoundingClientRect();i=p.top+c-f,s=p.left+h-l}else{o(e);try{while(e=e.offsetParent)o(e)}catch(d){}}i+=r.offsetTop,s+=r.offsetLeft,i+=r.parentNode.offsetTop,s+=r.parentNode.offsetLeft;var v=document.defaultView?window.getComputedStyle(r.parentNode,null):r.parentNode.currentStyle;return r.parentNode.offsetTop!==parseInt(v.marginTop,10)&amp;&amp;!isNaN(parseInt(v.marginTop,10))&amp;&amp;(i+=parseInt(v.marginTop,10),s+=parseInt(v.marginLeft,10)),{top:i,left:s,height:n,width:t}},$:function(e){return typeof e==&quot;string&quot;?document.getElementById(e):e},eventoffset:function(e){var t=0,n=0;e||(e=window.event);if(e.type==&quot;MSPointerMove&quot;||e.type==&quot;MSPointerDown&quot;||e.type==&quot;MSPointerUp&quot;)return{x:e.pageX+window.pageXOffset,y:e.pageY+window.pageYOffset};if(e.pageX||e.pageY)return{x:e.pageX,y:e.pageY};if(e.clientX||e.clientY)return{x:e.clientX,y:e.clientY};if(e.touches&amp;&amp;e.touches.length===1)return{x:e.touches[0].pageX,y:e.touches[0].pageY}},limit:function(e,t,n){var r;return function(){var i=this,s=arguments,o=function(){r=null,e.apply(i,s)};n&amp;&amp;clearTimeout(r);if(n||!r)r=setTimeout(o,t)}},throttle:function(e,t){return this.limit(e,t,!1)},sanitize:function(e){function t(e){if(/^(https?:\/\/|data:image)/.test(e))return e}function n(e){return e}return e?html_sanitize(e,t,n):&quot;&quot;}},wax=wax||{},wax.leaf=wax.leaf||{},wax.leaf.hash=function(e){return wax.hash({getCenterZoom:function(){var t=e.getCenter(),n=e.getZoom(),r=Math.max(0,Math.ceil(Math.log(n)/Math.LN2));return[n,t.lat.toFixed(r),t.lng.toFixed(r)].join(&quot;/&quot;)},setCenterZoom:function(t){e.setView(new L.LatLng(t[1],t[2]),t[0])},bindChange:function(t){e.on(&quot;moveend&quot;,t)},unbindChange:function(t){e.off(&quot;moveend&quot;,t)}})},wax=wax||{},wax.leaf=wax.leaf||{},wax.leaf.interaction=function(){function r(){e=!0}function i(){return!e&amp;&amp;t?t:t=function(e){var t=[];for(var n in e)if(e[n]._tiles)for(var r in e[n]._tiles){var i=e[n]._tiles[r];if(i.src){var s=wax.u.offset(i);t.push([s.top,s.left,i])}}return t}(n._layers)}function s(e){if(!arguments.length)return n;n=e;var t=[&quot;moveend&quot;];for(var i=0;i&lt;t.length;i++)n.on(t[i],r)}function o(e){if(!arguments.length)return n;n=e;var t=[&quot;moveend&quot;];for(var i=0;i&lt;t.length;i++)n.off(t[i],r)}var e=!1,t,n;return wax.interaction().attach(s).detach(o).parent(function(){return n._container}).grid(i)},wax=wax||{},wax.leaf=wax.leaf||{},wax.leaf.connector=L.TileLayer.extend({initialize:function(e){e=e||{},e.minZoom=e.minzoom||0,e.maxZoom=e.maxzoom||22,L.TileLayer.prototype.initialize.call(this,e.tiles[0],e)}}),wax=wax||{},wax.g=wax.g||{},wax.g.attribution=function(e,t){t=t||{};var n,r={};return r.element=function(){return n.element()},r.appendTo=</td>
      </tr>
      <tr>
        <td id="L13" class="blob-num js-line-number" data-line-number="13"></td>
        <td id="LC13" class="blob-code js-file-line">function(e){return wax.u.$(e).appendChild(n.element()),this},r.init=function(){return n=wax.attribution(),n.content(t.attribution),n.element().className=&quot;map-attribution map-g&quot;,this},r.init()},wax=wax||{},wax.g=wax.g||{},wax.g.bwdetect=function(e,t){t=t||{};var n=t.png||&quot;.png128&quot;,r=t.jpg||&quot;.jpg70&quot;;if(!e.mapTypes[&quot;mb-low&quot;]){var i=e.mapTypes.mb,s={tiles:[],scheme:i.options.scheme,blankImage:i.options.blankImage,minzoom:i.minZoom,maxzoom:i.maxZoom,name:i.name,description:i.description};for(var o=0;o&lt;i.options.tiles.length;o++)s.tiles.push(i.options.tiles[o].replace(&quot;.png&quot;,n).replace(&quot;.jpg&quot;,r));m.mapTypes.set(&quot;mb-low&quot;,new wax.g.connector(s))}return wax.bwdetect(t,function(t){e.setMapTypeId(t?&quot;mb&quot;:&quot;mb-low&quot;)})},wax=wax||{},wax.g=wax.g||{},wax.g.hash=function(e){return wax.hash({getCenterZoom:function(){var t=e.getCenter(),n=e.getZoom(),r=Math.max(0,Math.ceil(Math.log(n)/Math.LN2));return[n.toFixed(2),t.lat().toFixed(r),t.lng().toFixed(r)].join(&quot;/&quot;)},setCenterZoom:function(n){e.setCenter(new google.maps.LatLng(n[1],n[2])),e.setZoom(n[0])},bindChange:function(t){google.maps.event.addListener(e,&quot;idle&quot;,t)},unbindChange:function(t){google.maps.event.removeListener(e,&quot;idle&quot;,t)}})},wax=wax||{},wax.g=wax.g||{},wax.g.interaction=function(){function s(){e=!0}function o(){if(!e&amp;&amp;t)return t;t=[];var r=n.getZoom(),i=wax.u.offset(n.getDiv()),s=function(e){if(!e.interactive)return;for(var n in e.cache){if(n.split(&quot;/&quot;)[0]!=r)continue;var i=wax.u.offset(e.cache[n]);t.push([i.top,i.left,e.cache[n]])}};for(var o in n.mapTypes)s(n.mapTypes[o]);return n.overlayMapTypes.forEach(s),t}function u(e){if(!arguments.length)return n;n=e,r=google.maps.event.addListener(n,&quot;tileloaded&quot;,s),i=google.maps.event.addListener(n,&quot;idle&quot;,s)}function a(e){r&amp;&amp;google.maps.event.removeListener(r),i&amp;&amp;google.maps.event.removeListener(i)}var e=!1,t,n,r=null,i=null;return wax.interaction().attach(u).detach(a).parent(function(){return n.getDiv()}).grid(o)};var wax=wax||{};wax.g=wax.g||{},wax.g.connector=function(e){e=e||{},this.options={tiles:e.tiles,scheme:e.scheme||&quot;xyz&quot;,blankImage:e.blankImage||&quot;data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=&quot;},this.opacity=e.opacity||0,this.minZoom=e.minzoom||0,this.maxZoom=e.maxzoom||22,this.name=e.name||&quot;&quot;,this.description=e.description||&quot;&quot;,this.interactive=!0,this.tileSize=new google.maps.Size(256,256),this.cache={}},wax.g.connector.prototype.getTile=function(e,t,n){var r=t+&quot;/&quot;+e.x+&quot;/&quot;+e.y;if(!this.cache[r]){var i=this.cache[r]=new Image(256,256);this.cache[r].src=this.getTileUrl(e,t),this.cache[r].setAttribute(&quot;gTileKey&quot;,r),this.cache[r].setAttribute(&quot;style&quot;,&quot;opacity: &quot;+this.opacity+&quot;; filter: alpha(opacity=&quot;+this.opacity*100+&quot;);&quot;),this.cache[r].onerror=function(){i.style.display=&quot;none&quot;}}return this.cache[r]},wax.g.connector.prototype.releaseTile=function(e){var t=e.getAttribute(&quot;gTileKey&quot;);this.cache[t]&amp;&amp;delete this.cache[t],e.parentNode&amp;&amp;e.parentNode.removeChild(e)},wax.g.connector.prototype.getTileUrl=function(e,t){var n=Math.pow(2,t),r=this.options.scheme===&quot;tms&quot;?n-1-e.y:e.y,i=e.x%n;return i=i&lt;0?e.x%n+n:i,r&lt;0?this.options.blankImage:this.options.tiles[parseInt(i+r,10)%this.options.tiles.length].replace(/\{z\}/g,t).replace(/\{x\}/g,i).replace(/\{y\}/g,r)};var GeoJSON=function(e,t){var n=function(e,t,s){var o;switch(e.type){case&quot;Point&quot;:t.position=new google.maps.LatLng(e.coordinates[1],e.coordinates[0]),o=new google.maps.Marker(t),s&amp;&amp;o.set(&quot;geojsonProperties&quot;,s);break;case&quot;MultiPoint&quot;:o=[];for(var u=0;u&lt;e.coordinates.length;u++)t.position=new google.maps.LatLng(e.coordinates[u][1],e.coordinates[u][0]),o.push(new google.maps.Marker(t));if(s)for(var a=0;a&lt;o.length;a++)o[a].set(&quot;geojsonProperties&quot;,s);break;case&quot;LineString&quot;:var f=[];for(var u=0;u&lt;e.coordinates.length;u++){var l=e.coordinates[u],c=new google.maps.LatLng(l[1],l[0]);f.push(c)}t.path=f,o=new google.maps.Polyline(t),s&amp;&amp;o.set(&quot;geojsonProperties&quot;,s);break;case&quot;MultiLineString&quot;:o=[];for(var u=0;u&lt;e.coordinates.length;u++){var f=[];for(var h=0;h&lt;e.coordinates[u].length;h++){var l=e.coordinates[u][h],c=new google.maps.LatLng(l[1],l[0]);f.push(c)}t.path=f,o.push(new google.maps.Polyline(t))}if(s)for(var a=0;a&lt;o.length;a++)o[a].set(&quot;geojsonProperties&quot;,s);break;case&quot;Polygon&quot;:var p=[],d,v;for(var u=0;u&lt;e.coordinates.length;u++){var f=[];for(var h=0;h&lt;e.coordinates[u].length;h++){var c=new google.maps.LatLng(e.coordinates[u][h][1],e.coordinates[u][h][0]);f.push(c)}u?u==1?(v=i(f),d==v?p.push(f.reverse()):p.push(f)):d==v?p.push(f.reverse()):p.push(f):(d=i(f),p.push(f))}t.paths=p,o=new google.maps.Polygon(t),s&amp;&amp;o.set(&quot;geojsonProperties&quot;,s);break;case&quot;MultiPolygon&quot;:o=[];for(var u=0;u&lt;e.coordinates.length;u++){var p=[],d,v;for(var h=0;h&lt;e.coordinates[u].length;h++){var f=[];for(var a=0;a&lt;e.coordinates[u][h].length-1;a++){var c=new google.maps.LatLng(e.coordinates[u][h][a][1],e.coordinates[u][h][a][0]);f.push(c)}h?h==1?(v=i(f),d==v?p.push(f.reverse()):p.push(f)):d==v?p.push(f.reverse()):p.push(f):(d=i(f),p.push(f))}t.paths=p,o.push(new google.maps.Polygon(t))}if(s)for(var a=0;a&lt;o.length;a++)o[a].set(&quot;geojsonProperties&quot;,s);break;case&quot;GeometryCollection&quot;:o=[];if(!e.geometries)o=r(&#39;Invalid GeoJSON object: GeometryCollection object missing &quot;geometries&quot; member.&#39;);else for(var u=0;u&lt;e.geometries.length;u++)o.push(n(e.geometries[u],t,s||null));break;default:o=r(&#39;Invalid GeoJSON object: Geometry object must be one of &quot;Point&quot;, &quot;LineString&quot;, &quot;Polygon&quot; or &quot;MultiPolygon&quot;.&#39;)}return o},r=function(e){return{type:&quot;Error&quot;,message:e}},i=function(e){var t,n=0;for(var r=0;r&lt;e.length-2;r++)n+=(e[r+1].lat()-e[r].lat())*(e[r+2].lng()-e[r].lng())-(e[r+2].lat()-e[r].lat())*(e[r+1].lng()-e[r].lng());return n&gt;0?t=!0:t=!1,t},s,o=t||{};switch(e.type){case&quot;FeatureCollection&quot;:if(!e.features)s=r(&#39;Invalid GeoJSON object: FeatureCollection object missing &quot;features&quot; member.&#39;);else{s=[];for(var u=0;u&lt;e.features.length;u++)s.push(n(e.features[u].geometry,o,e.features[u].properties))}break;case&quot;GeometryCollection&quot;:if(!e.geometries)s=r(&#39;Invalid GeoJSON object: GeometryCollection object missing &quot;geometries&quot; member.&#39;);else{s=[];for(var u=0;u&lt;e.geometries.length;u++)s.push(n(e.geometries[u],o))}break;case&quot;Feature&quot;:!e.properties||!e.geometry?s=r(&#39;Invalid GeoJSON object: Feature object missing &quot;properties&quot; or &quot;geometry&quot; member.&#39;):s=n(e.geometry,o,e.properties);break;case&quot;Point&quot;:case&quot;MultiPoint&quot;:case&quot;LineString&quot;:case&quot;MultiLineString&quot;:case&quot;Polygon&quot;:case&quot;MultiPolygon&quot;:s=e.coordinates?s=n(e,o):r(&#39;Invalid GeoJSON object: Geometry object missing &quot;coordinates&quot; member.&#39;);break;default:s=r(&#39;Invalid GeoJSON object: GeoJSON object must be one of &quot;Point&quot;, &quot;LineString&quot;, &quot;Polygon&quot;, &quot;MultiPolygon&quot;, &quot;Feature&quot;, &quot;FeatureCollection&quot; or &quot;GeometryCollection&quot;.&#39;)}return s};(function(e,t,n){e.fn.jScrollPane=function(r){function i(r,i){function V(t){var i,o,g,y,w,E,x=!1,T=!1;s=t;if(u===n)w=r.scrollTop(),E=r.scrollLeft(),r.css({overflow:&quot;hidden&quot;,padding:0}),a=r.innerWidth()+F,f=r.innerHeight(),r.width(a),u=e(&#39;&lt;div class=&quot;jspPane&quot; /&gt;&#39;).css(&quot;padding&quot;,j).append(r.children()),l=e(&#39;&lt;div class=&quot;jspContainer&quot; /&gt;&#39;).css({width:a+&quot;px&quot;,height:f+&quot;px&quot;}).append(u).appendTo(r);else{r.css(&quot;width&quot;,&quot;&quot;),x=s.stickToBottom&amp;&amp;mt(),T=s.stickToRight&amp;&amp;gt(),y=r.innerWidth()+F!=a||r.outerHeight()!=f,y&amp;&amp;(a=r.innerWidth()+F,f=r.innerHeight(),l.css({width:a+&quot;px&quot;,height:f+&quot;px&quot;}));if(!y&amp;&amp;I==c&amp;&amp;u.outerHeight()==h){r.width(a);return}I=c,u.css(&quot;width&quot;,&quot;&quot;),r.width(a),l.find(&quot;&gt;.jspVerticalBar,&gt;.jspHorizontalBar&quot;).remove().end()}u.css(&quot;overflow&quot;,&quot;auto&quot;),t.contentWidth?c=t.contentWidth:c=u[0].scrollWidth,h=u[0].scrollHeight,u.css(&quot;overflow&quot;,&quot;&quot;),p=c/a,d=h/f,v=d&gt;1,m=p&gt;1,!m&amp;&amp;!v?(r.removeClass(&quot;jspScrollable&quot;),u.css({top:0,width:l.width()-F}),bt(),St(),Tt(),rt()):(r.addClass(&quot;jspScrollable&quot;),i=s.maintainPosition&amp;&amp;(b||S),i&amp;&amp;(o=dt(),g=vt()),J(),Q(),Y(),i&amp;&amp;(ht(T?c-a:o,!1),ct(x?h-f:g,!1)),Et(),yt(),kt(),s.enableKeyboardNavigation&amp;&amp;xt(),s.clickOnTrack&amp;&amp;nt(),Nt(),s.hijackInternalLinks&amp;&amp;Ct()),s.autoReinitialise&amp;&amp;!B?B=setInterval(function(){V(s)},s.autoReinitialiseDelay):!s.autoReinitialise&amp;&amp;B&amp;&amp;clearInterval(B),w&amp;&amp;r.scrollTop(0)&amp;&amp;ct(w,!1),E&amp;&amp;r.scrollLeft(0)&amp;&amp;ht(E,!1),r.trigger(&quot;jsp-initialised&quot;,[m||v])}function J(){v&amp;&amp;(l.append(e(&#39;&lt;div class=&quot;jspVerticalBar&quot; /&gt;&#39;).append(e(&#39;&lt;div class=&quot;jspCap jspCapTop&quot; /&gt;&#39;),e(&#39;&lt;div class=&quot;jspTrack&quot; /&gt;&#39;).append(e(&#39;&lt;div class=&quot;jspDrag&quot; /&gt;&#39;).append(e(&#39;&lt;div class=&quot;jspDragTop&quot; /&gt;&#39;),e(&#39;&lt;div class=&quot;jspDragBottom&quot; /&gt;&#39;))),e(&#39;&lt;div class=&quot;jspCap jspCapBottom&quot; /&gt;&#39;))),x=l.find(&quot;&gt;.jspVerticalBar&quot;),T=x.find(&quot;&gt;.jspTrack&quot;),g=T.find(&quot;&gt;.jspDrag&quot;),s.showArrows&amp;&amp;(L=e(&#39;&lt;a class=&quot;jspArrow jspArrowUp&quot; /&gt;&#39;).bind(&quot;mousedown.jsp&quot;,et(0,-1)).bind(&quot;click.jsp&quot;,wt),A=e(&#39;&lt;a class=&quot;jspArrow jspArrowDown&quot; /&gt;&#39;).bind(&quot;mousedown.jsp&quot;,et(0,1)).bind(&quot;click.jsp&quot;,wt),s.arrowScrollOnHover&amp;&amp;(L.bind(&quot;mouseover.jsp&quot;,et(0,-1,L)),A.bind(&quot;mouseover.jsp&quot;,et(0,1,A))),Z(T,s.verticalArrowPositions,L,A)),C=f,l.find(&quot;&gt;.jspVerticalBar&gt;.jspCap:visible,&gt;.jspVerticalBar&gt;.jspArrow&quot;).each(function(){C-=e(this).outerHeight()}),g.hover(function(){g.addClass(&quot;jspHover&quot;)},function(){g.removeClass(&quot;jspHover&quot;)}).bind(&quot;mousedown.jsp&quot;,function(t){e(&quot;html&quot;).bind(&quot;dragstart.jsp selectstart.jsp&quot;,wt),g.addClass(&quot;jspActive&quot;);var n=t.pageY-g.position().top;return e(&quot;html&quot;).bind(&quot;mousemove.jsp&quot;,function(e){st(e.pageY-n,!1)}).bind(&quot;mouseup.jsp mouseleave.jsp&quot;,it),!1}),K())}function K(){T.height(C+&quot;px&quot;),b=0,N=s.verticalGutter+T.outerWidth(),u.width(a-N-F);try{x.position().left===0&amp;&amp;u.css(&quot;margin-left&quot;,N+&quot;px&quot;)}catch(e){}}function Q(){m&amp;&amp;(l.append(e(&#39;&lt;div class=&quot;jspHorizontalBar&quot; /&gt;&#39;).append(e(&#39;&lt;div class=&quot;jspCap jspCapLeft&quot; /&gt;&#39;),e(&#39;&lt;div class=&quot;jspTrack&quot; /&gt;&#39;).append(e(&#39;&lt;div class=&quot;jspDrag&quot; /&gt;&#39;).append(e(&#39;&lt;div class=&quot;jspDragLeft&quot; /&gt;&#39;),e(&#39;&lt;div class=&quot;jspDragRight&quot; /&gt;&#39;))),e(&#39;&lt;div class=&quot;jspCap jspCapRight&quot; /&gt;&#39;))),O=l.find(&quot;&gt;.jspHorizontalBar&quot;),M=O.find(&quot;&gt;.jspTrack&quot;),w=M.find(&quot;&gt;.jspDrag&quot;),s.showArrows&amp;&amp;(P=e(&#39;&lt;a class=&quot;jspArrow jspArrowLeft&quot; /&gt;&#39;).bind(&quot;mousedown.jsp&quot;,et(-1,0)).bind(&quot;click.jsp&quot;,wt),H=e(&#39;&lt;a class=&quot;jspArrow jspArrowRight&quot; /&gt;&#39;).bind(&quot;mousedown.jsp&quot;,et(1,0)).bind(&quot;click.jsp&quot;,wt),s.arrowScrollOnHover&amp;&amp;(P.bind(&quot;mouseover.jsp&quot;,et(-1,0,P)),H.bind(&quot;mouseover.jsp&quot;,et(1,0,H))),Z(M,s.horizontalArrowPositions,P,H)),w.hover(function(){w.addClass(&quot;jspHover&quot;)},function(){w.removeClass(&quot;jspHover&quot;)}).bind(&quot;mousedown.jsp&quot;,function(t){e(&quot;html&quot;).bind(&quot;dragstart.jsp selectstart.jsp&quot;,wt),w.addClass(&quot;jspActive&quot;);var n=t.pageX-w.position().left;return e(&quot;html&quot;).bind(&quot;mousemove.jsp&quot;,function(e){ut(e.pageX-n,!1)}).bind(&quot;mouseup.jsp mouseleave.jsp&quot;,it),!1}),_=l.innerWidth(),G())}function G(){l.find(&quot;&gt;.jspHorizontalBar&gt;.jspCap:visible,&gt;.jspHorizontalBar&gt;.jspArrow&quot;).each(function(){_-=e(this).outerWidth()}),M.width(_+&quot;px&quot;),S=0}function Y(){if(m&amp;&amp;v){var t=M.outerHeight(),n=T.outerWidth();C-=t,e(O).find(&quot;&gt;.jspCap:visible,&gt;.jspArrow&quot;).each(function(){_+=e(this).outerWidth()}),_-=n,f-=n,a-=t,M.parent().append(e(&#39;&lt;div class=&quot;jspCorner&quot; /&gt;&#39;).css(&quot;width&quot;,t+&quot;px&quot;)),K(),G()}m&amp;&amp;u.width(l.outerWidth()-F+&quot;px&quot;),h=u.outerHeight(),d=h/f,m&amp;&amp;(D=Math.ceil(1/p*_),D&gt;s.horizontalDragMaxWidth?D=s.horizontalDragMaxWidth:D&lt;s.horizontalDragMinWidth&amp;&amp;(D=s.horizontalDragMinWidth),w.width(D+&quot;px&quot;),E=_-D,at(S)),v&amp;&amp;(k=Math.ceil(1/d*C),k&gt;s.verticalDragMaxHeight?k=s.verticalDragMaxHeight:k&lt;s.verticalDragMinHeight&amp;&amp;(k=s.verticalDragMinHeight),g.height(k+&quot;px&quot;),y=C-k,ot(b))}function Z(e,t,n,r){var i=&quot;before&quot;,s=&quot;after&quot;,o;t==&quot;os&quot;&amp;&amp;(t=/Mac/.test(navigator.platform)?&quot;after&quot;:&quot;split&quot;),t==i?s=t:t==s&amp;&amp;(i=t,o=n,n=r,r=o),e[i](n)[s](r)}function et(e,t,n){return function(){return tt(e,t,this,n),this.blur(),!1}}function tt(t,n,r,i){r=e(r).addClass(&quot;jspActive&quot;);var u,a,f=!0,l=function(){t!==0&amp;&amp;o.scrollByX(t*s.arrowButtonSpeed),n!==0&amp;&amp;o.scrollByY(n*s.arrowButtonSpeed),a=setTimeout(l,f?s.initialDelay:s.arrowRepeatFreq),f=!1};l(),u=i?&quot;mouseout.jsp&quot;:&quot;mouseup.jsp&quot;,i=i||e(&quot;html&quot;),i.bind(u,function(){r.removeClass(&quot;jspActive&quot;),a&amp;&amp;clearTimeout(a),a=null,i.unbind(u)})}function nt(){rt(),v&amp;&amp;T.bind(&quot;mousedown.jsp&quot;,function(t){if(t.originalTarget===n||t.originalTarget==t.currentTarget){var r=e(this),i=r.offset(),u=t.pageY-i.top-b,a,l=!0,c=function(){var e=r.offset(),n=t.pageY-e.top-k/2,i=f*s.scrollPagePercent,d=y*i/(h-f);if(u&lt;0)b-d&gt;n?o.scrollByY(-i):st(n);else{if(!(u&gt;0)){p();return}b+d&lt;n?o.scrollByY(i):st(n)}a=setTimeout(c,l?s.initialDelay:s.trackClickRepeatFreq),l=!1},p=function(){a&amp;&amp;clearTimeout(a),a=null,e(document).unbind(&quot;mouseup.jsp&quot;,p)};return c(),e(document).bind(&quot;mouseup.jsp&quot;,p),!1}}),m&amp;&amp;M.bind(&quot;mousedown.jsp&quot;,function(t){if(t.originalTarget===n||t.originalTarget==t.currentTarget){var r=e(this),i=r.offset(),u=t.pageX-i.left-S,f,l=!0,h=function(){var e=r.offset(),n=t.pageX-e.left-D/2,i=a*s.scrollPagePercent,d=E*i/(c-a);if(u&lt;0)S-d&gt;n?o.scrollByX(-i):ut(n);else{if(!(u&gt;0)){p();return}S+d&lt;n?o.scrollByX(i):ut(n)}f=setTimeout(h,l?s.initialDelay:s.trackClickRepeatFreq),l=!1},p=function(){f&amp;&amp;clearTimeout(f),f=null,e(document).unbind(&quot;mouseup.jsp&quot;,p)};return h(),e(document).bind(&quot;mouseup.jsp&quot;,p),!1}})}function rt(){M&amp;&amp;M.unbind(&quot;mousedown.jsp&quot;),T&amp;&amp;T.unbind(&quot;mousedown.jsp&quot;)}function it(){e(&quot;html&quot;).unbind(&quot;dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp&quot;),g&amp;&amp;g.removeClass(&quot;jspActive&quot;),w&amp;&amp;w.removeClass(&quot;jspActive&quot;)}function st(e,t){if(!v)return;e&lt;0?e=0:e&gt;y&amp;&amp;(e=y),t===n&amp;&amp;(t=s.animateScroll),t?o.animate(g,&quot;top&quot;,e,ot):(g.css(&quot;top&quot;,e),ot(e))}function ot(e){e===n&amp;&amp;(e=g.position().top),l.scrollTop(0),b=e;var t=b===0,i=b==y,s=e/y,o=-s*(h-f);if(q!=t||U!=i)q=t,U=i,r.trigger(&quot;jsp-arrow-change&quot;,[q,U,R,z]);ft(t,i),u.css(&quot;top&quot;,o),r.trigger(&quot;jsp-scroll-y&quot;,[-o,t,i]).trigger(&quot;scroll&quot;)}function ut(e,t){if(!m)return;e&lt;0?e=0:e&gt;E&amp;&amp;(e=E),t===n&amp;&amp;(t=s.animateScroll),t?o.animate(w,&quot;left&quot;,e,at):(w.css(&quot;left&quot;,e),at(e))}function at(e){e===n&amp;&amp;(e=w.position().left),l.scrollTop(0),S=e;var t=S===0,i=S==E,s=e/E,o=-s*(c-a);if(R!=t||z!=i)R=t,z=i,r.trigger(&quot;jsp-arrow-change&quot;,[q,U,R,z]);lt(t,i),u.css(&quot;left&quot;,o),r.trigger(&quot;jsp-scroll-x&quot;,[-o,t,i]).trigger(&quot;scroll&quot;)}function ft(e,t){s.showArrows&amp;&amp;(L[e?&quot;addClass&quot;:&quot;removeClass&quot;](&quot;jspDisabled&quot;),A[t?&quot;addClass&quot;:&quot;removeClass&quot;](&quot;jspDisabled&quot;))}function lt(e,t){s.showArrows&amp;&amp;(P[e?&quot;addClass&quot;:&quot;removeClass&quot;](&quot;jspDisabled&quot;),H[t?&quot;addClass&quot;:&quot;removeClass&quot;](&quot;jspDisabled&quot;))}function ct(e,t){var n=e/(h-f);st(n*y,t)}function ht(e,t){var n=e/(c-a);ut(n*E,t)}function pt(t,n,r){var i,o,u,c=0,h=0,p,d,v,m,g,y;try{i=e(t)}catch(b){return}o=i.outerHeight(),u=i.outerWidth(),l.scrollTop(0),l.scrollLeft(0);while(!i.is(&quot;.jspPane&quot;)){c+=i.position().top,h+=i.position().left,i=i.offsetParent();if(/^body|html$/i.test(i[0].nodeName))return}p=vt(),v=p+f,c&lt;p||n?g=c-s.verticalGutter:c+o&gt;v&amp;&amp;(g=c-f+o+s.verticalGutter),g&amp;&amp;ct(g,r),d=dt(),m=d+a,h&lt;d||n?y=h-s.horizontalGutter:h+u&gt;m&amp;&amp;(y=h-a+u+s.horizontalGutter),y&amp;&amp;ht(y,r)}function dt(){return-u.position().left}function vt(){return-u.position().top}function mt(){var e=h-f;return e&gt;20&amp;&amp;e-vt()&lt;10}function gt(){var e=c-a;return e&gt;20&amp;&amp;e-dt()&lt;10}function yt(){l.unbind(X).bind(X,function(e,t,n,r){var i=S,u=b;return o.scrollBy(n*s.mouseWheelSpeed,-r*s.mouseWheelSpeed,!1),i==S&amp;&amp;u==b})}function bt(){l.unbind(X)}function wt(){return!1}function Et(){u.find(&quot;:input,a&quot;).unbind(&quot;focus.jsp&quot;).bind(&quot;focus.jsp&quot;,function(e){pt(e.target,!1)})}function St(){u.find(&quot;:input,a&quot;).unbind(&quot;focus.jsp&quot;)}function xt(){function a(){var e=S,r=b;switch(t){case 40:o.scrollByY(s.keyboardSpeed,!1);break;case 38:o.scrollByY(-s.keyboardSpeed,!1);break;case 34:case 32:o.scrollByY(f*s.scrollPagePercent,!1);break;case 33:o.scrollByY(-f*s.scrollPagePercent,!1);break;case 39:o.scrollByX(s.keyboardSpeed,!1);break;case 37:o.scrollByX(-s.keyboardSpeed,!1)}return n=e!=S||r!=b,n}var t,n,i=[];m&amp;&amp;i.push(O[0]),v&amp;&amp;i.push(x[0]),u.focus(function(){r.focus()}),r.attr(&quot;tabindex&quot;,0).unbind(&quot;keydown.jsp keypress.jsp&quot;).bind(&quot;keydown.jsp&quot;,function(r){if(r.target!==this&amp;&amp;(!i.length||!e(r.target).closest(i).length))return;var s=S,o=b;switch(r.keyCode){case 40:case 38:case 34:case 32:case 33:case 39:case 37:t=r.keyCode,a();break;case 35:ct(h-f),t=null;break;case 36:ct(0),t=null}return n=r.keyCode==t&amp;&amp;s!=S||o!=b,!n}).bind(&quot;keypress.jsp&quot;,function(e){return e.keyCode==t&amp;&amp;a(),!n}),s.hideFocus?(r.css(&quot;outline&quot;,&quot;none&quot;),&quot;hideFocus&quot;in l[0]&amp;&amp;r.attr(&quot;hideFocus&quot;,!0)):(r.css(&quot;outline&quot;,&quot;&quot;),&quot;hideFocus&quot;in l[0]&amp;&amp;r.attr(&quot;hideFocus&quot;,!1))}function Tt(){r.attr(&quot;tabindex&quot;,&quot;-1&quot;).removeAttr(&quot;tabindex&quot;).unbind(&quot;keydown.jsp keypress.jsp&quot;)}function Nt(){if(location.hash&amp;&amp;location.hash.length&gt;1){var t,n,r=escape(location.hash.substr(1));try{t=e(&quot;#&quot;+r+&#39;, a[name=&quot;&#39;+r+&#39;&quot;]&#39;)}catch(i){return}t.length&amp;&amp;u.find(r)&amp;&amp;(l.scrollTop()===0?n=setInterval(function(){l.scrollTop()&gt;0&amp;&amp;(pt(t,!0),e(document).scrollTop(l.position().top),clearInterval(n))},50):(pt(t,!0),e(document).scrollTop(l.position().top)))}}function Ct(){if(e(document.body).data(&quot;jspHijack&quot;))return;e(document.body).data(&quot;jspHijack&quot;,!0),e(document.body).delegate(&quot;a[href*=#]&quot;,&quot;click&quot;,function(n){var r=this.href.substr(0,this.href.indexOf(&quot;#&quot;)),i=location.href,s,o,u,a,f,l;location.href.indexOf(&quot;#&quot;)!==-1&amp;&amp;(i=location.href.substr(0,location.href.indexOf(&quot;#&quot;)));if(r!==i)return;s=escape(this.href.substr(this.href.indexOf(&quot;#&quot;)+1)),o;try{o=e(&quot;#&quot;+s+&#39;, a[name=&quot;&#39;+s+&#39;&quot;]&#39;)}catch(c){return}if(!o.length)return;u=o.closest(&quot;.jspScrollable&quot;),a=u.data(&quot;jsp&quot;),a.scrollToElement(o,!0),u[0].scrollIntoView&amp;&amp;(f=e(t).scrollTop(),l=o.offset().top,(l&lt;f||l&gt;f+e(t).height())&amp;&amp;u[0].scrollIntoView()),n.preventDefault()})}function kt(){var e,t,n,r,i,s=!1;l.unbind(&quot;touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick&quot;).bind(&quot;touchstart.jsp&quot;,function(o){var u=o.originalEvent.touches[0];e=dt(),t=vt(),n=u.pageX,r=u.pageY,i=!1,s=!0}).bind(&quot;touchmove.jsp&quot;,function(u){if(!s)return;var a=u.originalEvent.touches[0],f=S,l=b;return o.scrollTo(e+n-a.pageX,t+r-a.pageY),i=i||Math.abs(n-a.pageX)&gt;5||Math.abs(r-a.pageY)&gt;5,f==S&amp;&amp;l==b}).bind(&quot;touchend.jsp&quot;,function(e){s=!1}).bind(&quot;click.jsp-touchclick&quot;,function(e){if(i)return i=!1,!1})}function Lt(){var e=vt(),t=dt();r.removeClass(&quot;jspScrollable&quot;).unbind(&quot;.jsp&quot;),r.replaceWith(W.append(u.children())),W.scrollTop(e),W.scrollLeft(t),B&amp;&amp;clearInterval(B)}var s,o=this,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q=!0,R=!0,U=!1,z=!1,W=r.clone(!1,!1).empty(),X=e.fn.mwheelIntent?&quot;mwheelIntent.jsp&quot;:&quot;mousewheel.jsp&quot;;j=r.css(&quot;paddingTop&quot;)+&quot; &quot;+r.css(&quot;paddingRight&quot;)+&quot; &quot;+r.css(&quot;paddingBottom&quot;)+&quot; &quot;+r.css(&quot;paddingLeft&quot;),F=(parseInt(r.css(&quot;paddingLeft&quot;),10)||0)+(parseInt(r.css(&quot;paddingRight&quot;),10)||0),e.extend(o,{reinitialise:function(t){t=e.extend({},s,t),V(t)},scrollToElement:function(e,t,n){pt(e,t,n)},scrollTo:function(e,t,n){ht(e,n),ct(t,n)},scrollToX:function(e,t){ht(e,t)},scrollToY:function(e,t){ct(e,t)},scrollToPercentX:function(e,t){ht(e*(c-a),t)},scrollToPercentY:function(e,t){ct(e*(h-f),t)},scrollBy:function(e,t,n){o.scrollByX(e,n),o.scrollByY(t,n)},scrollByX:function(e,t){var n=dt()+Math[e&lt;0?&quot;floor&quot;:&quot;ceil&quot;](e),r=n/(c-a);ut(r*E,t)},scrollByY:function(e,t){var n=vt()+Math[e&lt;0?&quot;floor&quot;:&quot;ceil&quot;](e),r=n/(h-f);st(r*y,t)},positionDragX:function(e,t){ut(e,t)},positionDragY:function(e,t){st(e,t)},animate:function(e,t,n,r){var i={};i[t]=n,e.animate(i,{duration:s.animateDuration,easing:s.animateEase,queue:!1,step:r})},getContentPositionX:function(){return dt()},getContentPositionY:function(){return vt()},getContentWidth:function(){return c},getContentHeight:function(){return h},getPercentScrolledX:function(){return dt()/(c-a)},getPercentScrolledY:function(){return vt()/(h-f)},getIsScrollableH:function(){return m},getIsScrollableV:function(){return v},getContentPane:function(){return u},scrollToBottom:function(e){st(y,e)},hijackInternalLinks:e.noop,destroy:function(){Lt()}}),V(i)}return r=e.extend({},e.fn.jScrollPane.defaults,r),e.each([&quot;mouseWheelSpeed&quot;,&quot;arrowButtonSpeed&quot;,&quot;trackClickSpeed&quot;,&quot;keyboardSpeed&quot;],function(){r[this]=r[this]||r.speed}),this.each(function(){var t=e(this),n=t.data(&quot;jsp&quot;);n?n.reinitialise(r):(e(&quot;script&quot;,t).filter(&#39;[type=&quot;text/javascript&quot;],:not([type])&#39;).remove(),n=new i(t,r),t.data(&quot;jsp&quot;,n))})},e.fn.jScrollPane.defaults={showArrows:!1,maintainPosition:!0,stickToBottom:!1,stickToRight:!1,clickOnTrack:!0,autoReinitialise:!1,autoReinitialiseDelay:500,verticalDragMinHeight:0,verticalDragMaxHeight:99999,horizontalDragMinWidth:0,horizontalDragMaxWidth:99999,contentWidth:n,animateScroll:!1,animateDuration:300,animateEase:&quot;linear&quot;,hijackInternalLinks:!1,verticalGutter:4,horizontalGutter:4,mouseWheelSpeed:0,arrowButtonSpeed:0,arrowRepeatFreq:50,arrowScrollOnHover:!1,trackClickSpeed:0,trackClickRepeatFreq:70,verticalArrowPositions:&quot;split&quot;,horizontalArrowPositions:&quot;split&quot;,enableKeyboardNavigation:!0,hideFocus:!1,keyboardSpeed:0,initialDelay:300,speed:30,scrollPagePercent:.8}})(jQuery,this),function(e){function r(t){var n=t||window.event,r=[].slice.call(arguments,1),i=0,s=!0,o=0,u=0;return t=e.event.fix(n),t.type=&quot;mousewheel&quot;,n.wheelDelta&amp;&amp;(i=n.wheelDelta/120),n.detail&amp;&amp;(i=-n.detail/3),u=i,n.axis!==undefined&amp;&amp;n.axis===n.HORIZONTAL_AXIS&amp;&amp;(u=0,o=-1*i),n.wheelDeltaY!==undefined&amp;&amp;(u=n.wheelDeltaY/120),n.wheelDeltaX!==undefined&amp;&amp;(o=-1*n.wheelDeltaX/120),r.unshift(t,i,o,u),(e.event.dispatch||e.event.handle).apply(this,r)}var t=[&quot;DOMMouseScroll&quot;,&quot;mousewheel&quot;];if(e.event.fixHooks)for(var n=t.length;n;)e.event.fixHooks[t[--n]]=e.event.mouseHooks;e.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],r,!1);else this.onmousewheel=r},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],r,!1);else this.onmousewheel=null}},e.fn.extend({mousewheel:function(e){return e?this.bind(&quot;mousewheel&quot;,e):this.trigger(&quot;mousewheel&quot;)},unmousewheel:function(e){return this.unbind(&quot;mousewheel&quot;,e)}})}(jQuery),function(e){function a(){this===t.elem&amp;&amp;(t.pos=[-260,-260],t.elem=!1,n=3)}var t={pos:[-260,-260]},n=3,r=document,i=r.documentElement,s=r.body,o,u;e.event.special.mwheelIntent={setup:function(){var t=e(this).bind(&quot;mousewheel&quot;,e.event.special.mwheelIntent.handler);return this!==r&amp;&amp;this!==i&amp;&amp;this!==s&amp;&amp;t.bind(&quot;mouseleave&quot;,a),t=null,!0},teardown:function(){return e(this).unbind(&quot;mousewheel&quot;,e.event.special.mwheelIntent.handler).unbind(&quot;mouseleave&quot;,a),!0},handler:function(r,i){var s=[r.clientX,r.clientY];if(this===t.elem||Math.abs(t.pos[0]-s[0])&gt;n||Math.abs(t.pos[1]-s[1])&gt;n)return t.elem=this,t.pos=s,n=250,clearTimeout(u),u=setTimeout(function(){n=10},200),clearTimeout(o),o=setTimeout(function(){n=3},1500),r=e.extend({},r,{type:&quot;mwheelIntent&quot;}),e.event.handle.apply(this,arguments)}},e.fn.extend({mwheelIntent:function(e){return e?this.bind(&quot;mwheelIntent&quot;,e):this.trigger(&quot;mwheelIntent&quot;)},unmwheelIntent:function(e){return this.unbind(&quot;mwheelIntent&quot;,e)}}),e(function(){s=r.body,e(r).bind(&quot;mwheelIntent.mwheelIntentDefault&quot;,e.noop)})}(jQuery),function(e,t,n){function r(e,n){var r=t.createElement(e||&quot;div&quot;),i;for(i in n)r[i]=n[i];return r}function i(e){for(var t=1,n=arguments.length;t&lt;n;t++)e.appendChild(arguments[t]);return e}function s(e,t,n,r){var i=[&quot;opacity&quot;,t,~~(e*100),n,r].join(&quot;-&quot;),s=.01+n/r*100,o=Math.max(1-(1-e)/t*(100-s),e),u=h.substring(0,h.indexOf(&quot;Animation&quot;)).toLowerCase(),a=u&amp;&amp;&quot;-&quot;+u+&quot;-&quot;||&quot;&quot;;return c[i]||(p.insertRule(&quot;@&quot;+a+&quot;keyframes &quot;+i+&quot;{&quot;+&quot;0%{opacity:&quot;+o+&quot;}&quot;+s+&quot;%{opacity:&quot;+e+&quot;}&quot;+(s+.01)+&quot;%{opacity:1}&quot;+(s+t)%100+&quot;%{opacity:&quot;+e+&quot;}&quot;+&quot;100%{opacity:&quot;+o+&quot;}&quot;+&quot;}&quot;,0),c[i]=1),i}function o(e,t){var r=e.style,i,s;if(r[t]!==n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(s=0;s&lt;l.length;s++){i=l[s]+t;if(r[i]!==n)return i}}function u(e,t){for(var n in t)e.style[o(e,n)||n]=t[n];return e}function a(e){for(var t=1;t&lt;arguments.length;t++){var r=arguments[t];for(var i in r)e[i]===n&amp;&amp;(e[i]=r[i])}return e}function f(e){var t={x:e.offsetLeft,y:e.offsetTop};while(e=e.offsetParent)t.x+=e.offsetLeft,t.y+=e.offsetTop;return t}var l=[&quot;webkit&quot;,&quot;Moz&quot;,&quot;ms&quot;,&quot;O&quot;],c={},h,p=function(){var e=r(&quot;style&quot;);return i(t.getElementsByTagName(&quot;head&quot;)[0],e),e.sheet||e.styleSheet}(),d={lines:12,length:7,width:5,radius:10,rotate:0,color:&quot;#000&quot;,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:&quot;spinner&quot;,top:&quot;auto&quot;,left:&quot;auto&quot;},v=function m(e){if(!this.spin)return new m(e);this.opts=a(e||{},m.defaults,d)};v.defaults={},a(v.prototype,{spin:function(e){this.stop();var t=this,n=t.opts,i=t.el=u(r(0,{className:n.className}),{position:&quot;relative&quot;,zIndex:n.zIndex}),s=n.radius+n.length+n.width,o,a;e&amp;&amp;(e.insertBefore(i,e.firstChild||null),a=f(e),o=f(i),u(i,{left:(n.left==&quot;auto&quot;?a.x-o.x+(e.offsetWidth&gt;&gt;1):n.left+s)+&quot;px&quot;,top:(n.top==&quot;auto&quot;?a.y-o.y+(e.offsetHeight&gt;&gt;1):n.top+s)+&quot;px&quot;})),i.setAttribute(&quot;aria-role&quot;,&quot;progressbar&quot;),t.lines(i,t.opts);if(!h){var l=0,c=n.fps,p=c/n.speed,d=(1-n.opacity)/(p*n.trail/100),v=p/n.lines;!function m(){l++;for(var e=n.lines;e;e--){var r=Math.max(1-(l+e*v)%p*d,n.opacity);t.opacity(i,n.lines-e,r,n)}t.timeout=t.el&amp;&amp;setTimeout(m,~~(1e3/c))}()}return t},stop:function(){var e=this.el;return e&amp;&amp;(clearTimeout(this.timeout),e.parentNode&amp;&amp;e.parentNode.removeChild(e),this.el=n),this},lines:function(e,t){function n(e,n){return u(r(),{position:&quot;absolute&quot;,width:t.length+t.width+&quot;px&quot;,height:t.width+&quot;px&quot;,background:e,boxShadow:n,transformOrigin:&quot;left&quot;,transform:&quot;rotate(&quot;+~~(360/t.lines*o+t.rotate)+&quot;deg) translate(&quot;+t.radius+&quot;px&quot;+&quot;,0)&quot;,borderRadius:(t.width&gt;&gt;1)+&quot;px&quot;})}var o=0,a;for(;o&lt;t.lines;o++)a=u(r(),{position:&quot;absolute&quot;,top:1+~(t.width/2)+&quot;px&quot;,transform:t.hwaccel?&quot;translate3d(0,0,0)&quot;:&quot;&quot;,opacity:t.opacity,animation:h&amp;&amp;s(t.opacity,t.trail,o,t.lines)+&quot; &quot;+1/t.speed+&quot;s linear infinite&quot;}),t.shadow&amp;&amp;i(a,u(n(&quot;#000&quot;,&quot;0 0 4px #000&quot;),{top:&quot;2px&quot;})),i(e,i(a,n(t.color,&quot;0 0 1px rgba(0,0,0,.1)&quot;)));return e},opacity:function(e,t,n){t&lt;e.childNodes.length&amp;&amp;(e.childNodes[t].style.opacity=n)}}),!function(){function e(e,t){return r(&quot;&lt;&quot;+e+&#39; xmlns=&quot;urn:schemas-microsoft.com:vml&quot; class=&quot;spin-vml&quot;&gt;&#39;,t)}var t=u(r(&quot;group&quot;),{behavior:&quot;url(#default#VML)&quot;});!o(t,&quot;transform&quot;)&amp;&amp;t.adj?(p.addRule(&quot;.spin-vml&quot;,&quot;behavior:url(#default#VML)&quot;),v.prototype.lines=function(t,n){function r(){return u(e(&quot;group&quot;,{coordsize:a+&quot; &quot;+a,coordorigin:-o+&quot; &quot;+ -o}),{width:a,height:a})}function s(t,s,a){i(l,i(u(r(),{rotation:360/n.lines*t+&quot;deg&quot;,left:~~s}),i(u(e(&quot;roundrect&quot;,{arcsize:1}),{width:o,height:n.width,left:n.radius,top:-n.width&gt;&gt;1,filter:a}),e(&quot;fill&quot;,{color:n.color,opacity:n.opacity}),e(&quot;stroke&quot;,{opacity:0}))))}var o=n.length+n.width,a=2*o,f=-(n.width+n.length)*2+&quot;px&quot;,l=u(r(),{position:&quot;absolute&quot;,top:f,left:f}),c;if(n.shadow)for(c=1;c&lt;=n.lines;c++)s(c,-2,&quot;progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)&quot;);for(c=1;c&lt;=n.lines;c++)s(c);return i(t,l)},v.prototype.opacity=function(e,t,n,r){var i=e.firstChild;r=r.shadow&amp;&amp;r.lines||0,i&amp;&amp;t+r&lt;i.childNodes.length&amp;&amp;(i=i.childNodes[t+r],i=i&amp;&amp;i.firstChild,i=i&amp;&amp;i.firstChild,i&amp;&amp;(i.opacity=n))}):h=o(t,&quot;animation&quot;)}(),e.Spinner=v}(window,document);var LZMA=function(){function r(e,t){postMessage({action:3,callback_num:t,result:e})}function y(){return eo}function b(){}function w(){return to}function E(){}function S(){return no}function x(){}function T(e,t){return e.detailMessage=t,e}function N(){return ro}function C(){}function k(e,t){return e}function L(){return io}function A(){}function O(e,t){e[e.explicitLength++]=t}function M(e,t){e[e.explicitLength++]=t}function _(e){var t,n;return t=(n=e.join(&quot;&quot;),e.length=e.explicitLength=0,n),e[e.explicitLength++]=t,t}function D(e,t){var n=new Array(t);if(e&gt;0){var r=[null,0,!1,[0,0]][e];for(var i=0;i&lt;t;++i)n[i]=r}return n}function P(){return this.arrayClass$}function H(e,t,n,r,i){var s;return s=D(i,r),I(),R(s,U,z),s.arrayClass$=e,s.typeId$=t,s.queryId$=n,s}function B(e,t,n,r){return I(),R(r,U,z),r.arrayClass$=e,r.typeId$=t,r.queryId$=n,r}function j(e,t,n){if(n!=null){if(e.queryId$&gt;0&amp;&amp;!X(n.typeId$,e.queryId$))throw new nn;if(e.queryId$&lt;0&amp;&amp;(n.typeMarker$==Zs||n.typeId$==2))throw new nn}return e[t]=n}function F(){}function I(){I=Zs,U=[],z=[],q(new F,U,z)}function q(e,t,n){var r=0,i;for(var s in e)if(i=e[s])t[r]=s,n[r]=i,++r}function R(e,t,n){I();for(var r=0,i=t.length;r&lt;i;++r)e[t[r]]=n[r]}function W(e,t){return e&amp;&amp;!!K[e][t]}function X(e,t){return e&amp;&amp;K[e][t]}function V(e,t){if(e!=null&amp;&amp;!X(e.typeId$,t))throw new ln;return e}function $(e,t){return e!=null&amp;&amp;W(e.typeId$,t)}function J(e){return~~Math.max(Math.min(e,2147483647),-2147483648)}function Q(e){return e!=null&amp;&amp;W(e.typeId$,2)?e:k(new A,e)}function G(e,t){var n,r;return n=e[1]+t[1],r=e[0]+t[0],tt(r,n)}function Y(e,t,n){return t==0?e:n==0?e:G(e,tt(t*n,0))}function Z(e,t){return at(~~Math.max(Math.min(e[1]/4294967296,2147483647),-2147483648)&amp;~~Math.max(Math.min(t[1]/4294967296,2147483647),-2147483648),ut(e)&amp;ut(t))}function et(e,t){var n,r;return e[0]==t[0]&amp;&amp;e[1]==t[1]?0:(n=e[1]&lt;0,r=t[1]&lt;0,n&amp;&amp;!r?-1:!n&amp;&amp;r?1:mt(e,t)[1]&lt;0?-1:1)}function tt(e,t){var n,r;t%=0x10000000000000000,e%=0x10000000000000000,n=t%4294967296,r=Math.floor(e/4294967296)*4294967296,t=t-n+r,e=e-r+n;while(e&lt;0)e+=4294967296,t-=4294967296;while(e&gt;4294967295)e-=4294967296,t+=4294967296;t%=0x10000000000000000;while(t&gt;0x7fffffff00000000)t-=0x10000000000000000;while(t&lt;-0x8000000000000000)t+=0x10000000000000000;return[e,t]}function nt(e,t){var n,r,i,s,o,u;if(t[0]==0&amp;&amp;t[1]==0)throw Gt(new Zt,&quot;/ by zero&quot;);if(e[0]==0&amp;&amp;e[1]==0)return St(),Ot;if(rt(e,(St(),Nt)))return rt(t,kt)||rt(t,Ct)?Nt:(s=dt(e,1),n=pt(nt(s,t),1),o=mt(e,ft(t,n)),G(n,nt(o,t)));if(rt(t,Nt))return Ot;if(e[1]&lt;0)return t[1]&lt;0?nt(ct(e),ct(t)):ct(nt(ct(e),t));if(t[1]&lt;0)return ct(nt(e,ct(t)));u=Ot,o=e;while(et(o,t)&gt;=0)i=it(Math.floor(gt(o)/yt(t))),i[0]==0&amp;&amp;i[1]==0&amp;&amp;(i=kt),r=ft(i,t),u=G(u,i),o=mt(o,r);return u}function rt(e,t){return e[0]==t[0]&amp;&amp;e[1]==t[1]}function it(e){return isNaN(e)?(St(),Ot):e&lt;-0x8000000000000000?(St(),Nt):e&gt;=0x8000000000000000?(St(),Tt):e&gt;0?tt(Math.floor(e),0):tt(Math.ceil(e),0)}function st(e){var t,n;return e&gt;-129&amp;&amp;e&lt;128?(t=e+128,n=(wt(),Et)[t],n==null&amp;&amp;(n=Et[t]=ot(e)),n):ot(e)}function ot(e){return e&gt;=0?[e,0]:[e+4294967296,-4294967296]}function ut(e){return e[0]&gt;=2147483648?~~Math.max(Math.min(e[0]-4294967296,2147483647),-2147483648):~~Math.max(Math.min(e[0],2147483647),-2147483648)}function at(e,t){var n,r;return n=e*4294967296,r=t,t&lt;0&amp;&amp;(r+=4294967296),[r,n]}function ft(e,t){var n,r,i,s,o,u,a,f,l;return e[0]==0&amp;&amp;e[1]==0?(St(),Ot):t[0]==0&amp;&amp;t[1]==0?(St(),Ot):rt(e,(St(),Nt))?lt(t):rt(t,Nt)?lt(e):e[1]&lt;0?t[1]&lt;0?ft(ct(e),ct(t)):ct(ft(ct(e),t)):t[1]&lt;0?ct(ft(e,ct(t))):et(e,At)&lt;0&amp;&amp;et(t,At)&lt;0?tt((e[1]+e[0])*(t[1]+t[0]),0):(i=e[1]%281474976710656,s=e[1]-i,n=e[0]%65536,r=e[0]-n,a=t[1]%281474976710656,f=t[1]-a,o=t[0]%65536,u=t[0]-o,l=Ot,l=Y(l,s,o),l=Y(l,i,u),l=Y(l,i,o),l=Y(l,r,a),l=Y(l,r,u),l=Y(l,r,o),l=Y(l,n,f),l=Y(l,n,a),l=Y(l,n,u),l=Y(l,n,o),l)}function lt(e){return(ut(e)&amp;1)==1?(St(),Nt):(St(),Ot)}function ct(e){var t,n;return rt(e,(St(),Nt))?Nt:(t=-e[1],n=-e[0],n&gt;4294967295&amp;&amp;(n-=4294967296,t+=4294967296),n&lt;0&amp;&amp;(n+=4294967296,t-=4294967296),[n,t])}function ht(e){return e&lt;=30?1&lt;&lt;e:ht(30)*ht(e-30)}function pt(e,t){var n,r,i,s;return t&amp;=63,rt(e,(St(),Nt))?t==0?e:Ot:e[1]&lt;0?ct(pt(ct(e),t)):(s=ht(t),r=e[1]*s%0x10000000000000000,i=e[0]*s,n=i-i%4294967296,r+=n,i-=n,r&gt;=0x8000000000000000&amp;&amp;(r-=0x10000000000000000),[i,r])}function dt(e,t){var n,r,i;return t&amp;=63,i=ht(t),n=e[1]/i,r=Math.floor(e[0]/i),tt(r,n)}function vt(e,t){var n;return t&amp;=63,n=dt(e,t),e[1]&lt;0&amp;&amp;(n=G(n,pt((St(),Lt),63-t))),n}function mt(e,t){var n,r;return n=e[1]-t[1],r=e[0]-t[0],tt(r,n)}function gt(e){var t,n,r;return n=J(Math.log(e[1])/(St(),xt)),n&lt;=48?e[1]+e[0]:(t=n-48,r=(1&lt;&lt;t)-1,e[1]+(e[0]-r))}function yt(e){var t,n,r;return n=J(Math.log(e[1])/(St(),xt)),n&lt;=48?e[1]+e[0]:(t=n-48,r=(1&lt;&lt;t)-1,e[1]+(e[0]+r))}function bt(e){var t,n,r,i,s,o;if(e[0]==0&amp;&amp;e[1]==0)return&quot;0&quot;;if(rt(e,(St(),Nt)))return&quot;-9223372036854775808&quot;;if(e[1]&lt;0)return&quot;-&quot;+bt(ct(e));n=e,i=&quot;&quot;;while(n[0]!=0||n[1]!=0){s=st(1e9),r=nt(n,s),t=&quot;&quot;+ut(mt(n,ft(r,s))),n=r;if(n[0]!=0||n[1]!=0){o=9-t.length;for(;o&gt;0;--o)t=&quot;0&quot;+t}i=t+i}return i}function wt(){wt=Zs,Et=H(oo,0,9,256,0)}function St(){St=Zs,xt=Math.log(2),Tt=g,Nt=u,Ct=st(-1),kt=st(1),Lt=st(2),At=d,Ot=st(0)}function Mt(){return uo}function _t(){}function Dt(e,t){return Pt(e,t,0,t.length),e}function Pt(e,t,n,r){return e.buf=t,e.pos=n,e.count=n+r,e.count&gt;t.length&amp;&amp;(e.count=t.length),e}function Ht(e){return e.pos&gt;=e.count?-1:e.buf[e.pos++]&amp;255}function Bt(e,t,n,r){return e.pos&gt;=e.count?-1:(r=En(r,e.count-e.pos),On(e.buf,e.pos,t,n,r),e.pos+=r,r)}function jt(){return ao}function Ft(){}function It(){return lo}function qt(){}function Rt(e){return e.buf=H(fo,0,-1,32,1),e}function Ut(e,t){var n;if(t&lt;=e.buf.length)return;t=wn(t,e.buf.length*2),n=H(fo,0,-1,t,1),On(e.buf,0,n,0,e.buf.length),e.buf=n}function zt(e){var t;return t=H(fo,0,-1,e.count,1),On(e.buf,0,t,0,e.count),t}function Wt(e,t){Ut(e,e.count+1),e.buf[e.count++]=t&lt;&lt;24&gt;&gt;24}function Xt(e,t,n,r){Ut(e,e.count+r),On(t,n,e.buf,e.count,r),e.count+=r}function Vt(){return co}function $t(){}function Jt(e,t){return e.detailMessage=t,e}function Kt(){return ho}function Qt(){}function Gt(e,t){return e.detailMessage=t,e}function Yt(){return vo}function Zt(){}function en(e,t){return e.detailMessage=t,e}function tn(){return mo}function nn(){}function rn</td>
      </tr>
      <tr>
        <td id="L14" class="blob-num js-line-number" data-line-number="14"></td>
        <td id="LC14" class="blob-code js-file-line">(e,t){var n;return n=new an,n.typeName=e+t,n}function sn(e,t){var n;return n=new an,n.typeName=e+t,n}function on(e,t){var n;return n=new an,n.typeName=e+t,n}function un(){return yo}function an(){}function fn(){return bo}function ln(){}function cn(){return po}function hn(){}function pn(e,t){return e.detailMessage=t,e}function dn(){return wo}function vn(){}function mn(){return Eo}function gn(){}function yn(){return So}function bn(){}function wn(e,t){return e&gt;t?e:t}function En(e,t){return e&lt;t?e:t}function Sn(){return To}function xn(){}function Tn(e,t){return t==null?!1:String(e)==t}function Nn(e,t,n,r,i){var s;for(s=t;s&lt;n;++s)r[i++]=e.charCodeAt(s)}function Cn(){return No}function kn(e){var t;return e.data=(t=[],t.explicitLength=0,t),e}function Ln(){return Co}function An(){}function On(e,t,n,r,i){var s,o,u,a,f,l,c,h;if(e==null||n==null)throw new xn;c=(e.typeMarker$==Zs||e.typeId$==2?e.getClass$():so).typeName,u=(n.typeMarker$==Zs||n.typeId$==2?n.getClass$():so).typeName;if(c.charCodeAt(0)!=91||u.charCodeAt(0)!=91)throw en(new nn,&quot;Must be array types&quot;);if(c.charCodeAt(1)!=u.charCodeAt(1))throw en(new nn,&quot;Array types must match&quot;);h=e.length,a=n.length;if(t&lt;0||r&lt;0||i&lt;0||t+i&gt;h||r+i&gt;a)throw new bn;if(c.charCodeAt(1)!=76&amp;&amp;c.charCodeAt(1)!=91||!!Tn(c,u))for(f=0;f&lt;i;++f)n[r+f]=e[t+f];else{l=V(e,3),s=V(n,3);if((e==null?null:e)===(n==null?null:n)&amp;&amp;t&lt;r){t+=i;for(o=r+i;o--&gt;r;)j(s,o,l[--t])}else for(o=r+i;r&lt;o;)j(s,r++,l[t++])}}function Mn(e,t){if(!Ti(t,1&lt;&lt;e.dictionarySize))throw T(new C,&quot;unexpected failure&quot;);if(!ki(t,e.fb))throw T(new C,&quot;unexpected failure&quot;);if(!Ci(t,e.matchFinder))throw T(new C,&quot;unexpected failure&quot;);if(!Ni(t,e.lc,e.lp,e.pb))throw T(new C,&quot;unexpected failure&quot;)}function _n(){return Zo}function Dn(){}function Pn(e){var t;try{return Ar(e.chunker)}catch(t){t=Q(t);if($(t,10))return!1;throw t}}function Hn(e,t,n,r,i){var s,o;if(!i)throw pn(new vn,&quot;null mode&quot;);if(et(r,a)&lt;0)throw pn(new vn,&quot;invalid length &quot;+bt(r));e.length_0=r,s=ci(new Di),Mn(i,s),s._writeEndMark=!0,Li(s,n);for(o=0;o&lt;64;o+=8)Wt(n,ut(dt(r,o))&amp;255);e.chunker=(s._needReleaseMFStream=!1,s._inStream=t,s._finished=!1,li(s),s._rangeEncoder.Stream=n,bi(s),pi(s),hi(s),s._lenEncoder._tableSize=s._numFastBytes+1-2,Wi(s._lenEncoder,1&lt;&lt;s._posStateBits),s._repMatchLenEncoder._tableSize=s._numFastBytes+1-2,Wi(s._repMatchLenEncoder,1&lt;&lt;s._posStateBits),s.nowPos64=f,undefined,kr(new Dr,s))}function Bn(){return eu}function jn(){}function Fn(e,t,n){var r;e.output=Rt(new $t);try{Hn(e,Dt(new Ft,t),e.output,st(t.length),n)}catch(r){throw r=Q(r),$(r,10)?T(new C,&quot;impossible exception&quot;):r}return e}function In(){return tu}function qn(){}function Rn(e){var t,n;try{return Ar(e.chunker)}catch(t){t=Q(t);if($(t,10))return n=t,e.exception=n,!1;throw t}}function Un(e,t,n){var r,i=&quot;&quot;,s,o,u,f;o=H(fo,0,-1,5,1);for(s=0;s&lt;o.length;++s){u=Ht(t);if(u==-1)throw Jt(new Qt,&quot;truncated input&quot;);o[s]=u&lt;&lt;24&gt;&gt;24}r=jr(new zr);if(!Ir(r,o))throw Jt(new Qt,&quot;corrupted input&quot;);for(s=0;s&lt;64;s+=8){u=Ht(t);if(u==-1)throw Jt(new Qt,&quot;truncated input&quot;);u=u.toString(16),u.length==1&amp;&amp;(u=&quot;0&quot;+u),i=u+&quot;&quot;+i}i.toLowerCase()==&quot;ffffffffffffffffff&quot;||i==0?e.length_0=a:(f=parseInt(i,16),f&gt;4294967295?e.length_0=a:e.length_0=it(f)),e.chunker=Hr(r,t,n,e.length_0)}function zn(){return nu}function Wn(){}function Xn(e,t){return e.output=Rt(new $t),Un(e,Dt(new Ft,t),e.output),e}function Vn(){return ru}function $n(){}function Jn(e,t,n,r){var i;e._keepSizeBefore=t,e._keepSizeAfter=n,i=t+n+r;if(e._bufferBase==null||e._blockSize!=i)e._bufferBase=null,e._blockSize=i,e._bufferBase=H(fo,0,-1,e._blockSize,1);e._pointerToLastSafePosition=e._blockSize-n}function Kn(e,t){return e._bufferBase[e._bufferOffset+e._pos+t]}function Qn(e,t,n,r){var i,s;e._streamEndWasReached&amp;&amp;e._pos+t+r&gt;e._streamPos&amp;&amp;(r=e._streamPos-(e._pos+t)),++n,s=e._bufferOffset+e._pos+t;for(i=0;i&lt;r&amp;&amp;e._bufferBase[s+i]==e._bufferBase[s+i-n];++i);return i}function Gn(e){return e._streamPos-e._pos}function Yn(e){var t,n,r;r=e._bufferOffset+e._pos-e._keepSizeBefore,r&gt;0&amp;&amp;--r,n=e._bufferOffset+e._streamPos-r;for(t=0;t&lt;n;++t)e._bufferBase[t]=e._bufferBase[r+t];e._bufferOffset-=r}function Zn(e){var t;++e._pos,e._pos&gt;e._posLimit&amp;&amp;(t=e._bufferOffset+e._pos,t&gt;e._pointerToLastSafePosition&amp;&amp;Yn(e),er(e))}function er(e){var t,n,r;if(e._streamEndWasReached)return;for(;;){r=-e._bufferOffset+e._blockSize-e._streamPos;if(r==0)return;t=Bt(e._stream,e._bufferBase,e._bufferOffset+e._streamPos,r);if(t==-1){e._posLimit=e._streamPos,n=e._bufferOffset+e._posLimit,n&gt;e._pointerToLastSafePosition&amp;&amp;(e._posLimit=e._pointerToLastSafePosition-e._bufferOffset),e._streamEndWasReached=!0;return}e._streamPos+=t,e._streamPos&gt;=e._pos+e._keepSizeAfter&amp;&amp;(e._posLimit=e._streamPos-e._keepSizeAfter)}}function tr(e,t){e._bufferOffset+=t,e._posLimit-=t,e._pos-=t,e._streamPos-=t}function nr(){return ko}function rr(){}function ir(){ir=Zs;var e,t,n;dr=H(xo,0,-1,256,1);for(e=0;e&lt;256;++e){n=e;for(t=0;t&lt;8;++t)(n&amp;1)!=0?n=n&gt;&gt;&gt;1^-306674912:n&gt;&gt;&gt;=1;dr[e]=n}}function sr(e,t,n,r,i){var s,o,u;return t&gt;1073741567?!1:(e._cutValue=16+(r&gt;&gt;1),u=~~((t+n+r+i)/2)+256,Jn(e,t+n,r+i,u),e._matchMaxLen=r,s=t+1,e._cyclicBufferSize!=s&amp;&amp;(e._son=H(xo,0,-1,(e._cyclicBufferSize=s)*2,1)),o=65536,e.HASH_ARRAY&amp;&amp;(o=t-1,o|=o&gt;&gt;1,o|=o&gt;&gt;2,o|=o&gt;&gt;4,o|=o&gt;&gt;8,o&gt;&gt;=1,o|=65535,o&gt;16777216&amp;&amp;(o&gt;&gt;=1),e._hashMask=o,++o,o+=e.kFixHashSize),o!=e._hashSizeSum&amp;&amp;(e._hash=H(xo,0,-1,e._hashSizeSum=o,1)),!0)}function or(e,t){var n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S;if(e._pos+e._matchMaxLen&lt;=e._streamPos)v=e._matchMaxLen;else{v=e._streamPos-e._pos;if(v&lt;e.kMinMatchCheck)return ar(e),0}y=0,m=e._pos&gt;e._cyclicBufferSize?e._pos-e._cyclicBufferSize:0,r=e._bufferOffset+e._pos,g=1,f=0,l=0,e.HASH_ARRAY?(S=dr[e._bufferBase[r]&amp;255]^e._bufferBase[r+1]&amp;255,f=S&amp;1023,S^=(e._bufferBase[r+2]&amp;255)&lt;&lt;8,l=S&amp;65535,c=(S^dr[e._bufferBase[r+3]&amp;255]&lt;&lt;5)&amp;e._hashMask):c=e._bufferBase[r]&amp;255^(e._bufferBase[r+1]&amp;255)&lt;&lt;8,i=e._hash[e.kFixHashSize+c],e.HASH_ARRAY&amp;&amp;(s=e._hash[f],o=e._hash[1024+l],e._hash[f]=e._pos,e._hash[1024+l]=e._pos,s&gt;m&amp;&amp;e._bufferBase[e._bufferOffset+s]==e._bufferBase[r]&amp;&amp;(t[y++]=g=2,t[y++]=e._pos-s-1),o&gt;m&amp;&amp;e._bufferBase[e._bufferOffset+o]==e._bufferBase[r]&amp;&amp;(o==s&amp;&amp;(y-=2),t[y++]=g=3,t[y++]=e._pos-o-1,s=o),y!=0&amp;&amp;s==i&amp;&amp;(y-=2,g=1)),e._hash[e.kFixHashSize+c]=e._pos,w=(e._cyclicBufferPos&lt;&lt;1)+1,E=e._cyclicBufferPos&lt;&lt;1,p=d=e.kNumHashDirectBytes,e.kNumHashDirectBytes!=0&amp;&amp;i&gt;m&amp;&amp;e._bufferBase[e._bufferOffset+i+e.kNumHashDirectBytes]!=e._bufferBase[r+e.kNumHashDirectBytes]&amp;&amp;(t[y++]=g=e.kNumHashDirectBytes,t[y++]=e._pos-i-1),n=e._cutValue;for(;;){if(i&lt;=m||n--==0){e._son[w]=e._son[E]=0;break}a=e._pos-i,u=(a&lt;=e._cyclicBufferPos?e._cyclicBufferPos-a:e._cyclicBufferPos-a+e._cyclicBufferSize)&lt;&lt;1,b=e._bufferOffset+i,h=p&lt;d?p:d;if(e._bufferBase[b+h]==e._bufferBase[r+h]){while(++h!=v)if(e._bufferBase[b+h]!=e._bufferBase[r+h])break;if(g&lt;h){t[y++]=g=h,t[y++]=a-1;if(h==v){e._son[E]=e._son[u],e._son[w]=e._son[u+1];break}}}(e._bufferBase[b+h]&amp;255)&lt;(e._bufferBase[r+h]&amp;255)?(e._son[E]=i,E=u+1,i=e._son[E],d=h):(e._son[w]=i,w=u,i=e._son[w],p=h)}return ar(e),y}function ur(e){var t;e._bufferOffset=0,e._pos=0,e._streamPos=0,e._streamEndWasReached=!1,er(e);for(t=0;t&lt;e._hashSizeSum;++t)e._hash[t]=0;e._cyclicBufferPos=0,tr(e,-1)}function ar(e){var t;++e._cyclicBufferPos&gt;=e._cyclicBufferSize&amp;&amp;(e._cyclicBufferPos=0),Zn(e),e._pos==1073741823&amp;&amp;(t=e._pos-e._cyclicBufferSize,fr(e._son,e._cyclicBufferSize*2,t),fr(e._hash,e._hashSizeSum,t),tr(e,t))}function fr(e,t,n){var r,i;for(r=0;r&lt;t;++r)i=e[r],i&lt;=n?i=0:i-=n,e[r]=i}function lr(e,t){e.HASH_ARRAY=t&gt;2,e.HASH_ARRAY?(e.kNumHashDirectBytes=0,e.kMinMatchCheck=4,e.kFixHashSize=66560):(e.kNumHashDirectBytes=2,e.kMinMatchCheck=3,e.kFixHashSize=0)}function cr(e,t){var n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y;do{if(e._pos+e._matchMaxLen&lt;=e._streamPos)p=e._matchMaxLen;else{p=e._streamPos-e._pos;if(p&lt;e.kMinMatchCheck){ar(e);continue}}d=e._pos&gt;e._cyclicBufferSize?e._pos-e._cyclicBufferSize:0,r=e._bufferOffset+e._pos,e.HASH_ARRAY?(y=dr[e._bufferBase[r]&amp;255]^e._bufferBase[r+1]&amp;255,u=y&amp;1023,e._hash[u]=e._pos,y^=(e._bufferBase[r+2]&amp;255)&lt;&lt;8,a=y&amp;65535,e._hash[1024+a]=e._pos,f=(y^dr[e._bufferBase[r+3]&amp;255]&lt;&lt;5)&amp;e._hashMask):f=e._bufferBase[r]&amp;255^(e._bufferBase[r+1]&amp;255)&lt;&lt;8,i=e._hash[e.kFixHashSize+f],e._hash[e.kFixHashSize+f]=e._pos,m=(e._cyclicBufferPos&lt;&lt;1)+1,g=e._cyclicBufferPos&lt;&lt;1,c=h=e.kNumHashDirectBytes,n=e._cutValue;for(;;){if(i&lt;=d||n--==0){e._son[m]=e._son[g]=0;break}o=e._pos-i,s=(o&lt;=e._cyclicBufferPos?e._cyclicBufferPos-o:e._cyclicBufferPos-o+e._cyclicBufferSize)&lt;&lt;1,v=e._bufferOffset+i,l=c&lt;h?c:h;if(e._bufferBase[v+l]==e._bufferBase[r+l]){while(++l!=p)if(e._bufferBase[v+l]!=e._bufferBase[r+l])break;if(l==p){e._son[g]=e._son[s],e._son[m]=e._son[s+1];break}}(e._bufferBase[v+l]&amp;255)&lt;(e._bufferBase[r+l]&amp;255)?(e._son[g]=i,g=s+1,i=e._son[g],h=l):(e._son[m]=i,m=s,i=e._son[m],c=l)}ar(e)}while(--t!=0)}function hr(){return Lo}function pr(){}function vr(e,t,n){var r;r=e._pos-t-1,r&lt;0&amp;&amp;(r+=e._windowSize);for(;n!=0;--n)r&gt;=e._windowSize&amp;&amp;(r=0),e._buffer[e._pos++]=e._buffer[r++],e._pos&gt;=e._windowSize&amp;&amp;gr(e)}function mr(e,t){if(e._buffer==null||e._windowSize!=t)e._buffer=H(fo,0,-1,t,1);e._windowSize=t,e._pos=0,e._streamPos=0}function gr(e){var t;t=e._pos-e._streamPos;if(t==0)return;Xt(e._stream,e._buffer,e._streamPos,t),e._pos&gt;=e._windowSize&amp;&amp;(e._pos=0),e._streamPos=e._pos}function yr(e,t){var n;return n=e._pos-t-1,n&lt;0&amp;&amp;(n+=e._windowSize),e._buffer[n]}function br(e,t){t||(e._streamPos=0,e._pos=0)}function wr(e,t){e._buffer[e._pos++]=t,e._pos&gt;=e._windowSize&amp;&amp;gr(e)}function Er(e){gr(e),e._stream=null}function Sr(e,t){gr(e),e._stream=null,e._stream=t}function xr(){return Ao}function Tr(){}function Nr(e){return e-=2,e&lt;4?e:3}function Cr(e){return e&lt;4?0:e&lt;10?e-3:e-6}function kr(e,t){return e.encoder=t,e.decoder=null,e.alive=!0,e}function Lr(e,t){return e.decoder=t,e.encoder=null,e.alive=!0,e}function Ar(e){var t;if(!e.alive)throw new gn;t=!0;try{return e.encoder?Mr(e):Or(e),t=!1,e.alive}finally{t&amp;&amp;(e.alive=!1)}}function Or(e){var t;t=Br(e.decoder);if(t==-1)throw Jt(new Qt,&quot;corrupted input&quot;);e.inBytesProcessed=a,e.outBytesProcessed=e.decoder.nowPos64;if(t==1||et(e.decoder.outSize,f)&gt;=0&amp;&amp;et(e.decoder.nowPos64,e.decoder.outSize)&gt;=0)Pr(e.decoder),e.alive=!1}function Mr(e){fi(e.encoder,e.encoder.processedInSize,e.encoder.processedOutSize,e.encoder.finished),e.inBytesProcessed=e.encoder.processedInSize[0],e.encoder.finished[0]&amp;&amp;(xi(e.encoder),e.alive=!1)}function _r(){return Oo}function Dr(){}function Pr(e){gr(e.m_OutWindow),Er(e.m_OutWindow),e.m_RangeDecoder.Stream=null}function Hr(e,t,n,r){return e.m_RangeDecoder.Stream=t,Sr(e.m_OutWindow,n),Fr(e),e.state=0,e.rep0=0,e.rep1=0,e.rep2=0,e.rep3=0,e.outSize=r,e.nowPos64=f,e.prevByte=0,Lr(new Dr,e)}function Br(e){var t,n,r,i,s,o;o=ut(e.nowPos64)&amp;e.m_PosStateMask;if(xs(e.m_RangeDecoder,e.m_IsMatchDecoders,(e.state&lt;&lt;4)+o)==0)t=Gr(e.m_LiteralDecoder,ut(e.nowPos64),e.prevByte),e.state&lt;7?e.prevByte=ti(t,e.m_RangeDecoder):e.prevByte=ni(t,e.m_RangeDecoder,yr(e.m_OutWindow,e.rep0)),wr(e.m_OutWindow,e.prevByte),e.state=Cr(e.state),e.nowPos64=G(e.nowPos64,l);else{if(xs(e.m_RangeDecoder,e.m_IsRepDecoders,e.state)==1)r=0,xs(e.m_RangeDecoder,e.m_IsRepG0Decoders,e.state)==0?xs(e.m_RangeDecoder,e.m_IsRep0LongDecoders,(e.state&lt;&lt;4)+o)==0&amp;&amp;(e.state=e.state&lt;7?9:11,r=1):(xs(e.m_RangeDecoder,e.m_IsRepG1Decoders,e.state)==0?n=e.rep1:(xs(e.m_RangeDecoder,e.m_IsRepG2Decoders,e.state)==0?n=e.rep2:(n=e.rep3,e.rep3=e.rep2),e.rep2=e.rep1),e.rep1=e.rep0,e.rep0=n),r==0&amp;&amp;(r=Xr(e.m_RepLenDecoder,e.m_RangeDecoder,o)+2,e.state=e.state&lt;7?8:11);else{e.rep3=e.rep2,e.rep2=e.rep1,e.rep1=e.rep0,r=2+Xr(e.m_LenDecoder,e.m_RangeDecoder,o),e.state=e.state&lt;7?7:10,s=fs(e.m_PosSlotDecoder[Nr(r)],e.m_RangeDecoder);if(s&gt;=4){i=(s&gt;&gt;1)-1,e.rep0=(2|s&amp;1)&lt;&lt;i;if(s&lt;14)e.rep0+=cs(e.m_PosDecoders,e.rep0-s-1,e.m_RangeDecoder,i);else{e.rep0+=Ts(e.m_RangeDecoder,i-4)&lt;&lt;4,e.rep0+=ls(e.m_PosAlignDecoder,e.m_RangeDecoder);if(e.rep0&lt;0)return e.rep0==-1?1:-1}}else e.rep0=s}if(et(st(e.rep0),e.nowPos64)&gt;=0||e.rep0&gt;=e.m_DictionarySizeCheck)return-1;vr(e.m_OutWindow,e.rep0,r),e.nowPos64=G(e.nowPos64,st(r)),e.prevByte=yr(e.m_OutWindow,0)}return 0}function jr(e){var t;e.m_OutWindow=new Tr,e.m_RangeDecoder=new Ls,e.m_IsMatchDecoders=H(Mo,0,-1,192,1),e.m_IsRepDecoders=H(Mo,0,-1,12,1),e.m_IsRepG0Decoders=H(Mo,0,-1,12,1),e.m_IsRepG1Decoders=H(Mo,0,-1,12,1),e.m_IsRepG2Decoders=H(Mo,0,-1,12,1),e.m_IsRep0LongDecoders=H(Mo,0,-1,192,1),e.m_PosSlotDecoder=H(_o,0,7,4,0),e.m_PosDecoders=H(Mo,0,-1,114,1),e.m_PosAlignDecoder=as(new ps,4),e.m_LenDecoder=Vr(new Kr),e.m_RepLenDecoder=Vr(new Kr),e.m_LiteralDecoder=new ei;for(t=0;t&lt;4;++t)e.m_PosSlotDecoder[t]=as(new ps,6);return e}function Fr(e){var t;br(e.m_OutWindow,!1),Cs(e.m_IsMatchDecoders),Cs(e.m_IsRep0LongDecoders),Cs(e.m_IsRepDecoders),Cs(e.m_IsRepG0Decoders),Cs(e.m_IsRepG1Decoders),Cs(e.m_IsRepG2Decoders),Cs(e.m_PosDecoders),Yr(e.m_LiteralDecoder);for(t=0;t&lt;4;++t)Cs(e.m_PosSlotDecoder[t].Models);$r(e.m_LenDecoder),$r(e.m_RepLenDecoder),Cs(e.m_PosAlignDecoder.Models),Ns(e.m_RangeDecoder)}function Ir(e,t){var n,r,i,s,o,u,a;if(t.length&lt;5)return!1;a=t[0]&amp;255,i=a%9,u=~~(a/9),s=u%5,o=~~(u/5),n=0;for(r=0;r&lt;4;++r)n+=(t[1+r]&amp;255)&lt;&lt;r*8;return Rr(e,i,s,o)?qr(e,n):!1}function qr(e,t){return t&lt;0?!1:(e.m_DictionarySize!=t&amp;&amp;(e.m_DictionarySize=t,e.m_DictionarySizeCheck=wn(e.m_DictionarySize,1),mr(e.m_OutWindow,wn(e.m_DictionarySizeCheck,4096))),!0)}function Rr(e,t,n,r){var i;return t&gt;8||n&gt;4||r&gt;4?!1:(Qr(e.m_LiteralDecoder,n,t),i=1&lt;&lt;r,Wr(e.m_LenDecoder,i),Wr(e.m_RepLenDecoder,i),e.m_PosStateMask=i-1,!0)}function Ur(){return Do}function zr(){}function Wr(e,t){for(;e.m_NumPosStates&lt;t;++e.m_NumPosStates)e.m_LowCoder[e.m_NumPosStates]=as(new ps,3),e.m_MidCoder[e.m_NumPosStates]=as(new ps,3)}function Xr(e,t,n){var r;return xs(t,e.m_Choice,0)==0?fs(e.m_LowCoder[n],t):(r=8,xs(t,e.m_Choice,1)==0?r+=fs(e.m_MidCoder[n],t):r+=8+fs(e.m_HighCoder,t),r)}function Vr(e){return e.m_Choice=H(Mo,0,-1,2,1),e.m_LowCoder=H(_o,0,7,16,0),e.m_MidCoder=H(_o,0,7,16,0),e.m_HighCoder=as(new ps,8),e}function $r(e){var t;Cs(e.m_Choice);for(t=0;t&lt;e.m_NumPosStates;++t)Cs(e.m_LowCoder[t].Models),Cs(e.m_MidCoder[t].Models);Cs(e.m_HighCoder.Models)}function Jr(){return Po}function Kr(){}function Qr(e,t,n){var r,i;if(e.m_Coders!=null&amp;&amp;e.m_NumPrevBits==n&amp;&amp;e.m_NumPosBits==t)return;e.m_NumPosBits=t,e.m_PosMask=(1&lt;&lt;t)-1,e.m_NumPrevBits=n,i=1&lt;&lt;e.m_NumPrevBits+e.m_NumPosBits,e.m_Coders=H(Ho,0,4,i,0);for(r=0;r&lt;i;++r)e.m_Coders[r]=ri(new si)}function Gr(e,t,n){return e.m_Coders[((t&amp;e.m_PosMask)&lt;&lt;e.m_NumPrevBits)+((n&amp;255)&gt;&gt;&gt;8-e.m_NumPrevBits)]}function Yr(e){var t,n;n=1&lt;&lt;e.m_NumPrevBits+e.m_NumPosBits;for(t=0;t&lt;n;++t)Cs(e.m_Coders[t].m_Decoders)}function Zr(){return Bo}function ei(){}function ti(e,t){var n;n=1;do n=n&lt;&lt;1|xs(t,e.m_Decoders,n);while(n&lt;256);return n&lt;&lt;24&gt;&gt;24}function ni(e,t,n){var r,i,s;s=1;do{i=n&gt;&gt;7&amp;1,n&lt;&lt;=1,r=xs(t,e.m_Decoders,(1+i&lt;&lt;8)+s),s=s&lt;&lt;1|r;if(i!=r){while(s&lt;256)s=s&lt;&lt;1|xs(t,e.m_Decoders,s);break}}while(s&lt;256);return s&lt;&lt;24&gt;&gt;24}function ri(e){return e.m_Decoders=H(Mo,0,-1,768,1),e}function ii(){return jo}function si(){}function oi(){oi=Zs;var e,t,n,r;Pi=H(fo,0,-1,2048,1),e=2,Pi[0]=0,Pi[1]=1;for(r=2;r&lt;22;++r){n=1&lt;&lt;(r&gt;&gt;1)-1;for(t=0;t&lt;n;++t,++e)Pi[e]=r&lt;&lt;24&gt;&gt;24}}function ui(e,t){var n,r,i,s;e._optimumEndIndex=t,i=e._optimum[t].PosPrev,r=e._optimum[t].BackPrev;do e._optimum[t].Prev1IsChar&amp;&amp;(is(e._optimum[i]),e._optimum[i].PosPrev=i-1,e._optimum[t].Prev2&amp;&amp;(e._optimum[i-1].Prev1IsChar=!1,e._optimum[i-1].PosPrev=e._optimum[t].PosPrev2,e._optimum[i-1].BackPrev=e._optimum[t].BackPrev2)),s=i,n=r,r=e._optimum[s].BackPrev,i=e._optimum[s].PosPrev,e._optimum[s].BackPrev=n,e._optimum[s].PosPrev=t,t=s;while(t&gt;0);return e.backRes=e._optimum[0].BackPrev,e._optimumCurrentIndex=e._optimum[0].PosPrev,e._optimumCurrentIndex}function ai(e){var t;e._state=0,e._previousByte=0;for(t=0;t&lt;4;++t)e._repDistances[t]=0}function fi(e,t,n,r){var i,s,o,u,a,c,p,d,v,m,g,y,b,w,E;t[0]=f,n[0]=f,r[0]=!0,e._inStream&amp;&amp;(e._matchFinder._stream=e._inStream,ur(e._matchFinder),e._needReleaseMFStream=!0,e._inStream=null);if(e._finished)return;e._finished=!0,w=e.nowPos64;if(rt(e.nowPos64,f)){if(Gn(e._matchFinder)==0){di(e,ut(e.nowPos64));return}Ei(e),b=ut(e.nowPos64)&amp;e._posStateMask,Os(e._rangeEncoder,e._isMatch,(e._state&lt;&lt;4)+b,0),e._state=Cr(e._state),o=Kn(e._matchFinder,-e._additionalOffset),Yi(Ji(e._literalEncoder,ut(e.nowPos64),e._previousByte),e._rangeEncoder,o),e._previousByte=o,--e._additionalOffset,e.nowPos64=G(e.nowPos64,l)}if(Gn(e._matchFinder)==0){di(e,ut(e.nowPos64));return}for(;;){p=vi(e,ut(e.nowPos64)),m=e.backRes,b=ut(e.nowPos64)&amp;e._posStateMask,s=(e._state&lt;&lt;4)+b;if(p==1&amp;&amp;m==-1)Os(e._rangeEncoder,e._isMatch,s,0),o=Kn(e._matchFinder,-e._additionalOffset),E=Ji(e._literalEncoder,ut(e.nowPos64),e._previousByte),e._state&lt;7?Yi(E,e._rangeEncoder,o):(v=Kn(e._matchFinder,-e._repDistances[0]-1-e._additionalOffset),Zi(E,e._rangeEncoder,v,o)),e._previousByte=o,e._state=Cr(e._state);else{Os(e._rangeEncoder,e._isMatch,s,1);if(m&lt;4){Os(e._rangeEncoder,e._isRep,e._state,1),m==0?(Os(e._rangeEncoder,e._isRepG0,e._state,0),p==1?Os(e._rangeEncoder,e._isRep0Long,s,0):Os(e._rangeEncoder,e._isRep0Long,s,1)):(Os(e._rangeEncoder,e._isRepG0,e._state,1),m==1?Os(e._rangeEncoder,e._isRepG1,e._state,0):(Os(e._rangeEncoder,e._isRepG1,e._state,1),Os(e._rangeEncoder,e._isRepG2,e._state,m-2))),p==1?e._state=e._state&lt;7?9:11:(Ri(e._repMatchLenEncoder,e._rangeEncoder,p-2,b),e._state=e._state&lt;7?8:11),u=e._repDistances[m];if(m!=0){for(c=m;c&gt;=1;--c)e._repDistances[c]=e._repDistances[c-1];e._repDistances[0]=u}}else{Os(e._rangeEncoder,e._isRep,e._state,0),e._state=e._state&lt;7?7:10,Ri(e._lenEncoder,e._rangeEncoder,p-2,b),m-=4,y=Oi(m),d=Nr(p),vs(e._posSlotEncoder[d],e._rangeEncoder,y),y&gt;=4&amp;&amp;(a=(y&gt;&gt;1)-1,i=(2|y&amp;1)&lt;&lt;a,g=m-i,y&lt;14?bs(e._posEncoders,i-y-1,e._rangeEncoder,a,g):(Ms(e._rangeEncoder,g&gt;&gt;4,a-4),gs(e._posAlignEncoder,e._rangeEncoder,g&amp;15),++e._alignPriceCount)),u=m;for(c=3;c&gt;=1;--c)e._repDistances[c]=e._repDistances[c-1];e._repDistances[0]=u,++e._matchPriceCount}e._previousByte=Kn(e._matchFinder,p-1-e._additionalOffset)}e._additionalOffset-=p,e.nowPos64=G(e.nowPos64,st(p));if(e._additionalOffset==0){e._matchPriceCount&gt;=128&amp;&amp;pi(e),e._alignPriceCount&gt;=16&amp;&amp;hi(e),t[0]=e.nowPos64,n[0]=Ds(e._rangeEncoder);if(Gn(e._matchFinder)==0){di(e,ut(e.nowPos64));return}if(et(mt(e.nowPos64,w),h)&gt;=0){e._finished=!1,r[0]=!1;return}}}}function li(e){var t,n;e._matchFinder||(t=(ir(),new pr),n=4,e._matchFinderType==0&amp;&amp;(n=2),lr(t,n),e._matchFinder=t),$i(e._literalEncoder,e._numLiteralPosStateBits,e._numLiteralContextBits);if(e._dictionarySize==e._dictionarySizePrev&amp;&amp;e._numFastBytesPrev==e._numFastBytes)return;sr(e._matchFinder,e._dictionarySize,4096,e._numFastBytes,274),e._dictionarySizePrev=e._dictionarySize,e._numFastBytesPrev=e._numFastBytes}function ci(e){var t;oi(),e._repDistances=H(xo,0,-1,4,1),e._optimum=H(Fo,0,6,4096,0),e._rangeEncoder=(As(),new Is),e._isMatch=H(Mo,0,-1,192,1),e._isRep=H(Mo,0,-1,12,1),e._isRepG0=H(Mo,0,-1,12,1),e._isRepG1=H(Mo,0,-1,12,1),e._isRepG2=H(Mo,0,-1,12,1),e._isRep0Long=H(Mo,0,-1,192,1),e._posSlotEncoder=H(Io,0,8,4,0),e._posEncoders=H(Mo,0,-1,114,1),e._posAlignEncoder=ds(new Ss,4),e._lenEncoder=Ui(new Vi),e._repMatchLenEncoder=Ui(new Vi),e._literalEncoder=new Gi,e._matchDistances=H(xo,0,-1,548,1),e._posSlotPrices=H(xo,0,-1,256,1),e._distancesPrices=H(xo,0,-1,512,1),e._alignPrices=H(xo,0,-1,16,1),e.reps=H(xo,0,-1,4,1),e.repLens=H(xo,0,-1,4,1),e.processedInSize=H(qo,0,-1,1,3),e.processedOutSize=H(qo,0,-1,1,3),e.finished=H(Ro,0,-1,1,2),e.properties=H(fo,0,-1,5,1),e.tempPrices=H(xo,0,-1,128,1);for(t=0;t&lt;4096;++t)e._optimum[t]=new us;for(t=0;t&lt;4;++t)e._posSlotEncoder[t]=ds(new Ss,6);return e}function hi(e){var t;for(t=0;t&lt;16;++t)e._alignPrices[t]=ys(e._posAlignEncoder,t);e._alignPriceCount=0}function pi(e){var t,n,r,i,s,o,u,a;for(i=4;i&lt;128;++i)o=Oi(i),r=(o&gt;&gt;1)-1,t=(2|o&amp;1)&lt;&lt;r,e.tempPrices[i]=ws(e._posEncoders,t-o-1,r,i-t);for(s=0;s&lt;4;++s){n=e._posSlotEncoder[s],u=s&lt;&lt;6;for(o=0;o&lt;e._distTableSize;++o)e._posSlotPrices[u+o]=ms(n,o);for(o=14;o&lt;e._distTableSize;++o)e._posSlotPrices[u+o]+=(o&gt;&gt;1)-1-4&lt;&lt;6;a=s*128;for(i=0;i&lt;4;++i)e._distancesPrices[a+i]=e._posSlotPrices[u+i];for(;i&lt;128;++i)e._distancesPrices[a+i]=e._posSlotPrices[u+Oi(i)]+e.tempPrices[i]}e._matchPriceCount=0}function di(e,t){Si(e),Ai(e,t&amp;e._posStateMask),_s(e._rangeEncoder)}function vi(e,t){var n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B,j,F,I,q,R,U,z,W,X,V,$,J,K,Q,G;if(e._optimumEndIndex!=e._optimumCurrentIndex)return d=e._optimum[e._optimumCurrentIndex].PosPrev-e._optimumCurrentIndex,e.backRes=e._optimum[e._optimumCurrentIndex].BackPrev,e._optimumCurrentIndex=e._optimum[e._optimumCurrentIndex].PosPrev,d;e._optimumCurrentIndex=e._optimumEndIndex=0,e._longestMatchWasFound?(p=e._longestMatchLength,e._longestMatchWasFound=!1):p=Ei(e),L=e._numDistancePairs,C=Gn(e._matchFinder)+1;if(C&lt;2)return e.backRes=-1,1;C&gt;273&amp;&amp;(C=273),R=0;for(l=0;l&lt;4;++l)e.reps[l]=e._repDistances[l],e.repLens[l]=Qn(e._matchFinder,-1,e.reps[l],273),e.repLens[l]&gt;e.repLens[R]&amp;&amp;(R=l);if(e.repLens[R]&gt;=e._numFastBytes)return e.backRes=R,d=e.repLens[R],wi(e,d-1),d;if(p&gt;=e._numFastBytes)return e.backRes=e._matchDistances[L-1]+4,wi(e,p-1),p;a=Kn(e._matchFinder,-1),y=Kn(e._matchFinder,-e._repDistances[0]-1-1);if(p&lt;2&amp;&amp;a!=y&amp;&amp;e.repLens[R]&lt;2)return e.backRes=-1,1;e._optimum[0].State=e._state,H=t&amp;e._posStateMask,e._optimum[1].Price=(As(),qs[e._isMatch[(e._state&lt;&lt;4)+H]&gt;&gt;&gt;2])+ts(Ji(e._literalEncoder,t,e._previousByte),e._state&gt;=7,y,a),is(e._optimum[1]),b=qs[2048-e._isMatch[(e._state&lt;&lt;4)+H]&gt;&gt;&gt;2],q=b+qs[2048-e._isRep[e._state]&gt;&gt;&gt;2],y==a&amp;&amp;(U=q+yi(e,e._state,H),U&lt;e._optimum[1].Price&amp;&amp;(e._optimum[1].Price=U,ss(e._optimum[1]))),h=p&gt;=e.repLens[R]?p:e.repLens[R];if(h&lt;2)return e.backRes=e._optimum[1].BackPrev,1;e._optimum[1].PosPrev=0,e._optimum[0].Backs0=e.reps[0],e._optimum[0].Backs1=e.reps[1],e._optimum[0].Backs2=e.reps[2],e._optimum[0].Backs3=e.reps[3],c=h;do e._optimum[c--].Price=268435455;while(c&gt;=2);for(l=0;l&lt;4;++l){I=e.repLens[l];if(I&lt;2)continue;j=q+gi(e,l,e._state,H);do s=j+zi(e._repMatchLenEncoder,I-2,H),_=e._optimum[I],s&lt;_.Price&amp;&amp;(_.Price=s,_.PosPrev=0,_.BackPrev=l,_.Prev1IsChar=!1);while(--I&gt;=2)}N=b+qs[e._isRep[e._state]&gt;&gt;&gt;2],c=e.repLens[0]&gt;=2?e.repLens[0]+1:2;if(c&lt;=p){A=0;while(c&gt;e._matchDistances[A])A+=2;for(;;++c){f=e._matchDistances[A+1],s=N+mi(e,f,c,H),_=e._optimum[c],s&lt;_.Price&amp;&amp;(_.Price=s,_.PosPrev=0,_.BackPrev=f+4,_.Prev1IsChar=!1);if(c==e._matchDistances[A]){A+=2;if(A==L)break}}}n=0;for(;;){++n;if(n==h)return ui(e,n);w=Ei(e),L=e._numDistancePairs;if(w&gt;=e._numFastBytes)return e._longestMatchLength=w,e._longestMatchWasFound=!0,ui(e,n);++t,P=e._optimum[n].PosPrev,e._optimum[n].Prev1IsChar?(--P,e._optimum[n].Prev2?(W=e._optimum[e._optimum[n].PosPrev2].State,e._optimum[n].BackPrev2&lt;4?W=W&lt;7?8:11:W=W&lt;7?7:10):W=e._optimum[P].State,W=Cr(W)):W=e._optimum[P].State,P==n-1?e._optimum[n].BackPrev==0?W=W&lt;7?9:11:W=Cr(W):(e._optimum[n].Prev1IsChar&amp;&amp;e._optimum[n].Prev2?(P=e._optimum[n].PosPrev2,D=e._optimum[n].BackPrev2,W=W&lt;7?8:11):(D=e._optimum[n].BackPrev,D&lt;4?W=W&lt;7?8:11:W=W&lt;7?7:10),M=e._optimum[P],D&lt;4?D==0?(e.reps[0]=M.Backs0,e.reps[1]=M.Backs1,e.reps[2]=M.Backs2,e.reps[3]=M.Backs3):D==1?(e.reps[0]=M.Backs1,e.reps[1]=M.Backs0,e.reps[2]=M.Backs2,e.reps[3]=M.Backs3):D==2?(e.reps[0]=M.Backs2,e.reps[1]=M.Backs0,e.reps[2]=M.Backs1,e.reps[3]=M.Backs3):(e.reps[0]=M.Backs3,e.reps[1]=M.Backs0,e.reps[2]=M.Backs1,e.reps[3]=M.Backs2):(e.reps[0]=D-4,e.reps[1]=M.Backs0,e.reps[2]=M.Backs1,e.reps[3]=M.Backs2)),e._optimum[n].State=W,e._optimum[n].Backs0=e.reps[0],e._optimum[n].Backs1=e.reps[1],e._optimum[n].Backs2=e.reps[2],e._optimum[n].Backs3=e.reps[3],u=e._optimum[n].Price,a=Kn(e._matchFinder,-1),y=Kn(e._matchFinder,-e.reps[0]-1-1),H=t&amp;e._posStateMask,r=u+qs[e._isMatch[(W&lt;&lt;4)+H]&gt;&gt;&gt;2]+ts(Ji(e._literalEncoder,t,Kn(e._matchFinder,-2)),W&gt;=7,y,a),x=e._optimum[n+1],E=!1,r&lt;x.Price&amp;&amp;(x.Price=r,x.PosPrev=n,x.BackPrev=-1,x.Prev1IsChar=!1,E=!0),b=u+qs[2048-e._isMatch[(W&lt;&lt;4)+H]&gt;&gt;&gt;2],q=b+qs[2048-e._isRep[W]&gt;&gt;&gt;2],y==a&amp;&amp;!(x.PosPrev&lt;n&amp;&amp;x.BackPrev==0)&amp;&amp;(U=q+(qs[e._isRepG0[W]&gt;&gt;&gt;2]+qs[e._isRep0Long[(W&lt;&lt;4)+H]&gt;&gt;&gt;2]),U&lt;=x.Price&amp;&amp;(x.Price=U,x.PosPrev=n,x.BackPrev=0,x.Prev1IsChar=!1,E=!0)),k=Gn(e._matchFinder)+1,k=4095-n&lt;k?4095-n:k,C=k;if(C&lt;2)continue;C&gt;e._numFastBytes&amp;&amp;(C=e._numFastBytes);if(!E&amp;&amp;y!=a){V=En(k-1,e._numFastBytes),m=Qn(e._matchFinder,0,e.reps[0],V);if(m&gt;=2){X=Cr(W),B=t+1&amp;e._posStateMask,T=r+qs[2048-e._isMatch[(X&lt;&lt;4)+B]&gt;&gt;&gt;2]+qs[2048-e._isRep[X]&gt;&gt;&gt;2],O=n+1+m;while(h&lt;O)e._optimum[++h].Price=268435455;s=T+($=zi(e._repMatchLenEncoder,m-2,B),$+gi(e,0,X,B)),_=e._optimum[O],s&lt;_.Price&amp;&amp;(_.Price=s,_.PosPrev=n+1,_.BackPrev=0,_.Prev1IsChar=!0,_.Prev2=!1)}}z=2;for(F=0;F&lt;4;++F){v=Qn(e._matchFinder,-1,e.reps[F],C);if(v&lt;2)continue;g=v;do{while(h&lt;n+v)e._optimum[++h].Price=268435455;s=q+(J=zi(e._repMatchLenEncoder,v-2,H),J+gi(e,F,W,H)),_=e._optimum[n+v],s&lt;_.Price&amp;&amp;(_.Price=s,_.PosPrev=n,_.BackPrev=F,_.Prev1IsChar=!1)}while(--v&gt;=2);v=g,F==0&amp;&amp;(z=v+1);if(v&lt;k){V=En(k-1-v,e._numFastBytes),m=Qn(e._matchFinder,v,e.reps[F],V);if(m&gt;=2){X=W&lt;7?8:11,B=t+v&amp;e._posStateMask,i=q+(K=zi(e._repMatchLenEncoder,v-2,H),K+gi(e,F,W,H))+qs[e._isMatch[(X&lt;&lt;4)+B]&gt;&gt;&gt;2]+ts(Ji(e._literalEncoder,t+v,Kn(e._matchFinder,v-1-1)),!0,Kn(e._matchFinder,v-1-(e.reps[F]+1)),Kn(e._matchFinder,v-1)),X=Cr(X),B=t+v+1&amp;e._posStateMask,S=i+qs[2048-e._isMatch[(X&lt;&lt;4)+B]&gt;&gt;&gt;2],T=S+qs[2048-e._isRep[X]&gt;&gt;&gt;2],O=v+1+m;while(h&lt;n+O)e._optimum[++h].Price=268435455;s=T+(Q=zi(e._repMatchLenEncoder,m-2,B),Q+gi(e,0,X,B)),_=e._optimum[n+O],s&lt;_.Price&amp;&amp;(_.Price=s,_.PosPrev=n+v+1,_.BackPrev=0,_.Prev1IsChar=!0,_.Prev2=!0,_.PosPrev2=n,_.BackPrev2=F)}}}if(w&gt;C){w=C;for(L=0;w&gt;e._matchDistances[L];L+=2);e._matchDistances[L]=w,L+=2}if(w&gt;=z){N=b+qs[e._isRep[W]&gt;&gt;&gt;2];while(h&lt;n+w)e._optimum[++h].Price=268435455;A=0;while(z&gt;e._matchDistances[A])A+=2;for(v=z;;++v){o=e._matchDistances[A+1],s=N+mi(e,o,v,H),_=e._optimum[n+v],s&lt;_.Price&amp;&amp;(_.Price=s,_.PosPrev=n,_.BackPrev=o+4,_.Prev1IsChar=!1);if(v==e._matchDistances[A]){if(v&lt;k){V=En(k-1-v,e._numFastBytes),m=Qn(e._matchFinder,v,o,V);if(m&gt;=2){X=W&lt;7?7:10,B=t+v&amp;e._posStateMask,i=s+qs[e._isMatch[(X&lt;&lt;4)+B]&gt;&gt;&gt;2]+ts(Ji(e._literalEncoder,t+v,Kn(e._matchFinder,v-1-1)),!0,Kn(e._matchFinder,v-(o+1)-1),Kn(e._matchFinder,v-1)),X=Cr(X),B=t+v+1&amp;e._posStateMask,S=i+qs[2048-e._isMatch[(X&lt;&lt;4)+B]&gt;&gt;&gt;2],T=S+qs[2048-e._isRep[X]&gt;&gt;&gt;2],O=v+1+m;while(h&lt;n+O)e._optimum[++h].Price=268435455;s=T+(G=zi(e._repMatchLenEncoder,m-2,B),G+gi(e,0,X,B)),_=e._optimum[n+O],s&lt;_.Price&amp;&amp;(_.Price=s,_.PosPrev=n+v+1,_.BackPrev=0,_.Prev1IsChar=!0,_.Prev2=!0,_.PosPrev2=n,_.BackPrev2=o+4)}}A+=2;if(A==L)break}}}}}function mi(e,t,n,r){var i,s;return i=Nr(n),t&lt;128?s=e._distancesPrices[i*128+t]:s=e._posSlotPrices[(i&lt;&lt;6)+Mi(t)]+e._alignPrices[t&amp;15],s+zi(e._lenEncoder,n-2,r)}function gi(e,t,n,r){var i;return t==0?(i=(As(),qs[e._isRepG0[n]&gt;&gt;&gt;2]),i+=qs[2048-e._isRep0Long[(n&lt;&lt;4)+r]&gt;&gt;&gt;2]):(i=(As(),qs[2048-e._isRepG0[n]&gt;&gt;&gt;2]),t==1?i+=qs[e._isRepG1[n]&gt;&gt;&gt;2]:(i+=qs[2048-e._isRepG1[n]&gt;&gt;&gt;2],i+=Bs(e._isRepG2[n],t-2))),i}function yi(e,t,n){return(As(),qs[e._isRepG0[t]&gt;&gt;&gt;2])+qs[e._isRep0Long[(t&lt;&lt;4)+n]&gt;&gt;&gt;2]}function bi(e){var t;ai(e),Ps(e._rangeEncoder),js(e._isMatch),js(e._isRep0Long),js(e._isRep),js(e._isRepG0),js(e._isRepG1),js(e._isRepG2),js(e._posEncoders),Ki(e._literalEncoder);for(t=0;t&lt;4;++t)Cs(e._posSlotEncoder[t].Models);ji(e._lenEncoder,1&lt;&lt;e._posStateBits),ji(e._repMatchLenEncoder,1&lt;&lt;e._posStateBits),Cs(e._posAlignEncoder.Models),e._longestMatchWasFound=!1,e._optimumEndIndex=0,e._optimumCurrentIndex=0,e._additionalOffset=0}function wi(e,t){t&gt;0&amp;&amp;(cr(e._matchFinder,t),e._additionalOffset+=t)}function Ei(e){var t;return t=0,e._numDistancePairs=or(e._matchFinder,e._matchDistances),e._numDistancePairs&gt;0&amp;&amp;(t=e._matchDistances[e._numDistancePairs-2],t==e._numFastBytes&amp;&amp;(t+=Qn(e._matchFinder,t-1,e._matchDistances[e._numDistancePairs-1],273-t))),++e._additionalOffset,t}function Si(e){!!e._matchFinder&amp;&amp;e._needReleaseMFStream&amp;&amp;(e._matchFinder._stream=null,e._needReleaseMFStream=!1)}function xi(e){Si(e),e._rangeEncoder.Stream=null}function Ti(e,t){var n;if(t&lt;1||t&gt;536870912)return!1;e._dictionarySize=t;for(n=0;t&gt;1&lt;&lt;n;++n);return e._distTableSize=n*2,!0}function Ni(e,t,n,r){return n&lt;0||n&gt;4||t&lt;0||t&gt;8||r&lt;0||r&gt;4?!1:(e._numLiteralPosStateBits=n,e._numLiteralContextBits=t,e._posStateBits=r,e._posStateMask=(1&lt;&lt;e._posStateBits)-1,!0)}function Ci(e,t){var n;return t&lt;0||t&gt;2?!1:(n=e._matchFinderType,e._matchFinderType=t,!!e._matchFinder&amp;&amp;n!=e._matchFinderType&amp;&amp;(e._dictionarySizePrev=-1,e._matchFinder=null),!0)}function ki(e,t){return t&lt;5||t&gt;273?!1:(e._numFastBytes=t,!0)}function Li(e,t){var n;e.properties[0]=(e._posStateBits*5+e._numLiteralPosStateBits)*9+e._numLiteralContextBits&lt;&lt;24&gt;&gt;24;for(n=0;n&lt;4;++n)e.properties[1+n]=e._dictionarySize&gt;&gt;8*n&lt;&lt;24&gt;&gt;24;Xt(t,e.properties,0,5)}function Ai(e,t){var n;if(!e._writeEndMark)return;Os(e._rangeEncoder,e._isMatch,(e._state&lt;&lt;4)+t,1),Os(e._rangeEncoder,e._isRep,e._state,0),e._state=e._state&lt;7?7:10,Ri(e._lenEncoder,e._rangeEncoder,0,t),n=Nr(2),vs(e._posSlotEncoder[n],e._rangeEncoder,63),Ms(e._rangeEncoder,67108863,26),gs(e._posAlignEncoder,e._rangeEncoder,15)}function Oi(e){return e&lt;2048?Pi[e]:e&lt;2097152?Pi[e&gt;&gt;10]+20:Pi[e&gt;&gt;20]+40}function Mi(e){return e&lt;131072?Pi[e&gt;&gt;6]+12:e&lt;134217728?Pi[e&gt;&gt;16]+32:Pi[e&gt;&gt;26]+52}function _i(){return Uo}function Di(){}function Hi(e,t,n,r){n&lt;8?(Os(t,e._choice,0,0),vs(e._lowCoder[r],t,n)):(n-=8,Os(t,e._choice,0,1),n&lt;8?(Os(t,e._choice,1,0),vs(e._midCoder[r],t,n)):(Os(t,e._choice,1,1),vs(e._highCoder,t,n-8)))}function Bi(e){var t;e._choice=H(Mo,0,-1,2,1),e._lowCoder=H(Io,0,8,16,0),e._midCoder=H(Io,0,8,16,0),e._highCoder=ds(new Ss,8);for(t=0;t&lt;16;++t)e._lowCoder[t]=ds(new Ss,3),e._midCoder[t]=ds(new Ss,3);return e}function ji(e,t){var n;js(e._choice);for(n=0;n&lt;t;++n)Cs(e._lowCoder[n].Models),Cs(e._midCoder[n].Models);Cs(e._highCoder.Models)}function Fi(e,t,n,r,i){var s,o,u,a,f;s=(As(),qs[e._choice[0]&gt;&gt;&gt;2]),o=qs[2048-e._choice[0]&gt;&gt;&gt;2],u=o+qs[e._choice[1]&gt;&gt;&gt;2],a=o+qs[2048-e._choice[1]&gt;&gt;&gt;2],f=0;for(f=0;f&lt;8;++f){if(f&gt;=n)return;r[i+f]=s+ms(e._lowCoder[t],f)}for(;f&lt;16;++f){if(f&gt;=n)return;r[i+f]=u+ms(e._midCoder[t],f-8)}for(;f&lt;n;++f)r[i+f]=a+ms(e._highCoder,f-8-8)}function Ii(){return Vo}function qi(){}function Ri(e,t,n,r){Hi(e,t,n,r),--e._counters[r]==0&amp;&amp;(Fi(e,r,e._tableSize,e._prices,r*272),e._counters[r]=e._tableSize)}function Ui(e){return Bi(e),e._prices=H(xo,0,-1,4352,1),e._counters=H(xo,0,-1,16,1),e}function zi(e,t,n){return e._prices[n*272+t]}function Wi(e,t){var n;for(n=0;n&lt;t;++n)Fi(e,n,e._tableSize,e._prices,n*272),e._counters[n]=e._tableSize}function Xi(){return $o}function Vi(){}function $i(e,t,n){var r,i;if(e.m_Coders!=null&amp;&amp;e.m_NumPrevBits==n&amp;&amp;e.m_NumPosBits==t)return;e.m_NumPosBits=t,e.m_PosMask=(1&lt;&lt;t)-1,e.m_NumPrevBits=n,i=1&lt;&lt;e.m_NumPrevBits+e.m_NumPosBits,e.m_Coders=H(zo,0,5,i,0);for(r=0;r&lt;i;++r)e.m_Coders[r]=es(new rs)}function Ji(e,t,n){return e.m_Coders[((t&amp;e.m_PosMask)&lt;&lt;e.m_NumPrevBits)+((n&amp;255)&gt;&gt;&gt;8-e.m_NumPrevBits)]}function Ki(e){var t,n;n=1&lt;&lt;e.m_NumPrevBits+e.m_NumPosBits;for(t=0;t&lt;n;++t)js(e.m_Coders[t].m_Encoders)}function Qi(){return Wo}function Gi(){}function Yi(e,t,n){var r,i,s;i=1;for(s=7;s&gt;=0;--s)r=n&gt;&gt;s&amp;1,Os(t,e.m_Encoders,i,r),i=i&lt;&lt;1|r}function Zi(e,t,n,r){var i,s,o,u,a,f;s=1,a=!0;for(o=7;o&gt;=0;--o)i=r&gt;&gt;o&amp;1,f=s,a&amp;&amp;(u=n&gt;&gt;o&amp;1,f+=1+u&lt;&lt;8,a=u==i),Os(t,e.m_Encoders,f,i),s=s&lt;&lt;1|i}function es(e){return e.m_Encoders=H(Mo,0,-1,768,1),e}function ts(e,t,n,r){var i,s,o,u,a;a=0,s=1,o=7;if(t)for(;o&gt;=0;--o){u=n&gt;&gt;o&amp;1,i=r&gt;&gt;o&amp;1,a+=Bs(e.m_Encoders[(1+u&lt;&lt;8)+s],i),s=s&lt;&lt;1|i;if(u!=i){--o;break}}for(;o&gt;=0;--o)i=r&gt;&gt;o&amp;1,a+=Bs(e.m_Encoders[s],i),s=s&lt;&lt;1|i;return a}function ns(){return Xo}function rs(){}function is(e){e.BackPrev=-1,e.Prev1IsChar=!1}function ss(e){e.BackPrev=0,e.Prev1IsChar=!1}function os(){return Jo}function us(){}function as(e,t){return e.NumBitLevels=t,e.Models=H(Mo,0,-1,1&lt;&lt;t,1),e}function fs(e,t){var n,r;r=1;for(n=e.NumBitLevels;n!=0;--n)r=(r&lt;&lt;1)+xs(t,e.Models,r);return r-(1&lt;&lt;e.NumBitLevels)}function ls(e,t){var n,r,i,s;i=1,s=0;for(r=0;r&lt;e.NumBitLevels;++r)n=xs(t,e.Models,i),i&lt;&lt;=1,i+=n,s|=n&lt;&lt;r;return s}function cs(e,t,n,r){var i,s,o,u;o=1,u=0;for(s=0;s&lt;r;++s)i=xs(n,e,t+o),o&lt;&lt;=1,o+=i,u|=i&lt;&lt;s;return u}function hs(){return Ko}function ps(){}function ds(e,t){return e.NumBitLevels=t,e.Models=H(Mo,0,-1,1&lt;&lt;t,1),e}function vs(e,t,n){var r,i,s;s=1;for(i=e.NumBitLevels;i!=0;)--i,r=n&gt;&gt;&gt;i&amp;1,Os(t,e.Models,s,r),s=s&lt;&lt;1|r}function ms(e,t){var n,r,i,s;s=0,i=1;for(r=e.NumBitLevels;r!=0;)--r,n=t&gt;&gt;&gt;r&amp;1,s+=Bs(e.Models[i],n),i=(i&lt;&lt;1)+n;return s}function gs(e,t,n){var r,i,s;s=1;for(i=0;i&lt;e.NumBitLevels;++i)r=n&amp;1,Os(t,e.Models,s,r),s=s&lt;&lt;1|r,n&gt;&gt;=1}function ys(e,t){var n,r,i,s;s=0,i=1;for(r=e.NumBitLevels;r!=0;--r)n=t&amp;1,t&gt;&gt;&gt;=1,s+=Bs(e.Models[i],n),i=i&lt;&lt;1|n;return s}function bs(e,t,n,r,i){var s,o,u;u=1;for(o=0;o&lt;r;++o)s=i&amp;1,Os(n,e,t+u,s),u=u&lt;&lt;1|s,i&gt;&gt;=1}function ws(e,t,n,r){var i,s,o,u;u=0,o=1;for(s=n;s!=0;--s)i=r&amp;1,r&gt;&gt;&gt;=1,u+=(As(),qs[((e[t+o]-i^-i)&amp;2047)&gt;&gt;&gt;2]),o=o&lt;&lt;1|i;return u}function Es(){return Qo}function Ss(){}function xs(e,t,n){var r,i;return i=</td>
      </tr>
      <tr>
        <td id="L15" class="blob-num js-line-number" data-line-number="15"></td>
        <td id="LC15" class="blob-code js-file-line">t[n],r=(e.Range&gt;&gt;&gt;11)*i,(e.Code^-2147483648)&lt;(r^-2147483648)?(e.Range=r,t[n]=i+(2048-i&gt;&gt;&gt;5)&lt;&lt;16&gt;&gt;16,(e.Range&amp;-16777216)==0&amp;&amp;(e.Code=e.Code&lt;&lt;8|Ht(e.Stream),e.Range&lt;&lt;=8),0):(e.Range-=r,e.Code-=r,t[n]=i-(i&gt;&gt;&gt;5)&lt;&lt;16&gt;&gt;16,(e.Range&amp;-16777216)==0&amp;&amp;(e.Code=e.Code&lt;&lt;8|Ht(e.Stream),e.Range&lt;&lt;=8),1)}function Ts(e,t){var n,r,i;r=0;for(n=t;n!=0;--n)e.Range&gt;&gt;&gt;=1,i=e.Code-e.Range&gt;&gt;&gt;31,e.Code-=e.Range&amp;i-1,r=r&lt;&lt;1|1-i,(e.Range&amp;-16777216)==0&amp;&amp;(e.Code=e.Code&lt;&lt;8|Ht(e.Stream),e.Range&lt;&lt;=8);return r}function Ns(e){var t;e.Code=0,e.Range=-1;for(t=0;t&lt;5;++t)e.Code=e.Code&lt;&lt;8|Ht(e.Stream)}function Cs(e){var t;for(t=0;t&lt;e.length;++t)e[t]=1024}function ks(){return Go}function Ls(){}function As(){As=Zs;var e,t,n,r;qs=H(xo,0,-1,512,1);for(t=8;t&gt;=0;--t){r=1&lt;&lt;9-t-1,e=1&lt;&lt;9-t;for(n=r;n&lt;e;++n)qs[n]=(t&lt;&lt;6)+(e-n&lt;&lt;6&gt;&gt;&gt;9-t-1)}}function Os(e,t,n,r){var i,s;s=t[n],i=(e.Range&gt;&gt;&gt;11)*s,r==0?(e.Range=i,t[n]=s+(2048-s&gt;&gt;&gt;5)&lt;&lt;16&gt;&gt;16):(e.Low=G(e.Low,Z(st(i),m)),e.Range-=i,t[n]=s-(s&gt;&gt;&gt;5)&lt;&lt;16&gt;&gt;16),(e.Range&amp;-16777216)==0&amp;&amp;(e.Range&lt;&lt;=8,Hs(e))}function Ms(e,t,n){var r;for(r=n-1;r&gt;=0;--r)e.Range&gt;&gt;&gt;=1,(t&gt;&gt;&gt;r&amp;1)==1&amp;&amp;(e.Low=G(e.Low,st(e.Range))),(e.Range&amp;-16777216)==0&amp;&amp;(e.Range&lt;&lt;=8,Hs(e))}function _s(e){var t;for(t=0;t&lt;5;++t)Hs(e)}function Ds(e){return G(G(st(e._cacheSize),e._position),c)}function Ps(e){e._position=f,e.Low=f,e.Range=-1,e._cacheSize=1,e._cache=0}function Hs(e){var t,n;t=ut(vt(e.Low,32));if(t!=0||et(e.Low,v)&lt;0){e._position=G(e._position,st(e._cacheSize)),n=e._cache;do Wt(e.Stream,n+t),n=255;while(--e._cacheSize!=0);e._cache=ut(e.Low)&gt;&gt;&gt;24}++e._cacheSize,e.Low=pt(Z(e.Low,p),8)}function Bs(e,t){return As(),qs[((e-t^-t)&amp;2047)&gt;&gt;&gt;2]}function js(e){As();var t;for(t=0;t&lt;e.length;++t)e[t]=1024}function Fs(){return Yo}function Is(){}function Rs(e){var t,n,r,i,s;t=kn(new An);for(n=0;n&lt;e.length;++n){r=e[n]&amp;255;if((r&amp;128)==0){if(r==0)throw pn(new vn,&quot;invalid UTF-8&quot;);M(t.data,String.fromCharCode(r&amp;65535))}else if((r&amp;224)==192){if(n+1&gt;=e.length)throw pn(new vn,&quot;invalid UTF-8&quot;);i=e[++n]&amp;255;if((i&amp;192)!=128)throw pn(new vn,&quot;invalid UTF-8&quot;);O(t.data,String.fromCharCode((r&amp;31)&lt;&lt;6&amp;65535|i&amp;63))}else{if((r&amp;240)!=224)throw pn(new vn,&quot;invalid UTF-8&quot;);if(n+2&gt;=e.length)throw pn(new vn,&quot;invalid UTF-8&quot;);i=e[++n]&amp;255;if((i&amp;192)!=128)throw pn(new vn,&quot;invalid UTF-8&quot;);s=e[++n]&amp;255;if((s&amp;192)!=128)throw pn(new vn,&quot;invalid UTF-8&quot;);M(t.data,String.fromCharCode(((r&amp;15)&lt;&lt;12|(i&amp;63)&lt;&lt;6|s&amp;63)&amp;65535))}}return _(t.data)}function Us(e){var t,n,r,i,s,o,u;n=(u=e.length,o=H(go,0,-1,u,1),Nn(e,0,u,o,0),o),i=0;for(s=0;s&lt;e.length;++s)t=n[s],t&gt;=1&amp;&amp;t&lt;=127?++i:t==0||t&gt;=128&amp;&amp;t&lt;=2047?i+=2:i+=3;r=H(fo,0,-1,i,1),i=0;for(s=0;s&lt;e.length;++s)t=n[s],t&gt;=1&amp;&amp;t&lt;=127?r[i++]=t&lt;&lt;24&gt;&gt;24:t==0||t&gt;=128&amp;&amp;t&lt;=2047?(r[i++]=(192|t&gt;&gt;6&amp;31)&lt;&lt;24&gt;&gt;24,r[i++]=(128|t&amp;63)&lt;&lt;24&gt;&gt;24):(r[i++]=(224|t&gt;&gt;12&amp;15)&lt;&lt;24&gt;&gt;24,r[i++]=(128|t&gt;&gt;6&amp;63)&lt;&lt;24&gt;&gt;24,r[i++]=(128|t&amp;63)&lt;&lt;24&gt;&gt;24);return r}function zs(e){return e}function Ws(e){return e[1]+e[0]}function Xs(){function l(){var s;i=(new Date).getTime();while(Pn(t.c)){n=Ws(t.c.chunker.inBytesProcessed)/Ws(t.c.length_0);if((new Date).getTime()-i&gt;200)return f?f(n):typeof u!=&quot;undefined&quot;&amp;&amp;r(n,u),setTimeout(l,0),!1}f?f(1):typeof u!=&quot;undefined&quot;&amp;&amp;r(1,u),s=zt(t.c.output).slice(0),a?a(s):typeof u!=&quot;undefined&quot;&amp;&amp;postMessage({action:e,callback_num:u,result:s})}var t=zs(new Ks),n,i,s=arguments[0],o=arguments[1],u,a,f;typeof arguments[2]==&quot;function&quot;?(a=arguments[2],typeof arguments[3]==&quot;function&quot;&amp;&amp;(f=arguments[3])):u=arguments[2],t.mode=su(o),t.c=Fn(new qn,Us(s),t.mode),f?f(0):typeof u!=&quot;undefined&quot;&amp;&amp;r(0,u),setTimeout(l,1)}function Vs(){function c(){var i;s=(new Date).getTime();while(Rn(e.d)){n=Ws(e.d.chunker.decoder.nowPos64)/Ws(e.d.length_0);if((new Date).getTime()-s&gt;200)return l?l(n):typeof a!=&quot;undefined&quot;&amp;&amp;r(n,a),setTimeout(c,0),!1}l?l(1):typeof a!=&quot;undefined&quot;&amp;&amp;r(1,a),i=Rs(zt(e.d.output)),f?f(i):typeof a!=&quot;undefined&quot;&amp;&amp;postMessage({action:t,callback_num:a,result:i})}var e=zs(new Ks),n,i,s,o,u=arguments[0],a,f,l;typeof arguments[1]==&quot;function&quot;?(f=arguments[1],typeof arguments[2]==&quot;function&quot;&amp;&amp;(l=arguments[2])):a=arguments[1],i=B(fo,0,-1,u),e.d=Xn(new $n,i),l?l(0):typeof a!=&quot;undefined&quot;&amp;&amp;r(0,a),setTimeout(c,0)}function $s(e){Xs(e),Vs(e)}function Js(){return iu}function Ks(){}function Gs(){!!$stats&amp;&amp;$stats({moduleName:i,subSystem:&quot;startup&quot;,evtGroup:&quot;moduleStartup&quot;,millis:(new Date).getTime(),type:&quot;onModuleLoadStart&quot;,className:&quot;org.dellroad.lzma.demo.client.LZMADemo&quot;})}function Ys(e,t,n){i=t,s=n;if(e)try{Gs()}catch(r){e(t)}else Gs()}function Zs(){}var e=1,t=2,n=3,i,s,o,u=[0,-0x8000000000000000],a=[4294967295,-4294967296],f=[0,0],l=[1,0],c=[4,0],h=[4096,0],p=[16777215,0],d=[16777216,0],v=[4278190080,0],m=[4294967295,0],g=[4294967295,0x7fffffff00000000];o=b.prototype={},o.getClass$=y,o.typeMarker$=Zs,o.typeId$=1,o=E.prototype=new b,o.getClass$=w,o.typeId$=3,o.detailMessage=null,o=x.prototype=new E,o.getClass$=S,o.typeId$=4,o=C.prototype=new x,o.getClass$=N,o.typeId$=5,o=A.prototype=new C,o.getClass$=L,o.typeId$=6,o=F.prototype=new b,o.getClass$=P,o.typeId$=0,o.arrayClass$=null,o.length=0,o.queryId$=0;var U,z,K=[{},{},{1:1},{2:1},{2:1},{2:1},{2:1},{2:1,10:1},{2:1},{2:1},{2:1},{2:1},{2:1},{2:1,11:1},{2:1},{2:1},{2:1},{4:1},{5:1},{6:1},{7:1},{8:1},{9:1}],Et,xt,Tt,Nt,Ct,kt,Lt,At,Ot;o=_t.prototype=new b,o.getClass$=Mt,o.typeId$=0,o=Ft.prototype=new _t,o.getClass$=jt,o.typeId$=0,o.buf=null,o.count=0,o.pos=0,o=qt.prototype=new b,o.getClass$=It,o.typeId$=0,o=$t.prototype=new qt,o.getClass$=Vt,o.typeId$=0,o.buf=null,o.count=0,o=Qt.prototype=new x,o.getClass$=Kt,o.typeId$=7,o=Zt.prototype=new C,o.getClass$=Yt,o.typeId$=8,o=nn.prototype=new C,o.getClass$=tn,o.typeId$=9,o=an.prototype=new b,o.getClass$=un,o.typeId$=0,o.typeName=null,o=ln.prototype=new C,o.getClass$=fn,o.typeId$=12,o=hn.prototype=new b,o.getClass$=cn,o.typeId$=0,o=vn.prototype=new C,o.getClass$=dn,o.typeId$=13,o=gn.prototype=new C,o.getClass$=mn,o.typeId$=14,o=bn.prototype=new C,o.getClass$=yn,o.typeId$=15,o=xn.prototype=new C,o.getClass$=Sn,o.typeId$=16,o=String.prototype,o.getClass$=Cn,o.typeId$=2,o=An.prototype=new b,o.getClass$=Ln,o.typeId$=0,o=Dn.prototype=new hn,o.getClass$=_n,o.typeId$=0,o.dictionarySize=0,o.fb=0,o.lc=0,o.lp=0,o.matchFinder=0,o.pb=0,o=jn.prototype=new b,o.getClass$=Bn,o.typeId$=0,o.chunker=null,o=qn.prototype=new jn,o.getClass$=In,o.typeId$=0,o.output=null,o=Wn.prototype=new b,o.getClass$=zn,o.typeId$=0,o.chunker=null,o.exception=null,o.length_0=f,o=$n.prototype=new Wn,o.getClass$=Vn,o.typeId$=0,o.output=null,o=rr.prototype=new b,o.getClass$=nr,o.typeId$=0,o._blockSize=0,o._bufferBase=null,o._bufferOffset=0,o._keepSizeAfter=0,o._keepSizeBefore=0,o._pointerToLastSafePosition=0,o._pos=0,o._posLimit=0,o._stream=null,o._streamEndWasReached=!1,o._streamPos=0,o=pr.prototype=new rr,o.getClass$=hr,o.typeId$=0,o.HASH_ARRAY=!0,o._cutValue=255,o._cyclicBufferPos=0,o._cyclicBufferSize=0,o._hash=null,o._hashMask=0,o._hashSizeSum=0,o._matchMaxLen=0,o._son=null,o.kFixHashSize=66560,o.kMinMatchCheck=4,o.kNumHashDirectBytes=0;var dr;o=Tr.prototype=new b,o.getClass$=xr,o.typeId$=0,o._buffer=null,o._pos=0,o._stream=null,o._streamPos=0,o._windowSize=0,o=Dr.prototype=new b,o.getClass$=_r,o.typeId$=0,o.alive=!1,o.decoder=null,o.encoder=null,o=zr.prototype=new b,o.getClass$=Ur,o.typeId$=0,o.m_DictionarySize=-1,o.m_DictionarySizeCheck=-1,o.m_PosStateMask=0,o.nowPos64=f,o.outSize=f,o.prevByte=0,o.rep0=0,o.rep1=0,o.rep2=0,o.rep3=0,o.state=0,o=Kr.prototype=new b,o.getClass$=Jr,o.typeId$=0,o.m_NumPosStates=0,o=ei.prototype=new b,o.getClass$=Zr,o.typeId$=0,o.m_Coders=null,o.m_NumPosBits=0,o.m_NumPrevBits=0,o.m_PosMask=0,o=si.prototype=new b,o.getClass$=ii,o.typeId$=17,o=Di.prototype=new b,o.getClass$=_i,o.typeId$=0,o._additionalOffset=0,o._alignPriceCount=0,o._dictionarySize=4194304,o._dictionarySizePrev=-1,o._distTableSize=44,o._finished=!1,o._inStream=null,o._longestMatchLength=0,o._longestMatchWasFound=!1,o._matchFinder=null,o._matchFinderType=1,o._matchPriceCount=0,o._needReleaseMFStream=!1,o._numDistancePairs=0,o._numFastBytes=32,o._numFastBytesPrev=-1,o._numLiteralContextBits=3,o._numLiteralPosStateBits=0,o._optimumCurrentIndex=0,o._optimumEndIndex=0,o._posStateBits=2,o._posStateMask=3,o._previousByte=0,o._state=0,o._writeEndMark=!1,o.backRes=0,o.nowPos64=f;var Pi;o=qi.prototype=new b,o.getClass$=Ii,o.typeId$=0,o=Vi.prototype=new qi,o.getClass$=Xi,o.typeId$=0,o._tableSize=0,o=Gi.prototype=new b,o.getClass$=Qi,o.typeId$=0,o.m_Coders=null,o.m_NumPosBits=0,o.m_NumPrevBits=0,o.m_PosMask=0,o=rs.prototype=new b,o.getClass$=ns,o.typeId$=18,o=us.prototype=new b,o.getClass$=os,o.typeId$=19,o.BackPrev=0,o.BackPrev2=0,o.Backs0=0,o.Backs1=0,o.Backs2=0,o.Backs3=0,o.PosPrev=0,o.PosPrev2=0,o.Prev1IsChar=!1,o.Prev2=!1,o.Price=0,o.State=0,o=ps.prototype=new b,o.getClass$=hs,o.typeId$=20,o.Models=null,o.NumBitLevels=0,o=Ss.prototype=new b,o.getClass$=Es,o.typeId$=21,o.Models=null,o.NumBitLevels=0,o=Ls.prototype=new b,o.getClass$=ks,o.typeId$=0,o.Code=0,o.Range=0,o.Stream=null,o=Is.prototype=new b,o.getClass$=Fs,o.typeId$=0,o.Low=f,o.Range=0,o.Stream=null,o._cache=0,o._cacheSize=0,o._position=f;var qs;o=Ks.prototype=new b,o.getClass$=Js,o.typeId$=0,o.c=null,o.d=null;var Qs,eo=sn(&quot;java.lang.&quot;,&quot;Object&quot;),to=sn(&quot;java.lang.&quot;,&quot;Throwable&quot;),no=sn(&quot;java.lang.&quot;,&quot;Exception&quot;),ro=sn(&quot;java.lang.&quot;,&quot;RuntimeException&quot;),io=sn(&quot;com.google.gwt.core.client.&quot;,&quot;JavaScriptException&quot;),so=sn(&quot;com.google.gwt.core.client.&quot;,&quot;JavaScriptObject$&quot;),oo=rn(&quot;&quot;,&quot;[[D&quot;),uo=sn(&quot;java.io.&quot;,&quot;InputStream&quot;),ao=sn(&quot;java.io.&quot;,&quot;ByteArrayInputStream&quot;),fo=rn(&quot;&quot;,&quot;[B&quot;),lo=sn(&quot;java.io.&quot;,&quot;OutputStream&quot;),co=sn(&quot;java.io.&quot;,&quot;ByteArrayOutputStream&quot;),ho=sn(&quot;java.io.&quot;,&quot;IOException&quot;),po=sn(&quot;java.lang.&quot;,&quot;Enum&quot;),vo=sn(&quot;java.lang.&quot;,&quot;ArithmeticException&quot;),mo=sn(&quot;java.lang.&quot;,&quot;ArrayStoreException&quot;),go=rn(&quot;&quot;,&quot;[C&quot;),yo=sn(&quot;java.lang.&quot;,&quot;Class&quot;),bo=sn(&quot;java.lang.&quot;,&quot;ClassCastException&quot;),wo=sn(&quot;java.lang.&quot;,&quot;IllegalArgumentException&quot;),Eo=sn(&quot;java.lang.&quot;,&quot;IllegalStateException&quot;),So=sn(&quot;java.lang.&quot;,&quot;IndexOutOfBoundsException&quot;),xo=rn(&quot;&quot;,&quot;[I&quot;),To=sn(&quot;java.lang.&quot;,&quot;NullPointerException&quot;),No=sn(&quot;java.lang.&quot;,&quot;String&quot;),Co=sn(&quot;java.lang.&quot;,&quot;StringBuilder&quot;),ko=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZ.&quot;,&quot;InWindow&quot;),Lo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZ.&quot;,&quot;BinTree&quot;),Ao=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZ.&quot;,&quot;OutWindow&quot;),Oo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Chunker&quot;),Mo=rn(&quot;&quot;,&quot;[S&quot;),_o=rn(&quot;[Lorg.dellroad.lzma.client.SevenZip.Compression.RangeCoder.&quot;,&quot;BitTreeDecoder;&quot;),Do=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Decoder&quot;),Po=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Decoder$LenDecoder&quot;),Ho=rn(&quot;[Lorg.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Decoder$LiteralDecoder$Decoder2;&quot;),Bo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Decoder$LiteralDecoder&quot;),jo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Decoder$LiteralDecoder$Decoder2&quot;),Fo=rn(&quot;[Lorg.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Encoder$Optimal;&quot;),Io=rn(&quot;[Lorg.dellroad.lzma.client.SevenZip.Compression.RangeCoder.&quot;,&quot;BitTreeEncoder;&quot;),qo=rn(&quot;&quot;,&quot;[J&quot;),Ro=rn(&quot;&quot;,&quot;[Z&quot;),Uo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Encoder&quot;),zo=rn(&quot;[Lorg.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Encoder$LiteralEncoder$Encoder2;&quot;),Wo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Encoder$LiteralEncoder&quot;),Xo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Encoder$LiteralEncoder$Encoder2&quot;),Vo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Encoder$LenEncoder&quot;),$o=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Encoder$LenPriceTableEncoder&quot;),Jo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.LZMA.&quot;,&quot;Encoder$Optimal&quot;),Ko=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.RangeCoder.&quot;,&quot;BitTreeDecoder&quot;),Qo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.RangeCoder.&quot;,&quot;BitTreeEncoder&quot;),Go=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.RangeCoder.&quot;,&quot;Decoder&quot;),Yo=sn(&quot;org.dellroad.lzma.client.SevenZip.Compression.RangeCoder.&quot;,&quot;Encoder&quot;),Zo=on(&quot;org.dellroad.lzma.client.&quot;,&quot;CompressionMode&quot;),eu=sn(&quot;org.dellroad.lzma.client.&quot;,&quot;LZMACompressor&quot;),tu=sn(&quot;org.dellroad.lzma.client.&quot;,&quot;LZMAByteArrayCompressor&quot;),nu=sn(&quot;org.dellroad.lzma.client.&quot;,&quot;LZMADecompressor&quot;),ru=sn(&quot;org.dellroad.lzma.client.&quot;,&quot;LZMAByteArrayDecompressor&quot;),iu=sn(&quot;org.dellroad.lzma.demo.client.&quot;,&quot;LZMADemo&quot;);Ys(function(){},&quot;lzma_demo&quot;,&quot;&quot;);var su=function(){function t(e){return!isNaN(parseFloat(e))&amp;&amp;isFinite(e)}var e=[{dictionarySize:16,fb:64,matchFinder:0,lc:3,lp:0,pb:2},{dictionarySize:20,fb:64,matchFinder:0,lc:3,lp:0,pb:2},{dictionarySize:19,fb:64,matchFinder:1,lc:3,lp:0,pb:2},{dictionarySize:20,fb:64,matchFinder:1,lc:3,lp:0,pb:2},{dictionarySize:21,fb:128,matchFinder:1,lc:3,lp:0,pb:2},{dictionarySize:22,fb:128,matchFinder:1,lc:3,lp:0,pb:2},{dictionarySize:23,fb:128,matchFinder:1,lc:3,lp:0,pb:2},{dictionarySize:24,fb:255,matchFinder:1,lc:3,lp:0,pb:2},{dictionarySize:25,fb:255,matchFinder:1,lc:3,lp:0,pb:2}];return function(n){return t(n)?n&lt;1?n=1:n&gt;9&amp;&amp;(n=9):n=1,e[n-1]}}();return{compress:Xs,decompress:Vs}}();this.LZMA=LZMA,root.Mustache=Mustache,function(){function GeometryView(){}function Map(e){var t=this;this.options=_.defaults(e,{ajax:window.$?window.$.ajax:reqwest.compat,pngParams:[&quot;map_key&quot;,&quot;api_key&quot;,&quot;cache_policy&quot;,&quot;updated_at&quot;],gridParams:[&quot;map_key&quot;,&quot;api_key&quot;,&quot;cache_policy&quot;,&quot;updated_at&quot;],cors:this.isCORSSupported(),btoa:this.isBtoaSupported()?this._encodeBase64Native:this._encodeBase64,MAX_GET_SIZE:2033,force_cors:!1}),this.layerToken=null,this.urls=null,this.silent=!1,this.interactionEnabled=[],this._layerTokenQueue=[],this._timeout=-1,this._queue=[],this._waiting=!1,this.lastTimeUpdated=null,this._refreshTimer=-1}function NamedMap(e,t){var n=this;Map.call(this,t),this.options.pngParams.push(&quot;auth_token&quot;),this.options.gridParams.push(&quot;auth_token&quot;),this.endPoint=Map.BASE_URL+&quot;/named/&quot;+e.name,this.JSONPendPoint=Map.BASE_URL+&quot;/named/&quot;+e.name+&quot;/jsonp&quot;,this.layers=_.clone(e.layers)||[];for(var r=0;r&lt;this.layers.length;++r){var i=this.layers[r];i.options=i.options||{hidden:!1},i.options.layer_name=i.layer_name}this.named_map=e;var s=e.auth_token||t.auth_token;s&amp;&amp;this.setAuthToken(s)}function LayerDefinition(e,t){var n=this;Map.call(this,t),this.endPoint=Map.BASE_URL,this.setLayerDefinition(e,{silent:!0})}function SubLayer(e,t){this._parent=e,this._position=t,this._added=!0,this._bindInteraction(),Backbone.Model&amp;&amp;(this.infowindow=new Backbone.Model(this._parent.getLayer(this._position).infowindow),this.infowindow.bind(&quot;change&quot;,function(){var e=this._parent.getLayer(this._position);e.infowindow=this.infowindow.toJSON(),this._parent.setLayer(this._position,e)},this))}function CartoDBLayerCommon(){}var $=root.$,jQuery=root.jQuery,L=root.L,Mustache=root.Mustache,Backbone=root.Backbone,_=root._;(function(){var e=this,t=e.cdb={};t.VERSION=&quot;3.11.04&quot;,t.DEBUG=!1,t.CARTOCSS_VERSIONS={&quot;2.0.0&quot;:&quot;&quot;,&quot;2.1.0&quot;:&quot;&quot;},t.CARTOCSS_DEFAULT_VERSION=&quot;2.1.1&quot;,t.CDB_HOST={http:&quot;api.cartocdn.com&quot;,https:&quot;cartocdn.global.ssl.fastly.net&quot;},e.cdb.config={},e.cdb.core={},e.cdb.geo={},e.cdb.geo.ui={},e.cdb.geo.geocoder={},e.cdb.ui={},e.cdb.ui.common={},e.cdb.vis={},e.cdb.decorators={},e.JST=e.JST||{},e.cartodb=t,t.files=[&quot;../vendor/jquery.min.js&quot;,&quot;../vendor/underscore-min.js&quot;,&quot;../vendor/json2.js&quot;,&quot;../vendor/backbone.js&quot;,&quot;../vendor/leaflet.js&quot;,&quot;../vendor/wax.cartodb.js&quot;,&quot;../vendor/GeoJSON.js&quot;,&quot;../vendor/jscrollpane.js&quot;,&quot;../vendor/mousewheel.js&quot;,&quot;../vendor/mwheelIntent.js&quot;,&quot;../vendor/spin.js&quot;,&quot;../vendor/lzma.js&quot;,&quot;core/decorator.js&quot;,&quot;core/config.js&quot;,&quot;core/log.js&quot;,&quot;core/profiler.js&quot;,&quot;core/template.js&quot;,&quot;core/model.js&quot;,&quot;core/view.js&quot;,&quot;geo/geocoder.js&quot;,&quot;geo/geometry.js&quot;,&quot;geo/map.js&quot;,&quot;geo/ui/text.js&quot;,&quot;geo/ui/image.js&quot;,&quot;geo/ui/share.js&quot;,&quot;geo/ui/zoom.js&quot;,&quot;geo/ui/zoom_info.js&quot;,&quot;geo/ui/mobile.js&quot;,&quot;geo/ui/legend.js&quot;,&quot;geo/ui/switcher.js&quot;,&quot;geo/ui/infowindow.js&quot;,&quot;geo/ui/header.js&quot;,&quot;geo/ui/search.js&quot;,&quot;geo/ui/layer_selector.js&quot;,&quot;geo/ui/tiles_loader.js&quot;,&quot;geo/ui/infobox.js&quot;,&quot;geo/ui/tooltip.js&quot;,&quot;geo/ui/fullscreen.js&quot;,&quot;geo/layer_definition.js&quot;,&quot;geo/common.js&quot;,&quot;geo/leaflet/leaflet_base.js&quot;,&quot;geo/leaflet/leaflet_plainlayer.js&quot;,&quot;geo/leaflet/leaflet_tiledlayer.js&quot;,&quot;geo/leaflet/leaflet_wmslayer.js&quot;,&quot;geo/leaflet/leaflet_cartodb_layergroup.js&quot;,&quot;geo/leaflet/leaflet_cartodb_layer.js&quot;,&quot;geo/leaflet/leaflet.js&quot;,&quot;geo/gmaps/gmaps_base.js&quot;,&quot;geo/gmaps/gmaps_baselayer.js&quot;,&quot;geo/gmaps/gmaps_plainlayer.js&quot;,&quot;geo/gmaps/gmaps_tiledlayer.js&quot;,&quot;geo/gmaps/gmaps_cartodb_layergroup.js&quot;,&quot;geo/gmaps/gmaps_cartodb_layer.js&quot;,&quot;geo/gmaps/gmaps.js&quot;,&quot;ui/common/dialog.js&quot;,&quot;ui/common/share.js&quot;,&quot;ui/common/notification.js&quot;,&quot;ui/common/table.js&quot;,&quot;ui/common/dropdown.js&quot;,&quot;vis/vis.js&quot;,&quot;vis/overlays.js&quot;,&quot;vis/layers.js&quot;,&quot;api/layers.js&quot;,&quot;api/sql.js&quot;,&quot;api/vis.js&quot;],t.init=function(n){var r=t.Class=function(){};_.extend(r.prototype,Backbone.Events),t._loadJST(),e.cdb.god=new Backbone.Model,n&amp;&amp;n()},t.load=function(e,n){var r=0,i=function(){var s=document.createElement(&quot;script&quot;);s.src=e+t.files[r],document.body.appendChild(s),++r,r==t.files.length?n&amp;&amp;(s.onload=n):s.onload=i};i()}})(),cdb.decorators.elder=function(){var e=Backbone.Router.extend,t=function(e,t){var n=null;if(this.parent!=null){var r=this.parent;this.parent=this.parent.parent;var t=Array.prototype.slice.call(arguments,1);r.hasOwnProperty(e)?n=r[e].apply(this,t):(t.splice(0,0,e),n=r.elder.apply(this,t)),this.parent=r}return n},n=function(n,r){var i=e.call(this,n,r);return i.prototype.parent=this.prototype,i.prototype.elder=function(e){var n=Array.prototype.slice.call(arguments,1);return e?(n.splice(0,0,e),t.apply(this,n)):i.prototype.parent},i},r=function(e){e.extend=n,e.prototype.elder=function(){},e.prototype.parent=null};return r}(),cdb.decorators.elder(Backbone.Model),cdb.decorators.elder(Backbone.View),cdb.decorators.elder(Backbone.Collection),window.JSON||(window.JSON={stringify:function(e){if(typeof e==&quot;number&quot;||typeof e==&quot;boolean&quot;)return e.toString();if(typeof e==&quot;string&quot;)return&#39;&quot;&#39;+e.toString()+&#39;&quot;&#39;;if(_.isArray(e)){var t=&quot;[&quot;;for(var n in e)n&gt;0&amp;&amp;(t+=&quot;, &quot;),t+=JSON.stringify(e[n]);return t+=&quot;]&quot;,t}var t=&quot;{&quot;;for(var r in e)e.hasOwnProperty(r)&amp;&amp;(t+=&#39;&quot;&#39;+r+&#39;&quot;: &#39;+JSON.stringify(e[r]));return t+=&quot;}&quot;,t},parse:function(param){return eval(param)}}),function(){Config=Backbone.Model.extend({VERSION:2,initialize:function(){this.modules=new Backbone.Collection,this.modules.bind(&quot;add&quot;,function(e){this.trigger(&quot;moduleLoaded&quot;)},this)},REPORT_ERROR_URL:&quot;/api/v0/error&quot;,ERROR_TRACK_ENABLED:!1,getSqlApiUrl:function(){var e=this.get(&quot;sql_api_protocol&quot;)+&quot;://&quot;+this.get(&quot;user_name&quot;)+&quot;.&quot;+this.get(&quot;sql_api_domain&quot;)+&quot;:&quot;+this.get(&quot;sql_api_port&quot;);return e}}),cdb.config=new Config,cdb.config.set({cartodb_attributions:&quot;CartoDB &lt;a href=&#39;http://cartodb.com/attributions&#39; target=&#39;_blank&#39;&gt;attribution&lt;/a&gt;&quot;,cartodb_logo_link:&quot;http://www.cartodb.com&quot;})}(),function(){cdb.core.Error=Backbone.Model.extend({url:cdb.config.REPORT_ERROR_URL,initialize:function(){this.set({browser:JSON.stringify($.browser)})}}),cdb.core.ErrorList=Backbone.Collection.extend({model:cdb.core.Error,enableTrack:function(){var e=window.onerror;window.onerror=function(t,n,r){cdb.errors.create({msg:t,url:n,line:r}),e&amp;&amp;e.apply(window,arguments)}}}),cdb.errors=new cdb.core.ErrorList,cdb.config.ERROR_TRACK_ENABLED&amp;&amp;cdb.errors.enableTrack();var e=function(){};e.prototype.error=function(){},e.prototype.log=function(){};if(typeof console!=&quot;undefined&quot;){_console=console;try{_console.log.apply(_console,[&quot;cartodb.js &quot;+cartodb.VERSION])}catch(t){_console=new e}}else _console=new e;cdb.core.Log=Backbone.Model.extend({error:function(){_console.error.apply(_console,arguments),cdb.config.ERROR_TRACK_ENABLED&amp;&amp;cdb.errors.create({msg:Array.prototype.slice.call(arguments).join(&quot;&quot;)})},log:function(){_console.log.apply(_console,arguments)},info:function(){_console.log.apply(_console,arguments)},debug:function(){_console.log.apply(_console,arguments)}})}(),cdb.log=new cdb.core.Log({tag:&quot;cdb&quot;}),function(e){function n(){}function r(e){this.t0=null,this.name=e,this.count=0}var t=1024;n.metrics={},n._backend=null,n.get=function(e){return n.metrics[e]||{max:0,min:Number.MAX_VALUE,avg:0,total:0,count:0,last:0,history:typeof Float32Array!=&quot;undefined&quot;?new Float32Array(t):[]}},n.backend=function(e){n._backend=e},n.new_value=function(e,r,i,s){i=i||&quot;i&quot;;var o=n.metrics[e]=n.get(e);o.max=Math.max(o.max,r),o.min=Math.min(o.min,r),o.total+=r,++o.count,o.avg=o.total/o.count,o.history[o.count%t]=r;if(!s)n._backend&amp;&amp;n._backend([i,e,r]);else{var u=(new Date).getTime();u-o.last&gt;1e3&amp;&amp;(n._backend&amp;&amp;n._backend([i,e,o.avg]),o.last=u)}},n.print_stats=function(){for(k in n.metrics){var e=n.metrics[k];console.log(&quot; === &quot;+k+&quot; === &quot;),console.log(&quot; max: &quot;+e.max),console.log(&quot; min: &quot;+e.min),console.log(&quot; avg: &quot;+e.avg),console.log(&quot; count: &quot;+e.count),console.log(&quot; total: &quot;+e.total)}},r.prototype={start:function(){return this.t0=+(new Date),this},_elapsed:function(){return+(new Date)-this.t0},end:function(e){this.t0!==null&amp;&amp;(n.new_value(this.name,this._elapsed(),&quot;t&quot;,e),this.t0=null)},inc:function(e){e=e===undefined?1:e,n.new_value(this.name,e,&quot;i&quot;)},dec:function(e){e=e===undefined?1:e,n.new_value(this.name,e,&quot;d&quot;)},mark:function(){++this.count;if(this.t0===null){this.start();return}var e=this._elapsed();e&gt;1&amp;&amp;(n.new_value(this.name,this.count),this.count=0,this.start())}},n.metric=function(e){return new r(e)},e.Profiler=n}(cdb.core),cdb.core.Template=Backbone.Model.extend({initialize:function(){this.bind(&quot;change&quot;,this._invalidate),this._invalidate()},url:function(){return this.get(&quot;template_url&quot;)},parse:function(e){return{template:e}},_invalidate:function(){this.compiled=null,this.get(&quot;template_url&quot;)&amp;&amp;this.fetch()},compile:function(){var e=this.get(&quot;type&quot;)||&quot;underscore&quot;,t=cdb.core.Template.compilers[e];return t?t(this.get(&quot;template&quot;)):(cdb.log.error(&quot;can&#39;t get rendered for &quot;+e),null)},render:function(e){var t=this.compiled=this.compiled||this.get(&quot;compiled&quot;)||this.compile(),n=t(e);return n},asFunction:function(){return _.bind(this.render,this)}},{compilers:{underscore:_.template,mustache:typeof Mustache==&quot;undefined&quot;?null:Mustache.compile},compile:function(e,t){var n=new cdb.core.Template({template:e,type:t||&quot;underscore&quot;});return _.bind(n.render,n)}}),cdb.core.TemplateList=Backbone.Collection.extend({model:cdb.core.Template,getTemplate:function(e){this.namespace&amp;&amp;(e=this.namespace+e);var t=this.find(function(t){return t.get(&quot;name&quot;)===e});return t?_.bind(t.render,t):(cdb.log.error(e+&quot; not found&quot;),null)}}),cdb.templates=new cdb.core.TemplateList,cdb._loadJST=function(){typeof window.JST!==undefined&amp;&amp;cdb.templates.reset(_(JST).map(function(e,t){return{name:t,compiled:e}}))},function(){cdb._debugCallbacks=function(e){var t=e._callbacks;for(var n in t){var r=t[n];console.log(&quot; * &quot;,n);var i=r.tail;while((r=r.next)!==i)console.log(&quot;    - &quot;,r.context,r.context&amp;&amp;r.context.el||&quot;none&quot;)}};var e=cdb.core.Model=Backbone.Model.extend({initialize:function(e){return _.bindAll(this,&quot;fetch&quot;,&quot;save&quot;,&quot;retrigger&quot;),Backbone.Model.prototype.initialize.call(this,e)},fetch:function(e){var t=this;this.trigger(&quot;loadModelStarted&quot;),$.when(this.elder(&quot;fetch&quot;,e)).done(function(e){t.trigger(&quot;loadModelCompleted&quot;,e)}).fail(function(e){t.trigger(&quot;loadModelFailed&quot;,e)})},setIdAttribute:function(e){this.idAttribute=e},retrigger:function(e,t,n){n||(n=e);var r=this;t.bind&amp;&amp;t.bind(e,function(){r.trigger(n)},r)},save:function(e,t){var n=this;return(!t||!t.silent)&amp;&amp;this.trigger(&quot;saving&quot;),$promise=Backbone.Model.prototype.save.call(this,e,t),$.when($promise).done(function(){(!t||!t.silent)&amp;&amp;n.trigger(&quot;saved&quot;)}).fail(function(){(!t||!t.silent)&amp;&amp;n.trigger(&quot;errorSaving&quot;)}),$promise}})}(),function(){var e=cdb.core.View=Backbone.View.extend({classLabel:&quot;cdb.core.View&quot;,constructor:function(t){this._models=[],this._subviews={},Backbone.View.call(this,t),e.viewCount++,e.views[this.cid]=this,this._created_at=new Date,cdb.core.Profiler.new_value(&quot;total_views&quot;,e.viewCount)},add_related_model:function(e){if(!e)throw&quot;added non valid model&quot;;this._models.push(e)},addView:function(e){this._subviews[e.cid]=e,e._parent=this},removeView:function(e){delete this._subviews[e.cid]},clearSubViews:function(){_(this._subviews).each(function(e){e.clean()}),this._subviews={}},clean:function(){var t=this;return this.trigger(&quot;clean&quot;),this.clearSubViews(),this._parent&amp;&amp;(this._parent.removeView(this),this._parent=null),this.remove(),this.unbind(),this.model&amp;&amp;this.model.unbind&amp;&amp;this.model.unbind(null,null,this),_(this._models).each(function(e){e.unbind(null,null,t)}),this._models=[],e.viewCount--,delete e.views[this.cid],this},getTemplate:function(e){return this.options.template?_.template(this.options.template):cdb.templates.getTemplate(e)},show:function(){this.$el.show()},hide:function(){this.$el.hide()},retrigger:function(e,t,n){n||(n=e);var r=this;t.bind&amp;&amp;t.bind(e,function(){r.trigger(n)},r),this.add_related_model(t)},killEvent:function(e){e&amp;&amp;e.preventDefault&amp;&amp;e.preventDefault(),e&amp;&amp;e.stopPropagation&amp;&amp;e.stopPropagation()},cleanTooltips:function(){this.$(&quot;.tipsy&quot;).remove()}},{viewCount:0,views:{},extendEvents:function(e){return function(){return _.extend(e,this.constructor.__super__.events)}},runChecker:function(){_.each(cdb.core.View.views,function(e){_.each(e,function(t,n){n!==&quot;_parent&quot;&amp;&amp;e.hasOwnProperty(n)&amp;&amp;t instanceof cdb.core.View&amp;&amp;e._subviews[t.cid]===undefined&amp;&amp;(console.log(&quot;=========&quot;),console.log(&quot;untracked view: &quot;),console.log(t.el),console.log(&quot;parent&quot;),console.log(e.el),console.log(&quot; &quot;))})})}})}(),cdb.geo.geocoder.YAHOO={keys:{app_id:&quot;nLQPTdTV34FB9L3yK2dCXydWXRv3ZKzyu_BdCSrmCBAM1HgGErsCyCbBbVP2Yg--&quot;},geocode:function(e,t){e=e.toLowerCase().replace(/é/g,&quot;e&quot;).replace(/á/g,&quot;a&quot;).replace(/í/g,&quot;i&quot;).replace(/ó/g,&quot;o&quot;).replace(/ú/g,&quot;u&quot;).replace(/ /g,&quot;+&quot;);var n=&quot;&quot;;location.protocol.indexOf(&quot;http&quot;)===-1&amp;&amp;(n=&quot;http:&quot;),$.getJSON(n+&quot;//query.yahooapis.com/v1/public/yql?q=&quot;+encodeURIComponent(&#39;SELECT * FROM json WHERE url=&quot;http://where.yahooapis.com/geocode?q=&#39;+e+&quot;&amp;appid=&quot;+this.keys.app_id+&#39;&amp;flags=JX&quot;&#39;)+&quot;&amp;format=json&amp;callback=?&quot;,function(e){var n=[];if(e&amp;&amp;e.query&amp;&amp;e.query.results&amp;&amp;e.query.results.json&amp;&amp;e.query.results.json.ResultSet&amp;&amp;e.query.results.json.ResultSet.Found!=&quot;0&quot;){var r;_.isArray(e.query.results.json.ResultSet.Results)?r=e.query.results.json.ResultSet.Results:r=[e.query.results.json.ResultSet.Results];for(var i in r){var s=r[i],o;o={lat:s.latitude,lon:s.longitude},s.boundingbox&amp;&amp;(o.boundingbox=s.boundingbox),n.push(o)}}t(n)})}},cdb.geo.geocoder.NOKIA={keys:{app_id:&quot;KuYppsdXZznpffJsKT24&quot;,app_code:&quot;A7tBPacePg9Mj_zghvKt9Q&quot;},geocode:function(e,t){e=e.toLowerCase().replace(/é/g,&quot;e&quot;).replace(/á/g,&quot;a&quot;).replace(/í/g,&quot;i&quot;).replace(/ó/g,&quot;o&quot;).replace(/ú/g,&quot;u&quot;).replace(/ /g,&quot;+&quot;);var n=&quot;&quot;;location.protocol.indexOf(&quot;http&quot;)===-1&amp;&amp;(n=&quot;http:&quot;),$.getJSON(n+&quot;//places.nlp.nokia.com/places/v1/discover/search/?q=&quot;+encodeURIComponent(e)+&quot;&amp;app_id=&quot;+this.keys.app_id+&quot;&amp;app_code=&quot;+this.keys.app_code+&quot;&amp;Accept-Language=en-US&amp;at=0,0&amp;callback=?&quot;,function(e){var n=[];if(e&amp;&amp;e.results&amp;&amp;e.results.items&amp;&amp;e.results.items.length&gt;0){var r=e.results.items;for(var i in r){var s=r[i],o;o={lat:s.position[0],lon:s.position[1]},s.bbox&amp;&amp;(o.boundingbox={north:s.bbox[3],south:s.bbox[1],east:s.bbox[2],west:s.bbox[0]}),n.push(o)}}t(n)})}},cdb.geo.Geometry=cdb.core.Model.extend({isPoint:function(){var e=this.get(&quot;geojson&quot;).type;return e&amp;&amp;e.toLowerCase()===&quot;point&quot;?!0:!1}}),cdb.geo.Geometries=Backbone.Collection.extend({}),_.extend(GeometryView.prototype,Backbone.Events,{edit:function(){throw new Error(&quot;to be implemented&quot;)}}),cdb.geo.MapLayer=cdb.core.Model.extend({defaults:{visible:!0,type:&quot;Tiled&quot;},isEqual:function(e){var t=this.toJSON(),n=e.toJSON(),r=[&quot;id&quot;,&quot;order&quot;];_.each(r,function(e){delete t[e],delete n[e],t.options&amp;&amp;delete t.options[e],n.options&amp;&amp;delete n.options[e]});var i=t.type?t.type:t.options.type,s=n.type?n.type:n.options.type;if(i&amp;&amp;i===s){if(i===&quot;Tiled&quot;){var o=t.urlTemplate?t.urlTemplate:t.options.urlTemplate,u=n.urlTemplate?n.urlTemplate:n.options.urlTemplate;return o===u?!0:!1}if(i===&quot;WMS&quot;){var o=t.urlTemplate?t.urlTemplate:t.options.urlTemplate,u=n.urlTemplate?n.urlTemplate:n.options.urlTemplate,a=t.layers?t.layers:t.options.layers,f=n.layers?n.layers:n.options.layers;return o===u&amp;&amp;a===f?!0:!1}var l=t.base_type?t.base_type:t.options.base_type,c=n.base_type?n.base_type:n.options.base_type;return l?_.isEqual(t,n)?!0:!1:!0}return!1}}),cdb.geo.TileLayer=cdb.geo.MapLayer.extend({getTileLayer:function(){}}),cdb.geo.GMapsBaseLayer=cdb.geo.MapLayer.extend({OPTIONS:[&quot;roadmap&quot;,&quot;satellite&quot;,&quot;terrain&quot;,&quot;custom&quot;],defaults:{type:&quot;GMapsBase&quot;,base_type:&quot;gray_roadmap&quot;,style:null}}),cdb.geo.WMSLayer=cdb.geo.MapLayer.extend({defaults:{service:&quot;WMS&quot;,request:&quot;GetMap&quot;,version:&quot;1.1.1&quot;,layers:&quot;&quot;,styles:&quot;&quot;,format:&quot;image/jpeg&quot;,transparent:!1}}),cdb.geo.PlainLayer=cdb.geo.MapLayer.extend({defaults:{type:&quot;Plain&quot;,base_type:&quot;plain&quot;,className:&quot;plain&quot;,color:&quot;#FFFFFF&quot;,image:&quot;&quot;}}),cdb.geo.TorqueLayer=cdb.geo.MapLayer.extend({defaults:{type:&quot;torque&quot;,visible:!0}}),cdb.geo.CartoDBLayer=cdb.geo.MapLayer.extend({defaults:{attribution:&quot;CartoDB&quot;,type:&quot;CartoDB&quot;,active:!0,query:null,opacity:.99,interactivity:null,interaction:!0,debug:!1,tiler_domain:&quot;cartodb.com&quot;,tiler_port:&quot;80&quot;,tiler_protocol:&quot;http&quot;,sql_api_domain:&quot;cartodb.com&quot;,sql_api_port:&quot;80&quot;,sql_api_protocol:&quot;http&quot;,extra_params:{},cdn_url:null,maxZoom:28},activate:function(){this.set({active:!0,opacity:.99,visible:!0})},deactivate:function(){this.set({active:!1,opacity:0,visible:!1})},invalidate:function(){var e=this.get(&quot;extra_params&quot;)||e;e.cache_buster=(new Date).getTime(),this.set(&quot;extra_params&quot;,e),this.trigger(&quot;change&quot;,this)},toggle:function(){this.get(&quot;active&quot;)?this.deactivate():this.activate()}}),cdb.geo.CartoDBGroupLayer=cdb.geo.MapLayer.extend({defaults:{visible:!0,type:&quot;layergroup&quot;}}),cdb.geo.CartoDBNamedMapLayer=cdb.geo.MapLayer.extend({defaults:{visible:!0,type:&quot;namedmap&quot;}}),cdb.geo.Layers=Backbone.Collection.extend({model:cdb.geo.MapLayer,initialize:function(){this.comparator=function(e){return parseInt(e.get(&quot;order&quot;),10)},this.bind(&quot;add&quot;,this._assignIndexes)},_assignIndexes:function(e,t,n){function i(e){var t=e.get(&quot;type&quot;);return r[t]||0}var r={torque:100},s=0;n&amp;&amp;n.at!==undefined&amp;&amp;(s=n.at),s===0&amp;&amp;(this.models[0].set({order:0}),++s);for(var o=s;o&lt;this.size();++o){var u=this.models[o-1],a=u.get(&quot;order&quot;)-i(u);this.models[o].set({order:i(this.models[o])+a+1})}}}),cdb.geo.Map=cdb.core.Model.extend({defaults:{center:[0,0],zoom:3,minZoom:0,maxZoom:40,scrollwheel:!0,provider:&quot;leaflet&quot;},initialize:function(){this.layers=new cdb.geo.Layers,this.layers.bind(&quot;reset&quot;,function(){this.layers.size()&gt;=1&amp;&amp;this._adjustZoomtoLayer(this.layers.models[0])},this),this.geometries=new cdb.geo.Geometries},setView:function(e,t){this.set({center:e,zoom:t},{silent:!0}),this.trigger(&quot;set_view&quot;)},setZoom:function(e){this.set({zoom:e})},enableScrollWheel:function(){this.set({scrollwheel:!0})},disableScrollWheel:function(){this.set({scrollwheel:!1})},getZoom:function(){return this.get(&quot;zoom&quot;)},setCenter:function(e){this.set({center:e})},setOptions:function(e){if(typeof e!=&quot;object&quot;||e.length){if(this.options.debug)throw e+&quot; options has to be an object&quot;;return}_.defaults(this.options,e)},getViewBounds:function(){return this.has(&quot;view_bounds_sw&quot;)&amp;&amp;this.has(&quot;view_bounds_ne&quot;)?[this.get(&quot;view_bounds_sw&quot;),this.get(&quot;view_bounds_ne&quot;)]:null},getLayerAt:function(e){return this.layers.at(e)},getLayerByCid:function(e){return this.layers.getByCid(e)},_adjustZoomtoLayer:function(e){var t=e.get(&quot;maxZoom&quot;),n=e.get(&quot;minZoom&quot;);_.isNumber(t)&amp;&amp;(this.get(&quot;zoom&quot;)&gt;t?this.set({zoom:t,maxZoom:t}):this.set(&quot;maxZoom&quot;,t)),_.isNumber(n)&amp;&amp;(this.get(&quot;zoom&quot;)&lt;n?this.set({minZoom:n,zoom:n}):this.set(&quot;minZoom&quot;,n))},addLayer:function(e,t){return this.layers.size()==0&amp;&amp;this._adjustZoomtoLayer(e),this.layers.add(e,t),this.trigger(&quot;layerAdded&quot;),this.layers.length===1&amp;&amp;this.trigger(&quot;firstLayerAdded&quot;),e.cid},removeLayer:function(e){this.layers.remove(e)},removeLayerByCid:function(e){var t=this.layers.getByCid(e);t?this.removeLayer(t):cdb.log.error(&quot;There&#39;s no layer with cid = &quot;+e+&quot;.&quot;)},removeLayerAt:function(e){var t=this.layers.at(e);t?this.removeLayer(t):cdb.log.error(&quot;There&#39;s no layer in that position.&quot;)},clearLayers:function(){while(this.layers.length&gt;0)this.removeLayer(this.layers.at(0))},getBaseLayer:function(){return this.layers.at(0)},isBaseLayerAdded:function(e){var t=this.getBaseLayer();return t&amp;&amp;e.isEqual(t)},getLayerTemplate:function(){var e=this.getBaseLayer();if(e&amp;&amp;e.get(&quot;options&quot;))return e.get(&quot;options&quot;).urlTemplate},updateAttribution:function(e,t){var n=this.get(&quot;attribution&quot;)||[];e&amp;&amp;(n=_.without(n,e)),t&amp;&amp;(_.contains(n,t)||n.push(t)),this.set({attribution:n})},addGeometry:function(e){this.geometries.add(e)},removeGeometry:function(e){this.geometries.remove(e)},setBounds:function(e){this.attributes.view_bounds_sw=[e[0][0],e[0][1]],this.attributes.view_bounds_ne=[e[1][0],e[1][1]],this.trigger(&quot;change:view_bounds_ne&quot;,this)},fitBounds:function(e,t){var n=this.getBoundsZoom(e,t);if(n===null)return;var r=cdb.geo.Map.latlngToMercator(e[0],n),</td>
      </tr>
      <tr>
        <td id="L16" class="blob-num js-line-number" data-line-number="16"></td>
        <td id="LC16" class="blob-code js-file-line">i=cdb.geo.Map.latlngToMercator(e[1],n),s=cdb.geo.Map.mercatorToLatLng({x:(r[0]+i[0])*.5,y:(r[1]+i[1])*.5},n);this.set({center:s,zoom:n})},getBoundsZoom:function(e,t){if(t.x===0||t.y===0)return null;var n=[t.x,t.y],r=this.get(&quot;minZoom&quot;)||0,i=this.get(&quot;maxZoom&quot;)||24,s=e[1],o=e[0],u=[],a,f,l=!0;do r++,a=cdb.geo.Map.latlngToMercator(s,r),f=cdb.geo.Map.latlngToMercator(o,r),u[0]=Math.abs(a[0]-f[0]),u[1]=Math.abs(f[1]-a[1]),l=u[0]&lt;=n[0]||u[1]&lt;=n[1];while(l&amp;&amp;r&lt;=i);return l?null:r-1}},{latlngToMercator:function(e,t){var n=new L.LatLng(e[0],e[1]),r=L.CRS.EPSG3857.latLngToPoint(n,t);return[r.x,r.y]},mercatorToLatLng:function(e,t){var n=L.CRS.EPSG3857.pointToLatLng(e,t);return[n.lat,n.lng]}}),cdb.geo.MapView=cdb.core.View.extend({initialize:function(){if(this.options.map===undefined)throw&quot;you should specify a map model&quot;;this.map=this.options.map,this.add_related_model(this.map),this.add_related_model(this.map.layers),this.autoSaveBounds=!1,this.layers={},this.geometries={},this.bind(&quot;clean&quot;,this._removeLayers,this)},render:function(){return this},addInfowindow:function(e){this.addOverlay(e)},addOverlay:function(e){e&amp;&amp;(this.$el.append(e.render().el),this.addView(e))},getInfoWindows:function(){var e=[];for(var t in this._subviews)this._subviews[t]instanceof cdb.geo.ui.Infowindow&amp;&amp;e.push(this._subviews[t]);return e},showBounds:function(e){throw&quot;to be implemented&quot;},_setModelProperty:function(e){this._unbindModel(),this.map.set(e);if(e.center!==undefined||e.zoom!==undefined){var t=this.getBounds();this.map.set({view_bounds_sw:t[0],view_bounds_ne:t[1]}),this.autoSaveBounds&amp;&amp;this._saveLocation()}this._bindModel()},_bindModel:function(){this._unbindModel(),this.map.bind(&quot;change:view_bounds_sw&quot;,this._changeBounds,this),this.map.bind(&quot;change:view_bounds_ne&quot;,this._changeBounds,this),this.map.bind(&quot;change:zoom&quot;,this._setZoom,this),this.map.bind(&quot;change:scrollwheel&quot;,this._setScrollWheel,this),this.map.bind(&quot;change:center&quot;,this._setCenter,this),this.map.bind(&quot;change:attribution&quot;,this._setAttribution,this)},_unbindModel:function(){this.map.unbind(&quot;change:view_bounds_sw&quot;,null,this),this.map.unbind(&quot;change:view_bounds_ne&quot;,null,this),this.map.unbind(&quot;change:zoom&quot;,null,this),this.map.unbind(&quot;change:scrollwheel&quot;,null,this),this.map.unbind(&quot;change:center&quot;,null,this),this.map.unbind(&quot;change:attribution&quot;,null,this)},_changeBounds:function(){var e=this.map.getViewBounds();e&amp;&amp;this.showBounds(e)},showBounds:function(e){this.map.fitBounds(e,this.getSize())},_setAttribution:function(e,t){this.setAttribution(e)},_addLayers:function(){var e=this;this._removeLayers(),this.map.layers.each(function(t){e._addLayer(t)})},_removeLayers:function(e){for(var t in this.layers){var n=this.layers[t];n.remove(),delete this.layers[t]}},_removeLayer:function(e){var t=this.layers[e.cid];t&amp;&amp;(t.remove(),delete this.layers[e.cid])},_swicthLayerView:function(e,t,n){this._removeLayer(e),this._addLayer(e,this.map.layers,n)},_removeGeometry:function(e){var t=this.geometries[e.cid];delete this.layers[layer.cid]},getLayerByCid:function(e){var t=this.layers[e];return t||cdb.log.debug(&quot;layer with cid &quot;+e+&quot; can&#39;t be get&quot;),t},_setZoom:function(e,t){throw&quot;to be implemented&quot;},_setCenter:function(e,t){throw&quot;to be implemented&quot;},_addLayer:function(e,t,n){throw&quot;to be implemented&quot;},_addGeomToMap:function(e){throw&quot;to be implemented&quot;},_removeGeomFromMap:function(e){throw&quot;to be implemented&quot;},setAutoSaveBounds:function(){var e=this;this.autoSaveBounds=!0},_saveLocation:_.debounce(function(){this.map.save(null,{silent:!0})},1e3),_addGeometry:function(e){var t=this._addGeomToMap(e);this.geometries[e.cid]=t},_removeGeometry:function(e){var t=this.geometries[e.cid];this._removeGeomFromMap(t),delete this.geometries[e.cid]}},{_getClass:function(e){var t=cdb.geo.LeafletMapView;return e===&quot;googlemaps&quot;&amp;&amp;(typeof google!=&quot;undefined&quot;&amp;&amp;typeof google.maps!=&quot;undefined&quot;?t=cdb.geo.GoogleMapsMapView:cdb.log.error(&quot;you must include google maps library _before_ include cdb&quot;)),t},create:function(e,t){var n=cdb.geo.MapView._getClass(t.get(&quot;provider&quot;));return new n({el:e,map:t})}}),cdb.geo.ui.Text=cdb.core.View.extend({className:&quot;cartodb-overlay overlay-text&quot;,events:{click:&quot;stopPropagation&quot;},default_options:{},stopPropagation:function(e){e.stopPropagation()},initialize:function(){_.defaults(this.options,this.default_options),this.template=this.options.template;var e=this;$(window).on(&quot;map_resized&quot;,function(){e._place()}),$(window).on(&quot;resize&quot;,function(){e._place()})},_applyStyle:function(){var e=this.model.get(&quot;style&quot;),t=e[&quot;box-color&quot;],n=e[&quot;box-opacity&quot;],r=e[&quot;box-width&quot;],i=e[&quot;font-family-name&quot;];this.$text.css(e),this.$text.css(&quot;font-size&quot;,e[&quot;font-size&quot;]+&quot;px&quot;);var s=&quot;&quot;;i==&quot;Droid Sans&quot;?s=&quot;droid&quot;:i==&quot;Vollkorn&quot;?s=&quot;vollkorn&quot;:i==&quot;Open Sans&quot;?s=&quot;open_sans&quot;:i==&quot;Roboto&quot;&amp;&amp;(s=&quot;roboto&quot;);var o=&quot;rgba(&quot;+parseInt(t.slice(-6,-4),16)+&quot;,&quot;+parseInt(t.slice(-4,-2),16)+&quot;,&quot;+parseInt(t.slice(-2),16)+&quot;, &quot;+n+&quot; )&quot;;this.$el.removeClass(&quot;droid&quot;).removeClass(&quot;vollkorn&quot;).removeClass(&quot;roboto&quot;).removeClass(&quot;open_sans&quot;),this.$el.addClass(s),this.$el.css({backgroundColor:o,maxWidth:r})},_place:function(e){var t=e||this.model.get(&quot;extra&quot;),n=this.model.get(&quot;y&quot;),r=this.model.get(&quot;x&quot;),i=t.bottom-this.$el.height(),s=t.right-this.$el.width(),o=t.top_percentage,u=t.left_percentage,a=&quot;auto&quot;,f=&quot;auto&quot;,l=0,c=0,h=t.width,p=t.height,d=t.portrait_dominant_side,v=t.landscape_dominant_side;d===&quot;bottom&quot;&amp;&amp;i&lt;=250?(n=&quot;auto&quot;,f=i):o&gt;45&amp;&amp;o&lt;55&amp;&amp;(n=&quot;50%&quot;,l=-p/2),v===&quot;right&quot;&amp;&amp;s&lt;=250?(r=&quot;auto&quot;,a=s):u&gt;45&amp;&amp;u&lt;55&amp;&amp;(r=&quot;50%&quot;,c=-h/2),this.$el.css({marginLeft:c,marginTop:l,top:n,left:r,right:a,bottom:f})},render:function(){return this._place(),this.$el.html(this.template(_.extend(this.model.attributes,{text:this.model.attributes.extra.rendered_text}))),this.$text=this.$el.find(&quot;.text&quot;),this._applyStyle(),this}}),cdb.geo.ui.Image=cdb.geo.ui.Text.extend({className:&quot;cartodb-overlay image-overlay&quot;,events:{click:&quot;stopPropagation&quot;},default_options:{},stopPropagation:function(e){e.stopPropagation()},initialize:function(){_.defaults(this.options,this.default_options),this.template=this.options.template;var e=this;$(window).on(&quot;map_resized&quot;,function(){e._place()}),$(window).on(&quot;resize&quot;,function(){e._place()})},_applyStyle:function(){var e=this.model.get(&quot;style&quot;),t=e[&quot;box-color&quot;],n=e[&quot;box-opacity&quot;],r=e[&quot;box-width&quot;];this.$text.css(e);var i=&quot;rgba(&quot;+parseInt(t.slice(-6,-4),16)+&quot;,&quot;+parseInt(t.slice(-4,-2),16)+&quot;,&quot;+parseInt(t.slice(-2),16)+&quot;, &quot;+n+&quot; )&quot;;this.$el.css({backgroundColor:i}),this.$el.find(&quot;img&quot;).css({width:r})},render:function(){this._place();var e=this.model.get(&quot;extra&quot;).rendered_text;return this.model.get(&quot;extra&quot;).has_default_image&amp;&amp;(e=&#39;&lt;img src=&quot;&#39;+this.model.get(&quot;extra&quot;).public_default_image_url+&#39;&quot; /&gt;&#39;),this.$el.html(this.template(_.extend(this.model.attributes,{content:e}))),this.$text=this.$el.find(&quot;.text&quot;),this._applyStyle(),this}}),cdb.geo.ui.Share=cdb.core.View.extend({className:&quot;cartodb-share&quot;,events:{&quot;click a&quot;:&quot;_onClick&quot;},default_options:{},initialize:function(){_.bindAll(this,&quot;_onClick&quot;),_.defaults(this.options,this.default_options),this.template=this.options.template},_applyStyle:function(){},_onClick:function(e){e.preventDefault(),e.stopPropagation(),this.dialog.show()},createDialog:function(){var e=this.options;e.template=&quot;&quot;,location.href?e.share_url=encodeURIComponent(location.href):e.share_url=e.url;var t=cdb.core.Template.compile(e.template||&#39;      &lt;div class=&quot;mamufas&quot;&gt;      &lt;div class=&quot;block modal {{modal_type}}&quot;&gt;      &lt;a href=&quot;#close&quot; class=&quot;close&quot;&gt;x&lt;/a&gt;      &lt;div class=&quot;head&quot;&gt;      &lt;h3&gt;Share this map&lt;/h3&gt;      &lt;/div&gt;      &lt;div class=&quot;content&quot;&gt;      &lt;div class=&quot;buttons&quot;&gt;      &lt;h4&gt;Social&lt;/h4&gt;      &lt;ul&gt;      &lt;li&gt;&lt;a class=&quot;facebook&quot; target=&quot;_blank&quot; href=&quot;{{ facebook_url }}&quot;&gt;Share on Facebook&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a class=&quot;twitter&quot; href=&quot;{{ twitter_url }}&quot; target=&quot;_blank&quot;&gt;Share on Twitter&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a class=&quot;link&quot; href=&quot;{{ public_map_url }}&quot; target=&quot;_blank&quot;&gt;Link to this map&lt;/a&gt;&lt;/li&gt;      &lt;/ul&gt;      &lt;/div&gt;&lt;div class=&quot;embed_code&quot;&gt;      &lt;h4&gt;Embed this map&lt;/h4&gt;      &lt;textarea id=&quot;&quot; name=&quot;&quot; cols=&quot;30&quot; rows=&quot;10&quot;&gt;{{ code }}&lt;/textarea&gt;      &lt;/div&gt;      &lt;/div&gt;      &lt;/div&gt;      &lt;/div&gt;      &#39;,e.templateType||&quot;mustache&quot;),n=location.href;n=n.replace(&quot;public_map&quot;,&quot;embed_map&quot;);var r=n.replace(&quot;embed_map&quot;,&quot;public_map&quot;),i=&quot;&lt;iframe width=&#39;100%&#39; height=&#39;520&#39; frameborder=&#39;0&#39; src=&#39;&quot;+n+&quot;&#39; allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen&gt;&lt;/iframe&gt;&quot;;this.dialog=new cdb.ui.common.ShareDialog({title:e.map.get(&quot;title&quot;),description:e.map.get(&quot;description&quot;),model:this.options.vis.map,code:i,url:e.url,public_map_url:r,share_url:e.share_url,template:t,target:$(&quot;.cartodb-share a&quot;),size:$(document).width()&gt;400?&quot;&quot;:&quot;small&quot;,width:$(document).width()&gt;400?430:216}),$(&quot;.cartodb-map-wrapper&quot;).append(this.dialog.render().$el)},render:function(){return this.$el.html(this.template(_.extend(this.model.attributes))),this}}),cdb.geo.ui.Zoom=cdb.core.View.extend({className:&quot;cartodb-zoom&quot;,events:{&quot;click .zoom_in&quot;:&quot;zoom_in&quot;,&quot;click .zoom_out&quot;:&quot;zoom_out&quot;},default_options:{timeout:0,msg:&quot;&quot;},initialize:function(){this.map=this.model,_.defaults(this.options,this.default_options),this.template=this.options.template?this.options.template:cdb.templates.getTemplate(&quot;geo/zoom&quot;),this.map.bind(&quot;change:zoom change:minZoom change:maxZoom&quot;,this._checkZoom,this)},render:function(){return this.$el.html(this.template(this.options)),this._checkZoom(),this},_checkZoom:function(){var e=this.map.get(&quot;zoom&quot;);this.$(&quot;.zoom_in&quot;)[e&lt;this.map.get(&quot;maxZoom&quot;)?&quot;removeClass&quot;:&quot;addClass&quot;](&quot;disabled&quot;),this.$(&quot;.zoom_out&quot;)[e&gt;this.map.get(&quot;minZoom&quot;)?&quot;removeClass&quot;:&quot;addClass&quot;](&quot;disabled&quot;)},zoom_in:function(e){this.map.get(&quot;maxZoom&quot;)&gt;this.map.getZoom()&amp;&amp;this.map.setZoom(this.map.getZoom()+1),e.preventDefault(),e.stopPropagation()},zoom_out:function(e){this.map.get(&quot;minZoom&quot;)&lt;this.map.getZoom()&amp;&amp;this.map.setZoom(this.map.getZoom()-1),e.preventDefault(),e.stopPropagation()}}),cdb.geo.ui.ZoomInfo=cdb.core.View.extend({className:&quot;cartodb-zoom-info&quot;,initialize:function(){this.model.bind(&quot;change:zoom&quot;,this.render,this)},render:function(){return this.$el.html(this.model.get(&quot;zoom&quot;)),this}}),cdb.geo.ui.Mobile=cdb.core.View.extend({className:&quot;cartodb-mobile&quot;,events:{&quot;click .toggle&quot;:&quot;_toggle&quot;,dragstart:&quot;_stopPropagation&quot;,mousedown:&quot;_stopPropagation&quot;,touchstart:&quot;_stopPropagation&quot;,MSPointerDown:&quot;_stopPropagation&quot;,dblclick:&quot;_stopPropagation&quot;,mousewheel:&quot;_stopPropagation&quot;,DOMMouseScroll:&quot;_stopPropagation&quot;,click:&quot;_stopPropagation&quot;},default_options:{timeout:0,msg:&quot;&quot;},_stopPropagation:function(e){e.stopPropagation()},doOnOrientationChange:function(){switch(window.orientation){case-90:case 90:this.recalc(&quot;landscape&quot;);break;default:this.recalc(&quot;portrait&quot;)}},recalc:function(e){var t=$(&quot;.legends &gt; div.cartodb-legend-stack&quot;).height();this.$el.hasClass(&quot;open&quot;)&amp;&amp;t&lt;100&amp;&amp;!this.$el.hasClass(&quot;torque&quot;)?(this.$el.css(&quot;height&quot;,t),this.$el.find(&quot;.top-shadow&quot;).hide(),this.$el.find(&quot;.bottom-shadow&quot;).hide()):this.$el.hasClass(&quot;open&quot;)&amp;&amp;t&lt;100&amp;&amp;this.$el.hasClass(&quot;legends&quot;)&amp;&amp;this.$el.hasClass(&quot;torque&quot;)&amp;&amp;(this.$el.css(&quot;height&quot;,t+$(&quot;.legends &gt; div.torque&quot;).height()),this.$el.find(&quot;.top-shadow&quot;).hide(),this.$el.find(&quot;.bottom-shadow&quot;).hide())},initialize:function(){this.map=this.model,_.defaults(this.options,this.default_options),this.template=this.options.template?this.options.template:cdb.templates.getTemplate(&quot;geo/zoom&quot;),window.addEventListener(&quot;orientationchange&quot;,_.bind(this.doOnOrientationChange,this))},_toggle:function(e){e.preventDefault(),e.stopPropagation(),this.isOpen?this.close():this.open()},open:function(){var e=this;this.$el.addClass(&quot;open&quot;),this.isOpen=!0,this.$el.css(&quot;height&quot;,&quot;110&quot;),this.recalc()},close:function(){var e=this;this.$el.removeClass(&quot;open&quot;),this.isOpen=!1,this.$el.css(&quot;height&quot;,&quot;40&quot;),this._fixTorque()},_fixTorque:function(){var e=this;setTimeout(function(){var t=e.$el.width()-e.$el.find(&quot;.toggle&quot;).width()-e.$el.find(&quot;.time&quot;).width();e.hasLegends&amp;&amp;(t-=40),e.hasLegends||(t-=e.$el.find(&quot;.controls&quot;).width()),e.$el.find(&quot;.slider-wrapper&quot;).css(&quot;width&quot;,t),e.$el.find(&quot;.slider-wrapper&quot;).show()},50)},render:function(){this.$el.html(this.template(this.options));var e=$(document).width()-40;this.$el.css({width:e}),this.options.torqueLayer&amp;&amp;(this.hasTorque=!0,this.slider=new cdb.geo.ui.TimeSlider({type:&quot;time_slider&quot;,layer:this.options.torqueLayer,map:this.options.map,pos_margin:0,position:&quot;none&quot;,width:&quot;auto&quot;}),this.slider.bind(&quot;time_clicked&quot;,function(){this.slider.toggleTime()},this),this.$el.find(&quot;.torque&quot;).append(this.slider.render().$el),this.$el.addClass(&quot;torque&quot;),this.$el.find(&quot;.slider-wrapper&quot;).hide());if(this.options.legends){this.$el.find(&quot;.legends&quot;).append(this.options.legends.render().$el);var t=_.some(this.options.legends._models,function(e){return e.get(&quot;template&quot;)||e.get(&quot;type&quot;)!=&quot;none&quot;&amp;&amp;e.get(&quot;items&quot;).length&gt;0});t&amp;&amp;(this.$el.addClass(&quot;legends&quot;),this.hasLegends=!0,this.$el.find(&quot;.controls&quot;).hide())}return this.hasTorque&amp;&amp;!this.hasLegends&amp;&amp;this.$el.find(&quot;.toggle&quot;).hide(),this.hasTorque&amp;&amp;this._fixTorque(),this}}),cdb.geo.ui.LegendItemModel=cdb.core.Model.extend({defaults:{name:&quot;Untitled&quot;,visible:!0,value:&quot;&quot;}}),cdb.geo.ui.LegendItems=Backbone.Collection.extend({model:cdb.geo.ui.LegendItemModel}),cdb.geo.ui.LegendItem=cdb.core.View.extend({tagName:&quot;li&quot;,initialize:function(){_.bindAll(this,&quot;render&quot;),this.template=this.options.template?_.template(this.options.template):cdb.templates.getTemplate(&quot;geo/legend&quot;)},render:function(){var e;this.model.get(&quot;type&quot;)==&quot;image&quot;&amp;&amp;this.model.get(&quot;value&quot;)?e=&quot;url( &quot;+this.model.get(&quot;value&quot;)+&quot;)&quot;:e=this.model.get(&quot;value&quot;);var t=_.extend(this.model.toJSON(),{value:e});return this.$el.html(this.template(t)),this.$el}}),cdb.geo.ui.Legend=cdb.core.View.extend({className:&quot;cartodb-legend&quot;,events:{dragstart:&quot;_stopPropagation&quot;,mousedown:&quot;_stopPropagation&quot;,touchstart:&quot;_stopPropagation&quot;,MSPointerDown:&quot;_stopPropagation&quot;,dblclick:&quot;_stopPropagation&quot;,mousewheel:&quot;_stopPropagation&quot;,DOMMouseScroll:&quot;_stopPropagation&quot;,dbclick:&quot;_stopPropagation&quot;,click:&quot;_stopPropagation&quot;},initialize:function(){_.bindAll(this,&quot;render&quot;,&quot;show&quot;,&quot;hide&quot;),_.defaults(this.options,this.default_options),this.map=this.options.map,this._setupModel(),this._setupItems(),this._updateLegendType()},_stopPropagation:function(e){e.stopPropagation()},_setupModel:function(){this.model||(this.model=new cdb.geo.ui.LegendModel({type:this.options.type||cdb.geo.ui.LegendModel.prototype.defaults.type,title:this.options.title||cdb.geo.ui.LegendModel.prototype.defaults.title,show_title:this.options.show_title||cdb.geo.ui.LegendModel.prototype.defaults.show_title,template:this.options.template||cdb.geo.ui.LegendModel.prototype.defaults.template})),this.add_related_model(this.model),this.model.bind(&quot;change&quot;,this._updateLegendType,this)},_updateLegendType:function(){var e=this.model.get(&quot;type&quot;);this.legend_name=this._capitalize(e)+&quot;Legend&quot;;if(e==&quot;none&quot;||e==null)this.legend_name=null,this.model.set({type:&quot;none&quot;},{silent:!0});else if(!cdb.geo.ui[this.legend_name]){this.legend_name=null,this.model.set({type:this.model.previous(&quot;type&quot;)},{silent:!0});return}this._refresh()},_refresh:function(){var e=this;this.view&amp;&amp;this.view.clean();var t=this.model.get(&quot;type&quot;),n=this.model.get(&quot;title&quot;),r=this.model.get(&quot;show_title&quot;),i=this.model.get(&quot;template&quot;);t&amp;&amp;this.legend_name?(this.view=new cdb.geo.ui[this.legend_name]({model:this.model}),this.$el.removeClass(),this.$el.addClass(this.className+&quot; &quot;+this.model.get(&quot;type&quot;)),this.show()):(this.hide(),this.$el.removeClass(),this.$el.addClass(this.className+&quot; none&quot;)),this.render()},_setupItems:function(){var e=this;this.items=this.model.items,this.options.data&amp;&amp;this.items.reset(this.options.data),this.items.bind(&quot;add remove change:value change:name&quot;,this.render,this)},show:function(e){var t=this.model.get(&quot;type&quot;);t&amp;&amp;t!=&quot;none&quot;&amp;&amp;this.$el.show()},hide:function(e){this.model.get(&quot;type&quot;)&amp;&amp;this.$el.hide()},_capitalize:function(e){if(e&amp;&amp;_.isString(e))return e.charAt(0).toUpperCase()+e.slice(1)},render:function(){return this.view&amp;&amp;(this.model.get(&quot;template&quot;)?(this.$el.html(this.view.render().$el.html()),this.$el.removeClass(this.model.get(&quot;type&quot;)),this.$el.addClass(&quot;wrapper&quot;)):this.$el.html(this.view.render().$el.html())),this}}),cdb.geo.ui.DebugLegend=cdb.core.View.extend({}),cdb.geo.ui.BaseLegend=cdb.core.View.extend({_bindModel:function(){this.model.bind(&quot;change:template change:title change:show_title&quot;,this.render,this)},addTo:function(e){$(e).html(this.render().$el)},setTitle:function(e){this.model.set(&quot;title&quot;,e)},showTitle:function(){this.model.set(&quot;show_title&quot;,!0)},hideTitle:function(){this.model.set(&quot;show_title&quot;,!1)}}),cdb.geo.ui.NoneLegend=cdb.geo.ui.BaseLegend.extend({}),cdb.geo.ui.Legend.None=cdb.core.View.extend({}),cdb.geo.ui.ChoroplethLegend=cdb.geo.ui.BaseLegend.extend({className:&quot;choropleth-legend&quot;,template:_.template(&#39;&lt;% if (title &amp;&amp; show_title) { %&gt;\n&lt;div class=&quot;legend-title&quot;&gt;&lt;%= title %&gt;&lt;/div&gt;&lt;% } %&gt;&lt;ul&gt;&lt;li class=&quot;min&quot;&gt;		&lt;%= leftLabel %&gt;&lt;/li&gt;&lt;li class=&quot;max&quot;&gt;		&lt;%= rightLabel %&gt;&lt;/li&gt;&lt;li class=&quot;graph count_&lt;%= buckets_count %&gt;&quot;&gt;	&lt;div class=&quot;colors&quot;&gt;&lt;%= colors %&gt;\n	&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&#39;),initialize:function(){this.items=this.model.items},_generateColorList:function(){var e=&quot;&quot;;if(this.model.get(&quot;colors&quot;))return _.map(this.model.get(&quot;colors&quot;),function(e){return&#39;\n	&lt;div class=&quot;quartile&quot; style=&quot;background-color:&#39;+e+&#39;&quot;&gt;&lt;/div&gt;&#39;}).join(&quot;&quot;);for(var t=2;t&lt;this.items.length;t++){var n=this.items.at(t).get(&quot;value&quot;);e+=&#39;\n	&lt;div class=&quot;quartile&quot; style=&quot;background-color:&#39;+n+&#39;&quot;&gt;&lt;/div&gt;&#39;}return e},setLeftLabel:function(e){this.model.set(&quot;leftLabel&quot;,e)},setRightLabel:function(e){this.model.set(&quot;rightLabel&quot;,e)},setColors:function(e){this.model.set(&quot;colors&quot;,e)},render:function(){if(this.model.get(&quot;template&quot;)){var e=_.template(this.model.get(&quot;template&quot;));this.$el.html(e(this.model.toJSON()))}else if(this.items.length&gt;=2){this.leftLabel=this.items.at(0),this.rightLabel=this.items.at(1);var t=this.model.get(&quot;leftLabel&quot;)||this.leftLabel.get(&quot;value&quot;),n=this.model.get(&quot;rightLabel&quot;)||this.rightLabel.get(&quot;value&quot;),r=this._generateColorList(),i=_.extend(this.model.toJSON(),{leftLabel:t,rightLabel:n,colors:r,buckets_count:r.length});this.$el.html(this.template(i))}return this}}),cdb.geo.ui.DensityLegend=cdb.geo.ui.BaseLegend.extend({className:&quot;density-legend&quot;,template:_.template(&#39;&lt;% if (title &amp;&amp; show_title) { %&gt;\n&lt;div class=&quot;legend-title&quot;&gt;&lt;%= title %&gt;&lt;/div&gt;&lt;% } %&gt;&lt;ul&gt;&lt;li class=&quot;min&quot;&gt;	&lt;%= leftLabel %&gt;&lt;/li&gt;&lt;li class=&quot;max&quot;&gt;	&lt;%= rightLabel %&gt;&lt;/li&gt;&lt;li class=&quot;graph count_&lt;%= buckets_count %&gt;&quot;&gt;	&lt;div class=&quot;colors&quot;&gt;&lt;%= colors %&gt;\n	&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&#39;),initialize:function(){this.items=this.model.items},setLeftLabel:function(e){this.model.set(&quot;leftLabel&quot;,e)},setRightLabel:function(e){this.model.set(&quot;rightLabel&quot;,e)},setColors:function(e){this.model.set(&quot;colors&quot;,e)},_generateColorList:function(){var e=&quot;&quot;;if(this.model.get(&quot;colors&quot;))return _.map(this.model.get(&quot;colors&quot;),function(e){return&#39;\n		&lt;div class=&quot;quartile&quot; style=&quot;background-color:&#39;+e+&#39;&quot;&gt;&lt;/div&gt;&#39;}).join(&quot;&quot;);for(var t=2;t&lt;this.items.length;t++){var n=this.items.at(t).get(&quot;value&quot;);e+=&#39;\n		&lt;div class=&quot;quartile&quot; style=&quot;background-color:&#39;+n+&#39;&quot;&gt;&lt;/div&gt;&#39;}return e},render:function(){if(this.model.get(&quot;template&quot;)){var e=_.template(this.model.get(&quot;template&quot;));this.$el.html(e(this.model.toJSON()))}else if(this.items.length&gt;=2){this.leftLabel=this.items.at(0),this.rightLabel=this.items.at(1);var t=this.model.get(&quot;leftLabel&quot;)||this.leftLabel.get(&quot;value&quot;),n=this.model.get(&quot;rightLabel&quot;)||this.rightLabel.get(&quot;value&quot;),r=this._generateColorList(),i=_.extend(this.model.toJSON(),{leftLabel:t,rightLabel:n,colors:r,buckets_count:r.length});this.$el.html(this.template(i))}return this}}),cdb.geo.ui.Legend.Density=cdb.geo.ui.DensityLegend.extend({type:&quot;density&quot;,className:&quot;cartodb-legend density&quot;,initialize:function(){this.items=this.options.items,this.model=new cdb.geo.ui.LegendModel({type:this.type,title:this.options.title,show_title:this.options.title?!0:!1,leftLabel:this.options.left||this.options.leftLabel,rightLabel:this.options.right||this.options.rightLabel,colors:this.options.colors,buckets_count:this.options.colors?this.options.colors.length:0,items:this.options.items}),this._bindModel()},_bindModel:function(){this.model.bind(&quot;change:colors change:template change:title change:show_title change:colors change:leftLabel change:rightLabel&quot;,this.render,this)},_generateColorList:function(){return _.map(this.model.get(&quot;colors&quot;),function(e){return&#39;&lt;div class=&quot;quartile&quot; style=&quot;background-color:&#39;+e+&#39;&quot;&gt;&lt;/div&gt;&#39;}).join(&quot;&quot;)},render:function(){var e=_.extend(this.model.toJSON(),{colors:this._generateColorList()});return this.$el.html(this.template(e)),this}}),cdb.geo.ui.IntensityLegend=cdb.geo.ui.BaseLegend.extend({className:&quot;intensity-legend&quot;,template:_.template(&#39;&lt;% if (title &amp;&amp; show_title) { %&gt;\n&lt;div class=&quot;legend-title&quot;&gt;&lt;%= title %&gt;&lt;/div&gt;&lt;% } %&gt;&lt;ul&gt;&lt;li class=&quot;min&quot;&gt;	&lt;%= leftLabel %&gt;&lt;/li&gt;&lt;li class=&quot;max&quot;&gt;	&lt;%= rightLabel %&gt;&lt;/li&gt;&lt;li class=&quot;graph&quot;&gt;&lt;/li&gt;&lt;/ul&gt;&#39;),initialize:function(){this.items=this.model.items},_bindModel:function(){this.model.bind(&quot;change:template&quot;,this.render,this)},setColor:function(e){this.model.set(&quot;color&quot;,e)},setLeftLabel:function(e){this.model.set(&quot;leftLabel&quot;,e)},setRightLabel:function(e){this.model.set(&quot;rightLabel&quot;,e)},_hexToRGB:function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},_rgbToHex:function(e,t,n){function r(e){var t=e.toString(16);return t.length==1?&quot;0&quot;+t:t}return&quot;#&quot;+r(e)+r(t)+r(n)},_calculateMultiply:function(e,t){var n=this._hexToRGB(e);if(n){var r=n.r,i=n.g,s=n.b;for(var o=0;o&lt;=t;o++)r=Math.round(r*n.r/255),i=Math.round(i*n.g/255),s=Math.round(s*n.b/255);return this._rgbToHex(r,i,s)}return&quot;#ffffff&quot;},_renderGraph:function(e){var t=&quot;&quot;;t+=&quot;background: &lt;%= color %&gt;;&quot;,t+=&quot;background: -moz-linear-gradient(left, &lt;%= color %&gt; 0%, &lt;%= right %&gt; 100%);&quot;,t+=&quot;background: -webkit-gradient(linear, left top, right top, color-stop(0%,&lt;%= color %&gt;), color-stop(100%,&lt;%= right %&gt;));&quot;,t+=&quot;background: -webkit-linear-gradient(left, &lt;%= color %&gt; 0%,&lt;%= right %&gt; 100%);&quot;,t+=&quot;background: -o-linear-gradient(left, &lt;%= color %&gt; 0%,&lt;%= right %&gt; 100%);&quot;,t+=&quot;background: -ms-linear-gradient(left, &lt;%= color %&gt; 0%,&lt;%= right %&gt; 100%)&quot;,t+=&quot;background: linear-gradient(to right, &lt;%= color %&gt; 0%,&lt;%= right %&gt; 100%);&quot;,t+=&quot;filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=&#39;&lt;%= color %&gt;&#39;, endColorstr=&#39;&lt;%= right %&gt;&#39;,GradientType=1 );&quot;,t+=&quot;background-image: -ms-linear-gradient(left, &lt;%= color %&gt; 0%,&lt;%= right %&gt; 100%)&quot;;var n=_.template(t),r=this._calculateMultiply(e,4);this.$el.find(&quot;.graph&quot;).attr(&quot;style&quot;,n({color:e,right:r}))},render:function(){if(this.model.get(&quot;template&quot;)){var e=_.template(this.model.get(&quot;template&quot;));this.$el.html(e(this.model.toJSON()))}else if(this.items.length&gt;=3){this.leftLabel=this.items.at(0),this.rightLabel=this.items.at(1);var t=this.model.get(&quot;color&quot;)||this.items.at(2).get(&quot;value&quot;),n=this.model.get(&quot;leftLabel&quot;)||this.leftLabel.get(&quot;value&quot;),r=this.model.get(&quot;rightLabel&quot;)||this.rightLabel.get(&quot;value&quot;),i=_.extend(this.model.toJSON(),{color:t,leftLabel:n,rightLabel:r});this.$el.html(this.template(i)),this._renderGraph(t)}return this}}),cdb.geo.ui.CategoryLegend=cdb.geo.ui.BaseLegend.extend({className:&quot;category-legend&quot;,template:_.template(&#39;&lt;% if (title &amp;&amp; show_title) { %&gt;\n&lt;div class=&quot;legend-title&quot;&gt;&lt;%= title %&gt;&lt;/div&gt;&lt;% } %&gt;&lt;ul&gt;&lt;/ul&gt;&#39;),initialize:function(){this.items=this.model.items},_bindModel:function(){this.model.bind(&quot;change:title change:show_title change:template&quot;,this.render,this)},_renderItems:function(){this.items.each(this._renderItem,this)},_renderItem:function(e){view=new cdb.geo.ui.LegendItem({model:e,className:e.get(&quot;value&quot;)&amp;&amp;e.get(&quot;value&quot;).indexOf(&quot;http&quot;)&gt;=0||e.get(&quot;type&quot;)&amp;&amp;e.get(&quot;type&quot;)==&quot;image&quot;?&quot;bkg&quot;:&quot;&quot;,template:&#39;		&lt;div class=&quot;bullet&quot; style=&quot;background: &lt;%= value %&gt;&quot;&gt;&lt;/div&gt; &lt;%= name || ((name === false) ? &quot;false&quot;: &quot;null&quot;) %&gt;&#39;}),this.$el.find(&quot;ul&quot;).append(view.render())},render:function(){if(this.model.get(&quot;template&quot;)){var e=_.template(this.model.get(&quot;template&quot;));this.$el.html(e(this.model.toJSON()))}else this.$el.html(this.template(this.model.toJSON())),this.items.length&gt;0?this._renderItems():this.$el.html(&#39;&lt;div class=&quot;warning&quot;&gt;The category legend is empty&lt;/div&gt;&#39;);return this}}),cdb.geo.ui.Legend.Category=cdb.geo.ui.CategoryLegend.extend({className:&quot;cartodb-legend category&quot;,type:&quot;category&quot;,initialize:function(){this.items=new cdb.geo.ui.LegendItems(this.options.data),this.model=new cdb.geo.ui.LegendModel({type:this.type,title:this.options.title,show_title:this.options.title?!0:!1}),this._bindModel()},render:function(){return this.$el.html(this.template(this.model.toJSON())),this._renderItems(),this}}),cdb.geo.ui.ColorLegend=cdb.geo.ui.BaseLegend.extend({className:&quot;color-legend&quot;,type:&quot;color&quot;,template:_.template(&#39;&lt;% if (title &amp;&amp; show_title) { %&gt;\n&lt;div class=&quot;legend-title&quot;&gt;&lt;%= title %&gt;&lt;/div&gt;&lt;% } %&gt;&lt;ul&gt;&lt;/ul&gt;&#39;),initialize:function(){this.items=this.model.items},_renderItems:function(){this.items.each(this._renderItem,this)},_renderItem:function(e){view=new cdb.geo.ui.LegendItem({model:e,className:e.get(&quot;value&quot;)&amp;&amp;e.get(&quot;value&quot;).indexOf(&quot;http&quot;)&gt;=0?&quot;bkg&quot;:&quot;&quot;,template:&#39;		&lt;div class=&quot;bullet&quot; style=&quot;background: &lt;%= value %&gt;&quot;&gt;&lt;/div&gt; &lt;%= name || ((name === false) ? &quot;false&quot;: &quot;null&quot;) %&gt;&#39;}),this.$el.find(&quot;ul&quot;).append(view.render())},render:function(){return this.$el.html(this.template(this.model.toJSON())),this.items.length&gt;0?this._renderItems():this.$el.html(&#39;&lt;div class=&quot;warning&quot;&gt;The color legend is empty&lt;/div&gt;&#39;),this}}),cdb.geo.ui.Legend.Color=cdb.geo.ui.Legend.Category.extend({}),cdb.geo.ui.StackedLegend=cdb.core.View.extend({events:{dragstart:&quot;_stopPropagation&quot;,mousedown:&quot;_stopPropagation&quot;,touchstart:&quot;_stopPropagation&quot;,MSPointerDown:&quot;_stopPropagation&quot;,dblclick:&quot;_stopPropagation&quot;,mousewheel:&quot;_stopPropagation&quot;,DOMMouseScroll:&quot;_stopPropagation&quot;,dbclick:&quot;_stopPropagation&quot;,click:&quot;_stopPropagation&quot;},className:&quot;cartodb-legend-stack&quot;,initialize:function(){_.each(this.options.legends,this._setupBinding,this)},_stopPropagation:function(e){e.stopPropagation()},getLegendByIndex:function(e){if(!this._layerByIndex){this._layerByIndex={};var t=this.options.legends;for(var n=0;n&lt;t.length;++n){var r=t[n];this._layerByIndex[r.options.index]=r}}return this._layerByIndex[e]},_setupBinding:function(e){e.model.bind(&quot;change:type&quot;,this._checkVisibility,this),this.add_related_model(e.model)},_checkVisibility:function(){var e=_.some(this.options.legends,function(e){return e.model.get(&quot;type&quot;)&amp;&amp;(e.model.get(&quot;type&quot;)!=&quot;none&quot;||e.model.get(&quot;template&quot;))},this);e?this.show():this.hide(),_.each(this.options.legends,function(e){var t=e.model.get(&quot;type&quot;);t&amp;&amp;t!=&quot;none&quot;?e.show():e.hide()},this)},_renderItems:function(){_.each(this.options.legends,function(e){this.$el.append(e.render().$el)},this)},show:function(){this.$el.show()},hide:function(){this.$el.hide()},addTo:function(e){$(e).html(this.render().$el)},render:function(){return this._renderItems(),this._checkVisibility(),this}}),cdb.geo.ui.Legends=Backbone.Collection.extend({model:cdb.geo.ui.LegendModel}),cdb.geo.ui.Legend.Stacked=cdb.geo.ui.StackedLegend.extend({initialize:function(){if(this.options.legends){var e=_.map(this.options.legends,function(e){return e.model});this.legendItems=new cdb.geo.ui.Legends(e),this.legendItems.bind(&quot;add remove change&quot;,this.render,this)}else if(this.options.data){var e=_.map(this.options.data,function(e){return new cdb.geo.ui.LegendModel(e)});this.legendItems=new cdb.geo.ui.Legends(e),this.legendItems.bind(&quot;add remove change&quot;,this.render,this)}},_capitalize:function(e){if(e&amp;&amp;_.isString(e))return e.charAt(0).toUpperCase()+e.slice(1)},render:function(){return this.$el.empty(),this.legends=[],this.legendItems&amp;&amp;this.legendItems.length&gt;0&amp;&amp;this.legendItems.each(this._renderLegend,this),this},_renderLegend:function(e){var t=e.get(&quot;type&quot;);t||(t=&quot;custom&quot;),t=this._capitalize(t);var n=new cdb.geo.ui.Legend[t](e.attributes);this.legends.push(n),e.get(&quot;visible&quot;)!==!1&amp;&amp;this.$el.append(n.render().$el)},getLegendAt:function(e){return this.legends[e]},addLegend:function(e){var t=new cdb.geo.ui.LegendModel(e);this.legendItems.push(t)},removeLegendAt:function(e){var t=this.legendItems.at(e);this.legendItems.remove(t)}}),cdb.geo.ui.LegendModel=cdb.core.Model.extend({defaults:{type:null,show_title:!1,title:&quot;&quot;,template:&quot;&quot;},initialize:function(){this.items=new cdb.geo.ui.LegendItems(this.get(&quot;items&quot;)),this.items.bind(&quot;add remove reset change&quot;,function(){this.set({items:this.items.toJSON()})},this),this.bind(&quot;change:items&quot;,this._onUpdateItems,this),this.bind(&quot;change:title change:show_title&quot;,this._onUpdateTitle,this),this.bind(&quot;change:template&quot;,this._onUpdateTemplate,this)},_onUpdateTemplate:function(){this.template=this.get(&quot;template&quot;)},_onUpdateTitle:function(){this.title=this.get(&quot;title&quot;),this.show_title=this.get(&quot;show_title&quot;)},_onUpdateItems:function(){var e=this.get(&quot;items&quot;);this.items.reset(e)}}),cdb.geo.ui.CustomLegend=cdb.geo.ui.BaseLegend.extend({className:&quot;custom-legend&quot;,type:&quot;custom&quot;,template:_.template(&#39;&lt;% if (title &amp;&amp; show_title) { %&gt;\n&lt;div class=&quot;legend-title&quot;&gt;&lt;%= title %&gt;&lt;/div&gt;&lt;% } %&gt;&lt;ul&gt;&lt;/ul&gt;&#39;),initialize:function(){this.items=this.model.items},setData:function(e){this.items=new cdb.geo.ui.LegendItems(e),this.model.items=this.items,this.model.set(&quot;items&quot;,e)},_renderItems:function(){this.items.each(this._renderItem,this)},_renderItem:function(e){view=new cdb.geo.ui.LegendItem({model:e,className:e.get(&quot;value&quot;)&amp;&amp;e.get(&quot;value&quot;).indexOf(&quot;http&quot;)&gt;=0?&quot;bkg&quot;:&quot;&quot;,template:&#39;		&lt;div class=&quot;bullet&quot; style=&quot;background:&lt;%= value %&gt;&quot;&gt;&lt;/div&gt;\n		&lt;%= name || &quot;null&quot; %&gt;&#39;}),this.$el.find(&quot;ul&quot;).append(view.render())},render:function(){if(this.model.get(&quot;template&quot;)){var e=_.template(this.model.get(&quot;template&quot;));this.$el.html(e(this.model.toJSON()))}else this.$el.html(this.template(this.model.toJSON())),this.items.length&gt;0?this._renderItems():this.$el.html(&#39;&lt;div class=&quot;warning&quot;&gt;The legend is empty&lt;/div&gt;&#39;);return this}}),cdb.geo.ui.Legend.Custom=cdb.geo.ui.CustomLegend.extend({className:&quot;cartodb-legend custom&quot;,type:&quot;custom&quot;,initialize:function(){this.items=new cdb.geo.ui.LegendItems(this.options.data||this.options.items),this.model=new cdb.geo.ui.LegendModel({type:this.type,title:this.options.title,show_title:this.options.title?!0:!1,items:this.items.models}),this._bindModel()},_bindModel:function(){this.model.bind(&quot;change:items change:template change:title change:show_title&quot;,this.render,this)}}),cdb.geo.ui.BubbleLegend=cdb.geo.ui.BaseLegend.extend({className:&quot;bubble-legend&quot;,template:_.template(&#39;&lt;% if (title &amp;&amp; show_title) { %&gt;\n&lt;div class=&quot;legend-title&quot;&gt;&lt;%= title %&gt;&lt;/div&gt;&lt;% } %&gt;&lt;ul&gt;&lt;li&gt;	&lt;%= min %&gt;&lt;/li&gt;&lt;li class=&quot;graph&quot;&gt;		&lt;div class=&quot;bubbles&quot;&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;	&lt;%= max %&gt;&lt;/li&gt;&lt;/ul&gt;&#39;),initialize:function(){this.items=this.model.items},_bindModel:function(){this.model.bind(&quot;change:template change:title change:show_title change:color change:min change:max&quot;,this.render,this)},setColor:function(e){this.model.set(&quot;color&quot;,e)},setMinValue:function(e){this.model.set(&quot;min&quot;,e)},setMaxValue:function(e){this.model.set(&quot;max&quot;,e)},_renderGraph:function(e){this.$el.find(&quot;.graph&quot;).css(&quot;background&quot;,e)},render:function(){if(this.model.get(&quot;template&quot;)){var e=_.template(this.model.get(&quot;template&quot;));this.$el.html(e(this.model.toJSON())),this.$el.removeClass(&quot;bubble-legend&quot;)}else{var t=this.model.get(&quot;color&quot;)||(this.items.length&gt;=3?this.items.at(2).get(&quot;value&quot;):&quot;&quot;);if(this.items.length&gt;=3){var n=this.model.get(&quot;min&quot;)||this.items.at(0).get(&quot;value&quot;),r=this.model.get(&quot;max&quot;)||this.items.at(1).get(&quot;value&quot;),i=_.extend(this.model.toJSON(),{min:n,max:r});this.$el.html(this.template(i))}this._renderGraph(t)}return this}}),cdb.geo.ui.Legend.Bubble=cdb.geo.ui.BubbleLegend.extend({className:&quot;cartodb-legend bubble&quot;,type:&quot;bubble&quot;,initialize:function(){this.model=new cdb.geo.ui.LegendModel({type:this.type,title:this.options.title,min:this.options.min,max:this.options.max,color:this.options.color,show_title:this.options.title?!0:!1}),this.add_related_model(this.model),this._bindModel()},render:function(){return this.$el.html(this.template(this.model.toJSON())),this._renderGraph(this.model.get(&quot;color&quot;)),this}}),cdb.geo.ui.Legend.Choropleth=cdb.geo.ui.ChoroplethLegend.extend({type:&quot;choropleth&quot;,className:&quot;cartodb-legend choropleth&quot;,initialize:function(){this.items=this.options.items,this.model=new cdb.geo.ui.LegendModel({type:this.type,title:this.options.title,show_title:this.options.title?!0:!1,leftLabel:this.options.left||this.options.leftLabel,rightLabel:this.options.right||this.options.rightLabel,colors:this.options.colors,buckets_count:this.options.colors?this.options.colors.length:0}),this.add_related_model(this.model),this._bindModel()},_bindModel:function(){this.model.bind(&quot;change:template change:title change:show_title change:colors change:leftLabel change:rightLabel&quot;,this.render,this)},_generateColorList:function(){return _.map(this.model.get(&quot;colors&quot;),function(e){return&#39;		&lt;div class=&quot;quartile&quot; style=&quot;background-color:&#39;+</td>
      </tr>
      <tr>
        <td id="L17" class="blob-num js-line-number" data-line-number="17"></td>
        <td id="LC17" class="blob-code js-file-line">e+&#39;&quot;&gt;&lt;/div&gt;&#39;}).join(&quot;&quot;)},render:function(){var e=_.extend(this.model.toJSON(),{colors:this._generateColorList()});return this.$el.html(this.template(e)),this}}),cdb.geo.ui.Legend.Intensity=cdb.geo.ui.IntensityLegend.extend({className:&quot;cartodb-legend intensity&quot;,type:&quot;intensity&quot;,initialize:function(){this.items=this.options.items,this.model=new cdb.geo.ui.LegendModel({type:this.type,title:this.options.title,show_title:this.options.title?!0:!1,color:this.options.color,leftLabel:this.options.left||this.options.leftLabel,rightLabel:this.options.right||this.options.rightLabel}),this.add_related_model(this.model),this._bindModel()},_bindModel:function(){this.model.bind(&quot;change:title change:show_title change:color change:leftLabel change:rightLabel&quot;,this.render,this)},render:function(){return this.$el.html(this.template(this.model.toJSON())),this._renderGraph(this.model.get(&quot;color&quot;)),this}}),cdb.geo.ui.SwitcherItemModel=Backbone.Model.extend({}),cdb.geo.ui.SwitcherItems=Backbone.Collection.extend({model:cdb.geo.ui.SwitcherItemModel}),cdb.geo.ui.SwitcherItem=cdb.core.View.extend({tagName:&quot;li&quot;,events:{&quot;click a&quot;:&quot;select&quot;},initialize:function(){_.bindAll(this,&quot;render&quot;),this.template=cdb.templates.getTemplate(&quot;templates/map/switcher/item&quot;),this.parent=this.options.parent,this.model.on(&quot;change:selected&quot;,this.render)},select:function(e){e.preventDefault(),this.parent.toggle(this);var t=this.model.get(&quot;callback&quot;);t&amp;&amp;t()},render:function(){return this.model.get(&quot;selected&quot;)==1?this.$el.addClass(&quot;selected&quot;):this.$el.removeClass(&quot;selected&quot;),this.$el.html(this.template(this.model.toJSON())),this.$el}}),cdb.geo.ui.Switcher=cdb.core.View.extend({id:&quot;switcher&quot;,default_options:{},initialize:function(){this.map=this.model,this.add_related_model(this.model),_.bindAll(this,&quot;render&quot;,&quot;show&quot;,&quot;hide&quot;,&quot;toggle&quot;),_.defaults(this.options,this.default_options),this.collection&amp;&amp;(this.model.collection=this.collection),this.template=this.options.template?this.options.template:cdb.templates.getTemplate(&quot;geo/switcher&quot;)},show:function(){this.$el.fadeIn(250)},hide:function(){this.$el.fadeOut(250)},toggle:function(e){this.collection&amp;&amp;this.collection.each(function(e){e.set(&quot;selected&quot;,!e.get(&quot;selected&quot;))})},render:function(){var e=this;return this.model!=undefined&amp;&amp;this.$el.html(this.template(this.model.toJSON())),this.collection&amp;&amp;this.collection.each(function(t){var n=new cdb.geo.ui.SwitcherItem({parent:e,className:t.get(&quot;className&quot;),model:t});e.$el.find(&quot;ul&quot;).append(n.render())}),this}}),cdb.geo.ui.InfowindowModel=Backbone.Model.extend({SYSTEM_COLUMNS:[&quot;the_geom&quot;,&quot;the_geom_webmercator&quot;,&quot;created_at&quot;,&quot;updated_at&quot;,&quot;cartodb_id&quot;,&quot;cartodb_georef_status&quot;],defaults:{template_name:&quot;infowindow_light&quot;,latlng:[0,0],offset:[28,0],maxHeight:180,autoPan:!0,template:&quot;&quot;,content:&quot;&quot;,visibility:!1,alternative_names:{},fields:null},clearFields:function(){this.set({fields:[]})},saveFields:function(e){e=e||&quot;old_fields&quot;,this.set(e,_.clone(this.get(&quot;fields&quot;)))},fieldCount:function(){var e=this.get(&quot;fields&quot;);return e?e.length:0},restoreFields:function(e,t){t=t||&quot;old_fields&quot;;var n=this.get(t);e&amp;&amp;(n=n.filter(function(t){return _.contains(e,t.name)})),n&amp;&amp;n.length&amp;&amp;this._setFields(n),this.unset(t)},_cloneFields:function(){return _(this.get(&quot;fields&quot;)).map(function(e){return _.clone(e)})},_setFields:function(e){e.sort(function(e,t){return e.position-t.position}),this.set({fields:e})},sortFields:function(){this.get(&quot;fields&quot;).sort(function(e,t){return e.position-t.position})},_addField:function(e,t){var n=$.Deferred();if(!this.containsField(e)){var r=this.get(&quot;fields&quot;);r?(t=t===undefined?r.length:t,r.push({name:e,title:!0,position:t})):(t=t===undefined?0:t,this.set(&quot;fields&quot;,[{name:e,title:!0,position:t}],{silent:!0}))}return n.resolve(),n.promise()},addField:function(e,t){var n=this;return $.when(this._addField(e,t)).then(function(){n.sortFields(),n.trigger(&quot;change:fields&quot;),n.trigger(&quot;add:fields&quot;)}),this},getFieldProperty:function(e,t){if(this.containsField(e)){var n=this.get(&quot;fields&quot;)||[],r=_.indexOf(_(n).pluck(&quot;name&quot;),e);return n[r][t]}return null},setFieldProperty:function(e,t,n){if(this.containsField(e)){var r=this._cloneFields()||[],i=_.indexOf(_(r).pluck(&quot;name&quot;),e);r[i][t]=n,this._setFields(r)}return this},getAlternativeName:function(e){return this.get(&quot;alternative_names&quot;)&amp;&amp;this.get(&quot;alternative_names&quot;)[e]},setAlternativeName:function(e,t){var n=this.get(&quot;alternative_names&quot;)||[];n[e]=t,this.set({alternative_names:n}),this.trigger(&quot;change:alternative_names&quot;)},getFieldPos:function(e){var t=this.getFieldProperty(e,&quot;position&quot;);return t==undefined?Number.MAX_VALUE:t},containsAlternativeName:function(e){var t=this.get(&quot;alternative_names&quot;)||[];return t[e]},containsField:function(e){var t=this.get(&quot;fields&quot;)||[];return _.contains(_(t).pluck(&quot;name&quot;),e)},removeField:function(e){if(this.containsField(e)){var t=this._cloneFields()||[],n=_.indexOf(_(t).pluck(&quot;name&quot;),e);n&gt;=0&amp;&amp;t.splice(n,1),this._setFields(t),this.trigger(&quot;remove:fields&quot;)}return this},updateContent:function(e){var t=this.get(&quot;fields&quot;);this.set(&quot;content&quot;,cdb.geo.ui.InfowindowModel.contentForFields(e,t))}},{contentForFields:function(e,t,n){n=n||{};var r=[];for(var i=0;i&lt;t.length;++i){var s=t[i],o=String(e[s.name]);(n.empty_fields||e[s.name]!==undefined&amp;&amp;o!=&quot;&quot;)&amp;&amp;r.push({title:s.title?s.name:null,value:e[s.name],index:i?i:null})}return r.length===0&amp;&amp;r.push({title:null,value:&quot;No data available&quot;,index:i?i:null,type:&quot;empty&quot;}),{fields:r,data:e}}}),cdb.geo.ui.Infowindow=cdb.core.View.extend({className:&quot;cartodb-infowindow&quot;,spin_options:{lines:10,length:0,width:4,radius:6,corners:1,rotate:0,color:&quot;rgba(0,0,0,0.5)&quot;,speed:1,trail:60,shadow:!1,hwaccel:!0,className:&quot;spinner&quot;,zIndex:2e9,top:&quot;auto&quot;,left:&quot;auto&quot;,position:&quot;absolute&quot;},events:{&quot;click .close&quot;:&quot;_closeInfowindow&quot;,&quot;touchstart .close&quot;:&quot;_closeInfowindow&quot;,&quot;MSPointerDown .close&quot;:&quot;_closeInfowindow&quot;,dragstart:&quot;_checkOrigin&quot;,mousedown:&quot;_checkOrigin&quot;,touchstart:&quot;_checkOrigin&quot;,MSPointerDown:&quot;_checkOrigin&quot;,dblclick:&quot;_stopPropagation&quot;,DOMMouseScroll:&quot;_stopBubbling&quot;,MozMousePixelScroll:&quot;_stopBubbling&quot;,mousewheel:&quot;_stopBubbling&quot;,dbclick:&quot;_stopPropagation&quot;,click:&quot;_stopPropagation&quot;},initialize:function(){var e=this;_.bindAll(this,&quot;render&quot;,&quot;setLatLng&quot;,&quot;_setTemplate&quot;,&quot;_updatePosition&quot;,&quot;_update&quot;,&quot;toggle&quot;,&quot;show&quot;,&quot;hide&quot;),this.mapView=this.options.mapView,this.options.template&amp;&amp;this.model.set(&quot;template&quot;,this.options.template),this.model.get(&quot;template&quot;)?this._compileTemplate():this._setTemplate(),this.model.bind(&quot;change:content&quot;,this.render,this),this.model.bind(&quot;change:template_name&quot;,this._setTemplate,this),this.model.bind(&quot;change:latlng&quot;,this._update,this),this.model.bind(&quot;change:visibility&quot;,this.toggle,this),this.model.bind(&quot;change:template&quot;,this._compileTemplate,this),this.model.bind(&quot;change:alternative_names&quot;,this.render,this),this.model.bind(&quot;change:width&quot;,this.render,this),this.model.bind(&quot;change:maxHeight&quot;,this.render,this),this.mapView.map.bind(&quot;change&quot;,this._updatePosition,this),this.mapView.bind(&quot;zoomstart&quot;,function(){e.hide(!0)}),this.mapView.bind(&quot;zoomend&quot;,function(){e.show(!0)}),this.add_related_model(this.mapView.map),this.$el.hide()},render:function(){if(this.template){var e=this.$(&quot;.cartodb-popup-content&quot;);e.length&gt;0&amp;&amp;e.data()!=null&amp;&amp;e.data().jsp&amp;&amp;e.data().jsp.destroy();var t=_.map(this.model.attributes.content.fields,function(e){return _.clone(e)}),n=this.model.get(&quot;content&quot;)?this.model.get(&quot;content&quot;).data:{};if(this.model.get(&quot;template_name&quot;)){var r=_.clone(this.model.attributes.template_name);t=this._fieldsToString(t,r)}var i={};_.each(this.model.get(&quot;content&quot;).fields,function(e){i[e.title]=e.value});var s=_.extend({content:{fields:t,data:n}},i);this.$el.html(this.template(s)),this.model.get(&quot;width&quot;)&amp;&amp;this.$(&quot;.cartodb-popup&quot;).css(&quot;width&quot;,this.model.get(&quot;width&quot;)+&quot;px&quot;),this.$(&quot;.cartodb-popup .cartodb-popup-content&quot;).css(&quot;max-height&quot;,this.model.get(&quot;maxHeight&quot;)+&quot;px&quot;);var o=this;setTimeout(function(){var e=o.$(&quot;.cartodb-popup-content&quot;).outerHeight();o.model.get(&quot;maxHeight&quot;)&lt;=e&amp;&amp;o.$(&quot;.cartodb-popup-content&quot;).jScrollPane({maintainPosition:!1,verticalDragMinHeight:20})},1),this._checkLoading(),this._loadCover(),this.isLoadingData()||(this.model.trigger(&quot;domready&quot;,this,this.$el),this.trigger(&quot;domready&quot;,this,this.$el))}return this},_getModelTemplate:function(){return this.model.get(&quot;template_name&quot;)},_setTemplate:function(){this.model.get(&quot;template_name&quot;)&amp;&amp;(this.template=cdb.templates.getTemplate(this._getModelTemplate()),this.render())},_compileTemplate:function(){var e=this.model.get(&quot;template&quot;)?this.model.get(&quot;template&quot;):cdb.templates.getTemplate(this._getModelTemplate());typeof e!=&quot;function&quot;?this.template=(new cdb.core.Template({template:e,type:this.model.get(&quot;template_type&quot;)||&quot;mustache&quot;})).asFunction():this.template=e,this.render()},_checkOrigin:function(e){var t=$(e.target).closest(&quot;.jspVerticalBar&quot;).length&gt;0&amp;&amp;e.type!=&quot;touchstart&quot;;t||e.stopPropagation()},_fieldsToString:function(e,t){var n=[];if(e&amp;&amp;e.length&gt;0){var r=this;n=_.map(e,function(e,n){return r._sanitizeField(e,t,e.index||n)})}return n},_sanitizeField:function(e,t,n){if(e.value==null||e.value==undefined)e.value=&quot;&quot;;var r=this.model.getAlternativeName(e.title);e.title&amp;&amp;r?e.title=r:e.title&amp;&amp;(e.title=e.title.replace(/_/g,&quot; &quot;));var i=e.value.toString();return!e.type&amp;&amp;n==0&amp;&amp;e.value.length&gt;35&amp;&amp;t&amp;&amp;t.search(&quot;_header_&quot;)!=-1&amp;&amp;(i=e.value.substr(0,32)+&quot;...&quot;),!e.type&amp;&amp;n==1&amp;&amp;e.value.length&gt;35&amp;&amp;t&amp;&amp;t.search(&quot;_header_with_image&quot;)!=-1&amp;&amp;(i=e.value.substr(0,32)+&quot;...&quot;),this._isValidURL(e.value)&amp;&amp;(i=&quot;&lt;a href=&#39;&quot;+e.value+&quot;&#39; target=&#39;_blank&#39;&gt;&quot;+i+&quot;&lt;/a&gt;&quot;),n==0&amp;&amp;t.search(&quot;_header_with_image&quot;)!=-1&amp;&amp;(i=e.value),e.value=i,e},isLoadingData:function(){var e=this.model.get(&quot;content&quot;);return e.fields&amp;&amp;e.fields.length==1&amp;&amp;e.fields[0].type===&quot;loading&quot;},_checkLoading:function(){this.isLoadingData()?this._startSpinner():this._stopSpinner()},_stopSpinner:function(){this.spinner&amp;&amp;this.spinner.stop()},_startSpinner:function(e){this._stopSpinner();var e=this.$el.find(&quot;.loading&quot;);if(e){var t=this.model.get(&quot;template_name&quot;).search(&quot;dark&quot;)!=-1;t?this.spin_options.color=&quot;#FFF&quot;:this.spin_options.color=&quot;rgba(0,0,0,0.5)&quot;,this.spinner=(new Spinner(this.spin_options)).spin(),e.append(this.spinner.el)}},_containsCover:function(){return this.$el.find(&quot;.cartodb-popup.header&quot;).attr(&quot;data-cover&quot;)?!0:!1},_getCoverURL:function(){var e=this.model.get(&quot;content&quot;);return e&amp;&amp;e.fields&amp;&amp;e.fields.length&gt;0?(e.fields[0].value||&quot;&quot;).toString():!1},_loadCover:function(){if(!this._containsCover())return;var e=this,t=this.$(&quot;.cover&quot;),n=this.$(&quot;.shadow&quot;),r=this._getCoverURL();if(!this._isValidURL(r)){n.hide(),cdb.log.info(&quot;Header image url not valid&quot;);return}var i=document.getElementById(&quot;spinner&quot;),s={lines:9,length:4,width:2,radius:4,corners:1,rotate:0,color:&quot;#ccc&quot;,speed:1,trail:60,shadow:!0,hwaccel:!1,zIndex:2e9},o=(new Spinner(s)).spin(i),u=t.find(&quot;img&quot;);u.hide(function(){this.remove()}),u=$(&quot;&lt;img /&gt;&quot;).attr(&quot;src&quot;,r),t.append(u),u.load(function(){o.stop();var e=u.width(),n=u.height(),r=t.width(),i=t.height(),s=n/e,a=i/r;if(e&gt;r&amp;&amp;n&gt;i)if(s&lt;a)u.css({height:i});else{var f=n/(e/r);u.css({width:r,top:&quot;50%&quot;,position:&quot;absolute&quot;,&quot;margin-top&quot;:-1*parseInt(f,10)/2})}else{var f=n/(e/r);u.css({width:r,top:&quot;50%&quot;,position:&quot;absolute&quot;,&quot;margin-top&quot;:-1*parseInt(f,10)/2})}u.fadeIn(300)}).error(function(){o.stop()})},_isValidURL:function(e){if(e){var t=/^(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&amp;amp;:\/~+#-|]*[\w@?^=%&amp;amp;\/~+#-])?$/;return String(e).match(t)!=null?!0:!1}return!1},toggle:function(){this.model.get(&quot;visibility&quot;)?this.show():this.hide()},_stopBubbling:function(e){e.preventDefault(),e.stopPropagation()},_stopPropagation:function(e){e.stopPropagation()},setLoading:function(){return this.model.set({content:{fields:[{title:null,alternative_name:null,value:&quot;Loading content...&quot;,index:null,type:&quot;loading&quot;}],data:{}}}),this},setError:function(){return this.model.set({content:{fields:[{title:null,alternative_name:null,value:&quot;There has been an error...&quot;,index:null,type:&quot;error&quot;}],data:{}}}),this},setLatLng:function(e){return this.model.set(&quot;latlng&quot;,e),this},_closeInfowindow:function(e){e&amp;&amp;(e.preventDefault(),e.stopPropagation()),this.model.get(&quot;visibility&quot;)&amp;&amp;(this.model.set(&quot;visibility&quot;,!1),this.trigger(&quot;close&quot;))},showInfowindow:function(){this.model.set(&quot;visibility&quot;,!0)},show:function(e){var t=this;this.model.get(&quot;visibility&quot;)&amp;&amp;(t.$el.css({left:-5e3}),t._update(e))},isHidden:function(){return!this.model.get(&quot;visibility&quot;)},hide:function(e){(e||!this.model.get(&quot;visibility&quot;))&amp;&amp;this._animateOut()},_update:function(e){if(!this.isHidden()){var t=0;if(!e)var t=this.adjustPan();this._updatePosition(),this._animateIn(t)}},_animateIn:function(e){!$.browser.msie||$.browser.msie&amp;&amp;parseInt($.browser.version)&gt;8?(this.$el.css({marginBottom:&quot;-10px&quot;,display:&quot;block&quot;,opacity:0}),this.$el.delay(e).animate({opacity:1,marginBottom:0},300)):this.$el.show()},_animateOut:function(){if(!$.browser.msie||$.browser.msie&amp;&amp;parseInt($.browser.version)&gt;8){var e=this;this.$el.animate({marginBottom:&quot;-10px&quot;,opacity:&quot;0&quot;,display:&quot;block&quot;},180,function(){e.$el.css({display:&quot;none&quot;})})}else this.$el.hide()},_updatePosition:function(){if(this.isHidden())return;var e=this.model.get(&quot;offset&quot;);pos=this.mapView.latLonToPixel(this.model.get(&quot;latlng&quot;)),x=this.$el.position().left,y=this.$el.position().top,containerHeight=this.$el.outerHeight(!0),containerWidth=this.$el.width(),left=pos.x-e[0],size=this.mapView.getSize(),bottom=-1*(pos.y-e[1]-size.y),this.$el.css({bottom:bottom,left:left})},adjustPan:function(e){var t=this.model.get(&quot;offset&quot;);if(!this.model.get(&quot;autoPan&quot;)||this.isHidden())return;var n=this.$el.position().left,r=this.$el.position().top,i=this.$el.outerHeight(!0)+15,s=this.$el.width(),o=this.mapView.latLonToPixel(this.model.get(&quot;latlng&quot;)),u={x:0,y:0};size=this.mapView.getSize(),wait_callback=0,o.x-t[0]&lt;0&amp;&amp;(u.x=o.x-t[0]-10),o.x-t[0]+s&gt;size.x&amp;&amp;(u.x=o.x+s-size.x-t[0]+10),o.y-i&lt;0&amp;&amp;(u.y=o.y-i-10),o.y-i&gt;size.y&amp;&amp;(u.y=o.y+i-size.y);if(u.x||u.y)this.mapView.panBy(u),wait_callback=300;return wait_callback}}),cdb.geo.ui.Header=cdb.core.View.extend({className:&quot;cartodb-header&quot;,initialize:function(){var e=this.model.get(&quot;extra&quot;);this.model.set({title:e.title,description:e.description,show_title:e.show_title,show_description:e.show_description},{silent:!0})},show:function(){var e=this.model.get(&quot;title&quot;)&amp;&amp;this.model.get(&quot;show_title&quot;),t=this.model.get(&quot;description&quot;)&amp;&amp;this.model.get(&quot;show_description&quot;);if(e||t){var n=this;this.$el.show(),e&amp;&amp;n.$title.show(),t&amp;&amp;n.$description.show()}},render:function(){return this.$el.html(this.options.template(this.model.attributes)),this.$title=this.$el.find(&quot;.content div.title&quot;),this.$description=this.$el.find(&quot;.content div.description&quot;),this.model.get(&quot;show_title&quot;)||this.model.get(&quot;show_description&quot;)?this.show():this.hide(),this}}),cdb.geo.ui.Search=cdb.core.View.extend({className:&quot;cartodb-searchbox&quot;,events:{&quot;click input[type=&#39;text&#39;]&quot;:&quot;_focus&quot;,&quot;submit form&quot;:&quot;_submit&quot;,click:&quot;_stopPropagation&quot;,dblclick:&quot;_stopPropagation&quot;,mousedown:&quot;_stopPropagation&quot;},initialize:function(){},render:function(){return this.$el.html(this.options.template(this.options)),this},_stopPropagation:function(e){e.stopPropagation()},_focus:function(e){e.preventDefault(),$(e.target).focus()},_showLoader:function(){this.$(&quot;span.loader&quot;).show()},_hideLoader:function(){this.$(&quot;span.loader&quot;).hide()},_submit:function(e){e.preventDefault();var t=this,n=this.$(&quot;input.text&quot;).val();this._showLoader(),cdb.geo.geocoder.NOKIA.geocode(n,function(e){if(e.length&gt;0){var n=!0;if(!e[0].boundingbox||e[0].boundingbox.south==e[0].boundingbox.north||e[0].boundingbox.east==e[0].boundingbox.west)n=!1;n&amp;&amp;e[0].boundingbox?t.model.setBounds([[parseFloat(e[0].boundingbox.south),parseFloat(e[0].boundingbox.west)],[parseFloat(e[0].boundingbox.north),parseFloat(e[0].boundingbox.east)]]):e[0].lat&amp;&amp;e[0].lon&amp;&amp;(t.model.setCenter([e[0].lat,e[0].lon]),t.model.setZoom(10))}t._hideLoader()})}}),cdb.geo.ui.LayerSelector=cdb.core.View.extend({className:&quot;cartodb-layer-selector-box&quot;,events:{click:&quot;_openDropdown&quot;,dblclick:&quot;killEvent&quot;,mousedown:&quot;killEvent&quot;},initialize:function(){this.map=this.options.mapView.map,this.mapView=this.options.mapView,this.mapView.bind(&quot;click zoomstart drag&quot;,function(){this.dropdown&amp;&amp;this.dropdown.hide()},this),this.add_related_model(this.mapView),this.layers=[]},render:function(){return this.$el.html(this.options.template(this.options)),this.dropdown=new cdb.ui.common.Dropdown({className:&quot;cartodb-dropdown border&quot;,template:this.options.dropdown_template,target:this.$el.find(&quot;a&quot;),speedIn:300,speedOut:200,position:&quot;position&quot;,tick:&quot;right&quot;,vertical_position:&quot;down&quot;,horizontal_position:&quot;right&quot;,vertical_offset:7,horizontal_offset:13}),cdb.god&amp;&amp;cdb.god.bind(&quot;closeDialogs&quot;,this.dropdown.hide,this.dropdown),this.$el.append(this.dropdown.render().el),this._getLayers(),this._setCount(),this},_getLayers:function(){var e=this;this.layers=[],_.each(this.map.layers.models,function(t){if(t.get(&quot;type&quot;)==&quot;layergroup&quot;||t.get(&quot;type&quot;)===&quot;namedmap&quot;){var n=e.mapView.getLayerByCid(t.cid);for(var r=0;r&lt;n.getLayerCount();++r){var i=n.getLayer(r),s=new cdb.core.Model(i);s.set(&quot;order&quot;,r),s.set(&quot;type&quot;,&quot;layergroup&quot;),s.set(&quot;visible&quot;,!n.getSubLayer(r).get(&quot;hidden&quot;)),s.bind(&quot;change:visible&quot;,function(e){this.trigger(&quot;change:visible&quot;,e.get(&quot;visible&quot;),e.get(&quot;order&quot;),e)},e),e.options.layer_names?s.set(&quot;layer_name&quot;,e.options.layer_names[r]):s.set(&quot;layer_name&quot;,i.options.layer_name);var o=e._createLayer(&quot;LayerViewFromLayerGroup&quot;,{model:s,layerView:n,layerIndex:r});o.bind(&quot;switchChanged&quot;,e._setCount,e),e.layers.push(o)}}else if(t.get(&quot;type&quot;)===&quot;CartoDB&quot;||t.get(&quot;type&quot;)===&quot;torque&quot;){var o=e._createLayer(&quot;LayerView&quot;,{model:t});o.bind(&quot;switchChanged&quot;,e._setCount,e),e.layers.push(o),o.model.bind(&quot;change:visible&quot;,function(e){this.trigger(&quot;change:visible&quot;,e.get(&quot;visible&quot;),e.get(&quot;order&quot;),e)},e)}})},_createLayer:function(e,t){var n=new cdb.geo.ui[e](t);return this.$(&quot;ul&quot;).append(n.render().el),this.addView(n),n},_setCount:function(){var e=0;for(var t=0,n=this.layers.length;t&lt;n;++t){var r=this.layers[t];r.model.get(&quot;visible&quot;)&amp;&amp;e++}this.$(&quot;.count&quot;).text(e),this.trigger(&quot;switchChanged&quot;,this)},_openDropdown:function(){this.dropdown.open()}}),cdb.geo.ui.LayerView=cdb.core.View.extend({tagName:&quot;li&quot;,defaults:{template:&#39;      &lt;a class=&quot;layer&quot; href=&quot;#/change-layer&quot;&gt;&lt;%= layer_name %&gt;&lt;/a&gt;      &lt;a href=&quot;#switch&quot; class=&quot;right &lt;%= visible ? &quot;enabled&quot; : &quot;disabled&quot; %&gt; switch&quot;&gt;&lt;span class=&quot;handle&quot;&gt;&lt;/span&gt;&lt;/a&gt;    &#39;},events:{click:&quot;_onSwitchClick&quot;},initialize:function(){this.model.has(&quot;visible&quot;)||this.model.set(&quot;visible&quot;,!1),this.model.bind(&quot;change:visible&quot;,this._onSwitchSelected,this),this.add_related_model(this.model),this._onSwitchSelected(),this.template=this.options.template?cdb.templates.getTemplate(this.options.template):_.template(this.defaults.template)},render:function(){var e=_.clone(this.model.attributes);return e.layer_name=e.layer_name||e.table_name,this.$el.append(this.template(e)),this},_onSwitchSelected:function(){var e=this.model.get(&quot;visible&quot;);this.$el.find(&quot;.switch&quot;).removeClass(e?&quot;disabled&quot;:&quot;enabled&quot;).addClass(e?&quot;enabled&quot;:&quot;disabled&quot;),this.trigger(&quot;switchChanged&quot;)},_onSwitchClick:function(e){this.killEvent(e),this.model.set(&quot;visible&quot;,!this.model.get(&quot;visible&quot;))}}),cdb.geo.ui.LayerViewFromLayerGroup=cdb.geo.ui.LayerView.extend({_onSwitchSelected:function(){cdb.geo.ui.LayerView.prototype._onSwitchSelected.call(this);var e=this.options.layerView.getSubLayer(this.options.layerIndex),t=this.model.get(&quot;visible&quot;);t?e.show():e.hide()}}),cdb.geo.ui.TilesLoader=cdb.core.View.extend({className:&quot;cartodb-tiles-loader&quot;,default_options:{animationSpeed:500},initialize:function(){_.defaults(this.options,this.default_options),this.isVisible=0,this.template=this.options.template?this.options.template:cdb.templates.getTemplate(&quot;geo/tiles_loader&quot;)},render:function(){return this.$el.html($(this.template(this.options))),this},show:function(e){if(this.isVisible)return;!$.browser.msie||$.browser.msie&amp;&amp;$.browser.version.indexOf(&quot;9.&quot;)!=0?this.$el.fadeTo(this.options.animationSpeed,1):this.$el.show(),this.isVisible++},hide:function(e){this.isVisible--;if(this.isVisible&gt;0)return;this.isVisible=0,!$.browser.msie||$.browser.msie&amp;&amp;$.browser.version.indexOf(&quot;9.&quot;)==0?this.$el.stop(!0).fadeTo(this.options.animationSpeed,0):this.$el.hide()},visible:function(){return this.isVisible&gt;0}}),cdb.geo.ui.InfoBox=cdb.core.View.extend({className:&quot;cartodb-infobox&quot;,defaults:{pos_margin:20,position:&quot;bottom|right&quot;,width:200},initialize:function(){var e=this;_.defaults(this.options,this.defaults),this.options.layer&amp;&amp;this.enable(),this.setTemplate(this.options.template||this.defaultTemplate,&quot;mustache&quot;)},setTemplate:function(e){this.template=cdb.core.Template.compile(e,&quot;mustache&quot;)},enable:function(){this.options.layer&amp;&amp;this.options.layer.on(&quot;featureOver&quot;,function(e,t,n,r){this.render(r).show()},this).on(&quot;featureOut&quot;,function(){this.hide()},this)},disable:function(){this.options.layer&amp;&amp;this.options.layer.off(null,null,this)},setPosition:function(e){var t={};e.indexOf(&quot;top&quot;)!==-1?t.top=this.options.pos_margin:e.indexOf(&quot;bottom&quot;)!==-1&amp;&amp;(t.bottom=this.options.pos_margin),e.indexOf(&quot;left&quot;)!==-1?t.left=this.options.pos_margin:e.indexOf(&quot;right&quot;)!==-1&amp;&amp;(t.right=this.options.pos_margin),this.$el.css(t)},render:function(e){return this.$el.html(this.template(e)),this.options.width&amp;&amp;this.$el.css(&quot;width&quot;,this.options.width),this.options.position&amp;&amp;this.setPosition(this.options.position),this}}),cdb.geo.ui.Tooltip=cdb.geo.ui.InfoBox.extend({defaultTemplate:&quot;&lt;p&gt;{{text}}&lt;/p&gt;&quot;,className:&quot;cartodb-tooltip&quot;,defaults:{vertical_offset:0,horizontal_offset:0,position:&quot;top|center&quot;},initialize:function(){this.options.template=this.options.template||this.defaultTemplate,cdb.geo.ui.InfoBox.prototype.initialize.call(this),this._filter=null,this.showing=!1,this.showhideTimeout=null},setLayer:function(e){return this.options.layer=e,this},setFilter:function(e){return this._filter=e,this},setFields:function(e){return this.options.fields=e,this},setAlternativeNames:function(e){this.options.alternative_names=e},enable:function(){this.options.layer&amp;&amp;(this.options.layer.unbind(null,null,this),this.options.layer.on(&quot;mouseover&quot;,function(e,t,n,r){if(this.options.fields){var i=[&quot;fields&quot;,&quot;content&quot;];this.options.omit_columns&amp;&amp;(i=i.concat(this.options.omit_columns));var s=cdb.geo.ui.InfowindowModel.contentForFields(r,this.options.fields,{empty_fields:this.options.empty_fields});r.content=_.omit(r,i),r.fields=s.fields;var o=this.options.alternative_names;if(o)for(var u=0;u&lt;r.fields.length;++u){var a=r.fields[u];a.title=o[a.title]||a.title}}this.show(n,r),this.showing=!0},this).on(&quot;mouseout&quot;,function(){this.showing&amp;&amp;(this.hide(),this.showing=!1)},this),this.add_related_model(this.options.layer))},disable:function(){this.options.layer&amp;&amp;this.options.layer.unbind(null,null,this),this.hide(),this.showing=!1},_visibility:function(){var e=this;clearTimeout(this.showhideTimeout),this.showhideTimeout=setTimeout(e._showing?function(){e.$el.fadeIn(100)}:function(){e.$el.fadeOut(200)},50)},hide:function(){this._showing&amp;&amp;(this._showing=!1,this._visibility())},show:function(e,t){return this._filter&amp;&amp;!this._filter(t)?this:(this.render(t),this.setPosition(e),this._showing||(this._showing=!0,this._visibility()),this)},setPosition:function(e){var t={left:0,top:0},n=this.options.position,r=this.$el,i=r.innerHeight(),s=r.innerWidth();n.indexOf(&quot;top&quot;)!==-1?t.top=-i:n.indexOf(&quot;middle&quot;)!==-1&amp;&amp;(t.top=-(i/2)),n.indexOf(&quot;left&quot;)!==-1?t.left=-s:n.indexOf(&quot;center&quot;)!==-1&amp;&amp;(t.left=-(s/2)),t.top+=this.options.vertical_offset,t.left+=this.options.horizontal_offset,r.css({top:e.y+t.top,left:e.x+t.left})},render:function(e){return this.$el.html(this.template(e)),this}}),cdb.ui.common.FullScreen=cdb.core.View.extend({tagName:&quot;div&quot;,className:&quot;cartodb-fullscreen&quot;,events:{&quot;click a&quot;:&quot;_toggleFullScreen&quot;},initialize:function(){_.bindAll(this,&quot;render&quot;),_.defaults(this.options,this.default_options),this._addWheelEvent()},_addWheelEvent:function(){var e=this,t=this.options.mapView;$(document).on(&quot;webkitfullscreenchange mozfullscreenchange fullscreenchange&quot;,function(){!document.fullscreenElement&amp;&amp;!document.webkitFullscreenElement&amp;&amp;!document.mozFullScreenElement&amp;&amp;!document.msFullscreenElement&amp;&amp;e.model.get(&quot;allowWheelOnFullscreen&quot;)&amp;&amp;t.options.map.set(&quot;scrollwheel&quot;,!1),t.invalidateSize()})},_toggleFullScreen:function(e){e.stopPropagation(),e.preventDefault();var t=window.document,n=t.documentElement;this.options.doc&amp;&amp;(n=$(this.options.doc)[0]);var r=n.requestFullscreen||n.mozRequestFullScreen||n.webkitRequestFullScreen,i=t.exitFullscreen||t.mozCancelFullScreen||t.webkitExitFullscreen,s=this.options.mapView;!t.fullscreenElement&amp;&amp;!t.mozFullScreenElement&amp;&amp;!t.webkitFullscreenElement?(r.call(n),s&amp;&amp;this.model.get(&quot;allowWheelOnFullscreen&quot;)&amp;&amp;s.options.map.set(&quot;scrollwheel&quot;,!0)):i.call(t)},render:function(){var e=this.$el,t=_.extend(this.options);return e.html(this.options.template(t)),this}}),Map.BASE_URL=&quot;/api/v1/map&quot;,Map.EMPTY_GIF=&quot;data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7&quot;,LayerDefinition.layerDefFromSubLayers=function(e){if(!e||e.length===undefined)throw new Error(&quot;sublayers should be an array&quot;);var t={version:&quot;1.0.0&quot;,stat_tag:&quot;API&quot;,layers:[]};for(var n=0;n&lt;e.length;++n)t.layers.push({type:&quot;cartodb&quot;,options:e[n]});return t},Map.prototype={isCORSSupported:function(){return&quot;withCredentials&quot;in new XMLHttpRequest},isBtoaSupported:function(){return typeof window[&quot;btoa&quot;]==&quot;function&quot;},getLayerCount:function(){return this.layers.length},_encodeBase64Native:function(e){return btoa(e)},getLayerIndexByNumber:function(e){var t={},n=0;for(var r=0;r&lt;this.layers.length;++r){var i=this.layers[r];t[r]=n,i.options&amp;&amp;!i.options.hidden&amp;&amp;++n}return t[e]},getLayerNumberByIndex:function(e){var t=[];for(var n=0;n&lt;this.layers.length;++n){var r=this.layers[n];r.options&amp;&amp;!r.options.hidden&amp;&amp;t.push(n)}return e&gt;=t.length?-1:+t[e]},visibleLayers:function(){var e=[];for(var t=0;t&lt;this.layers.length;++t){var n=this.layers[t];n.options.hidden||e.push(n)}return e},_encodeBase64:function(e){var t=&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=&quot;,n,r,i,s,o,u,a,f,l=0,c=0,h=&quot;&quot;,p=[];if(!e)return e;do n=e.charCodeAt(l++),r=e.charCodeAt(l++),i=e.charCodeAt(l++),f=n&lt;&lt;16|r&lt;&lt;8|i,s=f&gt;&gt;18&amp;63,o=f&gt;&gt;12&amp;63,u=f&gt;&gt;6&amp;63,a=f&amp;63,p[c++]=t.charAt(s)+t.charAt(o)+t.charAt(u)+t.charAt(a);while(l&lt;e.length);h=p.join(&quot;&quot;);var d=e.length%3;return(d?h.slice(0,d-3):h)+&quot;===&quot;.slice(d||3)},_array2hex:function(e){var t=[];for(var n=0;n&lt;e.length;++n)t.push(String.fromCharCode(e[n]+128));return this.options.btoa(t.join(&quot;&quot;))},getLayerToken:function(e){function n(e,n){var r;while(r=t._layerTokenQueue.pop())r(e,n)}var t=this;clearTimeout(this._timeout),this._queue.push(n),this._layerTokenQueue.push(e),this._timeout=setTimeout(function(){t._getLayerToken(n)},4)},_requestFinished:function(){var e=this;this._waiting=!1,this.lastTimeUpdated=(new Date).getTime(),clearTimeout(this._refreshTimer),this._refreshTimer=setTimeout(function(){e.invalidate()},this.options.refreshTime||72e5);if(this._queue.length){var t=this._queue[this._queue.length-1];this._getLayerToken(t)}},_requestPOST:function(e,t){var n=this,r=this.options.ajax,i=cartodb.core.Profiler.metric(&quot;cartodb-js.layergroup.post.time&quot;).start();r({crossOrigin:!0,type:&quot;POST&quot;,method:&quot;POST&quot;,dataType:&quot;json&quot;,contentType:&quot;application/json&quot;,url:this._tilerHost()+this.endPoint+(e.length?&quot;?&quot;+e.join(&quot;&amp;&quot;):&quot;&quot;),data:JSON.stringify(this.toJSON()),success:function(e){i.end(),0===n._queue.length&amp;&amp;t(e),n._requestFinished()},error:function(e){i.end(),cartodb.core.Profiler.metric(&quot;cartodb-js.layergroup.post.error&quot;).inc();var r={errors:[&quot;unknow error&quot;]};e.status===0&amp;&amp;(r={errors:[&quot;connection error&quot;]});try{r=JSON.parse(e.responseText)}catch(s){}0===n._queue.length&amp;&amp;t(null,r),n._requestFinished()}})},_getCompressor:function(e){var t=this;return this.options.compressor?this.options.compressor:(e=e||JSON.stringify(this.toJSON()),!this.options.force_compress&amp;&amp;e.length&lt;this.options.MAX_GET_SIZE?function(e,t,n){n(&quot;config=&quot;+encodeURIComponent(e))}:function(e,n,r){e=JSON.stringify({config:e}),LZMA.compress(e,n,function(e){r(&quot;lzma=&quot;+encodeURIComponent(t._array2hex(e)))})})},_requestGET:function(e,t){var n=this,r=this.options.ajax,i=JSON.stringify(this.toJSON()),s=this._getCompressor(i),o=n.JSONPendPoint||n.endPoint;s(i,3,function(i){e.push(i);var s=cartodb.core.Profiler.metric(&quot;cartodb-js.layergroup.get.time&quot;).start();r({dataType:&quot;jsonp&quot;,url:n._tilerHost()+o+&quot;?&quot;+e.join(&quot;&amp;&quot;),jsonpCallback:n.options.instanciateCallback,cache:!!n.options.instanciateCallback,success:function(e){s.end(),0===n._queue.length&amp;&amp;(e.error?(cartodb.core.Profiler.metric(&quot;cartodb-js.layergroup.get.error&quot;).inc(),t(null,e.error)):t(e)),n._requestFinished()},error:function(e){s.end(),cartodb.core.Profiler.metric(&quot;cartodb-js.layergroup.get.error&quot;).inc();var r={errors:[&quot;unknow error&quot;]};try{r=JSON.parse(xhr.responseText)}catch(i){}0===n._queue.length&amp;&amp;t(null,r),n._requestFinished()}})})},_getLayerToken:function(e){var t=this,n=[];e=e||function(){};if(this._waiting)return this;this._queue=[];if(!this.named_map&amp;&amp;this.visibleLayers().length===0){e(null);return}var r=this.options.extra_params||{},i=this.options.map_key||this.options.api_key||r.map_key||r.api_key;i&amp;&amp;n.push(&quot;map_key=&quot;+i);if(r.auth_token)if(_.isArray(r.auth_token))for(var s=0,o=r.auth_token.length;s&lt;o;s++)n.push(&quot;auth_token[]=&quot;+r.auth_token[s]);else n.push(&quot;auth_token=&quot;+r.auth_token);this._waiting=!0;var u=null;return this._usePOST()?u=this._requestPOST:u=this._requestGET,u.call(this,n,e),this},_usePOST:function(){if(this.options.cors){if(this.options.force_cors)return!0;var e=JSON.stringify(this.toJSON());if(e&lt;this.options.MAX_GET_SIZE)return!1}return!1},getLayer:function(e){return _.clone(this.layers[e])},invalidate:function(){this.layerToken=null,this.urls=null,this.onLayerDefinitionUpdated()},setLayer:function(e,t){if(e&lt;this.getLayerCount()&amp;&amp;e&gt;=0){if(t.options.hidden){var n=this.interactionEnabled[e];n&amp;&amp;(t.interaction=!0,this.setInteraction(e,!1))}else this.layers[e].interaction&amp;&amp;(this.setInteraction(e,!0),delete this.layers[e].interaction);this.layers[e]=_.clone(t)}return this.invalidate(),this},getTiles:function(e){var t=this;return t.layerToken?(e&amp;&amp;e(t._layerGroupTiles(t.layerToken,t.options.extra_params)),this):(this.getLayerToken(function(n,r){if(n){t.layerToken=n.layergroupid;if(n.cdn_url){var i=t.options.cdn_url=t.options.cdn_url||{};i.http=n.cdn_url.http||i.http,i.https=n.cdn_url.https||i.https}t.urls=t._layerGroupTiles(n.layergroupid,t.options.extra_params),e&amp;&amp;e(t.urls)}else{if(t.visibleLayers().length===0){e&amp;&amp;e({tiles:[Map.EMPTY_GIF],grids:[]});return}e&amp;&amp;e(null,r)}}),this)},isHttps:function(){return this.options.tiler_protocol===&quot;https&quot;},_layerGroupTiles:function(e,t){var n=this.options.subdomains||[&quot;0&quot;,&quot;1&quot;,&quot;2&quot;,&quot;3&quot;];this.isHttps()&amp;&amp;(n=[null]);var r=&quot;/{z}/{x}/{y}&quot;,i=[],s=[],o=this._encodeParams(t,this.options.pngParams);for(var u=0;u&lt;n.length;++u){var a=n[u],f=this._host(a)+Map.BASE_URL+&quot;/&quot;+e;s.push(f+r+&quot;.png&quot;+(o?&quot;?&quot;+o:&quot;&quot;));var l=this._encodeParams(t,this.options.gridParams);for(var c=0;c&lt;this.layers.length;++c)i[c]=i[c]||[],i[c].push(f+&quot;/&quot;+c+r+&quot;.grid.json&quot;+(l?&quot;?&quot;+l:&quot;&quot;))}return{tiles:s,grids:i}},_cleanInteractivity:function(e){if(!e)return;typeof e==&quot;string&quot;&amp;&amp;(e=e.split(&quot;,&quot;));for(var t=0;t&lt;e.length;++t)e[t]=e[t].replace(/ /g,&quot;&quot;);return e},onLayerDefinitionUpdated:function(){},setSilent:function(e){this.silent=e},_definitionUpdated:function(){if(this.silent)return;this.invalidate()},_tileJSONfromTiles:function(e,t,n){function i(e){var t=[];for(var n=0;n&lt;e.length;++n)t.push(e[n].replace(&quot;{s}&quot;,r[n%r.length]));return t}n=n||{};var r=n.subdomains||[&quot;0&quot;,&quot;1&quot;,&quot;2&quot;,&quot;3&quot;];return{tilejson:&quot;2.0.0&quot;,scheme:&quot;xyz&quot;,grids:i(t.grids[e]),tiles:i(t.tiles),formatter:function(e,t){return t}}},getTileJSON:function(e,t){e=e==undefined?0:e;var n=this;this.getTiles(function(r){if(!r){t(null);return}t&amp;&amp;t(n._tileJSONfromTiles(e,r))})},_encodeParams:function(e,t){if(!e)return&quot;&quot;;var n=[];t=t||_.keys(e);for(var r in t){var i=t[r],s=e[i];if(s)if(_.isArray(s))for(var o=0,u=s.length;o&lt;u;o++)n.push(i+&quot;[]=&quot;+encodeURIComponent(s[o]));else{var a=encodeURIComponent(s);a=a.replace(/%7Bx%7D/g,&quot;{x}&quot;).replace(/%7By%7D/g,&quot;{y}&quot;).replace(/%7Bz%7D/g,&quot;{z}&quot;),n.push(i+&quot;=&quot;+a)}}return n.join(&quot;&amp;&quot;)},_tilerHost:function(){var e=this.options;return e.tiler_protocol+&quot;://&quot;+(e.user_name?e.user_name+&quot;.&quot;:&quot;&quot;)+e.tiler_domain+(e.tiler_port!=&quot;&quot;?&quot;:&quot;+e.tiler_port:&quot;&quot;)},_host:function(e){var t=this.options;if(t.no_cdn)return this._tilerHost();var n=t.tiler_protocol+&quot;://&quot;;e&amp;&amp;(n+=e+&quot;.&quot;);var r=t.cdn_url||cdb.CDB_HOST;if(!r.http&amp;&amp;!r.https)throw new Error(&quot;cdn_host should contain http and/or https entries&quot;);return n+=r[t.tiler_protocol]+&quot;/&quot;+t.user_name,n},getTooltipData:function(e){return this.layers[e].tooltip},getInfowindowData:function(e){var t,n=this.layers[e].infowindow;return!n&amp;&amp;this.options.layer_definition&amp;&amp;(t=this.options.layer_definition.layers[</td>
      </tr>
      <tr>
        <td id="L18" class="blob-num js-line-number" data-line-number="18"></td>
        <td id="LC18" class="blob-code js-file-line">e])&amp;&amp;(n=t.infowindow),n&amp;&amp;n.fields&amp;&amp;n.fields.length&gt;0?n:null},containInfowindow:function(){var e=this.options.layer_definition.layers;for(var t=0;t&lt;e.length;++t){var n=e[t].infowindow;if(n&amp;&amp;n.fields&amp;&amp;n.fields.length&gt;0)return!0}return!1},containTooltip:function(){var e=this.options.layer_definition.layers;for(var t=0;t&lt;e.length;++t){var n=e[t].tooltip;if(n&amp;&amp;n.fields&amp;&amp;n.fields.length)return!0}return!1},getSubLayer:function(e){var t=this.layers[e];return t.sub=t.sub||new SubLayer(this,e),t.sub},getSubLayerCount:function(){return this.getLayerCount()},getSubLayers:function(){var e=[];for(var t=0;t&lt;this.getSubLayerCount();++t)e.push(this.getSubLayer(t));return e}},NamedMap.prototype=_.extend({},Map.prototype,{setAuthToken:function(e){if(!this.isHttps())throw new Error(&quot;https must be used when auth_token is set&quot;);return this.options.extra_params=this.options.extra_params||{},this.options.extra_params.auth_token=e,this.invalidate(),this},setParams:function(e,t){var n;arguments.length===2?(n={},n[e]=t):n=e,this.named_map.params||(this.named_map.params={});for(var r in n)n[r]===undefined||n[r]===null?delete this.named_map.params[r]:this.named_map.params[r]=n[r];return this.invalidate(),this},toJSON:function(){var e=this.named_map.params||{};for(var t=0;t&lt;this.layers.length;++t){var n=this.layers[t];e[&quot;layer&quot;+t]=n.options.hidden?0:1}return e},containInfowindow:function(){var e=this.layers||[];for(var t=0;t&lt;e.length;++t){var n=e[t].infowindow;if(n&amp;&amp;n.fields&amp;&amp;n.fields.length&gt;0)return!0}return!1},containTooltip:function(){var e=this.layers||[];for(var t=0;t&lt;e.length;++t){var n=e[t].tooltip;if(n)return!0}return!1},_attributesUrl:function(e,t){var n=[this._tilerHost(),Map.BASE_URL.slice(1),this.layerToken,e,&quot;attributes&quot;,t].join(&quot;/&quot;),r=this.options.extra_params||{},i=r.auth_token;if(i)if(_.isArray(i)){var s=[];for(var o=0,u=i.length;o&lt;u;o++)s.push(&quot;auth_token[]=&quot;+i[o]);n+=&quot;?&quot;+s.join(&quot;&amp;&quot;)}else n+=&quot;?auth_token=&quot;+i;return n},fetchAttributes:function(e,t,n,r){var i=this.options.ajax,s=cartodb.core.Profiler.metric(&quot;cartodb-js.named_map.attributes.time&quot;).start();i({dataType:&quot;jsonp&quot;,url:this._attributesUrl(e,t),success:function(e){s.end(),r(e)},error:function(e){s.end(),cartodb.core.Profiler.metric(&quot;cartodb-js.named_map.attributes.error&quot;).inc(),r(null)}})},setSQL:function(e){throw new Error(&quot;SQL is read-only in NamedMaps&quot;)},setCartoCSS:function(e){throw new Error(&quot;cartocss is read-only in NamedMaps&quot;)},getCartoCSS:function(){throw new Error(&quot;cartocss can&#39;t be accessed in NamedMaps&quot;)},getSQL:function(){throw new Error(&quot;SQL can&#39;t be accessed in NamedMaps&quot;)},setLayer:function(e,t){var n={sql:1,cartocss:1,interactivity:1};for(var r in t.options)if(r in n)throw delete t.options[r],new Error(r+&quot; is read-only in NamedMaps&quot;);return Map.prototype.setLayer.call(this,e,t)},removeLayer:function(e){throw new Error(&quot;sublayers are read-only in Named Maps&quot;)},createSubLayer:function(e,t){throw new Error(&quot;sublayers are read-only in Named Maps&quot;)},addLayer:function(e,t){throw new Error(&quot;sublayers are read-only in Named Maps&quot;)},getLayerIndexByNumber:function(e){return+e}}),LayerDefinition.prototype=_.extend({},Map.prototype,{setLayerDefinition:function(e,t){t=t||{},this.version=e.version||&quot;1.0.0&quot;,this.stat_tag=e.stat_tag,this.layers=_.clone(e.layers),t.silent||this._definitionUpdated()},toJSON:function(){var e={};e.version=this.version,this.stat_tag&amp;&amp;(e.stat_tag=this.stat_tag),e.layers=[];var t=this.visibleLayers();for(var n=0;n&lt;t.length;++n){var r=t[n];e.layers.push({type:&quot;cartodb&quot;,options:{sql:r.options.sql,cartocss:r.options.cartocss,cartocss_version:r.options.cartocss_version||&quot;2.1.0&quot;,interactivity:this._cleanInteractivity(r.options.interactivity)}})}return e},removeLayer:function(e){return e&lt;this.getLayerCount()&amp;&amp;e&gt;=0&amp;&amp;(this.layers.splice(e,1),this.interactionEnabled.splice(e,1),this._reorderSubLayers(),this.invalidate()),this},_reorderSubLayers:function(){for(var e=0;e&lt;this.layers.length;++e){var t=this.layers[e];t.sub&amp;&amp;t.sub._setPosition(e)}},addLayer:function(e,t){t=t===undefined?this.getLayerCount():t;if(t&lt;=this.getLayerCount()&amp;&amp;t&gt;=0){if(!e.sql||!e.cartocss)throw new Error(&quot;layer definition should contain at least a sql and a cartocss&quot;);this.layers.splice(t,0,{type:&quot;cartodb&quot;,options:e}),this._definitionUpdated()}return this},setInteractivity:function(e,t){t===undefined&amp;&amp;(t=e,e=0);if(e&gt;=this.getLayerCount()&amp;&amp;e&lt;0)throw new Error(&quot;layer does not exist&quot;);typeof t==&quot;string&quot;&amp;&amp;(t=t.split(&quot;,&quot;));for(var n=0;n&lt;t.length;++n)t[n]=t[n].replace(/ /g,&quot;&quot;);return this.layers[e].options.interactivity=t,this._definitionUpdated(),this},setQuery:function(e,t){t===undefined&amp;&amp;(t=e,e=0),this.layers[e].options.sql=t,this._definitionUpdated()},getQuery:function(e){return e=e||0,this.layers[e].options.sql},setCartoCSS:function(e,t,n){n===undefined&amp;&amp;(n=t,t=e,e=0),n=n||cartodb.CARTOCSS_DEFAULT_VERSION,this.layers[e].options.cartocss=t,this.layers[e].options.cartocss_version=n,this._definitionUpdated()},createSubLayer:function(e,t){return this.addLayer(e),this.getSubLayer(this.getLayerCount()-1)},_getSqlApi:function(e){e=e||{};var t=e.sql_api_port,n=e.sql_api_domain+(t?&quot;:&quot;+t:&quot;&quot;),r=e.sql_api_protocol,i=&quot;v1&quot;;n.indexOf(&quot;cartodb.com&quot;)!==-1&amp;&amp;(n=&quot;cartodb.com&quot;,i=&quot;v2&quot;);var s=new cartodb.SQL({user:e.user_name,protocol:r,host:n,version:i});return s},fetchAttributes:function(e,t,n,r){var i=this.getLayer(e),s=this._getSqlApi(this.options);n=_.map(n,function(e){return&#39;&quot;&#39;+e+&#39;&quot;&#39;}).join(&quot;,&quot;);var o=cartodb.core.Profiler.metric(&quot;cartodb-js.layergroup.attributes.time&quot;).start();s.execute(&quot;select {{{ fields }}} from ({{{ sql }}}) as _cartodbjs_alias where cartodb_id = {{{ cartodb_id }}}&quot;,{fields:n,cartodb_id:t,sql:i.options.sql}).done(function(e){o.end();if(e.rows.length===0){r(null);return}r(e.rows[0])}).error(function(){o.end(),cartodb.core.Profiler.metric(&quot;cartodb-js.layergroup.attributes.error&quot;).inc(),r(null)})}}),SubLayer.prototype={remove:function(){this._check(),this._parent.removeLayer(this._position),this._unbindInteraction(),this._added=!1},show:function(){this.get(&quot;hidden&quot;)&amp;&amp;this.set({hidden:!1})},hide:function(){this.get(&quot;hidden&quot;)||this.set({hidden:!0})},setSQL:function(e){return this.set({sql:e})},setCartoCSS:function(e){return this.set({cartocss:e})},setInteractivity:function(e){return this.set({interactivity:e})},getSQL:function(){return this.get(&quot;sql&quot;)},getCartoCSS:function(){return this.get(&quot;cartocss&quot;)},setInteraction:function(e){this._parent.setInteraction(this._position,e)},get:function(e){this._check();var t=this._parent.getLayer(this._position);return t.options[e]},set:function(e){this._check();var t=this._parent.getLayer(this._position),n=t.options;for(var r in e)n[r]=e[r];return this._parent.setLayer(this._position,t),this},unset:function(e){var t=this._parent.getLayer(this._position);delete t.options[e],this._parent.setLayer(this._position,t)},_check:function(){if(!this._added)throw&quot;sublayer was removed&quot;},_unbindInteraction:function(){if(!this._parent.off)return;this._parent.off(null,null,this)},_bindInteraction:function(){if(!this._parent.on)return;var e=this,t=function(t,n){n=n||t,e._parent.on(t,function(){var t=Array.prototype.slice.call(arguments);parseInt(t[t.length-1],10)==e._position&amp;&amp;e.trigger.apply(e,[n].concat(t))},e)};t(&quot;featureOver&quot;),t(&quot;featureOut&quot;),t(&quot;featureClick&quot;),t(&quot;layermouseover&quot;,&quot;mouseover&quot;),t(&quot;layermouseout&quot;,&quot;mouseout&quot;)},_setPosition:function(e){this._position=e}},_.extend(SubLayer.prototype,Backbone.Events),CartoDBLayerCommon.prototype={show:function(){this.setOpacity(this.options.previous_opacity===undefined?.99:this.options.previous_opacity),delete this.options.previous_opacity,this._interactionDisabled=!1},hide:function(){this.options.previous_opacity==undefined&amp;&amp;(this.options.previous_opacity=this.options.opacity),this.setOpacity(0),this._interactionDisabled=!0},isVisible:function(){return this.visible},setInteraction:function(e,t){t==undefined&amp;&amp;(t=e,e=0);var n;this.interactionEnabled[e]=t;if(!t)n=this.interaction[e],n&amp;&amp;(n.remove(),this.interaction[e]=null);else if(this.urls){var r=this.getLayerIndexByNumber(+e),i=this._tileJSONfromTiles(r,this.urls);n=this.interaction[e],n&amp;&amp;n.remove();var s=this;this.interaction[e]=this.interactionClass().map(this.options.map).tilejson(i).on(&quot;on&quot;,function(t){if(s._interactionDisabled)return;t.layer=+e,s._manageOnEvents(s.options.map,t)}).on(&quot;off&quot;,function(t){if(s._interactionDisabled)return;t=t||{},t.layer=+e,s._manageOffEvents(s.options.map,t)})}return this},setOptions:function(e){if(typeof e!=&quot;object&quot;||e.length)throw new Error(e+&quot; options must be an object&quot;);_.extend(this.options,e);var e=this.options;this.options.query=this.options.query||&quot;select * from &quot;+this.options.table_name,this.options.query_wrapper&amp;&amp;(this.options.query=_.template(this.options.query_wrapper)({sql:this.options.query})),this.setSilent(!0),e.interaction&amp;&amp;this.setInteraction(e.interaction),e.opacity&amp;&amp;this.setOpacity(e.opacity),e.query&amp;&amp;this.setQuery(e.query.replace(/\{\{table_name\}\}/g,this.options.table_name)),e.tile_style&amp;&amp;this.setCartoCSS(e.tile_style.replace(new RegExp(e.table_name,&quot;g&quot;),&quot;layer0&quot;)),e.cartocss&amp;&amp;this.setCartoCSS(e.cartocss),e.interactivity&amp;&amp;this.setInteractivity(e.interactivity),e.visible?this.show():this.hide(),this.setSilent(!1),this._definitionUpdated()},_getLayerDefinition:function(){var e={},t=this.options,n,r,i;n=t.query||&quot;select * from &quot;+t.table_name,t.query_wrapper&amp;&amp;(n=_.template(t.query_wrapper)({sql:n})),r=t.tile_style,i=t.cartocss_version||&quot;2.1.0&quot;;for(var s in t.extra_params){var o=t.extra_params[s];e[s]=o.replace?o.replace(/\{\{table_name\}\}/g,t.table_name):o}return n=n.replace(/\{\{table_name\}\}/g,t.table_name),r=r.replace(/\{\{table_name\}\}/g,t.table_name),r=r.replace(new RegExp(t.table_name,&quot;g&quot;),&quot;layer0&quot;),{sql:n,cartocss:r,cartocss_version:i,params:e,interactivity:t.interactivity}},error:function(e){},tilesOk:function(){},_clearInteraction:function(){for(var e in this.interactionEnabled)this.interactionEnabled[e]&amp;&amp;this.setInteraction(e,!1)},_reloadInteraction:function(){for(var e in this.interactionEnabled)this.interactionEnabled[e]&amp;&amp;(this.setInteraction(e,!1),this.setInteraction(e,!0))},_checkTiles:function(){var e={z:4,x:6,y:6},t=this,n=new Image,r=this._tileJSON();getTiles(function(n){var r=n.tiles[0].replace(/\{z\}/g,e.z).replace(/\{x\}/g,e.x).replace(/\{y\}/g,e.y);this.options.ajax({method:&quot;get&quot;,url:r,crossDomain:!0,success:function(){t.tilesOk(),clearTimeout(i)},error:function(e,n,r){clearTimeout(i),t.error(e.responseText&amp;&amp;JSON.parse(e.responseText))}})});var i=setTimeout(function(){clearTimeout(i),t.error(&quot;tile timeout&quot;)},3e4)}},cdb.geo.common={},cdb.geo.common.CartoDBLogo={isWadusAdded:function(e,t){var n=[],r=new RegExp(&quot;\\b&quot;+t+&quot;\\b&quot;),i=e.getElementsByTagName(&quot;*&quot;);for(var s=0,o=i.length;s&lt;o;s++)r.test(i[s].className)&amp;&amp;n.push(i[s]);return n.length&gt;0},isRetinaBrowser:function(){return&quot;devicePixelRatio&quot;in window&amp;&amp;window.devicePixelRatio&gt;1||&quot;matchMedia&quot;in window&amp;&amp;window.matchMedia(&quot;(min-resolution:144dpi)&quot;)&amp;&amp;window.matchMedia(&quot;(min-resolution:144dpi)&quot;).matches},addWadus:function(e,t,n){var r=this;setTimeout(function(){if(!r.isWadusAdded(n,&quot;cartodb-logo&quot;)){var t=document.createElement(&quot;div&quot;),i=r.isRetinaBrowser();t.setAttribute(&quot;class&quot;,&quot;cartodb-logo&quot;),t.setAttribute(&quot;style&quot;,&quot;position:absolute; bottom:0; left:0; display:block; border:none; z-index:1000000;&quot;);var s=location.protocol.indexOf(&quot;https&quot;)===-1?&quot;http&quot;:&quot;https&quot;,o=cdb.config.get(&quot;cartodb_logo_link&quot;);t.innerHTML=&quot;&lt;a href=&#39;&quot;+o+&quot;&#39; target=&#39;_blank&#39;&gt;&lt;img width=&#39;71&#39; height=&#39;29&#39; src=&#39;&quot;+s+&quot;://cartodb.s3.amazonaws.com/static/new_logo&quot;+(i?&quot;@2x&quot;:&quot;&quot;)+&quot;.png&#39; style=&#39;position:absolute; bottom:&quot;+(e.bottom||0)+&quot;px; left:&quot;+(e.left||0)+&quot;px; display:block; width:71px!important; height:29px!important; border:none; outline:none;&#39; alt=&#39;CartoDB&#39; title=&#39;CartoDB&#39; /&gt;&quot;,n.appendChild(t)}},t||0)}},function(){var e=function(e,t,n){this.leafletLayer=t,this.leafletMap=n,this.model=e,this.model.bind(&quot;change&quot;,this._modelUpdated,this),this.type=e.get(&quot;type&quot;)||e.get(&quot;kind&quot;),this.type=this.type.toLowerCase()};_.extend(e.prototype,Backbone.Events),_.extend(e.prototype,{remove:function(){this.leafletMap.removeLayer(this.leafletLayer),this.model.unbind(null,null,this),this.unbind()},reload:function(){this.leafletLayer.redraw()}}),cdb.geo.LeafLetLayerView=e}(),function(){if(typeof L==&quot;undefined&quot;)return;var e=L.Class.extend({includes:L.Mixin.Events,initialize:function(e,t){cdb.geo.LeafLetLayerView.call(this,e,this,t)},onAdd:function(){this.redraw()},onRemove:function(){var e=this.leafletMap.getContainer();e.style.background=&quot;none&quot;},_modelUpdated:function(){this.redraw()},redraw:function(){var e=this.leafletMap.getContainer();e.style.backgroundColor=this.model.get(&quot;color&quot;)||&quot;#FFF&quot;;if(this.model.get(&quot;image&quot;)){var t=&quot;transparent url(&quot;+this.model.get(&quot;image&quot;)+&quot;) repeat center center&quot;;e.style.background=t}}});_.extend(e.prototype,cdb.geo.LeafLetLayerView.prototype),cdb.geo.LeafLetPlainLayerView=e}(),function(){if(typeof L==&quot;undefined&quot;)return;var e=L.TileLayer.extend({initialize:function(e,t){L.TileLayer.prototype.initialize.call(this,e.get(&quot;urlTemplate&quot;),{tms:e.get(&quot;tms&quot;),attribution:e.get(&quot;attribution&quot;),minZoom:e.get(&quot;minZomm&quot;),maxZoom:e.get(&quot;maxZoom&quot;),subdomains:e.get(&quot;subdomains&quot;)||&quot;abc&quot;,errorTileUrl:e.get(&quot;errorTileUrl&quot;),opacity:e.get(&quot;opacity&quot;)}),cdb.geo.LeafLetLayerView.call(this,e,this,t)}});_.extend(e.prototype,cdb.geo.LeafLetLayerView.prototype,{_modelUpdated:function(){_.defaults(this.leafletLayer.options,_.clone(this.model.attributes)),this.leafletLayer.options.subdomains=this.model.get(&quot;subdomains&quot;)||&quot;abc&quot;,this.leafletLayer.options.attribution=this.model.get(&quot;attribution&quot;),this.leafletLayer.options.maxZoom=this.model.get(&quot;maxZoom&quot;),this.leafletLayer.options.minZoom=this.model.get(&quot;minZoom&quot;),this.leafletLayer.setUrl(this.model.get(&quot;urlTemplate&quot;))}}),cdb.geo.LeafLetTiledLayerView=e}(),function(){if(typeof L==&quot;undefined&quot;)return;var e=L.TileLayer.WMS.extend({initialize:function(e,t){L.TileLayer.WMS.prototype.initialize.call(this,e.get(&quot;urlTemplate&quot;),{attribution:e.get(&quot;attribution&quot;),layers:e.get(&quot;layers&quot;),format:e.get(&quot;format&quot;),transparent:e.get(&quot;transparent&quot;),minZoom:e.get(&quot;minZomm&quot;),maxZoom:e.get(&quot;maxZoom&quot;),subdomains:e.get(&quot;subdomains&quot;)||&quot;abc&quot;,errorTileUrl:e.get(&quot;errorTileUrl&quot;),opacity:e.get(&quot;opacity&quot;)}),cdb.geo.LeafLetLayerView.call(this,e,this,t)}});_.extend(e.prototype,cdb.geo.LeafLetLayerView.prototype,{_modelUpdated:function(){_.defaults(this.leafletLayer.options,_.clone(this.model.attributes)),this.leafletLayer.setUrl(this.model.get(&quot;urlTemplate&quot;))}}),cdb.geo.LeafLetWMSLayerView=e}(),function(){function e(e){var t=e.extend({includes:[cdb.geo.LeafLetLayerView.prototype,Backbone.Events],initialize:function(t,n){var r=this,i=[];t.attributes.attribution=cdb.config.get(&quot;cartodb_attributions&quot;);var s=_.clone(t.attributes);s.map=n;var o=s.featureOver,u=s.featureOut,a=s.featureClick,f,l=-1;s.featureOver=function(e,t,n,s,u){i[u]||r.trigger(&quot;layerenter&quot;,e,t,n,s,u),i[u]=1,o&amp;&amp;o.apply(this,arguments),r.featureOver&amp;&amp;r.featureOver.apply(r,arguments),e.timeStamp===f&amp;&amp;clearTimeout(l),l=setTimeout(function(){r.trigger(&quot;mouseover&quot;,e,t,n,s,u),r.trigger(&quot;layermouseover&quot;,e,t,n,s,u)},0),f=e.timeStamp},s.featureOut=function(e,t){i[t]&amp;&amp;r.trigger(&quot;layermouseout&quot;,t),i[t]=0,_.any(i)||r.trigger(&quot;mouseout&quot;),u&amp;&amp;u.apply(this,arguments),r.featureOut&amp;&amp;r.featureOut.apply(r,arguments)},s.featureClick=_.debounce(function(){a&amp;&amp;a.apply(r,arguments),r.featureClick&amp;&amp;r.featureClick.apply(r,arguments)},10),e.prototype.initialize.call(this,s),cdb.geo.LeafLetLayerView.call(this,t,this,n)},featureOver:function(e,t,n,r,i){this.trigger(&quot;featureOver&quot;,e,[t.lat,t.lng],n,r,i)},featureOut:function(e,t){this.trigger(&quot;featureOut&quot;,e,t)},featureClick:function(e,t,n,r,i){this.trigger(&quot;featureClick&quot;,e,[t.lat,t.lng],n,r,i)},error:function(e){this.trigger(&quot;error&quot;,e?e.errors:&quot;unknown error&quot;),this.model.trigger(&quot;error&quot;,e?e.errors:&quot;unknown error&quot;)},ok:function(e){this.model.trigger(&quot;tileOk&quot;)},onLayerDefinitionUpdated:function(){this.__update()}});return t}if(typeof L==&quot;undefined&quot;)return;L.CartoDBGroupLayerBase=L.TileLayer.extend({interactionClass:wax.leaf.interaction,includes:[cdb.geo.LeafLetLayerView.prototype,CartoDBLayerCommon.prototype],options:{opacity:.99,attribution:&quot;CartoDB&quot;,debug:!1,visible:!0,added:!1,tiler_domain:&quot;cartodb.com&quot;,tiler_port:&quot;80&quot;,tiler_protocol:&quot;http&quot;,sql_api_domain:&quot;cartodb.com&quot;,sql_api_port:&quot;80&quot;,sql_api_protocol:&quot;http&quot;,maxZoom:30,extra_params:{},cdn_url:null,subdomains:null},initialize:function(e){e=e||{},L.Util.setOptions(this,e);if(!e.layer_definition&amp;&amp;!e.sublayers)throw new Error(&quot;cartodb-leaflet needs at least the layer_definition or sublayer list&quot;);e.layer_definition||(this.options.layer_definition=LayerDefinition.layerDefFromSubLayers(e.sublayers)),LayerDefinition.call(this,this.options.layer_definition,this.options),this.fire=this.trigger,CartoDBLayerCommon.call(this),L.TileLayer.prototype.initialize.call(this),this.interaction=[],this.addProfiling()},addProfiling:function(){this.bind(&quot;tileloadstart&quot;,function(e){var t=this.tileStats||(this.tileStats={});t[e.tile.src]=cartodb.core.Profiler.metric(&quot;cartodb-js.tile.png.load.time&quot;).start()});var e=function(e){var t=this.tileStats&amp;&amp;this.tileStats[e.tile.src];t&amp;&amp;t.end()};this.bind(&quot;tileload&quot;,e),this.bind(&quot;tileerror&quot;,function(t){cartodb.core.Profiler.metric(&quot;cartodb-js.tile.png.error&quot;).inc(),e(t)})},getTileUrl:function(e){var t=&quot;data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7&quot;;this._adjustTilePoint(e);var n=[t];this.tilejson&amp;&amp;(n=this.tilejson.tiles);var r=(e.x+e.y)%n.length;return L.Util.template(n[r],L.Util.extend({z:this._getZoomForUrl(),x:e.x,y:e.y},this.options))},setOpacity:function(e){if(isNaN(e)||e&gt;1||e&lt;0)throw new Error(e+&quot; is not a valid value&quot;);this.options.opacity=Math.min(e,.99),this.options.visible&amp;&amp;(L.TileLayer.prototype.setOpacity.call(this,this.options.opacity),this.fire(&quot;updated&quot;))},onAdd:function(e){var t=this;this.options.map=e,this.options.cartodb_logo!=0&amp;&amp;cdb.geo.common.CartoDBLogo.addWadus({left:8,bottom:8},0,e._container),this.__update(function(){var n=L.stamp(t);if(!e._layers[n])return;L.TileLayer.prototype.onAdd.call(t,e),t.fire(&quot;added&quot;),t.options.added=!0})},onRemove:function(e){this.options.added&amp;&amp;(this.options.added=!1,L.TileLayer.prototype.onRemove.call(this,e))},__update:function(e){var t=this;this.fire(&quot;updated&quot;),this.fire(&quot;loading&quot;);var n=this.options.map;this.getTiles(function(n,r){n?(t.tilejson=n,t.setUrl(t.tilejson.tiles[0]),t._reloadInteraction(),t.ok&amp;&amp;t.ok(),e&amp;&amp;e()):(t.error&amp;&amp;t.error(r),e&amp;&amp;e())})},_checkLayer:function(){if(!this.options.added)throw new Error(&quot;the layer is not still added to the map&quot;)},setAttribution:function(e){this._checkLayer(),this.map.attributionControl.removeAttribution(this.options.attribution),this.options.attribution=e,this.map.attributionControl.addAttribution(this.options.attribution),this.options.attribution=this.options.attribution,this.tilejson.attribution=this.options.attribution,this.fire(&quot;updated&quot;)},_manageOnEvents:function(e,t){var n=this._findPos(e,t),r=e.layerPointToLatLng(n),i=t.e.type.toLowerCase(),s=e.layerPointToContainerPoint(n);switch(i){case&quot;mousemove&quot;:if(this.options.featureOver)return this.options.featureOver(t.e,r,s,t.data,t.layer);break;case&quot;click&quot;:case&quot;touchend&quot;:case&quot;mspointerup&quot;:this.options.featureClick&amp;&amp;this.options.featureClick(t.e,r,s,t.data,t.layer);break;default:}},_manageOffEvents:function(e,t){if(this.options.featureOut)return this.options.featureOut&amp;&amp;this.options.featureOut(t.e,t.layer)},_findPos:function(e,t){var n=0,r=0,i=e.getContainer(),s,o;t.e.changedTouches&amp;&amp;t.e.changedTouches.length&gt;0?(s=t.e.changedTouches[0].clientX+window.scrollX,o=t.e.changedTouches[0].clientY+window.scrollY):(s=t.e.clientX,o=t.e.clientY);if(i.offsetParent){do n+=i.offsetLeft,r+=i.offsetTop;while(i=i.offsetParent);return e.containerPointToLayerPoint(new L.Point(s-n,o-r))}var u=i.getBoundingClientRect(),a=new L.Point(t.e.clientX-u.left-i.clientLeft-window.scrollX,t.e.clientY-u.top-i.clientTop-window.scrollY);return e.containerPointToLayerPoint(a)}}),L.CartoDBGroupLayer=L.CartoDBGroupLayerBase.extend({includes:[LayerDefinition.prototype]}),L.NamedMap=L.CartoDBGroupLayerBase.extend({includes:[cdb.geo.LeafLetLayerView.prototype,NamedMap.prototype,CartoDBLayerCommon.prototype],initialize:function(e){e=e||{},L.Util.setOptions(this,e);if(!e.named_map&amp;&amp;!e.sublayers)throw new Error(&quot;cartodb-leaflet needs at least the named_map&quot;);NamedMap.call(this,this.options.named_map,this.options),this.fire=this.trigger,CartoDBLayerCommon.call(this),L.TileLayer.prototype.initialize.call(this),this.interaction=[],this.addProfiling()}}),cdb.geo.LeafLetCartoDBLayerGroupView=e(L.CartoDBGroupLayer),cdb.geo.LeafLetCartoDBNamedMapView=e(L.NamedMap)}(),function(){if(typeof L==&quot;undefined&quot;)return;L.CartoDBLayer=L.CartoDBGroupLayer.extend({options:{query:&quot;SELECT * FROM {{table_name}}&quot;,opacity:.99,attribution:&quot;CartoDB&quot;,debug:!1,visible:!0,added:!1,extra_params:{},layer_definition_version:&quot;1.0.0&quot;},initialize:function(e){L.Util.setOptions(this,e);if(!e.table_name||!e.user_name||!e.tile_style)throw&quot;cartodb-leaflet needs at least a CartoDB table name, user_name and tile_style&quot;;L.CartoDBGroupLayer.prototype.initialize.call(this,{layer_definition:{version:this.options.layer_definition_version,layers:[{type:&quot;cartodb&quot;,options:this._getLayerDefinition(),infowindow:this.options.infowindow}]}}),this.setOptions(this.options)},setQuery:function(e,t){t===undefined&amp;&amp;(t=e,e=0),t=t||&quot;select * from &quot;+this.options.table_name,LayerDefinition.prototype.setQuery.call(this,e,t)},isVisible:function(){return this.visible},isAdded:function(){return this.options.added}});var e=L.CartoDBLayer.extend({initialize:function(e,t){var n=this;_.bindAll(this,&quot;featureOut&quot;,&quot;featureOver&quot;,&quot;featureClick&quot;),e.attributes.attribution=cdb.config.get(&quot;cartodb_attributions&quot;);var r=_.clone(e.attributes);r.map=t;var i=r.featureOver,s=r.featureOut,o=r.featureClick;r.featureOver=function(){i&amp;&amp;i.apply(this,arguments),n.featureOver&amp;&amp;n.featureOver.apply(this,arguments)},r.featureOut=function(){s&amp;&amp;s.apply(this,arguments),n.featureOut&amp;&amp;n.featureOut.apply(this,arguments)},r.featureClick=function(){o&amp;&amp;o.apply(this,arguments),n.featureClick&amp;&amp;n.featureClick.apply(r,arguments)},e.bind(&quot;change:visible&quot;,function(){n.model.get(&quot;visible&quot;)?n.show():n.hide()},this),L.CartoDBLayer.prototype.initialize.call(this,r),cdb.geo.LeafLetLayerView.call(this,e,this,t)},_modelUpdated:function(){var e=_.clone(this.model.attributes);this.leafletLayer.setOptions(e)},featureOver:function(e,t,n,r){this.trigger(&quot;featureOver&quot;,e,[t.lat,t.lng],n,r,0)},featureOut:function(e){this.trigger(&quot;featureOut&quot;,e,0)},featureClick:function(e,t,n,r){this.trigger(&quot;featureClick&quot;,e,[t.lat,t.lng],n,r,0)},reload:function(){this.model.invalidate()},error:function(e){this.trigger(&quot;error&quot;,e?e.error:&quot;unknown error&quot;),this.model.trigger(&quot;tileError&quot;,e?e.error:&quot;unknown error&quot;)},tilesOk:function(e){this.model.trigger(&quot;tileOk&quot;)},includes:[cdb.geo.LeafLetLayerView.prototype,Backbone.Events]});cdb.geo.LeafLetLayerCartoDBView=e}(),function(){if(typeof L==&quot;undefined&quot;)return;cdb.geo.LeafletMapView=cdb.geo.MapView.extend({initialize:function(){_.bindAll(this,&quot;_addLayer&quot;,&quot;_removeLayer&quot;,&quot;_setZoom&quot;,&quot;_setCenter&quot;,&quot;_setView&quot;),cdb.geo.MapView.prototype.initialize.call(this);var e=this,t=this.map.get(&quot;center&quot;),n={zoomControl:!1,center:new L.LatLng(t[0],t[1]),zoom:this.map.get(&quot;zoom&quot;),minZoom:this.map.get(&quot;minZoom&quot;),maxZoom:this.map.get(&quot;maxZoom&quot;)};this.map.get(&quot;bounding_box_ne&quot;);if(!this.options.map_object)this.map_leaflet=new L.Map(this.el,n),this.map_leaflet.attributionControl.setPrefix(&quot;&quot;),this.map.get(&quot;scrollwheel&quot;)==0&amp;&amp;this.map_leaflet.scrollWheelZoom.disable();else{this.map_leaflet=this.options.map_object,this.setElement(this.map_leaflet.getContainer());var r=e.map_leaflet.getCenter();e._setModelProperty({center:[r.lat,r.lng]}),e._setModelProperty({zoom:e.map_leaflet.getZoom()}),e.map.unset(&quot;view_bounds_sw&quot;,{silent:!0}),e.map.unset(&quot;view_bounds_ne&quot;,{silent:!0})}this.map.bind(&quot;set_view&quot;,this._setView,this),this.map.layers.bind(&quot;add&quot;,this._addLayer,this),this.map.layers.bind(&quot;remove&quot;,this._removeLayer,this),this.map.layers.bind(&quot;reset&quot;,this._addLayers,this),this.map.layers.bind(&quot;change:type&quot;,this._swicthLayerView,this),this.map.geometries.bind(&quot;add&quot;,this._addGeometry,this),this.map.geometries.bind(&quot;remove&quot;,this._removeGeometry,this),this._bindModel(),this._addLayers(),this.map_leaflet.on(&quot;layeradd&quot;,function(t){this.trigger(&quot;layeradd&quot;,t,e)},this),this.map_leaflet.on(&quot;zoomstart&quot;,function(){e.trigger(&quot;zoomstart&quot;)}),this.map_leaflet.on(&quot;click&quot;,function(t){e.trigger(&quot;click&quot;,t.originalEvent,[t.latlng.lat,t.latlng.lng])}),this.map_leaflet.on(&quot;dblclick&quot;,function(t){e.trigger(&quot;dblclick&quot;,t.originalEvent)}),this.map_leaflet.on(&quot;zoomend&quot;,function(){e._setModelProperty({zoom:e.map_leaflet.getZoom()}),e.trigger(&quot;zoomend&quot;)},this),this.map_leaflet.on(&quot;move&quot;,function(){var t=e.map_leaflet.getCenter();e._setModelProperty({center:[t.lat,t.lng]})}),this.map_leaflet.on(&quot;drag&quot;,function(){var t=e.map_leaflet.getCenter();e._setModelProperty({center:[t.lat,t.lng]}),e.trigger(&quot;drag&quot;)},this),this.map.bind(&quot;change:maxZoom&quot;,function(){L.Util.setOptions(e.map_leaflet,{maxZoom:e.map.get(&quot;maxZoom&quot;)})},this),this.map.bind(&quot;change:minZoom&quot;,function(){L.Util.setOptions(e.map_leaflet,{minZoom:e.map.get(&quot;minZoom&quot;)})},this),this.trigger(&quot;ready&quot;);var i=this.map.getViewBounds();i&amp;&amp;this.showBounds(i)},clean:function(){L.DomEvent.off(window,&quot;resize&quot;,this.map_leaflet._onResize,this.map_leaflet);for(var e in this.layers){var t=this.layers[e];t.remove(),delete this.layers[e]}cdb.core.View.prototype.clean.call(this)},_setScrollWheel:function(e,t){t?this.map_leaflet.scrollWheelZoom.enable():this.map_leaflet.scrollWheelZoom.disable()},_setZoom:function(e,t){this._setView()},_setCenter:function(e,t){this._setView()},_setView:function(){this.map_leaflet.setView(this.map.get(&quot;center&quot;),this.map.get(&quot;zoom&quot;)||0)},_addGeomToMap:function(e){var t=cdb.geo.LeafletMapView.createGeometry(e);return t.geom.addTo(this.map_leaflet),t},_removeGeomFromMap:function(e){this.map_leaflet.removeLayer(e.geom)},createLayer:function(e){return cdb.geo.LeafletMapView.createLayer(e,this.map_leaflet)},_addLayer:function(e,t,n){var r=this,i,s;s=cdb.geo.LeafletMapView.createLayer(e,this.map_leaflet);if(!s)return;var o=!n||n.index===undefined||n.index===_.size(this.layers);if(!o)for(var u in this.layers)this.map_leaflet.removeLayer(this.layers[u]);this.layers[e.cid]=s,o?(cdb.geo.LeafletMapView.addLayerToMap(s,r.map_leaflet),s.setZIndex&amp;&amp;s.setZIndex(e.get(&quot;order&quot;))):this.map.layers.each(function(e){var t=r.layers[e.cid];t&amp;&amp;(cdb.geo.LeafletMapView.addLayerToMap(t,r.map_leaflet),t.setZIndex&amp;&amp;t.setZIndex(e.get(&quot;order&quot;)))});var a=e.get(&quot;attribution&quot;);if(a){var f=this.map.get(&quot;attribution&quot;)||[];_.contains(f,a)||f.push(a),this.map.set({attribution:f})}return(n==undefined||!n.silent)&amp;&amp;this.trigger(&quot;newLayerView&quot;,s,e,this),s},latLonToPixel:function(e){var t=this.map_leaflet.latLngToLayerPoint(new L.LatLng(e[0],e[1]));return this.map_leaflet.layerPointToContainerPoint(t)},getBounds:function(){var e=this.map_leaflet.getBounds(),t=e.getSouthWest(),n=e.getNorthEast();return[[t.lat,t.lng],[n.lat,n.lng]]},setAttribution:function(e){},getSize:function(){return this.map_leaflet.getSize()},panBy:function(e){this.map_leaflet.panBy(new L.Point(e.x,e.y))},setCursor:function(e){$(this.map_leaflet.getContainer()).css(&quot;cursor&quot;,e)},getNativeMap:function(){return this.map_leaflet},invalidateSize:function(){this.map_leaflet.invalidateSize({pan:!1}),this.map_leaflet.setView(this.map.get(&quot;center&quot;),this.map.get(&quot;zoom&quot;)||0,{animate:!1})}},{layerTypeMap:{tiled:cdb.geo.LeafLetTiledLayerView,wms:cdb.geo.LeafLetWMSLayerView,cartodb:cdb.geo.LeafLetLayerCartoDBView,carto:cdb.geo.LeafLetLayerCartoDBView,plain:cdb.geo.LeafLetPlainLayerView,gmapsbase:cdb.geo.LeafLetPlainLayerView,layergroup:cdb.geo.LeafLetCartoDBLayerGroupView,namedmap:cdb.geo.LeafLetCartoDBNamedMapView,torque:function(e,t){return new cdb.geo.LeafLetTorqueLayer(e,t)}},createLayer:function(e,t){var n=null,r=this.layerTypeMap[e.get(&quot;type&quot;).toLowerCase()];if(r)try{n=new r(e,t)}catch(i){cdb.log.error(&quot;MAP: error creating layer&quot;+e.get(&quot;type&quot;)+&quot; &quot;+i)}else cdb.log.error(&quot;MAP: &quot;+e.get(&quot;type&quot;)+&quot; can&#39;t be created&quot;);return n},addLayerToMap:function(e,t,n){t.addLayer(e.leafletLayer),n!==undefined&amp;&amp;v.setZIndex&amp;&amp;v.setZIndex(n)},createGeometry:function(e){return e.isPoint()?new cdb.geo.leaflet.PointView(e):new cdb.geo.leaflet.PathView(e)}}),L.Icon.Default.imagePath=function(){var e=document.getElementsByTagName(&quot;script&quot;),t=/\/?cartodb[\-\._]?([\w\-\._]*)\.js\??/,n,r,i,s;for(n=0,r=e.length;n&lt;r;n++){i=e[n].src,s=i.match(t);if(s){var o=i.split(&quot;/&quot;);return delete o[o.length-1],o.join(&quot;/&quot;)+&quot;themes/css/images&quot;}}}()}(),function(){if(typeof google==&quot;undefined&quot;||typeof google.maps==&quot;undefined&quot;)return;var e=function(e,t,n){this.gmapsLayer=t,this.map=this.gmapsMap=n,this.model=e,this.model.bind(&quot;change&quot;,this._update,this),this.type=e.get(&quot;type&quot;)||e.get(&quot;kind&quot;),this.type=this.type.toLowerCase()};_.extend(e.prototype,Backbone.Events),_.extend(e.prototype,{_searchLayerIndex:function(){var e=this,t=-1;return this.gmapsMap.overlayMapTypes.forEach(function(n,r){n==e&amp;&amp;(t=r)}),t},remove:function(){if(!this.isBase){var e=this,t=this._searchLayerIndex();t&gt;=0?this.gmapsMap.overlayMapTypes.removeAt(t):this.gmapsLayer.setMap&amp;&amp;this.gmapsLayer.setMap(null),this.model.unbind(null,null,this),this.unbind()}},refreshView:function(){var e=this;if(this.isBase){var t=&quot;_baseLayer&quot;;this.gmapsMap.setMapTypeId(null),this.gmapsMap.mapTypes.set(t,this.gmapsLayer),this.gmapsMap.setMapTypeId(t)}else{var n=this._searchLayerIndex();n&gt;=0&amp;&amp;this.gmapsMap.overlayMapTypes.setAt(n,this)}},reload:function(){this.refreshView()},_update:function(){this.refreshView()}}),cdb.geo.GMapsLayerView=e}(),function(){if(typeof google==&quot;undefined&quot;||typeof google.maps==&quot;undefined&quot;)return;var e=function(e,t){cdb.geo.GMapsLayerView.call(this,e,null,t)};_.extend(e.prototype,cdb.geo.GMapsLayerView.prototype,{_update:function(){var e=this.model,t={roadmap:google.maps.MapTypeId.ROADMAP,gray_roadmap:google.maps.MapTypeId.ROADMAP,dark_roadmap:google.maps.MapTypeId.ROADMAP,hybrid:google.maps.MapTypeId.HYBRID,satellite:google.maps.MapTypeId.SATELLITE,terrain:google.maps.MapTypeId.TERRAIN};this.gmapsMap.setOptions({mapTypeId:t[e.get(&quot;base_type&quot;)]}),this.gmapsMap.setOptions({styles:e.get(&quot;style&quot;)||DEFAULT_MAP_STYLE})},remove:function(){}}),cdb.geo.GMapsBaseLayerView=e}(),function(){if(typeof google==&quot;undefined&quot;||typeof google.maps==&quot;undefined&quot;)return;var e=function(e,t){this.color=e.get(&quot;color&quot;),cdb.geo.GMapsLayerView.call(this,e,this,t)};_.extend(e.prototype,cdb.geo.GMapsLayerView.prototype,{_update:function(){this.color=this.model.get(&quot;color&quot;),this.refreshView()},getTile:function(e,t,n){var r=document.createElement(&quot;div&quot;);return r.style.width=this.tileSize.x,r.style.height=this.tileSize.y,r[&quot;background-color&quot;]=this.color,r},tileSize:new google.maps.Size(256,256),maxZoom:100,minZoom:0,name:&quot;plain layer&quot;,alt:&quot;plain layer&quot;}),cdb.geo.GMapsPlainLayerView=e}(),function(){if(typeof google==&quot;undefined&quot;||typeof google.maps==&quot;undefined&quot;)return;var e=function(e,t){cdb.geo.GMapsLayerView.call(this,e,this,t),this.tileSize=new google.maps.Size(256,256),this.opacity=1,this.isPng=!0,this.maxZoom=22,this.minZoom=0,this.name=&quot;cartodb tiled layer&quot;,google.maps.ImageMapType.call(this,this)};_.extend(e.prototype,cdb.geo.GMapsLayerView.prototype,google.maps.ImageMapType.prototype,{getTileUrl:function(e,t){var n=e.y,r=1&lt;&lt;t;if(n&lt;0||n&gt;=r)return null;var i=e.x;if(i&lt;0||i&gt;=r)i=(i%r+r)%r;this.model.get(&quot;tms&quot;)&amp;&amp;(n=r-n-1);var s=this.model.get(&quot;urlTemplate&quot;);return s.replace(&quot;{x}&quot;,i).replace(&quot;{y}&quot;,n).replace(&quot;{z}&quot;,t)}}),cdb.geo.GMapsTiledLayerView=e}(),function(){function s(e,t){var r=Math.round(t*100);r&gt;=99?e.style.filter=n:e.style.filter=&quot;alpha(opacity=&quot;+t+&quot;);&quot;}function o(){}function u(e){var t=function(t,n){var r=this,i=[];_.bindAll(this,&quot;featureOut&quot;,&quot;featureOver&quot;,&quot;featureClick&quot;),t.attributes.attribution=cdb.config.get(&quot;cartodb_attributions&quot;);var s=_.clone(t.attributes);s.map=n;var o=s.featureOver,u=s.featureOut,a=s.featureClick,f,l=-1;s.featureOver=function(e,t,n,s,u){i[u]||r.trigger(&quot;layerenter&quot;,e,t,n,s,u),i[u]=1,o&amp;&amp;o.apply(this,arguments),r.featureOver&amp;&amp;r.featureOver.apply(this,arguments),e.timeStamp===f&amp;&amp;clearTimeout(l),l=setTimeout(function(){r.trigger(&quot;mouseover&quot;,e,t,n,s,u),r.trigger(&quot;layermouseover&quot;,e,t,n,s,u)},0),f=e.timeStamp},s.featureOut=function(e,t){i[t]&amp;&amp;r.trigger(&quot;layermouseout&quot;,t),i[t]=0,_.any(i)||r.trigger(&quot;mouseout&quot;),u&amp;&amp;u.apply(this,arguments),r.featureOut&amp;&amp;r.featureOut.apply(this,arguments)},s.featureClick=_.debounce(function(){a&amp;&amp;a.apply(this,arguments),r.featureClick&amp;&amp;r.featureClick.apply(s,arguments)},10),e.call(this,s),cdb.geo.GMapsLayerView.call(this,t,this,n)};return _.extend(t.prototype,cdb.</td>
      </tr>
      <tr>
        <td id="L19" class="blob-num js-line-number" data-line-number="19"></td>
        <td id="LC19" class="blob-code js-file-line">geo.GMapsLayerView.prototype,e.prototype,{_update:function(){this.setOptions(this.model.attributes)},reload:function(){this.model.invalidate()},remove:function(){cdb.geo.GMapsLayerView.prototype.remove.call(this),this.clear()},featureOver:function(e,t,n,r,i){this.trigger(&quot;featureOver&quot;,e,[t.lat(),t.lng()],n,r,i)},featureOut:function(e,t){this.trigger(&quot;featureOut&quot;,e,t)},featureClick:function(e,t,n,r,i){this.trigger(&quot;featureClick&quot;,e,[t.lat(),t.lng()],n,r,i)},error:function(e){this.model&amp;&amp;(this.model.trigger(&quot;error&quot;,e?e.errors:&quot;unknown error&quot;),this.model.trigger(&quot;tileError&quot;,e?e.errors:&quot;unknown error&quot;))},ok:function(e){this.model.trigger(&quot;tileOk&quot;)},tilesOk:function(e){this.model.trigger(&quot;tileOk&quot;)},loading:function(){this.trigger(&quot;loading&quot;)},finishLoading:function(){this.trigger(&quot;load&quot;)}}),t}if(typeof google==&quot;undefined&quot;||typeof google.maps==&quot;undefined&quot;)return;var e=function(e){this.setMap(e)};e.prototype=new google.maps.OverlayView,e.prototype.draw=function(){},e.prototype.latLngToPixel=function(e){var t=this.getProjection();return t?t.fromLatLngToContainerPixel(e):[0,0]},e.prototype.pixelToLatLng=function(e){var t=this.getProjection();return t?t.fromContainerPixelToLatLng(e):[0,0]};var t={opacity:.99,attribution:&quot;CartoDB&quot;,debug:!1,visible:!0,added:!1,tiler_domain:&quot;cartodb.com&quot;,tiler_port:&quot;80&quot;,tiler_protocol:&quot;http&quot;,sql_api_domain:&quot;cartodb.com&quot;,sql_api_port:&quot;80&quot;,sql_api_protocol:&quot;http&quot;,extra_params:{},cdn_url:null,subdomains:null},n=&quot;progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)&quot;,r=function(n){this.options=_.defaults(n,t),this.tiles=0,this.tilejson=null,this.interaction=[];if(!n.named_map&amp;&amp;!n.sublayers)throw new Error(&quot;cartodb-gmaps needs at least the named_map&quot;);this.options.cartodb_logo!=0&amp;&amp;cdb.geo.common.CartoDBLogo.addWadus({left:74,bottom:8},2e3,this.options.map.getDiv()),wax.g.connector.call(this,n),_.extend(this.options,n),this.projector=new e(n.map),NamedMap.call(this,this.options.named_map,this.options),CartoDBLayerCommon.call(this),this.update()},i=function(n){this.options=_.defaults(n,t),this.tiles=0,this.tilejson=null,this.interaction=[];if(!n.layer_definition&amp;&amp;!n.sublayers)throw new Error(&quot;cartodb-leaflet needs at least the layer_definition or sublayer list&quot;);n.layer_definition||(n.layer_definition=LayerDefinition.layerDefFromSubLayers(n.sublayers)),this.options.cartodb_logo!=0&amp;&amp;cdb.geo.common.CartoDBLogo.addWadus({left:74,bottom:8},2e3,this.options.map.getDiv()),wax.g.connector.call(this,n),_.extend(this.options,n),this.projector=new e(n.map),LayerDefinition.call(this,n.layer_definition,this.options),CartoDBLayerCommon.call(this),this.update()};o.prototype.setOpacity=function(e){if(isNaN(e)||e&gt;1||e&lt;0)throw new Error(e+&quot; is not a valid value, should be in [0, 1] range&quot;);this.opacity=this.options.opacity=e;for(var t in this.cache){var n=this.cache[t];n.style.opacity=e,s(n,e)}},o.prototype.setAttribution=function(){},o.prototype.getTile=function(e,t,n){var r=&quot;data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7&quot;,i=this,o=&quot;ActiveXObject&quot;in window,u=o&amp;&amp;!document.addEventListener;this.options.added=!0;if(this.tilejson===null){var a=t+&quot;/&quot;+e.x+&quot;/&quot;+e.y,f=this.cache[a]=new Image(256,256);return f.src=r,f.setAttribute(&quot;gTileKey&quot;,a),f.style.opacity=this.options.opacity,f}var l=wax.g.connector.prototype.getTile.call(this,e,t,n);u&amp;&amp;s(l,this.options.opacity),l.style.opacity=this.options.opacity,this.tiles===0&amp;&amp;this.loading&amp;&amp;this.loading(),this.tiles++;var c=cartodb.core.Profiler.metric(&quot;cartodb-js.tile.png.load.time&quot;).start(),h=function(){c.end(),i.tiles--,i.tiles===0&amp;&amp;i.finishLoading&amp;&amp;i.finishLoading()};return l.onload=h,l.onerror=function(){cartodb.core.Profiler.metric(&quot;cartodb-js.tile.png.error&quot;).inc(),h()},l},o.prototype.onAdd=function(){},o.prototype.clear=function(){this._clearInteraction(),self.finishLoading&amp;&amp;self.finishLoading()},o.prototype.update=function(e){var t=this;this.loading&amp;&amp;this.loading(),this.getTiles(function(n,r){n?(t.tilejson=n,t.options.tiles=n.tiles,t.tiles=0,t.cache={},t._reloadInteraction(),t.refreshView(),t.ok&amp;&amp;t.ok(),e&amp;&amp;e()):t.error&amp;&amp;t.error(r)})},o.prototype.refreshView=function(){var e=this,t=this.options.map;t.overlayMapTypes.forEach(function(n,r){if(n==e){t.overlayMapTypes.setAt(r,e);return}})},o.prototype.onLayerDefinitionUpdated=function(){this.update()},o.prototype._checkLayer=function(){if(!this.options.added)throw new Error(&quot;the layer is not still added to the map&quot;)},o.prototype._findPos=function(e,t){var n,r;n=curtop=0;var i=e.getDiv(),s,o;t.e.changedTouches&amp;&amp;t.e.changedTouches.length&gt;0?(s=t.e.changedTouches[0].clientX+window.scrollX,o=t.e.changedTouches[0].clientY+window.scrollY):(s=t.e.clientX,o=t.e.clientY);do n+=i.offsetLeft,curtop+=i.offsetTop;while(i=i.offsetParent);return new google.maps.Point(s-n,o-curtop)},o.prototype._manageOffEvents=function(e,t){if(this.options.featureOut)return this.options.featureOut&amp;&amp;this.options.featureOut(t.e,t.layer)},o.prototype._manageOnEvents=function(e,t){var n=this._findPos(e,t),r=this.projector.pixelToLatLng(n),i=t.e.type.toLowerCase();switch(i){case&quot;mousemove&quot;:if(this.options.featureOver)return this.options.featureOver(t.e,r,n,t.data,t.layer);break;case&quot;click&quot;:case&quot;touchend&quot;:case&quot;mspointerup&quot;:this.options.featureClick&amp;&amp;this.options.featureClick(t.e,r,n,t.data,t.layer);break;default:}},i.Projector=e,i.prototype=new wax.g.connector,_.extend(i.prototype,LayerDefinition.prototype,o.prototype,CartoDBLayerCommon.prototype),i.prototype.interactionClass=wax.g.interaction,r.prototype=new wax.g.connector,_.extend(r.prototype,NamedMap.prototype,o.prototype,CartoDBLayerCommon.prototype),r.prototype.interactionClass=wax.g.interaction,cdb.geo.CartoDBLayerGroupGMaps=i,cdb.geo.CartoDBNamedMapGMaps=r,cdb.geo.GMapsCartoDBLayerGroupView=u(i),cdb.geo.GMapsCartoDBNamedMapView=u(r),cdb.geo.CartoDBNamedMapGMaps=r}(),function(){if(typeof google==&quot;undefined&quot;||typeof google.maps==&quot;undefined&quot;)return;var e=function(e){this.setMap(e)};e.prototype=new google.maps.OverlayView,e.prototype.draw=function(){},e.prototype.latLngToPixel=function(e){var t=this.getProjection();return t?t.fromLatLngToContainerPixel(e):[0,0]},e.prototype.pixelToLatLng=function(e){var t=this.getProjection();return t?t.fromContainerPixelToLatLng(e):[0,0]};var t=function(e){var t={query:&quot;SELECT * FROM {{table_name}}&quot;,opacity:.99,attribution:&quot;CartoDB&quot;,opacity:1,debug:!1,visible:!0,added:!1,extra_params:{},layer_definition_version:&quot;1.0.0&quot;};this.options=_.defaults(e,t);if(!e.table_name||!e.user_name||!e.tile_style)throw&quot;cartodb-gmaps needs at least a CartoDB table name, user_name and tile_style&quot;;this.options.layer_definition={version:this.options.layer_definition_version,layers:[{type:&quot;cartodb&quot;,options:this._getLayerDefinition(),infowindow:this.options.infowindow}]},cdb.geo.CartoDBLayerGroupGMaps.call(this,this.options),this.setOptions(this.options)};_.extend(t.prototype,cdb.geo.CartoDBLayerGroupGMaps.prototype),t.prototype.setQuery=function(e,t){t===undefined&amp;&amp;(t=e,e=0),t=t||&quot;select * from &quot;+this.options.table_name,LayerDefinition.prototype.setQuery.call(this,e,t)},cdb.geo.CartoDBLayerGMaps=t;var n=function(e,t){var n=this;_.bindAll(this,&quot;featureOut&quot;,&quot;featureOver&quot;,&quot;featureClick&quot;),e.attributes.attribution=cdb.config.get(&quot;cartodb_attributions&quot;);var r=_.clone(e.attributes);r.map=t;var i=r.featureOver,s=r.featureOut,o=r.featureClick;r.featureOver=function(){i&amp;&amp;i.apply(this,arguments),n.featureOver&amp;&amp;n.featureOver.apply(this,arguments)},r.featureOut=function(){s&amp;&amp;s.apply(this,arguments),n.featureOut&amp;&amp;n.featureOut.apply(this,arguments)},r.featureClick=function(){o&amp;&amp;o.apply(this,arguments),n.featureClick&amp;&amp;n.featureClick.apply(r,arguments)},cdb.geo.CartoDBLayerGMaps.call(this,r),cdb.geo.GMapsLayerView.call(this,e,this,t)};cdb.geo.GMapsCartoDBLayerView=n,_.extend(n.prototype,cdb.geo.CartoDBLayerGMaps.prototype,cdb.geo.GMapsLayerView.prototype,{_update:function(){this.setOptions(this.model.attributes)},reload:function(){this.model.invalidate()},remove:function(){cdb.geo.GMapsLayerView.prototype.remove.call(this),this.clear()},featureOver:function(e,t,n,r){this.trigger(&quot;featureOver&quot;,e,[t.lat(),t.lng()],n,r,0)},featureOut:function(e){this.trigger(&quot;featureOut&quot;,e)},featureClick:function(e,t,n,r,i){this.trigger(&quot;featureClick&quot;,e,[t.lat(),t.lng()],n,r,0)},error:function(e){this.model&amp;&amp;(this.model.trigger(&quot;error&quot;,e?e.error:&quot;unknown error&quot;),this.model.trigger(&quot;tileError&quot;,e?e.error:&quot;unknown error&quot;))},tilesOk:function(e){this.model.trigger(&quot;tileOk&quot;)},loading:function(){this.trigger(&quot;loading&quot;)},finishLoading:function(){this.trigger(&quot;load&quot;)}})}();if(typeof google!=&quot;undefined&quot;&amp;&amp;typeof google.maps!=&quot;undefined&quot;){var DEFAULT_MAP_STYLE=[{stylers:[{saturation:-65},{gamma:1.52}]},{featureType:&quot;administrative&quot;,stylers:[{saturation:-95},{gamma:2.26}]},{featureType:&quot;water&quot;,elementType:&quot;labels&quot;,stylers:[{visibility:&quot;off&quot;}]},{featureType:&quot;administrative.locality&quot;,stylers:[{visibility:&quot;off&quot;}]},{featureType:&quot;road&quot;,stylers:[{visibility:&quot;simplified&quot;},{saturation:-99},{gamma:2.22}]},{featureType:&quot;poi&quot;,elementType:&quot;labels&quot;,stylers:[{visibility:&quot;off&quot;}]},{featureType:&quot;road.arterial&quot;,stylers:[{visibility:&quot;off&quot;}]},{featureType:&quot;road.local&quot;,elementType:&quot;labels&quot;,stylers:[{visibility:&quot;off&quot;}]},{featureType:&quot;transit&quot;,stylers:[{visibility:&quot;off&quot;}]},{featureType:&quot;road&quot;,elementType:&quot;labels&quot;,stylers:[{visibility:&quot;off&quot;}]},{featureType:&quot;poi&quot;,stylers:[{saturation:-55}]}];cdb.geo.GoogleMapsMapView=cdb.geo.MapView.extend({layerTypeMap:{tiled:cdb.geo.GMapsTiledLayerView,cartodb:cdb.geo.GMapsCartoDBLayerView,carto:cdb.geo.GMapsCartoDBLayerView,plain:cdb.geo.GMapsPlainLayerView,gmapsbase:cdb.geo.GMapsBaseLayerView,layergroup:cdb.geo.GMapsCartoDBLayerGroupView,namedmap:cdb.geo.GMapsCartoDBNamedMapView,torque:function(e,t){return new cdb.geo.GMapsTorqueLayerView(e,t)},wms:cdb.geo.LeafLetWMSLayerView},initialize:function(){_.bindAll(this,&quot;_ready&quot;),this._isReady=!1;var e=this;cdb.geo.MapView.prototype.initialize.call(this);var t=this.map.getViewBounds();t&amp;&amp;this.showBounds(t);var n=this.map.get(&quot;center&quot;);if(!this.options.map_object)this.map_googlemaps=new google.maps.Map(this.el,{center:new google.maps.LatLng(n[0],n[1]),zoom:this.map.get(&quot;zoom&quot;),minZoom:this.map.get(&quot;minZoom&quot;),maxZoom:this.map.get(&quot;maxZoom&quot;),disableDefaultUI:!0,scrollwheel:this.map.get(&quot;scrollwheel&quot;),mapTypeControl:!1,mapTypeId:google.maps.MapTypeId.ROADMAP,backgroundColor:&quot;white&quot;,tilt:0}),this.map.bind(&quot;change:maxZoom&quot;,function(){e.map_googlemaps.setOptions({maxZoom:e.map.get(&quot;maxZoom&quot;)})},this),this.map.bind(&quot;change:minZoom&quot;,function(){e.map_googlemaps.setOptions({minZoom:e.map.get(&quot;minZoom&quot;)})},this);else{this.map_googlemaps=this.options.map_object,this.setElement(this.map_googlemaps.getDiv());var r=e.map_googlemaps.getCenter();e._setModelProperty({center:[r.lat(),r.lng()]}),e._setModelProperty({zoom:e.map_googlemaps.getZoom()}),e.map.unset(&quot;view_bounds_sw&quot;,{silent:!0}),e.map.unset(&quot;view_bounds_ne&quot;,{silent:!0})}this.map.geometries.bind(&quot;add&quot;,this._addGeometry,this),this.map.geometries.bind(&quot;remove&quot;,this._removeGeometry,this),this._bindModel(),this._addLayers(),google.maps.event.addListener(this.map_googlemaps,&quot;center_changed&quot;,function(){var t=e.map_googlemaps.getCenter();e._setModelProperty({center:[t.lat(),t.lng()]})}),google.maps.event.addListener(this.map_googlemaps,&quot;zoom_changed&quot;,function(){e._setModelProperty({zoom:e.map_googlemaps.getZoom()})}),google.maps.event.addListener(this.map_googlemaps,&quot;click&quot;,function(t){e.trigger(&quot;click&quot;,t,[t.latLng.lat(),t.latLng.lng()])}),google.maps.event.addListener(this.map_googlemaps,&quot;dblclick&quot;,function(t){e.trigger(&quot;dblclick&quot;,t)}),this.map.layers.bind(&quot;add&quot;,this._addLayer,this),this.map.layers.bind(&quot;remove&quot;,this._removeLayer,this),this.map.layers.bind(&quot;reset&quot;,this._addLayers,this),this.map.layers.bind(&quot;change:type&quot;,this._swicthLayerView,this),this.projector=new cdb.geo.CartoDBLayerGroupGMaps.Projector(this.map_googlemaps),this.projector.draw=this._ready},_ready:function(){this.projector.draw=function(){},this.trigger(&quot;ready&quot;),this._isReady=!0},_setScrollWheel:function(e,t){this.map_googlemaps.setOptions({scrollwheel:t})},_setZoom:function(e,t){t=t||0,this.map_googlemaps.setZoom(t)},_setCenter:function(e,t){var n=new google.maps.LatLng(t[0],t[1]);this.map_googlemaps.setCenter(n)},createLayer:function(e){var t,n=this.layerTypeMap[e.get(&quot;type&quot;).toLowerCase()];if(n)try{t=new n(e,this.map_googlemaps)}catch(r){cdb.log.error(&quot;MAP: error creating layer&quot;+e.get(&quot;type&quot;)+&quot; &quot;+r)}else cdb.log.error(&quot;MAP: &quot;+e.get(&quot;type&quot;)+&quot; can&#39;t be created&quot;);return t},_addLayer:function(e,t,n){n=n||{};var r=this,i,s;s=this.createLayer(e);if(!s)return;this.layers[e.cid]=s;if(s){var o=_(this.layers).filter(function(e){return!!e.getTile}).length-1,u=_.keys(this.layers).length===1||n&amp;&amp;n.index===0;if(u&amp;&amp;!n.no_base_layer){var a=s.model;a.get(&quot;type&quot;)===&quot;GMapsBase&quot;?s._update():(s.isBase=!0,s._update())}else o-=1,o=Math.max(0,o),s.getTile?(s.gmapsLayer||cdb.log.error(&quot;gmaps layer can&#39;t be null&quot;),r.map_googlemaps.overlayMapTypes.setAt(o,s.gmapsLayer)):s.gmapsLayer.setMap(r.map_googlemaps);(n===undefined||!n.silent)&amp;&amp;this.trigger(&quot;newLayerView&quot;,s,e,this)}else cdb.log.error(&quot;layer type not supported&quot;);var f=e.get(&quot;attribution&quot;);if(f){var l=this.map.get(&quot;attribution&quot;)||[];_.contains(l,f)||l.push(f),this.map.set({attribution:l})}return s},latLonToPixel:function(e){return this.projector.latLngToPixel(new google.maps.LatLng(e[0],e[1]))},getSize:function(){return{x:this.$el.width(),y:this.$el.height()}},panBy:function(e){var t=this.map.get(&quot;center&quot;),n=this.latLonToPixel(t);e.x+=n.x,e.y+=n.y;var r=this.projector.pixelToLatLng(e);this.map.setCenter([r.lat(),r.lng()])},getBounds:function(){if(this._isReady){var e=this.map_googlemaps.getBounds(),t=e.getSouthWest(),n=e.getNorthEast();return[[t.lat(),t.lng()],[n.lat(),n.lng()]]}return[[0,0],[0,0]]},setAttribution:function(e){var t=document.getElementById(&quot;cartodb-gmaps-attribution&quot;),n=e.get(&quot;attribution&quot;).join(&quot;, &quot;);t&amp;&amp;t.parentNode.removeChild(t);var r=this.map_googlemaps.getDiv(),i=document.createElement(&quot;div&quot;);i.setAttribute(&quot;id&quot;,&quot;cartodb-gmaps-attribution&quot;),i.setAttribute(&quot;class&quot;,&quot;gmaps&quot;),r.appendChild(i),i.innerHTML=n},setCursor:function(e){this.map_googlemaps.setOptions({draggableCursor:e})},_addGeomToMap:function(e){var t=cdb.geo.GoogleMapsMapView.createGeometry(e);if(t.geom.length)for(var n=0;n&lt;t.geom.length;++n)t.geom[n].setMap(this.map_googlemaps);else t.geom.setMap(this.map_googlemaps);return t},_removeGeomFromMap:function(e){if(e.geom.length)for(var t=0;t&lt;e.geom.length;++t)e.geom[t].setMap(null);else e.geom.setMap(null)},getNativeMap:function(){return this.map_googlemaps},invalidateSize:function(){google.maps.event.trigger(this.map_googlemaps,&quot;resize&quot;)}},{addLayerToMap:function(e,t,n){n=n||0,e||cdb.log.error(&quot;gmaps layer can&#39;t be null&quot;),e.getTile?t.overlayMapTypes.setAt(n,e):e.setMap(t)},createGeometry:function(e){return e.isPoint()?new cdb.geo.gmaps.PointView(e):new cdb.geo.gmaps.PathView(e)}})}cdb.ui.common.Dialog=cdb.core.View.extend({tagName:&quot;div&quot;,className:&quot;dialog&quot;,events:{&quot;click .ok&quot;:&quot;_ok&quot;,&quot;click .cancel&quot;:&quot;_cancel&quot;,&quot;click .close&quot;:&quot;_cancel&quot;},default_options:{title:&quot;title&quot;,description:&quot;&quot;,ok_title:&quot;Ok&quot;,cancel_title:&quot;Cancel&quot;,width:300,height:200,clean_on_hide:!1,enter_to_confirm:!1,template_name:&quot;common/views/dialog_base&quot;,ok_button_classes:&quot;button green&quot;,cancel_button_classes:&quot;&quot;,modal_type:&quot;&quot;,modal_class:&quot;&quot;,include_footer:!0,additionalButtons:[]},initialize:function(){_.defaults(this.options,this.default_options),_.bindAll(this,&quot;render&quot;,&quot;_keydown&quot;),$(document).bind(&quot;keydown&quot;,this._keydown),this.bind(&quot;clean&quot;,this._reClean),this.template_base=this.options.template_base?_.template(this.options.template_base):cdb.templates.getTemplate(this.options.template_name)},render:function(){var e=this.$el;return e.html(this.template_base(this.options)),e.find(&quot;.modal&quot;).css({width:this.options.width}),this.render_content&amp;&amp;this.$(&quot;.content&quot;).append(this.render_content()),this.options.modal_class&amp;&amp;this.$el.addClass(this.options.modal_class),this},_keydown:function(e){e.keyCode===27?this._cancel():e.keyCode===13&amp;&amp;this.options.enter_to_confirm&amp;&amp;this._ok()},appendToBody:function(){return $(&quot;body&quot;).append(this.render().el),this},_ok:function(e){e&amp;&amp;e.preventDefault(),this.ok&amp;&amp;this.ok(this.result),this.hide()},_cancel:function(e){e&amp;&amp;(e.preventDefault(),e.stopPropagation()),this.cancel&amp;&amp;this.cancel(),this.hide()},hide:function(){this.$el.hide(),this.options.clean_on_hide&amp;&amp;this.clean()},open:function(){this.$el.show()},_reClean:function(){$(document).unbind(&quot;keydown&quot;,this._keydown)}}),cdb.ui.common.ShareDialog=cdb.ui.common.Dialog.extend({tagName:&quot;div&quot;,className:&quot;cartodb-share-dialog&quot;,events:{&quot;click .ok&quot;:&quot;_ok&quot;,&quot;click .cancel&quot;:&quot;_cancel&quot;,&quot;click .close&quot;:&quot;_cancel&quot;,click:&quot;_stopPropagation&quot;,dblclick:&quot;_stopPropagation&quot;,mousedown:&quot;_stopPropagation&quot;},default_options:{title:&quot;&quot;,description:&quot;&quot;,ok_title:&quot;Ok&quot;,cancel_title:&quot;Cancel&quot;,width:300,height:200,clean_on_hide:!1,enter_to_confirm:!1,template_name:&quot;common/views/dialog_base&quot;,ok_button_classes:&quot;button green&quot;,cancel_button_classes:&quot;&quot;,modal_type:&quot;&quot;,modal_class:&quot;&quot;,include_footer:!0,additionalButtons:[]},initialize:function(){_.defaults(this.options,this.default_options),_.bindAll(this,&quot;render&quot;,&quot;_keydown&quot;),this.isOpen=!1;var e=this;this.options.target&amp;&amp;this.options.target.on(&quot;click&quot;,function(t){t.preventDefault(),t.stopPropagation(),e.open()}),$(document).bind(&quot;keydown&quot;,this._keydown),this.bind(&quot;clean&quot;,this._reClean)},_stopPropagation:function(e){e.stopPropagation()},_stripHTML:function(e,t){t=(((t||&quot;&quot;)+&quot;&quot;).toLowerCase().match(/&lt;[a-z][a-z0-9]*&gt;/g)||[]).join(&quot;&quot;);var n=/&lt;\/?([a-z][a-z0-9]*)\b[^&gt;]*&gt;/gi;return!e||typeof e!=&quot;string&quot;?&quot;&quot;:e.replace(n,function(e,n){return t.indexOf(&quot;&lt;&quot;+n.toLowerCase()+&quot;&gt;&quot;)&gt;-1?e:&quot;&quot;})},open:function(){var e=this;this.$el.show(0,function(){e.isOpen=!0})},hide:function(){var e=this;this.$el.hide(0,function(){e.isOpen=!1}),this.options.clean_on_hide&amp;&amp;this.clean()},toggle:function(){this.isOpen?this.hide():this.open()},_truncateTitle:function(e,t){return e.substr(0,t-1)+(e.length&gt;t?&quot;…&quot;:&quot;&quot;)},render:function(){var e=this.$el,t=this.options.title,n=this.options.description,r=this._stripHTML(this.options.description),i=this.options.share_url,s,o;this.$el.addClass(this.options.size);var u=t+&quot;: &quot;+r,a;t&amp;&amp;r?a=this._truncateTitle(t+&quot;: &quot;+r,112)+&quot; %23map &quot;:t?a=this._truncateTitle(t,112)+&quot; %23map&quot;:r?a=this._truncateTitle(r,112)+&quot; %23map&quot;:a=&quot;%23map&quot;,this.options.facebook_url?s=this.options.facebook_url:s=&quot;http://www.facebook.com/sharer.php?u=&quot;+i+&quot;&amp;text=&quot;+u,this.options.twitter_url?o=this.options.twitter_url:o=&quot;https://twitter.com/share?url=&quot;+i+&quot;&amp;text=&quot;+a;var f=_.extend(this.options,{facebook_url:s,twitter_url:o});return e.html(this.options.template(f)),e.find(&quot;.modal&quot;).css({width:this.options.width}),this.render_content&amp;&amp;this.$(&quot;.content&quot;).append(this.render_content()),this.options.modal_class&amp;&amp;this.$el.addClass(this.options.modal_class),this.options.disableLinks&amp;&amp;this.$el.find(&quot;a&quot;).attr(&quot;target&quot;,&quot;&quot;),this}}),cdb.ui.common.Notification=cdb.core.View.extend({tagName:&quot;div&quot;,className:&quot;dialog&quot;,events:{&quot;click .close&quot;:&quot;hide&quot;},default_options:{timeout:0,msg:&quot;&quot;,hideMethod:&quot;&quot;,duration:&quot;normal&quot;},initialize:function(){this.closeTimeout=-1,_.defaults(this.options,this.default_options),this.template=this.options.template?_.template(this.options.template):cdb.templates.getTemplate(&quot;common/notification&quot;),this.$el.hide()},render:function(){var e=this.$el;return e.html(this.template(this.options)),this.render_content&amp;&amp;this.$(&quot;.content&quot;).append(this.render_content()),this},hide:function(e){var t=this;e&amp;&amp;e.preventDefault(),clearTimeout(this.closeTimeout),this.options.hideMethod!=&quot;&quot;&amp;&amp;this.$el.is(&quot;:visible&quot;)?this.$el[this.options.hideMethod](this.options.duration,&quot;swing&quot;,function(){t.$el.html(&quot;&quot;),t.trigger(&quot;notificationDeleted&quot;),t.remove()}):(this.$el.hide(),t.$el.html(&quot;&quot;),t.trigger(&quot;notificationDeleted&quot;),t.remove())},open:function(e,t){this.render(),this.$el.show(e,t),this.options.timeout&amp;&amp;(this.closeTimeout=setTimeout(_.bind(this.hide,this),this.options.timeout))}}),cdb.ui.common.Row=cdb.core.Model.extend({}),cdb.ui.common.TableData=Backbone.Collection.extend({model:cdb.ui.common.Row,fetched:!1,initialize:function(){var e=this;this.bind(&quot;reset&quot;,function(){e.fetched=!0})},getCell:function(e,t){var n=this.at(e);return n?n.get(t):null},isEmpty:function(){return this.length===0}}),cdb.ui.common.TableProperties=cdb.core.Model.extend({columnNames:function(){return _.map(this.get(&quot;schema&quot;),function(e){return e[0]})},columnName:function(e){return this.columnNames()[e]}}),cdb.ui.common.RowView=cdb.core.View.extend({tagName:&quot;tr&quot;,initialize:function(){this.model.bind(&quot;change&quot;,this.render,this),this.model.bind(&quot;destroy&quot;,this.clean,this),this.model.bind(&quot;remove&quot;,this.clean,this),this.model.bind(&quot;change&quot;,this.triggerChange,this),this.model.bind(&quot;sync&quot;,this.triggerSync,this),this.model.bind(&quot;error&quot;,this.triggerError,this),this.add_related_model(this.model),this.order=this.options.order},triggerChange:function(){this.trigger(&quot;changeRow&quot;)},triggerSync:function(){this.trigger(&quot;syncRow&quot;)},triggerError:function(){this.trigger(&quot;errorRow&quot;)},valueView:function(e,t){return t},render:function(){var e=this,t=this.model,n=&quot;&quot;,r=0,i;this.options.row_header?i=&#39;&lt;td class=&quot;rowHeader&quot; data-x=&quot;&#39;+r+&#39;&quot;&gt;&#39;:i=&#39;&lt;td class=&quot;EmptyRowHeader&quot; data-x=&quot;&#39;+r+&#39;&quot;&gt;&#39;;var s=e.valueView(&quot;&quot;,&quot;&quot;);s.html&amp;&amp;(s=s[0].outerHTML),i+=s,i+=&quot;&lt;/td&gt;&quot;,r++,n+=i;var o=this.order||_.keys(t.attributes),u=&quot;&quot;,a=t.attributes;for(var f=0,l=o.length;f&lt;l;++f){var c=o[f],h=a[c];if(h!==undefined){var i=&#39;&lt;td id=&quot;cell_&#39;+t.id+&quot;_&quot;+c+&#39;&quot; data-x=&quot;&#39;+r+&#39;&quot;&gt;&#39;,s=e.valueView(c,h);s.html&amp;&amp;(s=s[0].outerHTML),i+=s,i+=&quot;&lt;/td&gt;&quot;,r++,u+=i}}return n+=u,this.$el.html(n).attr(&quot;id&quot;,&quot;row_&quot;+t.id),this},getCell:function(e){var t=e;return this.options.row_header&amp;&amp;++e,this.$(&quot;td:eq(&quot;+e+&quot;)&quot;)},getTableView:function(){return this.tableView}}),cdb.ui.common.Table=cdb.core.View.extend({tagName:&quot;table&quot;,rowView:cdb.ui.common.RowView,events:{&quot;click td&quot;:&quot;_cellClick&quot;,&quot;dblclick td&quot;:&quot;_cellDblClick&quot;},default_options:{},initialize:function(){var e=this;_.defaults(this.options,this.default_options),this.dataModel=this.options.dataModel,this.rowViews=[],this.setDataSource(this.dataModel),this.model.bind(&quot;change&quot;,this.render,this),this.model.bind(&quot;change:dataSource&quot;,this.setDataSource,this),this.bind(&quot;clean&quot;,this.clear_rows,this),this.add_related_model(this.dataModel),this.add_related_model(this.model),this.model.bind(&quot;removing:row&quot;,function(){e.rowsBeingDeleted=e.rowsBeingDeleted?e.rowsBeingDeleted+1:1,e.rowDestroying()}),this.model.bind(&quot;remove:row&quot;,function(){e.rowsBeingDeleted&gt;0&amp;&amp;(e.rowsBeingDeleted--,e.rowDestroyed(),e.dataModel.length==0&amp;&amp;e.emptyTable())})},headerView:function(e){return e[0]},setDataSource:function(e){this.dataModel&amp;&amp;this.dataModel.unbind(null,null,this),this.dataModel=e,this.dataModel.bind(&quot;reset&quot;,this._renderRows,this),this.dataModel.bind(&quot;error&quot;,this._renderRows,this),this.dataModel.bind(&quot;add&quot;,this.addRow,this)},_renderHeader:function(){var e=this,t=$(&quot;&lt;thead&gt;&quot;),n=$(&quot;&lt;tr&gt;&quot;);return this.options.row_header?n.append($(&quot;&lt;th&gt;&quot;).append(e.headerView([&quot;&quot;,&quot;header&quot;]))):n.append($(&quot;&lt;th&gt;&quot;).append(e.headerView([&quot;&quot;,&quot;header&quot;]))),_(this.model.get(&quot;schema&quot;)).each(function(t){n.append($(&quot;&lt;th&gt;&quot;).append(e.headerView(t)))}),t.append(n),t},clear_rows:function(){this.$(&quot;tfoot&quot;).remove(),this.$(&quot;tr.noRows&quot;).remove();var e=null;while(e=this.rowViews.pop())e.unbind(null,null,this),e.clean();this.rowViews=[]},addRow:function(e,t,n){var r=this,i=new r.rowView({model:e,order:this.model.columnNames(),row_header:this.options.row_header});i.tableView=this,i.bind(&quot;clean&quot;,function(){var e=_.indexOf(r.rowViews,i);r.rowViews.splice(e,1);for(var t=e;t&lt;r.rowViews.length;++t)r.rowViews[t].$el.attr(&quot;data-y&quot;,t)},this),i.bind(&quot;changeRow&quot;,this.rowChanged,this),i.bind(&quot;saved&quot;,this.rowSynched,this),i.bind(&quot;errorRow&quot;,this.rowFailed,this),i.bind(&quot;saving&quot;,this.rowSaving,this),this.retrigger(&quot;saving&quot;,i),i.render();if(n&amp;&amp;n.index!==undefined&amp;&amp;n.index!=r.rowViews.length){i.$el.insertBefore(r.rowViews[n.index].$el),r.rowViews.splice(n.index,0,i);for(var s=n.index;s&lt;r.rowViews.length;++s)r.rowViews[s].$el.attr(&quot;data-y&quot;,s)}else i.$el.attr(&quot;data-y&quot;,r.rowViews.length),r.$el.append(i.el),r.rowViews.push(i);this.trigger(&quot;createRow&quot;)},rowChanged:function(){},rowSynched:function(){},rowFailed:function(){},rowSaving:function(){},rowDestroying:function(){},rowDestroyed:function(){},emptyTable:function(){},isEmptyTable:function(){return this.dataModel.length===0&amp;&amp;this.dataModel.fetched},_renderRows:function(){this.clear_rows();if(!this.isEmptyTable())if(this.dataModel.fetched){var e=this;this.dataModel.each(function(t){e.addRow(t)})}else this._renderLoading();else this._renderEmpty()},_renderLoading:function(){},_renderEmpty:function(){},addEmptyTableInfo:function(){},render:function(){var e=this;return e.$el.html(e._renderHeader()),e._renderRows(),this},getCell:function(e,t){return this.options.row_header&amp;&amp;++t,this.rowViews[t].getCell(e)},_cellClick:function(e,t){t=t||&quot;cellClick&quot;,e.preventDefault();var n=$(e.currentTarget||e.target),r=parseInt(n.attr(&quot;data-x&quot;),10),i=parseInt(n.parent().attr(&quot;data-y&quot;),10);this.trigger(t,e,n,r,i)},_cellDblClick:function(e){this._cellClick(e,&quot;cellDblClick&quot;)}}),cdb.ui.common.Dropdown=cdb.core.View.extend({tagName:&quot;div&quot;,className:&quot;dropdown&quot;,events:{&quot;click ul li a&quot;:&quot;_fireClick&quot;},default_options:{width:160,speedIn:150,speedOut:300,vertical_position:&quot;down&quot;,horizontal_position:&quot;right&quot;,tick:&quot;right&quot;,vertical_offset:0,horizontal_offset:0},initialize:function(){_.bindAll(this,&quot;open&quot;,&quot;hide&quot;,&quot;_handleClick&quot;,&quot;_keydown&quot;),_.defaults(this.options,this.default_options),this.options.template_base?this.template_base=cdb.templates.getTemplate(this.options.template_base):this.options.template&amp;&amp;(this.template_base=this.options.template),$(this.options.target).bind({click:this._handleClick}),$(document).bind(&quot;keydown&quot;,this._keydown),this.isOpen=!1},render:function(){var e=this.$el;return e.html(this.template_base(this.options)).css({width:this.options.width}),this},_handleClick:function(e){e&amp;&amp;(e.preventDefault(),e.stopPropagation()),this.isOpen?this.hide():this.open()},_keydown:function(e){e.keyCode===27&amp;&amp;this.hide()},hide:function(){this.isOpen=!1,this.$el.hide()},show:function(){this.$el.css({display:&quot;block&quot;,opacity:1}),this.isOpen=!0},open:function(e,t){var n=t&amp;&amp;$(t)||this.options.target;this.options.target=n;var r=n[this.options.position||&quot;offset&quot;](),i=n.outerWidth(),s=n.outerHeight(),o=this.$el.outerWidth(),u=this.$el.outerHeight(),a=this;this.$el.css({top:r.top+parseInt(a.options.vertical_position==&quot;up&quot;?-u-10-a.options.vertical_offset:s+10-a.options.vertical_offset),left:r.left+parseInt(a.options.horizontal_position==&quot;left&quot;?a.options.horizontal_offset-15:i-o+15-a.options.horizontal_offset)}).addClass((this.options.vertical_position==&quot;up&quot;?&quot;vertical_top&quot;:&quot;vertical_bottom&quot;)+&quot; &quot;+(this.options.horizontal_position==&quot;right&quot;?&quot;horizontal_right&quot;:&quot;horizontal_left&quot;)+&quot; &quot;+&quot;tick_&quot;+this.options.tick),this.show(),this.isOpen=!0},_fireClick:function(e){this.trigger(&quot;optionClicked&quot;,e,this.el)}}),function(){var e={},t={_types:{},register:function(e,n){t._types[e]=n},create:function(e,n,r){var i=t._types[e];if(!i){cdb.log.error(&quot;Overlay: &quot;+e+&quot; does not exist&quot;);return}r.options=typeof r.options==&quot;string&quot;?JSON.parse(r.options):r.options;var s=i(r,n);return s?(s.type=e,s):!1}};cdb.vis.Overlay=t;var n={_types:{},register:function(e,t){this._types[e]=t},create:function(e,t,n){if(!e)return cdb.log.error(&quot;creating a layer without type&quot;),null;var r=this._types[e.toLowerCase()],i={};return i.type=e,_.extend(i,n,n.options),new r(t,i)},moduleForLayer:function(e){return e.toLowerCase()===&quot;torque&quot;?&quot;torque&quot;:null},modulesForLayers:function(e){var t=_(e).map(function(e){return n.moduleForLayer(e.type||e.kind)});return _.compact(_.uniq(t))}};cdb.vis.Layers=n;var r=cdb.vis.Loader={queue:[],current:undefined,_script:null,head:null,loadScript:function(e){var t=document.createElement(&quot;script&quot;);return t.type=&quot;text/javascript&quot;,t.src=e,t.async=!0,r.head||(r.head=document.getElementsByTagName(&quot;head&quot;)[0]),setTimeout(function(){r.head.appendChild(t)},0),t},get:function(e,t){r._script?r.queue.push([e,t]):(r.current=t,r._script=r.loadScript(e+(~e.indexOf(&quot;?&quot;)?&quot;&amp;&quot;:&quot;?&quot;)+&quot;callback=vizjson&quot;))},getPath:function(e){var t=document.getElementsByTagName(&quot;script&quot;),n=/\/?cartodb[\-\._]?([\w\-\._]*)\.js\??/;for(i=0,len=t.length;i&lt;len;i++){src=t[i].src,matches=src.match(n);if(matches){var r=src.split(&quot;/&quot;);return delete r[r.length-1],r.join(&quot;/&quot;)+e}}return null},loadModule:function(e){var t=&quot;cartodb.mod.&quot;+e+(cartodb.DEBUG?&quot;.uncompressed.js&quot;:&quot;.js&quot;),n=this.getPath(t);n||cartodb.log.error(&quot;can&#39;t find cartodb.js file&quot;),r.loadScript(n)}};window.vizjson=function(e){r.current&amp;&amp;r.current(e),r.head.removeChild(r._script),r._script=null;var t=r.queue.shift();t&amp;&amp;r.get(t[0],t[1])},cartodb.moduleLoad=function(e,t){cartodb[e]=t,cartodb.config.modules.add({name:t})};var s=cdb.core.View.extend({initialize:function(){_.bindAll(this,&quot;loadingTiles&quot;,&quot;loadTiles&quot;,&quot;_onResize&quot;),this.https=!1,this.overlays=[],this.moduleChecked=!1,this.layersLoading=0,this.options.mapView&amp;&amp;(this.mapView=this.options.mapView,this.map=this.mapView.map),window.addEventListener?window.addEventListener(&quot;orientationchange&quot;,_.bind(this.doOnOrientationChange,this)):window.attachEvent(&quot;orientationchange&quot;,this.doOnOrientationChange,this)},doOnOrientationChange:function(){},checkModules:function(e){var t=n.modulesForLayers(e);return _.every(_.map(t,function(e){return cartodb[e]!==undefined}))},loadModules:function(e,t){function u(){i.checkModules(e)&amp;&amp;(cdb.config.unbind(&quot;moduleLoaded&quot;,u),t())}var i=this,s=n.modulesForLayers(e);for(var o=0;o&lt;s.length;++o)r.loadModule(s[o]);cdb.config.bind(&quot;moduleLoaded&quot;,u),_.defer(u)},load:function(e,t){var n=this;if(typeof e==&quot;string&quot;){var r=e;return cdb.vis.Loader.get(r,function(e){e?n.load(e,t):n.throwError(&quot;error fetching viz.json file&quot;)}),this}if(!this.checkModules(e.layers))return this.moduleChecked?(n.throwError(&quot;modules couldn&#39;t be loaded&quot;),this):(this.moduleChecked=!0,this.loadModules(e.layers,function(){n.load(e,t)}),this);window&amp;&amp;window.location.protocol&amp;&amp;window.location.protocol===&quot;https:&quot;&amp;&amp;(this.https=!0),e.https&amp;&amp;(this.https=e.https),t=t||{},this._applyOptions(e,t);var i=!!_.find(e.overlays,function(e){return e.type===&quot;logo&quot;&amp;&amp;e.options.display});this.cartodb_logo=t.cartodb_logo!==undefined?t.cartodb_logo:i,!i&amp;&amp;t.cartodb_logo===undefined&amp;&amp;(this.cartodb_logo=!0);var s=t.scrollwheel===undefined?e.scrollwheel:t.scrollwheel;e.maxZoom||(e.maxZoom=20),e.minZoom||(e.minZoom=0);var o={title:e.title,description:e.description,maxZoom:e.maxZoom,minZoom:e.minZoom,legends:e.legends,scrollwheel:s,provider:e.map_provider};e.bounding_box_sw&amp;&amp;e.bounding_box_ne&amp;&amp;(o.bounding_box_sw=e.bounding_box_sw,o.bounding_box_ne=e.bounding_box_ne);if(e.bounds)o.view_bounds_sw=e.bounds[0],o.view_bounds_ne=e.bounds[1];else{var u=e.center;typeof u==&quot;string&quot;&amp;&amp;(u=$.parseJSON(u)),o.center=u||[0,0],o.zoom=e.zoom==undefined?4:e.zoom}var a=new cdb.geo.Map(o);this.map=a,this.updated_at=e.updated_at||(new Date).getTime();var f=this.$el.outerHeight();f===0&amp;&amp;(this.mapConfig=o,$(window).bind(&quot;resize&quot;,this._onResize));var l=$(&quot;&lt;div&gt;&quot;).css({position:&quot;relative&quot;,width:&quot;100%&quot;,height:&quot;100%&quot;});this.container=l;var c=$(&quot;&lt;div&gt;&quot;).addClass(&quot;cartodb-map-wrapper&quot;).css({position:&quot;absolute&quot;,top:0,left:0,right:0,bottom:0,width:&quot;100%&quot;});l.append(c),this.$el.append(l);var h=new cdb.geo.MapView.create(c,a);this.mapView=h;for(var p in e.layers){var d=e.layers[p];this.loadLayer(d,t)}var v,m=/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);m&amp;&amp;$(&quot;.cartodb-map-wrapper&quot;).addClass(&quot;device&quot;);if(t.legends||t.legends===undefined&amp;&amp;this.map.get(&quot;legends&quot;)!==!1)m?this.legends=new cdb.geo.ui.StackedLegend({legends:this.createLegendView(e.layers)}):this.addLegends(e.layers);if(t.time_slider){var g=_(this.getLayers()).filter(function(e){return e.model.get(&quot;type&quot;)===&quot;torque&quot;});g.length&amp;&amp;(v=g[0],!m&amp;&amp;g.length&amp;&amp;this.addTimeSlider(v))}t.sublayer_options||(t.sublayer_options=[],_.each(e.layers.slice(1),function(e){e.type===&quot;layergroup&quot;?_.each(e.options.layer_definition.layers,function(e){t.sublayer_options.push({visible:e.visible!==undefined?e.visible:!0})}):e.type===&quot;namedmap&quot;&amp;&amp;_.each(e.options.named_map.layers,function(e){t.sublayer_options.push({visible:e.visible!==undefined?e.visible:!0})})})),m&amp;&amp;this.addMobile(v);if(t.sublayer_options){var y=[],y=_.map(this.getLayers().slice(1),function(e){return e.getSubLayers?e.getSubLayers():e});y=_.flatten(y);for(p=0;p&lt;Math.min(t.sublayer_options.length,y.length);++p){var b=t.sublayer_options[p],w=y[p],E=this.legends&amp;&amp;this.legends.getLegendByIndex(p);E&amp;&amp;E[b.visible?&quot;show&quot;:&quot;hide&quot;]();if(w.model&amp;&amp;w.model.get(&quot;type&quot;)===&quot;torque&quot;){if(b.visible===!1){w.model.set(&quot;visible&quot;,!1);var S=this.getOverlay(&quot;time_slider&quot;);S&amp;&amp;S.hide()}}else b.visible===!1&amp;&amp;</td>
      </tr>
      <tr>
        <td id="L20" class="blob-num js-line-number" data-line-number="20"></td>
        <td id="LC20" class="blob-code js-file-line">w.hide()}}var x=_.sortBy(e.overlays,function(e){return e.order==null?1e3:e.order});return this._createOverlays(x,t),_.defer(function(){n.trigger(&quot;done&quot;,n,n.getLayers())}),this},_createOverlays:function(e,t){_.each(e,function(e){var n=e.type,r=this.addOverlay(e);r&amp;&amp;n in t&amp;&amp;t[n]===!1&amp;&amp;r.hide();var i=e.options;(n==&quot;share&quot;&amp;&amp;t.shareable||n==&quot;share&quot;&amp;&amp;r.model.get(&quot;display&quot;)&amp;&amp;t[&quot;shareable&quot;]==undefined)&amp;&amp;r.show(),(n==&quot;layer_selector&quot;&amp;&amp;t[n]||n==&quot;layer_selector&quot;&amp;&amp;r.model.get(&quot;display&quot;)&amp;&amp;t[n]==undefined)&amp;&amp;r.show(),(n==&quot;fullscreen&quot;&amp;&amp;t[n]||n==&quot;fullscreen&quot;&amp;&amp;r.model.get(&quot;display&quot;)&amp;&amp;t[n]==undefined)&amp;&amp;r.show(),!this.device&amp;&amp;(n==&quot;search&quot;&amp;&amp;t[n]||n==&quot;search&quot;&amp;&amp;i.display&amp;&amp;t[n]==undefined)&amp;&amp;r.show();if(n===&quot;header&quot;){var s=r.model;t.title!==undefined&amp;&amp;s.set(&quot;show_title&quot;,t.title),t.description!==undefined&amp;&amp;s.set(&quot;show_description&quot;,t.description),(s.get(&quot;show_title&quot;)||s.get(&quot;show_description&quot;))&amp;&amp;$(&quot;.cartodb-map-wrapper&quot;).addClass(&quot;with_header&quot;),r.render()}},this)},addMobile:function(e){this.addOverlay({type:&quot;mobile&quot;,torqueLayer:e,legends:this.legends})},addTimeSlider:function(e){e&amp;&amp;this.addOverlay({type:&quot;time_slider&quot;,layer:e})},createLegendView:function(e){var t=[];for(var n=e.length-1;n&gt;=0;--n){var r=e[n];if(r.legend){r.legend.data=r.legend.items;var i=r.legend;if(i.items&amp;&amp;i.items.length||i.template)r.legend.index=n,t.push(new cdb.geo.ui.Legend(r.legend))}r.options&amp;&amp;r.options.layer_definition?t=t.concat(this.createLegendView(r.options.layer_definition.layers)):r.options&amp;&amp;r.options.named_map&amp;&amp;r.options.named_map.layers&amp;&amp;(t=t.concat(this.createLegendView(r.options.named_map.layers)))}return t},addLegends:function(e){var t=this.createLegendView(e);this.legends=new cdb.geo.ui.StackedLegend({legends:t}),this.mapView.addOverlay(this.legends)},addOverlay:function(e){e.map=this.map;var n=t.create(e.type,this,e);return n&amp;&amp;(e.type==&quot;loader&quot;&amp;&amp;(this.loader=n),this.mapView.addOverlay(n),this.overlays.push(n),n.bind(&quot;clean&quot;,function(){for(var e in this.overlays){var t=this.overlays[e];if(n.cid===t.cid){this.overlays.splice(e,1);return}}},this),e.type==&quot;header&quot;),n},_applyOptions:function(e,t){function n(t){if(!e.overlays)return null;for(var n=0;n&lt;e.overlays.length;++n)if(e.overlays[n].type===t)return e.overlays[n]}function r(t){if(!e.overlays)return;for(var n=0;n&lt;e.overlays.length;++n)if(e.overlays[n].type===t){e.overlays.splice(n,1);return}}t=t||{},t=_.defaults(t,{tiles_loader:!0,zoomControl:!0,loaderControl:!0,searchControl:!1,infowindow:!0,tooltip:!0,time_slider:!0}),e.overlays=e.overlays||[],e.layers=e.layers||[],this.infowindow=t.infowindow,this.tooltip=t.tooltip,t.https&amp;&amp;(this.https=!0);var i=this.device=/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);t.title||(e.title=null),t.description||(e.description=null),t.tiles_loader||r(&quot;loader&quot;),t.loaderControl||r(&quot;loader&quot;),!this.device&amp;&amp;(t.search||t.searchControl)&amp;&amp;(n(&quot;search&quot;)||e.overlays.push({type:&quot;search&quot;}));if(t.title&amp;&amp;e.title||t.description&amp;&amp;e.description)n(&quot;header&quot;)||e.overlays.unshift({type:&quot;header&quot;,order:1,shareable:t.shareable?!0:!1,url:e.url,options:{extra:{title:e.title,description:e.description,show_title:t.title,show_description:t.description}}});t.layer_selector&amp;&amp;(n(&quot;layer_selector&quot;)||e.overlays.push({type:&quot;layer_selector&quot;})),t.shareable&amp;&amp;!i&amp;&amp;(n(&quot;share&quot;)||e.overlays.push({type:&quot;share&quot;,url:e.url})),i&amp;&amp;(r(&quot;share&quot;),r(&quot;layer_selector&quot;),r(&quot;fullscreen&quot;),r(&quot;zoom&quot;));var s=parseInt(t.zoom);isNaN(s)||(e.zoom=s,e.bounds=null);var o=parseFloat(t.center_lat),u=parseFloat(t.center_lon);!isNaN(o)&amp;&amp;!isNaN(u)&amp;&amp;(e.center=[o,u],e.bounds=null),t.center!==undefined&amp;&amp;(e.center=t.center,e.bounds=null);var a=parseFloat(t.sw_lat),f=parseFloat(t.sw_lon),l=parseFloat(t.ne_lat),c=parseFloat(t.ne_lon);!isNaN(a)&amp;&amp;!isNaN(f)&amp;&amp;!isNaN(l)&amp;&amp;!isNaN(c)&amp;&amp;(e.bounds=[[a,f],[l,c]]);if(e.layers.length&gt;1){var h=t.auth_token;for(var p=1;p&lt;e.layers.length;++p){var d=e.layers[p].options;d.no_cdn=t.no_cdn,d.force_cors=t.force_cors,h&amp;&amp;(d.auth_token=h)}}},setMapPosition:function(){},createLayer:function(e,t){var r=n.create(e.type||e.kind,this,e);return this.mapView.createLayer(r)},_getSqlApi:function(e){e=e||{};var t=e.sql_api_port,n=e.sql_api_domain+(t?&quot;:&quot;+t:&quot;&quot;),r=e.sql_api_protocol,i=&quot;v1&quot;;n.indexOf(&quot;cartodb.com&quot;)!==-1&amp;&amp;(r=&quot;http&quot;,n=&quot;cartodb.com&quot;,i=&quot;v2&quot;);var s=new cartodb.SQL({user:e.user_name,protocol:r,host:n,version:i});return s},addTooltip:function(e){if(!e||!e.containTooltip||!e.containTooltip())return;for(var t=0;t&lt;e.getLayerCount();++t){var n=e.getTooltipData(t);if(n){if(!e.tooltip){var r=new cdb.geo.ui.Tooltip({layer:e,template:n.template,position:&quot;bottom|right&quot;,vertical_offset:10,horizontal_offset:4,fields:n.fields,omit_columns:[&quot;cartodb_id&quot;]});e.tooltip=r,this.mapView.addOverlay(r)}e.setInteraction(t,!0)}}e.tooltip&amp;&amp;e.bind(&quot;featureOver&quot;,function(t,n,r,i,s){var o=e.getTooltipData(s);o?(e.tooltip.setTemplate(o.template),e.tooltip.setFields(o.fields),e.tooltip.setAlternativeNames(o.alternative_names),e.tooltip.enable()):e.tooltip.disable()})},addInfowindow:function(e){if(!e.containInfowindow||!e.containInfowindow())return;var n=this.mapView,r=&quot;featureClick&quot;,i=null;for(var s=0;s&lt;e.getLayerCount();++s)if(e.getInfowindowData(s)){i||(i=t.create(&quot;infowindow&quot;,this,e.getInfowindowData(s),!0),n.addInfowindow(i));var o=e.getLayerNumberByIndex(s);e.setInteraction(o,!0)}if(!i)return;i.bind(&quot;close&quot;,function(){for(var t=0;t&lt;e.getLayerCount();++t){var n=e.tooltip;n&amp;&amp;n.setFilter(null)}}),e.bind(r,function(t,n,r,s,o){var u=e.getInfowindowData(o);if(!u)return;var a=_.pluck(u.fields,&quot;name&quot;),f=s.cartodb_id;e.fetchAttributes(o,f,a,function(e){var t=_.defaults({offset:u.offset,width:u.width,maxHeight:u.maxHeight},cdb.geo.ui.InfowindowModel.prototype.defaults);i.model.set({fields:u.fields,template:u.template,template_type:u.template_type,alternative_names:u.alternative_names,offset:t.offset,width:t.width,maxHeight:t.maxHeight}),e?(i.model.updateContent(e),i.adjustPan()):i.setError()}),i.setLatLng(n).setLoading().showInfowindow(),e.tooltip&amp;&amp;e.tooltip.setFilter(function(e){return e.cartodb_id!==f}).hide()});var u=[];e.bind(&quot;mouseover&quot;,function(){n.setCursor(&quot;pointer&quot;)}),e.bind(&quot;mouseout&quot;,function(e,t){n.setCursor(&quot;auto&quot;)}),e.infowindow=i.model},loadLayer:function(e,t){var r=this.map,i=this.mapView,s=r.addLayer(n.create(e.type||e.kind,this,e),t),o=i.getLayerByCid(s);if(!o){this.throwError(&quot;layer can&#39;t be created&quot;,r.layers.getByCid(s));return}o&amp;&amp;this.infowindow&amp;&amp;o.containInfowindow&amp;&amp;o.containInfowindow()&amp;&amp;this.addInfowindow(o),o&amp;&amp;this.tooltip&amp;&amp;o.containTooltip&amp;&amp;o.containTooltip()&amp;&amp;this.addTooltip(o);if(o){var u=this,a=function(){u.loadingTiles(t)},f=function(){u.loadTiles(t)};o.bind(&quot;loading&quot;,a),o.bind(&quot;load&quot;,f)}return o},loadingTiles:function(){this.loader&amp;&amp;this.loader.show(),this.layersLoading===0&amp;&amp;this.trigger(&quot;loading&quot;),this.layersLoading++},loadTiles:function(){this.loader&amp;&amp;this.loader.hide(),this.layersLoading--,this.layersLoading&lt;=0&amp;&amp;(this.layersLoading=0,this.trigger(&quot;load&quot;))},throwError:function(e,t){cdb.log.error(e);var n=this;_.defer(function(){n.trigger(&quot;error&quot;,e,t)})},error:function(e){return this.bind(&quot;error&quot;,e)},done:function(e){return this.bind(&quot;done&quot;,e)},getNativeMap:function(){return this.mapView.getNativeMap()},getLayers:function(){var e=this;return _.compact(this.map.layers.map(function(t){return e.mapView.getLayerByCid(t.cid)}))},getOverlays:function(){return this.overlays},getOverlay:function(e){return _(this.overlays).find(function(t){return t.type==e})},_onResize:function(){$(window).unbind(&quot;resize&quot;,this._onResize);var e=this;e.mapView.invalidateSize(),setTimeout(function(){var t=e.mapConfig;t.view_bounds_sw?e.mapView.map.setBounds([t.view_bounds_sw,t.view_bounds_ne]):e.mapView.map.set({center:t.center,zoom:t.zoom})},150)}},{addInfowindow:function(e,t,n,r){var i=_.defaults(r||{},{infowindowTemplate:cdb.vis.INFOWINDOW_TEMPLATE.light,templateType:&quot;mustache&quot;,triggerEvent:&quot;featureClick&quot;,templateName:&quot;light&quot;,extraFields:[],cursorInteraction:!0});if(!e)throw new Error(&quot;map is not valid&quot;);if(!t)throw new Error(&quot;layer is not valid&quot;);if(!n&amp;&amp;n.length===undefined)throw new Error(&quot;fields should be a list of strings&quot;);var s=[];n=n.concat(i.extraFields);for(var o=0;o&lt;n.length;++o)s.push({name:n,order:o});var u=new cdb.geo.ui.InfowindowModel({fields:s,template_name:i.templateName}),a=new cdb.geo.ui.Infowindow({model:u,mapView:e.viz.mapView,template:(new cdb.core.Template({template:i.infowindowTemplate,type:i.templateType})).asFunction()});e.viz.mapView.addInfowindow(a);try{t.setInteractivity(n)}catch(f){}return t.setInteraction(!0),t.bind(i.triggerEvent,function(e,t,r,i,s){var o=[],u;for(var f=0;f&lt;n.length;++f){var l=n[f];(u=i[l])&amp;&amp;o.push({title:l,value:u,index:0})}a.model.set({content:{fields:o,data:i}}),a.setLatLng(t).showInfowindow(),a.adjustPan()},a),a.bind(&quot;clean&quot;,function(){t.unbind(i.triggerEvent,null,a)}),i.cursorInteraction&amp;&amp;cdb.vis.Vis.addCursorInteraction(e,t),a},addCursorInteraction:function(e,t){var n=e.viz.mapView;t.bind(&quot;mouseover&quot;,function(){n.setCursor(&quot;pointer&quot;)}),t.bind(&quot;mouseout&quot;,function(e,t){n.setCursor(&quot;auto&quot;)})},removeCursorInteraction:function(e,t){var n=e.viz.mapView;t.unbind(null,null,n)}});cdb.vis.INFOWINDOW_TEMPLATE={light:[&#39;&lt;div class=&quot;cartodb-popup&quot;&gt;&#39;,&#39;&lt;a href=&quot;#close&quot; class=&quot;cartodb-popup-close-button close&quot;&gt;x&lt;/a&gt;&#39;,&#39;&lt;div class=&quot;cartodb-popup-content-wrapper&quot;&gt;&#39;,&#39;&lt;div class=&quot;cartodb-popup-content&quot;&gt;&#39;,&quot;{{#content.fields}}&quot;,&quot;{{#title}}&lt;h4&gt;{{title}}&lt;/h4&gt;{{/title}}&quot;,&quot;{{#value}}&quot;,&#39;&lt;p {{#type}}class=&quot;{{ type }}&quot;{{/type}}&gt;{{{ value }}}&lt;/p&gt;&#39;,&quot;{{/value}}&quot;,&quot;{{^value}}&quot;,&#39;&lt;p class=&quot;empty&quot;&gt;null&lt;/p&gt;&#39;,&quot;{{/value}}&quot;,&quot;{{/content.fields}}&quot;,&quot;&lt;/div&gt;&quot;,&quot;&lt;/div&gt;&quot;,&#39;&lt;div class=&quot;cartodb-popup-tip-container&quot;&gt;&lt;/div&gt;&#39;,&quot;&lt;/div&gt;&quot;].join(&quot;&quot;)},cdb.vis.Vis=s}(),function(){cdb.vis.Overlay.register(&quot;logo&quot;,function(e,t){}),cdb.vis.Overlay.register(&quot;mobile&quot;,function(e,t){var n=cdb.core.Template.compile(e.template||&#39;    &lt;div class=&quot;torque&quot;&gt;&lt;/div&gt;    &lt;div class=&quot;top-shadow&quot;&gt;&lt;/div&gt;    &lt;div class=&quot;bottom-shadow&quot;&gt;&lt;/div&gt;    &lt;div class=&quot;legends&quot;&gt;&lt;/div&gt;    &lt;a class=&quot;toggle&quot; href=&quot;#&quot;&gt;&lt;/a&gt;    &#39;,e.templateType||&quot;mustache&quot;),r=new cdb.geo.ui.Mobile({template:n,torqueLayer:e.torqueLayer,legends:e.legends,map:e.map});return r.render()}),cdb.vis.Overlay.register(&quot;image&quot;,function(e,t){var n=e.options,r=n.device==&quot;mobile&quot;?!0:!1;if(t.device!==r)return;var i=cdb.core.Template.compile(e.template||&#39;    &lt;div class=&quot;content&quot;&gt;    &lt;div class=&quot;text widget_text&quot;&gt;{{{ content }}}&lt;/div&gt;    &lt;/div&gt;&#39;,e.templateType||&quot;mustache&quot;),s=new cdb.geo.ui.Image({model:new cdb.core.Model(n),template:i});return s.render()}),cdb.vis.Overlay.register(&quot;text&quot;,function(e,t){var n=e.options,r=n.device==&quot;mobile&quot;?!0:!1;if(t.device!==r)return;var i=cdb.core.Template.compile(e.template||&#39;    &lt;div class=&quot;content&quot;&gt;    &lt;div class=&quot;text widget_text&quot;&gt;{{{ text }}}&lt;/div&gt;    &lt;/div&gt;&#39;,e.templateType||&quot;mustache&quot;),s=new cdb.geo.ui.Text({model:new cdb.core.Model(n),template:i,className:&quot;cartodb-overlay overlay-text &quot;+n.device});return s.render()}),cdb.vis.Overlay.register(&quot;zoom_info&quot;,function(e,t){}),cdb.vis.Overlay.register(&quot;header&quot;,function(e,t){var n=e.options,r=cdb.core.Template.compile(e.template||&#39;    &lt;div class=&quot;content&quot;&gt;    &lt;div class=&quot;title&quot;&gt;{{{ title }}}&lt;/div&gt;    &lt;div class=&quot;description&quot;&gt;{{{ description }}}&lt;/div&gt;    &lt;/div&gt;&#39;,e.templateType||&quot;mustache&quot;),i=new cdb.geo.ui.Header({model:new cdb.core.Model(n),template:r});return i.render()}),cdb.vis.Overlay.register(&quot;zoom&quot;,function(e,t){if(!e.template){t.trigger(&quot;error&quot;,&quot;zoom template is empty&quot;);return}var n=new cdb.geo.ui.Zoom({model:e.map,template:cdb.core.Template.compile(e.template)});return n.render()}),cdb.vis.Overlay.register(&quot;loader&quot;,function(e){var t=new cdb.geo.ui.TilesLoader({template:cdb.core.Template.compile(e.template)});return t.render()}),cdb.vis.Overlay.register(&quot;time_slider&quot;,function(e,t){var n=new cdb.geo.ui.TimeSlider(e);return n.render()}),cdb.vis.Overlay.register(&quot;_header&quot;,function(e,t){function i(e,t){return e.substr(0,t-1)+(e.length&gt;t?&quot;…&quot;:&quot;&quot;)}var n=100;location.href?e.share_url=encodeURIComponent(location.href):e.share_url=e.url;var r=cdb.core.Template.compile(e.template||&quot;      {{#title}}        &lt;h1&gt;          {{#url}}            &lt;a href=&#39;#&#39; onmousedown=\&quot;window.open(&#39;{{url}}&#39;)\&quot;&gt;{{title}}&lt;/a&gt;          {{/url}}          {{^url}}            {{title}}          {{/url}}        &lt;/h1&gt;      {{/title}}      {{#description}}&lt;p&gt;{{{description}}}&lt;/p&gt;{{/description}}      {{#mobile_shareable}}        &lt;div class=&#39;social&#39;&gt;          &lt;a class=&#39;facebook&#39; target=&#39;_blank&#39;            href=&#39;http://www.facebook.com/sharer.php?u={{share_url}}&amp;text=Map of {{title}}: {{description}}&#39;&gt;F&lt;/a&gt;          &lt;a class=&#39;twitter&#39; href=&#39;https://twitter.com/share?url={{share_url}}&amp;text={{twitter_title}}&#39;           target=&#39;_blank&#39;&gt;T&lt;/a&gt;        &lt;/div&gt;      {{/mobile_shareable}}    &quot;,e.templateType||&quot;mustache&quot;),s=e.map.get(&quot;title&quot;),o=e.map.get(&quot;description&quot;),u=s+&quot;: &quot;+o,a;s&amp;&amp;o?a=i(s+&quot;: &quot;+o,112)+&quot; %23map &quot;:s?a=i(s,112)+&quot; %23map&quot;:o?a=i(o,112)+&quot; %23map&quot;:a=&quot;%23map&quot;;var f=e.shareable==&quot;false&quot;||!e.shareable?null:e.shareable,l=f;l=l&amp;&amp;/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);var c=new cdb.geo.ui.Header({title:s,description:o,facebook_title:u,twitter_title:a,url:e.url,share_url:e.share_url,mobile_shareable:l,shareable:f&amp;&amp;!l,template:r});return c.render()}),cdb.vis.Overlay.register(&quot;infowindow&quot;,function(e,t){if(_.size(e.fields)==0)return null;var n=new cdb.geo.ui.InfowindowModel({template:e.template,alternative_names:e.alternative_names,fields:e.fields,template_name:e.template_name}),r=e.templateType||&quot;mustache&quot;,i=new cdb.geo.ui.Infowindow({model:n,mapView:t.mapView,template:(new cdb.core.Template({template:e.template,type:r})).asFunction()});return i}),cdb.vis.Overlay.register(&quot;layer_selector&quot;,function(e,t){var n=e.options,r=cdb.core.Template.compile(e.template||&#39;      &lt;a href=&quot;#/change-visibility&quot; class=&quot;layers&quot;&gt;Visible layers&lt;div class=&quot;count&quot;&gt;&lt;/div&gt;&lt;/a&gt;      &#39;,e.templateType||&quot;underscore&quot;),i=cdb.core.Template.compile(e.template||&#39;      &lt;ul&gt;&lt;/ul&gt;&lt;div class=&quot;tail&quot;&gt;&lt;span class=&quot;border&quot;&gt;&lt;/span&gt;&lt;/div&gt;      &#39;,e.templateType||&quot;underscore&quot;),s=new cdb.geo.ui.LayerSelector({model:new cdb.core.Model(n),mapView:t.mapView,template:r,dropdown_template:i,layer_names:e.layer_names});return t.legends&amp;&amp;s.bind(&quot;change:visible&quot;,function(e,n,r){if(r.get(&quot;type&quot;)===&quot;torque&quot;){var i=t.getOverlay(&quot;time_slider&quot;);i&amp;&amp;i[e?&quot;show&quot;:&quot;hide&quot;]()}if(r.get(&quot;type&quot;)===&quot;layergroup&quot;||r.get(&quot;type&quot;)===&quot;torque&quot;){var s=t.legends&amp;&amp;t.legends.getLegendByIndex(n);s&amp;&amp;s[e?&quot;show&quot;:&quot;hide&quot;]()}}),s.render()}),cdb.vis.Overlay.register(&quot;fullscreen&quot;,function(e,t){var n=e.options;n.allowWheelOnFullscreen=!1;var r=cdb.core.Template.compile(e.template||&#39;&lt;a href=&quot;#&quot;&gt;&lt;/a&gt;&#39;,e.templateType||&quot;mustache&quot;),i=new cdb.ui.common.FullScreen({doc:&quot;#map &gt; div&quot;,model:new cdb.core.Model(n),mapView:t.mapView,template:r});return i.render()}),cdb.vis.Overlay.register(&quot;share&quot;,function(e,t){var n=e.options,r=cdb.core.Template.compile(e.template||&#39;&lt;a href=&quot;#&quot;&gt;&lt;/a&gt;&#39;,e.templateType||&quot;mustache&quot;),i=new cdb.geo.ui.Share({model:new cdb.core.Model(n),vis:t,map:t.map,template:r});return i.createDialog(),i.render()}),cdb.vis.Overlay.register(&quot;search&quot;,function(e,t){var n=e.options,r=cdb.core.Template.compile(e.template||&#39;      &lt;form&gt;        &lt;span class=&quot;loader&quot;&gt;&lt;/span&gt;        &lt;input type=&quot;text&quot; class=&quot;text&quot; value=&quot;&quot; /&gt;        &lt;input type=&quot;submit&quot; class=&quot;submit&quot; value=&quot;&quot; /&gt;      &lt;/form&gt;    &#39;,e.templateType||&quot;mustache&quot;),i=new cdb.geo.ui.Search({template:r,model:t.map});return i.render()}),cdb.vis.Overlay.register(&quot;tooltip&quot;,function(e,t){var n;if(!e.layer){var r=t.getLayers();r.length&gt;1&amp;&amp;(n=r[1]),e.layer=n}if(!e.layer)throw new Error(&quot;layer is null&quot;);e.layer.setInteraction(!0);var i=new cdb.geo.ui.Tooltip(e);return i}),cdb.vis.Overlay.register(&quot;infobox&quot;,function(e,t){var n,r=t.getLayers();e.layer||(r.length&gt;1&amp;&amp;(n=r[1]),e.layer=n);if(!e.layer)throw new Error(&quot;layer is null&quot;);e.layer.setInteraction(!0);var i=new cdb.geo.ui.InfoBox(e);return i})}(),function(){function n(e){for(var n in t)if(e.indexOf(n)!==-1)return e.replace(n,t[n]);return e}function r(e,t){t.infowindow&amp;&amp;t.infowindow.fields&amp;&amp;(t.interactivity?t.interactivity.indexOf(&quot;cartodb_id&quot;)===-1&amp;&amp;(t.interactivity=t.interactivity+&quot;,cartodb_id&quot;):t.interactivity=&quot;cartodb_id&quot;),e.https&amp;&amp;(t.tiler_protocol=&quot;https&quot;,t.tiler_port=443,t.sql_api_protocol=&quot;https&quot;,t.sql_api_port=443),t.cartodb_logo=e.cartodb_logo==undefined?t.cartodb_logo:e.cartodb_logo}var e=cdb.vis.Layers,t={&quot;https://dnv9my2eseobd.cloudfront.net/&quot;:&quot;http://a.tiles.mapbox.com/&quot;,&quot;https://maps.nlp.nokia.com/&quot;:&quot;http://maps.nlp.nokia.com/&quot;,&quot;https://tile.stamen.com/&quot;:&quot;http://tile.stamen.com/&quot;,&quot;https://{s}.maps.nlp.nokia.com/&quot;:&quot;http://{s}.maps.nlp.nokia.com/&quot;,&quot;https://cartocdn_{s}.global.ssl.fastly.net/&quot;:&quot;http://{s}.api.cartocdn.com/&quot;};e.register(&quot;tilejson&quot;,function(e,t){var r=t.tiles[0];return r=e.https?r:n(r),new cdb.geo.TileLayer({urlTemplate:r})}),e.register(&quot;tiled&quot;,function(e,t){var r=t.urlTemplate;return r=e.https?r:n(r),t.urlTemplate=r,new cdb.geo.TileLayer(t)}),e.register(&quot;wms&quot;,function(e,t){return new cdb.geo.WMSLayer(t)}),e.register(&quot;gmapsbase&quot;,function(e,t){return new cdb.geo.GMapsBaseLayer(t)}),e.register(&quot;plain&quot;,function(e,t){return new cdb.geo.PlainLayer(t)}),e.register(&quot;background&quot;,function(e,t){return new cdb.geo.PlainLayer(t)});var i=function(e,t){return r(e,t),t.sublayers?(t.type=&quot;layergroup&quot;,new cdb.geo.CartoDBGroupLayer(t)):new cdb.geo.CartoDBLayer(t)};e.register(&quot;cartodb&quot;,i),e.register(&quot;carto&quot;,i),e.register(&quot;layergroup&quot;,function(e,t){return r(e,t),new cdb.geo.CartoDBGroupLayer(t)}),e.register(&quot;namedmap&quot;,function(e,t){return r(e,t),new cdb.geo.CartoDBNamedMapLayer(t)}),e.register(&quot;torque&quot;,function(e,t){return e.https&amp;&amp;t.sql_api_domain&amp;&amp;t.sql_api_domain.indexOf(&quot;cartodb.com&quot;)!==-1&amp;&amp;(t.sql_api_protocol=&quot;https&quot;,t.sql_api_port=443,t.tiler_protocol=&quot;https&quot;,t.tiler_port=443),t.cartodb_logo=e.cartodb_logo==undefined?t.cartodb_logo:e.cartodb_logo,new cdb.geo.TorqueLayer(t)})}(),function(){function e(){}function n(e){var t=e.host||&quot;cartodb.com&quot;,n=e.protocol||&quot;https&quot;;return n+&quot;://&quot;+e.user+&quot;.&quot;+t+&quot;/api/v1/viz/&quot;+e.table+&quot;/viz.json&quot;}function r(e,t){var r=null;if(e.layers!==undefined||(e.kind||e.type)!==undefined){_.defer(function(){t(e)});return}e.table!==undefined&amp;&amp;e.user!==undefined?r=n(e):e.indexOf&amp;&amp;e.indexOf(&quot;http&quot;)===0&amp;&amp;(r=e),r?cdb.vis.Loader.get(r,t):_.defer(function(){t(null)})}_.extend(e.prototype,Backbone.Events,{done:function(e){return this.bind(&quot;done&quot;,e)},error:function(e){return this.bind(&quot;error&quot;,e)}}),cdb._Promise=e;var t={};cartodb.createLayer=function(t,n,i,s){var o=new e,u,a;i=i||{};if(t===undefined)throw new TypeError(&quot;map should be provided&quot;);if(n===undefined)throw new TypeError(&quot;layer should be provided&quot;);var f=arguments,l=f[f.length-1];return _.isFunction(l)&amp;&amp;(s=l),o.addTo=function(e,t){return o.on(&quot;done&quot;,function(){a.addLayerToMap(u,e,t)}),o},r(n,function(e){function c(){u=f.createLayer(n,{no_base_layer:!0});if(!u)return o.trigger(&quot;error&quot;,&quot;layer not supported&quot;),o;i.infowindow&amp;&amp;f.addInfowindow(u),i.tooltip&amp;&amp;f.addTooltip(u),i.legends&amp;&amp;f.addLegends([n]),i.time_slider&amp;&amp;u.model.get(&quot;type&quot;)===&quot;torque&quot;&amp;&amp;f.addTimeSlider(u),s&amp;&amp;s(u),o.trigger(&quot;done&quot;,u)}var n;if(!e){o.trigger(&quot;error&quot;);return}if(e.layers){e.layers.length&lt;2&amp;&amp;o.trigger(&quot;error&quot;,&quot;visualization file does not contain layer info&quot;);var r=i.layerIndex===undefined?1:i.layerIndex;if(e.layers.length&lt;=r){o.trigger(&quot;error&quot;,&quot;layerIndex out of bounds&quot;);return}n=e.layers[r]}else n=e;if(!n){o.trigger(&quot;error&quot;);return}i&amp;&amp;!_.isFunction(i)&amp;&amp;(n.options=n.options||{},_.extend(n.options,i)),i=_.defaults(i,{infowindow:!0,https:!1,legends:!0,time_slider:!0,tooltip:!0});if(typeof t.overlayMapTypes!=&quot;undefined&quot;)a=cdb.geo.GoogleMapsMapView;else{if(!(t instanceof L.Map||window.L&amp;&amp;t instanceof window.L.Map))return o.trigger(&quot;error&quot;,&quot;cartodb.js can&#39;t guess the map type&quot;),o;a=cdb.geo.LeafletMapView}var f=t.viz;if(!f){var l=new a({map_object:t,map:new cdb.geo.Map});t.viz=f=new cdb.vis.Vis({mapView:l}),f.updated_at=e.updated_at,f.https=i.https}f.checkModules([n])?c():f.loadModules([n],function(){c()})}),o}}(),function(){function t(e){if(cartodb===this||window===this)return new t(e);if(!e.user)throw new Error(&quot;user should be provided&quot;);var n=new String(window.location.protocol);n=n.slice(0,n.length-1),n==&quot;file&quot;&amp;&amp;(n=&quot;https&quot;),this.ajax=e.ajax||(typeof jQuery!=&quot;undefined&quot;?jQuery.ajax:reqwest);if(!this.ajax)throw new Error(&quot;jQuery or reqwest should be loaded&quot;);this.options=_.defaults(e,{version:&quot;v2&quot;,protocol:n,jsonp:typeof jQuery!=&quot;undefined&quot;?!jQuery.support.cors:!1})}var e=this;e.cartodb=e.cartodb||{},t.prototype._host=function(){var e=this.options;if(e&amp;&amp;e.completeDomain)return e.completeDomain+&quot;/api/&quot;+e.version+&quot;/sql&quot;;var t=e.host||&quot;cartodb.com&quot;,n=e.protocol||&quot;https&quot;;return n+&quot;://&quot;+e.user+&quot;.&quot;+t+&quot;/api/&quot;+e.version+&quot;/sql&quot;},t.prototype.execute=function(e,t,n,r){var i=new cartodb._Promise;if(!e)throw new TypeError(&quot;sql should not be null&quot;);var s=arguments,o=s[s.length-1];_.isFunction(o)&amp;&amp;(r=o),n=_.defaults(n||{},this.options);var u={type:&quot;get&quot;,dataType:&quot;json&quot;,crossDomain:!0};n.jsonp&amp;&amp;(delete u.crossDomain,u.dataType=&quot;jsonp&quot;),n.cache&amp;&amp;(u.cache=n.cache);var a=&quot;156543.03515625&quot;,f=&quot;ST_MakeEnvelope(-20037508.5,-20037508.5,20037508.5,20037508.5,3857)&quot;;e=e.replace(&quot;!bbox!&quot;,f).replace(&quot;!pixel_width!&quot;,a).replace(&quot;!pixel_height!&quot;,a);var l=Mustache.render(e,t),c=&quot;q=&quot;+encodeURIComponent(l),h=[&quot;format&quot;,&quot;dp&quot;,&quot;api_key&quot;];n.extra_params&amp;&amp;(h=h.concat(n.extra_params));for(var p in h){var d=h[p],v=n[d];v&amp;&amp;(c+=&quot;&amp;&quot;+d+&quot;=&quot;+v)}var m=n.type?n.type==&quot;get&quot;:u.type==&quot;get&quot;;u.url=this._host(),m?u.url+=&quot;?&quot;+c:u.data=c;var g=n.success,y=n.error;return g&amp;&amp;delete n.success,y&amp;&amp;delete y.success,u.error=function(e){var t=e.responseText||e.response,n=t&amp;&amp;JSON.parse(t);i.trigger(&quot;error&quot;,n&amp;&amp;n.error,e),y&amp;&amp;y(e)},u.success=function(e,t,n){t==undefined&amp;&amp;(t=e.status,n=e,e=JSON.parse(e.response)),i.trigger(&quot;done&quot;,e,t,n),g&amp;&amp;g(e,t,n),r&amp;&amp;r(e)},delete n.jsonp,this.ajax(_.extend(u,n)),i},t.prototype.getBounds=function(e,t,n,r){var i=new cartodb._Promise,s=arguments,o=s[s.length-1];_.isFunction(o)&amp;&amp;(r=o);var u=&quot;SELECT ST_XMin(ST_Extent(the_geom)) as minx,       ST_YMin(ST_Extent(the_geom)) as miny,       ST_XMax(ST_Extent(the_geom)) as maxx,       ST_YMax(ST_Extent(the_geom)) as maxy from ({{{ sql }}}) as subq&quot;;return e=Mustache.render(e,t),this.execute(u,{sql:e},n).done(function(e){if(e.rows&amp;&amp;e.rows.length&gt;0&amp;&amp;e.rows[0].maxx!=null){var t=e.rows[0],n=-85.0511,s=85.0511,o=-179,u=179,a=function(e,t,n){return e&lt;t?t:e&gt;n?n:e},f=a(t.maxx,o,u),l=a(t.minx,o,u),c=a(t.maxy,n,s),h=a(t.miny,n,s),p=[[c,f],[h,l]];i.trigger(&quot;done&quot;,p),r&amp;&amp;r(p)}}).error(function(e){i.trigger(&quot;error&quot;,e)}),i},t.prototype.table=function(e){function a(){a.fetch.apply(a,arguments)}var t=e,n,r=[],i,s,o,u=this;return a.fetch=function(e){e=e||{};var t=arguments,n=t[t.length-1];_.isFunction(n)&amp;&amp;(callback=n,t.length===1&amp;&amp;(e={})),u.execute(a.sql(),e,callback)},a.sql=function(){var e=&quot;select&quot;;return r.length?e+=&quot; &quot;+r.join(&quot;,&quot;)+&quot; &quot;:e+=&quot; * &quot;,e+=&quot;from &quot;+t,n&amp;&amp;(e+=&quot; where &quot;+n),i&amp;&amp;(e+=&quot; limit &quot;+i),s&amp;&amp;(e+=&quot; order by &quot;+s),o&amp;&amp;(e+=&quot; &quot;+o),e},a.filter=function(e){return n=e,a},a.order_by=function(e){return s=e,a},a.asc=function(){return o=&quot;asc&quot;,a},a.desc=function(){return o=&quot;desc&quot;,a},a.columns=function(e){return r=e,a},a.limit=function(e){return i=e,a},a},e.cartodb.SQL=t}(),function(){cartodb.createVis=function(e,t,n,r){if(!e)throw new TypeError(&quot;a DOM element should be provided&quot;);var i=arguments,s=i[i.length-1];_.isFunction(s)&amp;&amp;(r=s),e=typeof e==&quot;string&quot;?document.getElementById(e):e;var o=new cartodb.vis.Vis({el:e});return t&amp;&amp;(o.load(t,n),r&amp;&amp;o.done(r)),o}}(),cdb.$=$,cdb.L=L,cdb.Mustache=Mustache,cdb.Backbone=Backbone,cdb._=_}();for(var i in __prev)__prev[i]&amp;&amp;(window[i]=__prev[i])})();</td>
      </tr>
</table>

  </div>

  </div>
</div>

<a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" style="display:none">Jump to Line</a>
<div id="jump-to-line" style="display:none">
  <form accept-charset="UTF-8" class="js-jump-to-line-form">
    <input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line&hellip;" autofocus>
    <button type="submit" class="button">Go</button>
  </form>
</div>

        </div>

      </div><!-- /.repo-container -->
      <div class="modal-backdrop"></div>
    </div><!-- /.container -->
  </div><!-- /.site -->


    </div><!-- /.wrapper -->

      <div class="container">
  <div class="site-footer">
    <ul class="site-footer-links right">
      <li><a href="https://status.github.com/">Status</a></li>
      <li><a href="http://developer.github.com">API</a></li>
      <li><a href="http://training.github.com">Training</a></li>
      <li><a href="http://shop.github.com">Shop</a></li>
      <li><a href="/blog">Blog</a></li>
      <li><a href="/about">About</a></li>

    </ul>

    <a href="/" aria-label="Homepage">
      <span class="mega-octicon octicon-mark-github" title="GitHub"></span>
    </a>

    <ul class="site-footer-links">
      <li>&copy; 2014 <span title="0.23315s from github-fe125-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
        <li><a href="/site/terms">Terms</a></li>
        <li><a href="/site/privacy">Privacy</a></li>
        <li><a href="/security">Security</a></li>
        <li><a href="/contact">Contact</a></li>
    </ul>
  </div><!-- /.site-footer -->
</div><!-- /.container -->


    <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
  <div class="fullscreen-container js-suggester-container">
    <div class="textarea-wrap">
      <textarea name="fullscreen-contents" id="fullscreen-contents" class="fullscreen-contents js-fullscreen-contents js-suggester-field" placeholder=""></textarea>
    </div>
  </div>
  <div class="fullscreen-sidebar">
    <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped tooltipped-w" aria-label="Exit Zen Mode">
      <span class="mega-octicon octicon-screen-normal"></span>
    </a>
    <a href="#" class="theme-switcher js-theme-switcher tooltipped tooltipped-w"
      aria-label="Switch themes">
      <span class="octicon octicon-color-mode"></span>
    </a>
  </div>
</div>



    <div id="ajax-error-message" class="flash flash-error">
      <span class="octicon octicon-alert"></span>
      <a href="#" class="octicon octicon-x close js-ajax-error-dismiss" aria-label="Dismiss error"></a>
      Something went wrong with that request. Please try again.
    </div>


      <script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/frameworks-0c1b00f7935ae85624f5fc5d40d52d60febf92b4.js" type="text/javascript"></script>
      <script async="async" crossorigin="anonymous" src="https://assets-cdn.github.com/assets/github-fbf037c05b1b216496f330cff338007e2f09a2a1.js" type="text/javascript"></script>
      
      
        <script async src="https://www.google-analytics.com/analytics.js"></script>
  </body>
</html>

