



<!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>odyssey.js/odyssey.js at master · CartoDB/odyssey.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/odyssey.js" name="twitter:title" /><meta content="odyssey.js - Making it easy to merge map and narrative" 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/odyssey.js" property="og:title" /><meta content="https://github.com/CartoDB/odyssey.js" property="og:url" /><meta content="odyssey.js - Making it easy to merge map and narrative" 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:0875:45482893:540AE8E3" 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="6My46zbrdbGuGrTjynhu15oVnlvnLY/4zWevFtRTFjkRm6Yasw9gxUCYimf+Eb2P3gxq7NPuVKE85orhbAMcRQ==" 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="odyssey.js - Making it easy to merge map and narrative">
  <meta name="go-import" content="github.com/CartoDB/odyssey.js git https://github.com/CartoDB/odyssey.js.git">

  <meta content="1799254" name="octolytics-dimension-user_id" /><meta content="CartoDB" name="octolytics-dimension-user_login" /><meta content="16149491" name="octolytics-dimension-repository_id" /><meta content="CartoDB/odyssey.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="16149491" name="octolytics-dimension-repository_network_root_id" /><meta content="CartoDB/odyssey.js" name="octolytics-dimension-repository_network_root_nwo" />
  <link href="https://github.com/CartoDB/odyssey.js/commits/master.atom" rel="alternate" title="Recent Commits to odyssey.js:master" 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%2Fodyssey.js%2Fblob%2Fmaster%2Fdist%2Fodyssey.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/odyssey.js/search" class="js-site-search-form" data-global-search-url="/search" data-repo-search-url="/CartoDB/odyssey.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%2Fodyssey.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/odyssey.js/stargazers">
      1,150
    </a>

  </li>

    <li>
      <a href="/login?return_to=%2FCartoDB%2Fodyssey.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/odyssey.js/network" class="social-count">
        119
      </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/odyssey.js" class="js-current-repository js-repo-home-link">odyssey.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/odyssey.js/issues/counts">
  <div class="sunken-menu-contents">
    <ul class="sunken-menu-group">
      <li class="tooltipped tooltipped-w" aria-label="Code">
        <a href="/CartoDB/odyssey.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/odyssey.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/odyssey.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/odyssey.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/odyssey.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/odyssey.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>


        <li class="tooltipped tooltipped-w" aria-label="Wiki">
          <a href="/CartoDB/odyssey.js/wiki" aria-label="Wiki" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-hotkey="g w" data-selected-links="repo_wiki /CartoDB/odyssey.js/wiki">
            <span class="octicon octicon-book"></span> <span class="full-word">Wiki</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/odyssey.js/pulse/weekly" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /CartoDB/odyssey.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/odyssey.js/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /CartoDB/odyssey.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/odyssey.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/odyssey.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/odyssey.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/odyssey.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/odyssey.js to your computer and use it in GitHub Desktop." aria-label="Save CartoDB/odyssey.js to your computer and use it in GitHub Desktop.">
    <span class="octicon octicon-device-desktop"></span>
    Clone in Desktop
  </a>

                <a href="/CartoDB/odyssey.js/archive/master.zip"
                   class="minibutton sidebar-button"
                   aria-label="Download the contents of CartoDB/odyssey.js as a zip file"
                   title="Download the contents of CartoDB/odyssey.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/odyssey.js/blob/cdb3133c004b23f04418a6e48121a7a610d6413f/dist/odyssey.js" class="hidden js-permalink-shortcut" data-hotkey="y">Permalink</a>

<!-- blob contrib key: blob_contributors:v21:8becea15b6f8f5ade0635657884f99e3 -->

<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="master"
    data-ref="master"
    title="master"
    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">master</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/odyssey.js/blob/gh-pages/dist/odyssey.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/odyssey.js/blob/jekyll2/dist/odyssey.js"
                 data-name="jekyll2"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text css-truncate-target"
                 title="jekyll2">jekyll2</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/odyssey.js/blob/master/dist/odyssey.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>

          <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>

        <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/odyssey.js/find/master"
          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/odyssey.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/odyssey.js" class="" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">odyssey.js</span></a></span></span><span class="separator"> / </span><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/CartoDB/odyssey.js/tree/master/dist" class="" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">dist</span></a></span><span class="separator"> / </span><strong class="final-path">odyssey.js</strong>
  </div>
</div>


  <div class="commit file-history-tease">
    <div class="file-history-tease-header">
        <img alt="Carlos Matallín" class="avatar" data-user="36676" height="24" src="https://avatars3.githubusercontent.com/u/36676?v=2&amp;s=48" width="24" />
        <span class="author"><a href="/matallo" rel="contributor">matallo</a></span>
        <time datetime="2014-06-16T11:10:40+02:00" is="relative-time">June 16, 2014</time>
        <div class="commit-title">
            <a href="/CartoDB/odyssey.js/commit/5d7057e1b854f281855046622fbcf2e914e52da4" class="message" data-pjax="true" title="fix events">fix events</a>
        </div>
    </div>

    <div class="participation">
      <p class="quickstat">
        <a href="#blob_contributors_box" rel="facebox">
          <strong>4</strong>
           contributors
        </a>
      </p>
          <a class="avatar-link tooltipped tooltipped-s" aria-label="matallo" href="/CartoDB/odyssey.js/commits/master/dist/odyssey.js?author=matallo"><img alt="Carlos Matallín" class="avatar" data-user="36676" height="20" src="https://avatars1.githubusercontent.com/u/36676?v=2&amp;s=40" width="20" /></a>
    <a class="avatar-link tooltipped tooltipped-s" aria-label="javisantana" href="/CartoDB/odyssey.js/commits/master/dist/odyssey.js?author=javisantana"><img alt="javi santana" class="avatar" data-user="30147" height="20" src="https://avatars0.githubusercontent.com/u/30147?v=2&amp;s=40" width="20" /></a>
    <a class="avatar-link tooltipped tooltipped-s" aria-label="piensaenpixel" href="/CartoDB/odyssey.js/commits/master/dist/odyssey.js?author=piensaenpixel"><img alt="piensaenpixel" class="avatar" data-user="1214201" height="20" src="https://avatars3.githubusercontent.com/u/1214201?v=2&amp;s=40" width="20" /></a>
    <a class="avatar-link tooltipped tooltipped-s" aria-label="andrewxhill" href="/CartoDB/odyssey.js/commits/master/dist/odyssey.js?author=andrewxhill"><img alt="Andrew W. Hill" class="avatar" data-user="370259" height="20" src="https://avatars3.githubusercontent.com/u/370259?v=2&amp;s=40" width="20" /></a>


    </div>
    <div id="blob_contributors_box" style="display:none">
      <h2 class="facebox-header">Users who have contributed to this file</h2>
      <ul class="facebox-user-list">
          <li class="facebox-user-list-item">
            <img alt="Carlos Matallín" data-user="36676" height="24" src="https://avatars3.githubusercontent.com/u/36676?v=2&amp;s=48" width="24" />
            <a href="/matallo">matallo</a>
          </li>
          <li class="facebox-user-list-item">
            <img alt="javi santana" data-user="30147" height="24" src="https://avatars2.githubusercontent.com/u/30147?v=2&amp;s=48" width="24" />
            <a href="/javisantana">javisantana</a>
          </li>
          <li class="facebox-user-list-item">
            <img alt="piensaenpixel" data-user="1214201" height="24" src="https://avatars1.githubusercontent.com/u/1214201?v=2&amp;s=48" width="24" />
            <a href="/piensaenpixel">piensaenpixel</a>
          </li>
          <li class="facebox-user-list-item">
            <img alt="Andrew W. Hill" data-user="370259" height="24" src="https://avatars1.githubusercontent.com/u/370259?v=2&amp;s=48" width="24" />
            <a href="/andrewxhill">andrewxhill</a>
          </li>
      </ul>
    </div>
  </div>

<div class="file-box">
  <div class="file">
    <div class="meta clearfix">
      <div class="info file-name">
          <span>6735 lines (5684 sloc)</span>
          <span class="meta-divider"></span>
        <span>182.829 kb</span>
      </div>
      <div class="actions">
        <div class="button-group">
          <a href="/CartoDB/odyssey.js/raw/master/dist/odyssey.js" class="minibutton " id="raw-url">Raw</a>
            <a href="/CartoDB/odyssey.js/blame/master/dist/odyssey.js" class="minibutton js-update-url-with-hash">Blame</a>
          <a href="/CartoDB/odyssey.js/commits/master/dist/odyssey.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"><span class="o">!</span><span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">){</span><span class="k">if</span><span class="p">(</span><span class="s2">&quot;object&quot;</span><span class="o">==</span><span class="k">typeof</span> <span class="nx">exports</span><span class="o">&amp;&amp;</span><span class="s2">&quot;undefined&quot;</span><span class="o">!=</span><span class="k">typeof</span> <span class="nx">module</span><span class="p">)</span><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span><span class="o">=</span><span class="nx">e</span><span class="p">();</span><span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="s2">&quot;function&quot;</span><span class="o">==</span><span class="k">typeof</span> <span class="nx">define</span><span class="o">&amp;&amp;</span><span class="nx">define</span><span class="p">.</span><span class="nx">amd</span><span class="p">)</span><span class="nx">define</span><span class="p">([],</span><span class="nx">e</span><span class="p">);</span><span class="k">else</span><span class="p">{</span><span class="kd">var</span> <span class="nx">f</span><span class="p">;</span><span class="s2">&quot;undefined&quot;</span><span class="o">!=</span><span class="k">typeof</span> <span class="nb">window</span><span class="o">?</span><span class="nx">f</span><span class="o">=</span><span class="nb">window</span><span class="o">:</span><span class="s2">&quot;undefined&quot;</span><span class="o">!=</span><span class="k">typeof</span> <span class="nx">global</span><span class="o">?</span><span class="nx">f</span><span class="o">=</span><span class="nx">global</span><span class="o">:</span><span class="s2">&quot;undefined&quot;</span><span class="o">!=</span><span class="k">typeof</span> <span class="nx">self</span><span class="o">&amp;&amp;</span><span class="p">(</span><span class="nx">f</span><span class="o">=</span><span class="nx">self</span><span class="p">),</span><span class="nx">f</span><span class="p">.</span><span class="nx">O</span><span class="o">=</span><span class="nx">e</span><span class="p">()}}(</span><span class="kd">function</span><span class="p">(){</span><span class="kd">var</span> <span class="nx">define</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">;</span><span class="k">return</span> <span class="p">(</span><span class="kd">function</span> <span class="nx">e</span><span class="p">(</span><span class="nx">t</span><span class="p">,</span><span class="nx">n</span><span class="p">,</span><span class="nx">r</span><span class="p">){</span><span class="kd">function</span> <span class="nx">s</span><span class="p">(</span><span class="nx">o</span><span class="p">,</span><span class="nx">u</span><span class="p">){</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">n</span><span class="p">[</span><span class="nx">o</span><span class="p">]){</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">t</span><span class="p">[</span><span class="nx">o</span><span class="p">]){</span><span class="kd">var</span> <span class="nx">a</span><span class="o">=</span><span class="k">typeof</span> <span class="nx">require</span><span class="o">==</span><span class="s2">&quot;function&quot;</span><span class="o">&amp;&amp;</span><span class="nx">require</span><span class="p">;</span><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">u</span><span class="o">&amp;&amp;</span><span class="nx">a</span><span class="p">)</span><span class="k">return</span> <span class="nx">a</span><span class="p">(</span><span class="nx">o</span><span class="p">,</span><span class="o">!</span><span class="mi">0</span><span class="p">);</span><span class="k">if</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span><span class="k">return</span> <span class="nx">i</span><span class="p">(</span><span class="nx">o</span><span class="p">,</span><span class="o">!</span><span class="mi">0</span><span class="p">);</span><span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">&quot;Cannot find module &#39;&quot;</span><span class="o">+</span><span class="nx">o</span><span class="o">+</span><span class="s2">&quot;&#39;&quot;</span><span class="p">)}</span><span class="kd">var</span> <span class="nx">f</span><span class="o">=</span><span class="nx">n</span><span class="p">[</span><span class="nx">o</span><span class="p">]</span><span class="o">=</span><span class="p">{</span><span class="nx">exports</span><span class="o">:</span><span class="p">{}};</span><span class="nx">t</span><span class="p">[</span><span class="nx">o</span><span class="p">][</span><span class="mi">0</span><span class="p">].</span><span class="nx">call</span><span class="p">(</span><span class="nx">f</span><span class="p">.</span><span class="nx">exports</span><span class="p">,</span><span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">){</span><span class="kd">var</span> <span class="nx">n</span><span class="o">=</span><span class="nx">t</span><span class="p">[</span><span class="nx">o</span><span class="p">][</span><span class="mi">1</span><span class="p">][</span><span class="nx">e</span><span class="p">];</span><span class="k">return</span> <span class="nx">s</span><span class="p">(</span><span class="nx">n</span><span class="o">?</span><span class="nx">n</span><span class="o">:</span><span class="nx">e</span><span class="p">)},</span><span class="nx">f</span><span class="p">,</span><span class="nx">f</span><span class="p">.</span><span class="nx">exports</span><span class="p">,</span><span class="nx">e</span><span class="p">,</span><span class="nx">t</span><span class="p">,</span><span class="nx">n</span><span class="p">,</span><span class="nx">r</span><span class="p">)}</span><span class="k">return</span> <span class="nx">n</span><span class="p">[</span><span class="nx">o</span><span class="p">].</span><span class="nx">exports</span><span class="p">}</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="k">typeof</span> <span class="nx">require</span><span class="o">==</span><span class="s2">&quot;function&quot;</span><span class="o">&amp;&amp;</span><span class="nx">require</span><span class="p">;</span><span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">o</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span><span class="nx">o</span><span class="o">&lt;</span><span class="nx">r</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="nx">o</span><span class="o">++</span><span class="p">)</span><span class="nx">s</span><span class="p">(</span><span class="nx">r</span><span class="p">[</span><span class="nx">o</span><span class="p">]);</span><span class="k">return</span> <span class="nx">s</span><span class="p">})({</span><span class="mi">1</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></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">
</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"><span class="kd">var</span> <span class="nx">e</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./lib/odyssey/story&#39;</span><span class="p">);</span></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"><span class="nx">e</span><span class="p">.</span><span class="nx">Actions</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./lib/odyssey/actions&#39;</span><span class="p">);</span></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"><span class="nx">e</span><span class="p">.</span><span class="nx">Triggers</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./lib/odyssey/triggers&#39;</span><span class="p">);</span></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"><span class="nx">e</span><span class="p">.</span><span class="nx">Core</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./lib/odyssey/core&#39;</span><span class="p">);</span></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"><span class="nx">e</span><span class="p">.</span><span class="nx">Template</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./lib/odyssey/template&#39;</span><span class="p">);</span></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"><span class="nx">e</span><span class="p">.</span><span class="nx">UI</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./lib/odyssey/ui&#39;</span><span class="p">);</span></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"><span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./lib/odyssey/util&#39;</span><span class="p">);</span></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">
</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"><span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">k</span> <span class="k">in</span> <span class="nx">e</span><span class="p">.</span><span class="nx">Actions</span><span class="p">)</span> <span class="p">{</span></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">  <span class="nx">e</span><span class="p">[</span><span class="nx">k</span><span class="p">]</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">Actions</span><span class="p">[</span><span class="nx">k</span><span class="p">];</span></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"><span class="p">}</span></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"><span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">k</span> <span class="k">in</span> <span class="nx">e</span><span class="p">.</span><span class="nx">Triggers</span><span class="p">)</span> <span class="p">{</span></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">  <span class="nx">e</span><span class="p">[</span><span class="nx">k</span><span class="p">]</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">Triggers</span><span class="p">[</span><span class="nx">k</span><span class="p">];</span></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"><span class="p">}</span></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"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">e</span><span class="p">;</span></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">
</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"><span class="p">},{</span><span class="s2">&quot;./lib/odyssey/actions&quot;</span><span class="o">:</span><span class="mi">5</span><span class="p">,</span><span class="s2">&quot;./lib/odyssey/core&quot;</span><span class="o">:</span><span class="mi">13</span><span class="p">,</span><span class="s2">&quot;./lib/odyssey/story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">,</span><span class="s2">&quot;./lib/odyssey/template&quot;</span><span class="o">:</span><span class="mi">15</span><span class="p">,</span><span class="s2">&quot;./lib/odyssey/triggers&quot;</span><span class="o">:</span><span class="mi">17</span><span class="p">,</span><span class="s2">&quot;./lib/odyssey/ui&quot;</span><span class="o">:</span><span class="mi">23</span><span class="p">,</span><span class="s2">&quot;./lib/odyssey/util&quot;</span><span class="o">:</span><span class="mi">26</span><span class="p">}],</span><span class="mi">2</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></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">
</td>
      </tr>
      <tr>
        <td id="L21" class="blob-num js-line-number" data-line-number="21"></td>
        <td id="LC21" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Action</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L22" class="blob-num js-line-number" data-line-number="22"></td>
        <td id="LC22" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L23" class="blob-num js-line-number" data-line-number="23"></td>
        <td id="LC23" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L24" class="blob-num js-line-number" data-line-number="24"></td>
        <td id="LC24" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">CSS</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L25" class="blob-num js-line-number" data-line-number="25"></td>
        <td id="LC25" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L26" class="blob-num js-line-number" data-line-number="26"></td>
        <td id="LC26" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_css</span><span class="p">()</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L27" class="blob-num js-line-number" data-line-number="27"></td>
        <td id="LC27" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L28" class="blob-num js-line-number" data-line-number="28"></td>
        <td id="LC28" class="blob-code js-file-line">  <span class="nx">_css</span><span class="p">.</span><span class="nx">toggleClass</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">cl</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L29" class="blob-num js-line-number" data-line-number="29"></td>
        <td id="LC29" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L30" class="blob-num js-line-number" data-line-number="30"></td>
        <td id="LC30" class="blob-code js-file-line">      <span class="nx">el</span><span class="p">.</span><span class="nx">toggleClass</span><span class="p">(</span><span class="nx">cl</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L31" class="blob-num js-line-number" data-line-number="31"></td>
        <td id="LC31" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L32" class="blob-num js-line-number" data-line-number="32"></td>
        <td id="LC32" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L33" class="blob-num js-line-number" data-line-number="33"></td>
        <td id="LC33" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L34" class="blob-num js-line-number" data-line-number="34"></td>
        <td id="LC34" class="blob-code js-file-line">  <span class="nx">_css</span><span class="p">.</span><span class="nx">addClass</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">cl</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L35" class="blob-num js-line-number" data-line-number="35"></td>
        <td id="LC35" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L36" class="blob-num js-line-number" data-line-number="36"></td>
        <td id="LC36" class="blob-code js-file-line">      <span class="nx">el</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">cl</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L37" class="blob-num js-line-number" data-line-number="37"></td>
        <td id="LC37" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L38" class="blob-num js-line-number" data-line-number="38"></td>
        <td id="LC38" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L39" class="blob-num js-line-number" data-line-number="39"></td>
        <td id="LC39" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L40" class="blob-num js-line-number" data-line-number="40"></td>
        <td id="LC40" class="blob-code js-file-line">  <span class="nx">_css</span><span class="p">.</span><span class="nx">removeClass</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">cl</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L41" class="blob-num js-line-number" data-line-number="41"></td>
        <td id="LC41" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L42" class="blob-num js-line-number" data-line-number="42"></td>
        <td id="LC42" class="blob-code js-file-line">      <span class="nx">el</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">cl</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L43" class="blob-num js-line-number" data-line-number="43"></td>
        <td id="LC43" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L44" class="blob-num js-line-number" data-line-number="44"></td>
        <td id="LC44" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L45" class="blob-num js-line-number" data-line-number="45"></td>
        <td id="LC45" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L46" class="blob-num js-line-number" data-line-number="46"></td>
        <td id="LC46" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">_css</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L47" class="blob-num js-line-number" data-line-number="47"></td>
        <td id="LC47" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L48" class="blob-num js-line-number" data-line-number="48"></td>
        <td id="LC48" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L49" class="blob-num js-line-number" data-line-number="49"></td>
        <td id="LC49" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L50" class="blob-num js-line-number" data-line-number="50"></td>
        <td id="LC50" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">CSS</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L51" class="blob-num js-line-number" data-line-number="51"></td>
        <td id="LC51" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L52" class="blob-num js-line-number" data-line-number="52"></td>
        <td id="LC52" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">3</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L53" class="blob-num js-line-number" data-line-number="53"></td>
        <td id="LC53" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L54" class="blob-num js-line-number" data-line-number="54"></td>
        <td id="LC54" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Action</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L55" class="blob-num js-line-number" data-line-number="55"></td>
        <td id="LC55" class="blob-code js-file-line"><span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L56" class="blob-num js-line-number" data-line-number="56"></td>
        <td id="LC56" class="blob-code js-file-line"><span class="c1">// debug action</span></td>
      </tr>
      <tr>
        <td id="L57" class="blob-num js-line-number" data-line-number="57"></td>
        <td id="LC57" class="blob-code js-file-line"><span class="c1">// prints information about current state</span></td>
      </tr>
      <tr>
        <td id="L58" class="blob-num js-line-number" data-line-number="58"></td>
        <td id="LC58" class="blob-code js-file-line"><span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L59" class="blob-num js-line-number" data-line-number="59"></td>
        <td id="LC59" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Debug</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L60" class="blob-num js-line-number" data-line-number="60"></td>
        <td id="LC60" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_debug</span><span class="p">()</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L61" class="blob-num js-line-number" data-line-number="61"></td>
        <td id="LC61" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L62" class="blob-num js-line-number" data-line-number="62"></td>
        <td id="LC62" class="blob-code js-file-line">  <span class="nx">_debug</span><span class="p">.</span><span class="nx">log</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L63" class="blob-num js-line-number" data-line-number="63"></td>
        <td id="LC63" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L64" class="blob-num js-line-number" data-line-number="64"></td>
        <td id="LC64" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L65" class="blob-num js-line-number" data-line-number="65"></td>
        <td id="LC65" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L66" class="blob-num js-line-number" data-line-number="66"></td>
        <td id="LC66" class="blob-code js-file-line">      <span class="nx">enter</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L67" class="blob-num js-line-number" data-line-number="67"></td>
        <td id="LC67" class="blob-code js-file-line">        <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;STATE =&gt;&quot;</span><span class="p">,</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L68" class="blob-num js-line-number" data-line-number="68"></td>
        <td id="LC68" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L69" class="blob-num js-line-number" data-line-number="69"></td>
        <td id="LC69" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L70" class="blob-num js-line-number" data-line-number="70"></td>
        <td id="LC70" class="blob-code js-file-line">      <span class="nx">update</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L71" class="blob-num js-line-number" data-line-number="71"></td>
        <td id="LC71" class="blob-code js-file-line">        <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;STATE (.)&quot;</span><span class="p">,</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L72" class="blob-num js-line-number" data-line-number="72"></td>
        <td id="LC72" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L73" class="blob-num js-line-number" data-line-number="73"></td>
        <td id="LC73" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L74" class="blob-num js-line-number" data-line-number="74"></td>
        <td id="LC74" class="blob-code js-file-line">      <span class="nx">exit</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L75" class="blob-num js-line-number" data-line-number="75"></td>
        <td id="LC75" class="blob-code js-file-line">        <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">&quot;STATE &lt;=&quot;</span><span class="p">,</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L76" class="blob-num js-line-number" data-line-number="76"></td>
        <td id="LC76" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L77" class="blob-num js-line-number" data-line-number="77"></td>
        <td id="LC77" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L78" class="blob-num js-line-number" data-line-number="78"></td>
        <td id="LC78" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L79" class="blob-num js-line-number" data-line-number="79"></td>
        <td id="LC79" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L80" class="blob-num js-line-number" data-line-number="80"></td>
        <td id="LC80" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L81" class="blob-num js-line-number" data-line-number="81"></td>
        <td id="LC81" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L82" class="blob-num js-line-number" data-line-number="82"></td>
        <td id="LC82" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">_debug</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L83" class="blob-num js-line-number" data-line-number="83"></td>
        <td id="LC83" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L84" class="blob-num js-line-number" data-line-number="84"></td>
        <td id="LC84" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L85" class="blob-num js-line-number" data-line-number="85"></td>
        <td id="LC85" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Debug</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L86" class="blob-num js-line-number" data-line-number="86"></td>
        <td id="LC86" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L87" class="blob-num js-line-number" data-line-number="87"></td>
        <td id="LC87" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">4</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L88" class="blob-num js-line-number" data-line-number="88"></td>
        <td id="LC88" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L89" class="blob-num js-line-number" data-line-number="89"></td>
        <td id="LC89" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Action</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L90" class="blob-num js-line-number" data-line-number="90"></td>
        <td id="LC90" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L91" class="blob-num js-line-number" data-line-number="91"></td>
        <td id="LC91" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Audio</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L92" class="blob-num js-line-number" data-line-number="92"></td>
        <td id="LC92" class="blob-code js-file-line">  <span class="k">return</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L93" class="blob-num js-line-number" data-line-number="93"></td>
        <td id="LC93" class="blob-code js-file-line">    <span class="nx">play</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L94" class="blob-num js-line-number" data-line-number="94"></td>
        <td id="LC94" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L95" class="blob-num js-line-number" data-line-number="95"></td>
        <td id="LC95" class="blob-code js-file-line">        <span class="nx">el</span><span class="p">.</span><span class="nx">play</span><span class="p">()</span></td>
      </tr>
      <tr>
        <td id="L96" class="blob-num js-line-number" data-line-number="96"></td>
        <td id="LC96" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L97" class="blob-num js-line-number" data-line-number="97"></td>
        <td id="LC97" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L98" class="blob-num js-line-number" data-line-number="98"></td>
        <td id="LC98" class="blob-code js-file-line">    <span class="nx">pause</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L99" class="blob-num js-line-number" data-line-number="99"></td>
        <td id="LC99" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L100" class="blob-num js-line-number" data-line-number="100"></td>
        <td id="LC100" class="blob-code js-file-line">        <span class="nx">el</span><span class="p">.</span><span class="nx">pause</span><span class="p">()</span></td>
      </tr>
      <tr>
        <td id="L101" class="blob-num js-line-number" data-line-number="101"></td>
        <td id="LC101" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L102" class="blob-num js-line-number" data-line-number="102"></td>
        <td id="LC102" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L103" class="blob-num js-line-number" data-line-number="103"></td>
        <td id="LC103" class="blob-code js-file-line">    <span class="nx">setCurrentTime</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">t</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L104" class="blob-num js-line-number" data-line-number="104"></td>
        <td id="LC104" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L105" class="blob-num js-line-number" data-line-number="105"></td>
        <td id="LC105" class="blob-code js-file-line">        <span class="nx">el</span><span class="p">.</span><span class="nx">currentTime</span> <span class="o">=</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L106" class="blob-num js-line-number" data-line-number="106"></td>
        <td id="LC106" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L107" class="blob-num js-line-number" data-line-number="107"></td>
        <td id="LC107" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L108" class="blob-num js-line-number" data-line-number="108"></td>
        <td id="LC108" class="blob-code js-file-line">	<span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L109" class="blob-num js-line-number" data-line-number="109"></td>
        <td id="LC109" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L110" class="blob-num js-line-number" data-line-number="110"></td>
        <td id="LC110" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L111" class="blob-num js-line-number" data-line-number="111"></td>
        <td id="LC111" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Audio</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L112" class="blob-num js-line-number" data-line-number="112"></td>
        <td id="LC112" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L113" class="blob-num js-line-number" data-line-number="113"></td>
        <td id="LC113" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L114" class="blob-num js-line-number" data-line-number="114"></td>
        <td id="LC114" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">5</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L115" class="blob-num js-line-number" data-line-number="115"></td>
        <td id="LC115" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L116" class="blob-num js-line-number" data-line-number="116"></td>
        <td id="LC116" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L117" class="blob-num js-line-number" data-line-number="117"></td>
        <td id="LC117" class="blob-code js-file-line">  <span class="nx">Sleep</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./sleep&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L118" class="blob-num js-line-number" data-line-number="118"></td>
        <td id="LC118" class="blob-code js-file-line">  <span class="nx">Debug</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./debug&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L119" class="blob-num js-line-number" data-line-number="119"></td>
        <td id="LC119" class="blob-code js-file-line">  <span class="nx">Location</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./location&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L120" class="blob-num js-line-number" data-line-number="120"></td>
        <td id="LC120" class="blob-code js-file-line">  <span class="nx">Audio</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./html5audio&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L121" class="blob-num js-line-number" data-line-number="121"></td>
        <td id="LC121" class="blob-code js-file-line">  <span class="nx">Leaflet</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L122" class="blob-num js-line-number" data-line-number="122"></td>
        <td id="LC122" class="blob-code js-file-line">    <span class="nx">Marker</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./leaflet/marker&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L123" class="blob-num js-line-number" data-line-number="123"></td>
        <td id="LC123" class="blob-code js-file-line">    <span class="nx">Map</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./leaflet/map&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L124" class="blob-num js-line-number" data-line-number="124"></td>
        <td id="LC124" class="blob-code js-file-line">    <span class="nx">Popup</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./leaflet/popup&#39;</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L125" class="blob-num js-line-number" data-line-number="125"></td>
        <td id="LC125" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L126" class="blob-num js-line-number" data-line-number="126"></td>
        <td id="LC126" class="blob-code js-file-line">  <span class="nx">CSS</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./css&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L127" class="blob-num js-line-number" data-line-number="127"></td>
        <td id="LC127" class="blob-code js-file-line">  <span class="nx">Slides</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./slides&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L128" class="blob-num js-line-number" data-line-number="128"></td>
        <td id="LC128" class="blob-code js-file-line">  <span class="nx">MiniProgressBar</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./mini_progressbar&#39;</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L129" class="blob-num js-line-number" data-line-number="129"></td>
        <td id="LC129" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L130" class="blob-num js-line-number" data-line-number="130"></td>
        <td id="LC130" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L131" class="blob-num js-line-number" data-line-number="131"></td>
        <td id="LC131" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;./css&quot;</span><span class="o">:</span><span class="mi">2</span><span class="p">,</span><span class="s2">&quot;./debug&quot;</span><span class="o">:</span><span class="mi">3</span><span class="p">,</span><span class="s2">&quot;./html5audio&quot;</span><span class="o">:</span><span class="mi">4</span><span class="p">,</span><span class="s2">&quot;./leaflet/map&quot;</span><span class="o">:</span><span class="mi">6</span><span class="p">,</span><span class="s2">&quot;./leaflet/marker&quot;</span><span class="o">:</span><span class="mi">7</span><span class="p">,</span><span class="s2">&quot;./leaflet/popup&quot;</span><span class="o">:</span><span class="mi">8</span><span class="p">,</span><span class="s2">&quot;./location&quot;</span><span class="o">:</span><span class="mi">9</span><span class="p">,</span><span class="s2">&quot;./mini_progressbar&quot;</span><span class="o">:</span><span class="mi">10</span><span class="p">,</span><span class="s2">&quot;./sleep&quot;</span><span class="o">:</span><span class="mi">11</span><span class="p">,</span><span class="s2">&quot;./slides&quot;</span><span class="o">:</span><span class="mi">12</span><span class="p">}],</span><span class="mi">6</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L132" class="blob-num js-line-number" data-line-number="132"></td>
        <td id="LC132" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L133" class="blob-num js-line-number" data-line-number="133"></td>
        <td id="LC133" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Action</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../../story&#39;</span><span class="p">).</span><span class="nx">Action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L134" class="blob-num js-line-number" data-line-number="134"></td>
        <td id="LC134" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L135" class="blob-num js-line-number" data-line-number="135"></td>
        <td id="LC135" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">MapActions</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L136" class="blob-num js-line-number" data-line-number="136"></td>
        <td id="LC136" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L137" class="blob-num js-line-number" data-line-number="137"></td>
        <td id="LC137" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_map</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L138" class="blob-num js-line-number" data-line-number="138"></td>
        <td id="LC138" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L139" class="blob-num js-line-number" data-line-number="139"></td>
        <td id="LC139" class="blob-code js-file-line">  <span class="c1">// helper method to translate leaflet methods to actions</span></td>
      </tr>
      <tr>
        <td id="L140" class="blob-num js-line-number" data-line-number="140"></td>
        <td id="LC140" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">leaflet_method</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L141" class="blob-num js-line-number" data-line-number="141"></td>
        <td id="LC141" class="blob-code js-file-line">    <span class="nx">_map</span><span class="p">[</span><span class="nx">name</span><span class="p">]</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L142" class="blob-num js-line-number" data-line-number="142"></td>
        <td id="LC142" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">args</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L143" class="blob-num js-line-number" data-line-number="143"></td>
        <td id="LC143" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L144" class="blob-num js-line-number" data-line-number="144"></td>
        <td id="LC144" class="blob-code js-file-line">        <span class="nx">map</span><span class="p">[</span><span class="nx">name</span><span class="p">].</span><span class="nx">apply</span><span class="p">(</span><span class="nx">map</span><span class="p">,</span> <span class="nx">args</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L145" class="blob-num js-line-number" data-line-number="145"></td>
        <td id="LC145" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L146" class="blob-num js-line-number" data-line-number="146"></td>
        <td id="LC146" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L147" class="blob-num js-line-number" data-line-number="147"></td>
        <td id="LC147" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L148" class="blob-num js-line-number" data-line-number="148"></td>
        <td id="LC148" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L149" class="blob-num js-line-number" data-line-number="149"></td>
        <td id="LC149" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">leaflet_move_method</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="nx">signal</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L150" class="blob-num js-line-number" data-line-number="150"></td>
        <td id="LC150" class="blob-code js-file-line">    <span class="nx">_map</span><span class="p">[</span><span class="nx">name</span><span class="p">]</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L151" class="blob-num js-line-number" data-line-number="151"></td>
        <td id="LC151" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">args</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L152" class="blob-num js-line-number" data-line-number="152"></td>
        <td id="LC152" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">Action</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L153" class="blob-num js-line-number" data-line-number="153"></td>
        <td id="LC153" class="blob-code js-file-line">        <span class="nx">enter</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L154" class="blob-num js-line-number" data-line-number="154"></td>
        <td id="LC154" class="blob-code js-file-line">          <span class="k">this</span><span class="p">.</span><span class="nx">moveEnd</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L155" class="blob-num js-line-number" data-line-number="155"></td>
        <td id="LC155" class="blob-code js-file-line">            <span class="nx">map</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="nx">signal</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">moveEnd</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L156" class="blob-num js-line-number" data-line-number="156"></td>
        <td id="LC156" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">finish</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L157" class="blob-num js-line-number" data-line-number="157"></td>
        <td id="LC157" class="blob-code js-file-line">          <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L158" class="blob-num js-line-number" data-line-number="158"></td>
        <td id="LC158" class="blob-code js-file-line">          <span class="nx">map</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nx">signal</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">moveEnd</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L159" class="blob-num js-line-number" data-line-number="159"></td>
        <td id="LC159" class="blob-code js-file-line">          <span class="nx">map</span><span class="p">[</span><span class="nx">name</span><span class="p">].</span><span class="nx">apply</span><span class="p">(</span><span class="nx">map</span><span class="p">,</span> <span class="nx">args</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L160" class="blob-num js-line-number" data-line-number="160"></td>
        <td id="LC160" class="blob-code js-file-line">          <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L161" class="blob-num js-line-number" data-line-number="161"></td>
        <td id="LC161" class="blob-code js-file-line">        <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L162" class="blob-num js-line-number" data-line-number="162"></td>
        <td id="LC162" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L163" class="blob-num js-line-number" data-line-number="163"></td>
        <td id="LC163" class="blob-code js-file-line">        <span class="nx">clear</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L164" class="blob-num js-line-number" data-line-number="164"></td>
        <td id="LC164" class="blob-code js-file-line">          <span class="nx">map</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="nx">signal</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">moveEnd</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L165" class="blob-num js-line-number" data-line-number="165"></td>
        <td id="LC165" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L166" class="blob-num js-line-number" data-line-number="166"></td>
        <td id="LC166" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L167" class="blob-num js-line-number" data-line-number="167"></td>
        <td id="LC167" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L168" class="blob-num js-line-number" data-line-number="168"></td>
        <td id="LC168" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L169" class="blob-num js-line-number" data-line-number="169"></td>
        <td id="LC169" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L170" class="blob-num js-line-number" data-line-number="170"></td>
        <td id="LC170" class="blob-code js-file-line">  <span class="nx">_map</span><span class="p">.</span><span class="nx">moveLinearTo</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">from</span><span class="p">,</span> <span class="nx">to</span><span class="p">,</span> <span class="nx">options</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L171" class="blob-num js-line-number" data-line-number="171"></td>
        <td id="LC171" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">opt</span> <span class="o">=</span> <span class="nx">options</span> <span class="o">||</span> <span class="p">{</span> <span class="nx">k</span><span class="o">:</span> <span class="mi">2</span> <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L172" class="blob-num js-line-number" data-line-number="172"></td>
        <td id="LC172" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">animationTimer</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L173" class="blob-num js-line-number" data-line-number="173"></td>
        <td id="LC173" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">posTarget</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L174" class="blob-num js-line-number" data-line-number="174"></td>
        <td id="LC174" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">delta</span> <span class="o">=</span> <span class="mi">20</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L175" class="blob-num js-line-number" data-line-number="175"></td>
        <td id="LC175" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L176" class="blob-num js-line-number" data-line-number="176"></td>
        <td id="LC176" class="blob-code js-file-line">    <span class="c1">// leaflet map animation is not being used because</span></td>
      </tr>
      <tr>
        <td id="L177" class="blob-num js-line-number" data-line-number="177"></td>
        <td id="LC177" class="blob-code js-file-line">    <span class="c1">// when the action is updated the map just stop the animatin</span></td>
      </tr>
      <tr>
        <td id="L178" class="blob-num js-line-number" data-line-number="178"></td>
        <td id="LC178" class="blob-code js-file-line">    <span class="c1">// and start again</span></td>
      </tr>
      <tr>
        <td id="L179" class="blob-num js-line-number" data-line-number="179"></td>
        <td id="LC179" class="blob-code js-file-line">    <span class="c1">// the animtion should be smooth</span></td>
      </tr>
      <tr>
        <td id="L180" class="blob-num js-line-number" data-line-number="180"></td>
        <td id="LC180" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L181" class="blob-num js-line-number" data-line-number="181"></td>
        <td id="LC181" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L182" class="blob-num js-line-number" data-line-number="182"></td>
        <td id="LC182" class="blob-code js-file-line">      <span class="nx">enter</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L183" class="blob-num js-line-number" data-line-number="183"></td>
        <td id="LC183" class="blob-code js-file-line">        <span class="nx">posTarget</span> <span class="o">=</span> <span class="nx">map</span><span class="p">.</span><span class="nx">project</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nx">getCenter</span><span class="p">());</span></td>
      </tr>
      <tr>
        <td id="L184" class="blob-num js-line-number" data-line-number="184"></td>
        <td id="LC184" class="blob-code js-file-line">        <span class="nx">animationTimer</span> <span class="o">=</span> <span class="nx">setInterval</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L185" class="blob-num js-line-number" data-line-number="185"></td>
        <td id="LC185" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="nx">map</span><span class="p">.</span><span class="nx">project</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nx">getCenter</span><span class="p">());</span></td>
      </tr>
      <tr>
        <td id="L186" class="blob-num js-line-number" data-line-number="186"></td>
        <td id="LC186" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">px</span> <span class="o">=</span> <span class="nx">c</span><span class="p">.</span><span class="nx">x</span> <span class="o">+</span> <span class="p">(</span><span class="nx">posTarget</span><span class="p">.</span><span class="nx">x</span> <span class="o">-</span> <span class="nx">c</span><span class="p">.</span><span class="nx">x</span><span class="p">)</span><span class="o">*</span><span class="nx">delta</span><span class="o">*</span><span class="mf">0.001</span><span class="o">*</span> <span class="nx">opt</span><span class="p">.</span><span class="nx">k</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L187" class="blob-num js-line-number" data-line-number="187"></td>
        <td id="LC187" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">py</span> <span class="o">=</span> <span class="nx">c</span><span class="p">.</span><span class="nx">y</span> <span class="o">+</span> <span class="p">(</span><span class="nx">posTarget</span><span class="p">.</span><span class="nx">y</span> <span class="o">-</span> <span class="nx">c</span><span class="p">.</span><span class="nx">y</span><span class="p">)</span><span class="o">*</span><span class="nx">delta</span><span class="o">*</span><span class="mf">0.001</span><span class="o">*</span> <span class="nx">opt</span><span class="p">.</span><span class="nx">k</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L188" class="blob-num js-line-number" data-line-number="188"></td>
        <td id="LC188" class="blob-code js-file-line">          <span class="nx">map</span><span class="p">.</span><span class="nx">panTo</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nx">unproject</span><span class="p">(</span><span class="nx">L</span><span class="p">.</span><span class="nx">point</span><span class="p">(</span><span class="nx">px</span><span class="p">,</span> <span class="nx">py</span><span class="p">)),</span> <span class="p">{</span> <span class="nx">animate</span><span class="o">:</span> <span class="kc">false</span> <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L189" class="blob-num js-line-number" data-line-number="189"></td>
        <td id="LC189" class="blob-code js-file-line">        <span class="p">},</span> <span class="nx">delta</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L190" class="blob-num js-line-number" data-line-number="190"></td>
        <td id="LC190" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L191" class="blob-num js-line-number" data-line-number="191"></td>
        <td id="LC191" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L192" class="blob-num js-line-number" data-line-number="192"></td>
        <td id="LC192" class="blob-code js-file-line">      <span class="nx">update</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">t</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L193" class="blob-num js-line-number" data-line-number="193"></td>
        <td id="LC193" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">p0</span> <span class="o">=</span> <span class="nx">map</span><span class="p">.</span><span class="nx">project</span><span class="p">(</span><span class="nx">from</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L194" class="blob-num js-line-number" data-line-number="194"></td>
        <td id="LC194" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">p1</span> <span class="o">=</span> <span class="nx">map</span><span class="p">.</span><span class="nx">project</span><span class="p">(</span><span class="nx">to</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L195" class="blob-num js-line-number" data-line-number="195"></td>
        <td id="LC195" class="blob-code js-file-line">        <span class="nx">posTarget</span> <span class="o">=</span> <span class="nx">p0</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="nx">p1</span><span class="p">.</span><span class="nx">subtract</span><span class="p">(</span><span class="nx">p0</span><span class="p">).</span><span class="nx">multiplyBy</span><span class="p">(</span><span class="nx">t</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L196" class="blob-num js-line-number" data-line-number="196"></td>
        <td id="LC196" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L197" class="blob-num js-line-number" data-line-number="197"></td>
        <td id="LC197" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L198" class="blob-num js-line-number" data-line-number="198"></td>
        <td id="LC198" class="blob-code js-file-line">      <span class="nx">exit</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L199" class="blob-num js-line-number" data-line-number="199"></td>
        <td id="LC199" class="blob-code js-file-line">        <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">animationTimer</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L200" class="blob-num js-line-number" data-line-number="200"></td>
        <td id="LC200" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L201" class="blob-num js-line-number" data-line-number="201"></td>
        <td id="LC201" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L202" class="blob-num js-line-number" data-line-number="202"></td>
        <td id="LC202" class="blob-code js-file-line">      <span class="nx">clean</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L203" class="blob-num js-line-number" data-line-number="203"></td>
        <td id="LC203" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">exit</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L204" class="blob-num js-line-number" data-line-number="204"></td>
        <td id="LC204" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L205" class="blob-num js-line-number" data-line-number="205"></td>
        <td id="LC205" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L206" class="blob-num js-line-number" data-line-number="206"></td>
        <td id="LC206" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L207" class="blob-num js-line-number" data-line-number="207"></td>
        <td id="LC207" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L208" class="blob-num js-line-number" data-line-number="208"></td>
        <td id="LC208" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L209" class="blob-num js-line-number" data-line-number="209"></td>
        <td id="LC209" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L210" class="blob-num js-line-number" data-line-number="210"></td>
        <td id="LC210" class="blob-code js-file-line">  <span class="c1">// leaflet methods</span></td>
      </tr>
      <tr>
        <td id="L211" class="blob-num js-line-number" data-line-number="211"></td>
        <td id="LC211" class="blob-code js-file-line">  <span class="nx">leaflet_move_method</span><span class="p">(</span><span class="s1">&#39;panTo&#39;</span><span class="p">,</span> <span class="s1">&#39;moveend&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L212" class="blob-num js-line-number" data-line-number="212"></td>
        <td id="LC212" class="blob-code js-file-line">  <span class="nx">leaflet_move_method</span><span class="p">(</span><span class="s1">&#39;setView&#39;</span><span class="p">,</span> <span class="s1">&#39;moveend&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L213" class="blob-num js-line-number" data-line-number="213"></td>
        <td id="LC213" class="blob-code js-file-line">  <span class="nx">leaflet_move_method</span><span class="p">(</span><span class="s1">&#39;setZoom&#39;</span><span class="p">,</span> <span class="s1">&#39;zoomend&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L214" class="blob-num js-line-number" data-line-number="214"></td>
        <td id="LC214" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L215" class="blob-num js-line-number" data-line-number="215"></td>
        <td id="LC215" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">_map</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L216" class="blob-num js-line-number" data-line-number="216"></td>
        <td id="LC216" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L217" class="blob-num js-line-number" data-line-number="217"></td>
        <td id="LC217" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L218" class="blob-num js-line-number" data-line-number="218"></td>
        <td id="LC218" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L219" class="blob-num js-line-number" data-line-number="219"></td>
        <td id="LC219" class="blob-code js-file-line"><span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nb">window</span><span class="p">.</span><span class="nx">L</span> <span class="o">!==</span> <span class="s1">&#39;undefined&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L220" class="blob-num js-line-number" data-line-number="220"></td>
        <td id="LC220" class="blob-code js-file-line">  <span class="nx">L</span><span class="p">.</span><span class="nx">Map</span><span class="p">.</span><span class="nx">addInitHook</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L221" class="blob-num js-line-number" data-line-number="221"></td>
        <td id="LC221" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">actions</span> <span class="o">=</span> <span class="nx">MapActions</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L222" class="blob-num js-line-number" data-line-number="222"></td>
        <td id="LC222" class="blob-code js-file-line">  <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L223" class="blob-num js-line-number" data-line-number="223"></td>
        <td id="LC223" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L224" class="blob-num js-line-number" data-line-number="224"></td>
        <td id="LC224" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">MapActions</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L225" class="blob-num js-line-number" data-line-number="225"></td>
        <td id="LC225" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L226" class="blob-num js-line-number" data-line-number="226"></td>
        <td id="LC226" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L227" class="blob-num js-line-number" data-line-number="227"></td>
        <td id="LC227" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">7</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L228" class="blob-num js-line-number" data-line-number="228"></td>
        <td id="LC228" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L229" class="blob-num js-line-number" data-line-number="229"></td>
        <td id="LC229" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Action</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../../story&#39;</span><span class="p">).</span><span class="nx">Action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L230" class="blob-num js-line-number" data-line-number="230"></td>
        <td id="LC230" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L231" class="blob-num js-line-number" data-line-number="231"></td>
        <td id="LC231" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">MarkerActions</span><span class="p">(</span><span class="nx">marker</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L232" class="blob-num js-line-number" data-line-number="232"></td>
        <td id="LC232" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L233" class="blob-num js-line-number" data-line-number="233"></td>
        <td id="LC233" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_marker</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L234" class="blob-num js-line-number" data-line-number="234"></td>
        <td id="LC234" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L235" class="blob-num js-line-number" data-line-number="235"></td>
        <td id="LC235" class="blob-code js-file-line">  <span class="nx">_marker</span><span class="p">.</span><span class="nx">addTo</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L236" class="blob-num js-line-number" data-line-number="236"></td>
        <td id="LC236" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L237" class="blob-num js-line-number" data-line-number="237"></td>
        <td id="LC237" class="blob-code js-file-line">      <span class="nx">marker</span><span class="p">.</span><span class="nx">addTo</span><span class="p">(</span><span class="nx">map</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L238" class="blob-num js-line-number" data-line-number="238"></td>
        <td id="LC238" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L239" class="blob-num js-line-number" data-line-number="239"></td>
        <td id="LC239" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L240" class="blob-num js-line-number" data-line-number="240"></td>
        <td id="LC240" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L241" class="blob-num js-line-number" data-line-number="241"></td>
        <td id="LC241" class="blob-code js-file-line">  <span class="nx">_marker</span><span class="p">.</span><span class="nx">addRemove</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L242" class="blob-num js-line-number" data-line-number="242"></td>
        <td id="LC242" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L243" class="blob-num js-line-number" data-line-number="243"></td>
        <td id="LC243" class="blob-code js-file-line">      <span class="nx">enter</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L244" class="blob-num js-line-number" data-line-number="244"></td>
        <td id="LC244" class="blob-code js-file-line">        <span class="nx">marker</span><span class="p">.</span><span class="nx">addTo</span><span class="p">(</span><span class="nx">map</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L245" class="blob-num js-line-number" data-line-number="245"></td>
        <td id="LC245" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L246" class="blob-num js-line-number" data-line-number="246"></td>
        <td id="LC246" class="blob-code js-file-line">      <span class="nx">exit</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L247" class="blob-num js-line-number" data-line-number="247"></td>
        <td id="LC247" class="blob-code js-file-line">        <span class="nx">map</span><span class="p">.</span><span class="nx">removeLayer</span><span class="p">(</span><span class="nx">marker</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L248" class="blob-num js-line-number" data-line-number="248"></td>
        <td id="LC248" class="blob-code js-file-line">      <span class="p">},</span> </td>
      </tr>
      <tr>
        <td id="L249" class="blob-num js-line-number" data-line-number="249"></td>
        <td id="LC249" class="blob-code js-file-line">      <span class="nx">clear</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L250" class="blob-num js-line-number" data-line-number="250"></td>
        <td id="LC250" class="blob-code js-file-line">        <span class="nx">map</span><span class="p">.</span><span class="nx">removeLayer</span><span class="p">(</span><span class="nx">marker</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L251" class="blob-num js-line-number" data-line-number="251"></td>
        <td id="LC251" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L252" class="blob-num js-line-number" data-line-number="252"></td>
        <td id="LC252" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L253" class="blob-num js-line-number" data-line-number="253"></td>
        <td id="LC253" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L254" class="blob-num js-line-number" data-line-number="254"></td>
        <td id="LC254" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L255" class="blob-num js-line-number" data-line-number="255"></td>
        <td id="LC255" class="blob-code js-file-line">  <span class="nx">_marker</span><span class="p">.</span><span class="nx">icon</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">iconEnabled</span><span class="p">,</span> <span class="nx">iconDisabled</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L256" class="blob-num js-line-number" data-line-number="256"></td>
        <td id="LC256" class="blob-code js-file-line">    <span class="nx">iconEnabled</span> <span class="o">=</span> <span class="nx">L</span><span class="p">.</span><span class="nx">icon</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L257" class="blob-num js-line-number" data-line-number="257"></td>
        <td id="LC257" class="blob-code js-file-line">      <span class="nx">iconUrl</span><span class="o">:</span> <span class="nx">iconEnabled</span></td>
      </tr>
      <tr>
        <td id="L258" class="blob-num js-line-number" data-line-number="258"></td>
        <td id="LC258" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L259" class="blob-num js-line-number" data-line-number="259"></td>
        <td id="LC259" class="blob-code js-file-line">    <span class="nx">iconDisabled</span> <span class="o">=</span> <span class="nx">L</span><span class="p">.</span><span class="nx">icon</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L260" class="blob-num js-line-number" data-line-number="260"></td>
        <td id="LC260" class="blob-code js-file-line">      <span class="nx">iconUrl</span><span class="o">:</span> <span class="nx">iconDisabled</span></td>
      </tr>
      <tr>
        <td id="L261" class="blob-num js-line-number" data-line-number="261"></td>
        <td id="LC261" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L262" class="blob-num js-line-number" data-line-number="262"></td>
        <td id="LC262" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L263" class="blob-num js-line-number" data-line-number="263"></td>
        <td id="LC263" class="blob-code js-file-line">      <span class="nx">enter</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L264" class="blob-num js-line-number" data-line-number="264"></td>
        <td id="LC264" class="blob-code js-file-line">        <span class="nx">marker</span><span class="p">.</span><span class="nx">setIcon</span><span class="p">(</span><span class="nx">iconEnabled</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L265" class="blob-num js-line-number" data-line-number="265"></td>
        <td id="LC265" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L266" class="blob-num js-line-number" data-line-number="266"></td>
        <td id="LC266" class="blob-code js-file-line">      <span class="nx">exit</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L267" class="blob-num js-line-number" data-line-number="267"></td>
        <td id="LC267" class="blob-code js-file-line">        <span class="nx">marker</span><span class="p">.</span><span class="nx">setIcon</span><span class="p">(</span><span class="nx">iconDisabled</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L268" class="blob-num js-line-number" data-line-number="268"></td>
        <td id="LC268" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L269" class="blob-num js-line-number" data-line-number="269"></td>
        <td id="LC269" class="blob-code js-file-line">      <span class="nx">clear</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L270" class="blob-num js-line-number" data-line-number="270"></td>
        <td id="LC270" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L271" class="blob-num js-line-number" data-line-number="271"></td>
        <td id="LC271" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L272" class="blob-num js-line-number" data-line-number="272"></td>
        <td id="LC272" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L273" class="blob-num js-line-number" data-line-number="273"></td>
        <td id="LC273" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">_marker</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L274" class="blob-num js-line-number" data-line-number="274"></td>
        <td id="LC274" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L275" class="blob-num js-line-number" data-line-number="275"></td>
        <td id="LC275" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L276" class="blob-num js-line-number" data-line-number="276"></td>
        <td id="LC276" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">PathActions</span><span class="p">(</span><span class="nx">path</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L277" class="blob-num js-line-number" data-line-number="277"></td>
        <td id="LC277" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_path</span><span class="p">()</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L278" class="blob-num js-line-number" data-line-number="278"></td>
        <td id="LC278" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L279" class="blob-num js-line-number" data-line-number="279"></td>
        <td id="LC279" class="blob-code js-file-line">  <span class="nx">_path</span><span class="p">.</span><span class="nx">toggleStyle</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">styleDisabled</span><span class="p">,</span> <span class="nx">styleEnabled</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L280" class="blob-num js-line-number" data-line-number="280"></td>
        <td id="LC280" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L281" class="blob-num js-line-number" data-line-number="281"></td>
        <td id="LC281" class="blob-code js-file-line">      <span class="nx">enter</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L282" class="blob-num js-line-number" data-line-number="282"></td>
        <td id="LC282" class="blob-code js-file-line">        <span class="nx">path</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">styleEnabled</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L283" class="blob-num js-line-number" data-line-number="283"></td>
        <td id="LC283" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L284" class="blob-num js-line-number" data-line-number="284"></td>
        <td id="LC284" class="blob-code js-file-line">      <span class="nx">exit</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L285" class="blob-num js-line-number" data-line-number="285"></td>
        <td id="LC285" class="blob-code js-file-line">        <span class="nx">path</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">styleDisabled</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L286" class="blob-num js-line-number" data-line-number="286"></td>
        <td id="LC286" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L287" class="blob-num js-line-number" data-line-number="287"></td>
        <td id="LC287" class="blob-code js-file-line">      <span class="nx">clear</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L288" class="blob-num js-line-number" data-line-number="288"></td>
        <td id="LC288" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L289" class="blob-num js-line-number" data-line-number="289"></td>
        <td id="LC289" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L290" class="blob-num js-line-number" data-line-number="290"></td>
        <td id="LC290" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L291" class="blob-num js-line-number" data-line-number="291"></td>
        <td id="LC291" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">_path</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L292" class="blob-num js-line-number" data-line-number="292"></td>
        <td id="LC292" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L293" class="blob-num js-line-number" data-line-number="293"></td>
        <td id="LC293" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L294" class="blob-num js-line-number" data-line-number="294"></td>
        <td id="LC294" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L295" class="blob-num js-line-number" data-line-number="295"></td>
        <td id="LC295" class="blob-code js-file-line"><span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nb">window</span><span class="p">.</span><span class="nx">L</span> <span class="o">!==</span> <span class="s1">&#39;undefined&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L296" class="blob-num js-line-number" data-line-number="296"></td>
        <td id="LC296" class="blob-code js-file-line">  <span class="nx">L</span><span class="p">.</span><span class="nx">Marker</span><span class="p">.</span><span class="nx">addInitHook</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L297" class="blob-num js-line-number" data-line-number="297"></td>
        <td id="LC297" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">actions</span> <span class="o">=</span> <span class="nx">MarkerActions</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L298" class="blob-num js-line-number" data-line-number="298"></td>
        <td id="LC298" class="blob-code js-file-line">  <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L299" class="blob-num js-line-number" data-line-number="299"></td>
        <td id="LC299" class="blob-code js-file-line">  <span class="nx">L</span><span class="p">.</span><span class="nx">Path</span><span class="p">.</span><span class="nx">addInitHook</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L300" class="blob-num js-line-number" data-line-number="300"></td>
        <td id="LC300" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">actions</span> <span class="o">=</span> <span class="nx">PathActions</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L301" class="blob-num js-line-number" data-line-number="301"></td>
        <td id="LC301" class="blob-code js-file-line">  <span class="p">})</span></td>
      </tr>
      <tr>
        <td id="L302" class="blob-num js-line-number" data-line-number="302"></td>
        <td id="LC302" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L303" class="blob-num js-line-number" data-line-number="303"></td>
        <td id="LC303" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">MarkerActions</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L304" class="blob-num js-line-number" data-line-number="304"></td>
        <td id="LC304" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L305" class="blob-num js-line-number" data-line-number="305"></td>
        <td id="LC305" class="blob-code js-file-line"><span class="c1">//marker.actions.addTo(map);</span></td>
      </tr>
      <tr>
        <td id="L306" class="blob-num js-line-number" data-line-number="306"></td>
        <td id="LC306" class="blob-code js-file-line"><span class="c1">//addState(, map.actions.moveTo(..).addMarker(m)</span></td>
      </tr>
      <tr>
        <td id="L307" class="blob-num js-line-number" data-line-number="307"></td>
        <td id="LC307" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L308" class="blob-num js-line-number" data-line-number="308"></td>
        <td id="LC308" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">8</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L309" class="blob-num js-line-number" data-line-number="309"></td>
        <td id="LC309" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L310" class="blob-num js-line-number" data-line-number="310"></td>
        <td id="LC310" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L311" class="blob-num js-line-number" data-line-number="311"></td>
        <td id="LC311" class="blob-code js-file-line"><span class="cm">directional popup allows to create popups in the left and the right of a point,</span></td>
      </tr>
      <tr>
        <td id="L312" class="blob-num js-line-number" data-line-number="312"></td>
        <td id="LC312" class="blob-code js-file-line"><span class="cm">not only on the top.</span></td>
      </tr>
      <tr>
        <td id="L313" class="blob-num js-line-number" data-line-number="313"></td>
        <td id="LC313" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L314" class="blob-num js-line-number" data-line-number="314"></td>
        <td id="LC314" class="blob-code js-file-line"><span class="cm">Same api than L.popup but you can spcify ``potision`` to &#39;left&#39; or &#39;right&#39;</span></td>
      </tr>
      <tr>
        <td id="L315" class="blob-num js-line-number" data-line-number="315"></td>
        <td id="LC315" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L316" class="blob-num js-line-number" data-line-number="316"></td>
        <td id="LC316" class="blob-code js-file-line"><span class="cm">*/</span></td>
      </tr>
      <tr>
        <td id="L317" class="blob-num js-line-number" data-line-number="317"></td>
        <td id="LC317" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L318" class="blob-num js-line-number" data-line-number="318"></td>
        <td id="LC318" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Action</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../../story&#39;</span><span class="p">).</span><span class="nx">Action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L319" class="blob-num js-line-number" data-line-number="319"></td>
        <td id="LC319" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L320" class="blob-num js-line-number" data-line-number="320"></td>
        <td id="LC320" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L321" class="blob-num js-line-number" data-line-number="321"></td>
        <td id="LC321" class="blob-code js-file-line"><span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nb">window</span><span class="p">.</span><span class="nx">L</span> <span class="o">!==</span> <span class="s1">&#39;undefined&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L322" class="blob-num js-line-number" data-line-number="322"></td>
        <td id="LC322" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L323" class="blob-num js-line-number" data-line-number="323"></td>
        <td id="LC323" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">DirectionalPopup</span> <span class="o">=</span> <span class="nx">L</span><span class="p">.</span><span class="nx">Popup</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L324" class="blob-num js-line-number" data-line-number="324"></td>
        <td id="LC324" class="blob-code js-file-line">    <span class="nx">_updatePosition</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L325" class="blob-num js-line-number" data-line-number="325"></td>
        <td id="LC325" class="blob-code js-file-line">        <span class="nx">L</span><span class="p">.</span><span class="nx">Popup</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">_updatePosition</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L326" class="blob-num js-line-number" data-line-number="326"></td>
        <td id="LC326" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">offset</span> <span class="o">=</span> <span class="nx">L</span><span class="p">.</span><span class="nx">point</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">offset</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L327" class="blob-num js-line-number" data-line-number="327"></td>
        <td id="LC327" class="blob-code js-file-line">            <span class="nx">animated</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_animated</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L328" class="blob-num js-line-number" data-line-number="328"></td>
        <td id="LC328" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L329" class="blob-num js-line-number" data-line-number="329"></td>
        <td id="LC329" class="blob-code js-file-line">        <span class="k">switch</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">position</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L330" class="blob-num js-line-number" data-line-number="330"></td>
        <td id="LC330" class="blob-code js-file-line">          <span class="k">case</span> <span class="s1">&#39;left&#39;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L331" class="blob-num js-line-number" data-line-number="331"></td>
        <td id="LC331" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">_container</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">bottom</span> <span class="o">=</span> <span class="s1">&#39;auto&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L332" class="blob-num js-line-number" data-line-number="332"></td>
        <td id="LC332" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">_container</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="s1">&#39;auto&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L333" class="blob-num js-line-number" data-line-number="333"></td>
        <td id="LC333" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">_container</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">right</span> <span class="o">=</span> <span class="nx">offset</span><span class="p">.</span><span class="nx">x</span> <span class="o">+</span> <span class="p">(</span><span class="nx">animated</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="nx">pos</span><span class="p">.</span><span class="nx">x</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;px&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L334" class="blob-num js-line-number" data-line-number="334"></td>
        <td id="LC334" class="blob-code js-file-line">            <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L335" class="blob-num js-line-number" data-line-number="335"></td>
        <td id="LC335" class="blob-code js-file-line">          <span class="k">case</span> <span class="s1">&#39;right&#39;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L336" class="blob-num js-line-number" data-line-number="336"></td>
        <td id="LC336" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">_container</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">bottom</span> <span class="o">=</span> <span class="s1">&#39;auto&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L337" class="blob-num js-line-number" data-line-number="337"></td>
        <td id="LC337" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">_container</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span>  <span class="nx">offset</span><span class="p">.</span><span class="nx">x</span> <span class="o">+</span> <span class="s2">&quot;px&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L338" class="blob-num js-line-number" data-line-number="338"></td>
        <td id="LC338" class="blob-code js-file-line">            <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L339" class="blob-num js-line-number" data-line-number="339"></td>
        <td id="LC339" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L340" class="blob-num js-line-number" data-line-number="340"></td>
        <td id="LC340" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L341" class="blob-num js-line-number" data-line-number="341"></td>
        <td id="LC341" class="blob-code js-file-line"><span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L342" class="blob-num js-line-number" data-line-number="342"></td>
        <td id="LC342" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L343" class="blob-num js-line-number" data-line-number="343"></td>
        <td id="LC343" class="blob-code js-file-line"><span class="nx">L</span><span class="p">.</span><span class="nx">DirectionalPopup</span> <span class="o">=</span> <span class="nx">DirectionalPopup</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L344" class="blob-num js-line-number" data-line-number="344"></td>
        <td id="LC344" class="blob-code js-file-line"><span class="nx">L</span><span class="p">.</span><span class="nx">directionalPopup</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">options</span><span class="p">,</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L345" class="blob-num js-line-number" data-line-number="345"></td>
        <td id="LC345" class="blob-code js-file-line">  <span class="k">return</span> <span class="k">new</span> <span class="nx">L</span><span class="p">.</span><span class="nx">DirectionalPopup</span><span class="p">(</span><span class="nx">options</span><span class="p">,</span> <span class="nx">source</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L346" class="blob-num js-line-number" data-line-number="346"></td>
        <td id="LC346" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L347" class="blob-num js-line-number" data-line-number="347"></td>
        <td id="LC347" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L348" class="blob-num js-line-number" data-line-number="348"></td>
        <td id="LC348" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">PopupActions</span><span class="p">(</span><span class="nx">popup</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L349" class="blob-num js-line-number" data-line-number="349"></td>
        <td id="LC349" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L350" class="blob-num js-line-number" data-line-number="350"></td>
        <td id="LC350" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_popup</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L351" class="blob-num js-line-number" data-line-number="351"></td>
        <td id="LC351" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L352" class="blob-num js-line-number" data-line-number="352"></td>
        <td id="LC352" class="blob-code js-file-line">  <span class="c1">// helper method to translate leaflet methods to actions</span></td>
      </tr>
      <tr>
        <td id="L353" class="blob-num js-line-number" data-line-number="353"></td>
        <td id="LC353" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">leaflet_method</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L354" class="blob-num js-line-number" data-line-number="354"></td>
        <td id="LC354" class="blob-code js-file-line">    <span class="nx">_popup</span><span class="p">[</span><span class="nx">name</span><span class="p">]</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L355" class="blob-num js-line-number" data-line-number="355"></td>
        <td id="LC355" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">args</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L356" class="blob-num js-line-number" data-line-number="356"></td>
        <td id="LC356" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L357" class="blob-num js-line-number" data-line-number="357"></td>
        <td id="LC357" class="blob-code js-file-line">        <span class="nx">popup</span><span class="p">[</span><span class="nx">name</span><span class="p">].</span><span class="nx">apply</span><span class="p">(</span><span class="nx">popup</span><span class="p">,</span> <span class="nx">args</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L358" class="blob-num js-line-number" data-line-number="358"></td>
        <td id="LC358" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L359" class="blob-num js-line-number" data-line-number="359"></td>
        <td id="LC359" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L360" class="blob-num js-line-number" data-line-number="360"></td>
        <td id="LC360" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L361" class="blob-num js-line-number" data-line-number="361"></td>
        <td id="LC361" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L362" class="blob-num js-line-number" data-line-number="362"></td>
        <td id="LC362" class="blob-code js-file-line">  <span class="c1">// leaflet methods</span></td>
      </tr>
      <tr>
        <td id="L363" class="blob-num js-line-number" data-line-number="363"></td>
        <td id="LC363" class="blob-code js-file-line">  <span class="nx">leaflet_method</span><span class="p">(</span><span class="s1">&#39;openOn&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L364" class="blob-num js-line-number" data-line-number="364"></td>
        <td id="LC364" class="blob-code js-file-line">  <span class="nx">_popup</span><span class="p">.</span><span class="nx">openClose</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L365" class="blob-num js-line-number" data-line-number="365"></td>
        <td id="LC365" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L366" class="blob-num js-line-number" data-line-number="366"></td>
        <td id="LC366" class="blob-code js-file-line">      <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">&quot;openClose gets map as first param&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L367" class="blob-num js-line-number" data-line-number="367"></td>
        <td id="LC367" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L368" class="blob-num js-line-number" data-line-number="368"></td>
        <td id="LC368" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L369" class="blob-num js-line-number" data-line-number="369"></td>
        <td id="LC369" class="blob-code js-file-line">      <span class="nx">enter</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L370" class="blob-num js-line-number" data-line-number="370"></td>
        <td id="LC370" class="blob-code js-file-line">        <span class="nx">popup</span><span class="p">.</span><span class="nx">openOn</span><span class="p">(</span><span class="nx">map</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L371" class="blob-num js-line-number" data-line-number="371"></td>
        <td id="LC371" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L372" class="blob-num js-line-number" data-line-number="372"></td>
        <td id="LC372" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L373" class="blob-num js-line-number" data-line-number="373"></td>
        <td id="LC373" class="blob-code js-file-line">      <span class="nx">exit</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L374" class="blob-num js-line-number" data-line-number="374"></td>
        <td id="LC374" class="blob-code js-file-line">        <span class="nx">map</span><span class="p">.</span><span class="nx">closePopup</span><span class="p">(</span><span class="nx">popup</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L375" class="blob-num js-line-number" data-line-number="375"></td>
        <td id="LC375" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L376" class="blob-num js-line-number" data-line-number="376"></td>
        <td id="LC376" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L377" class="blob-num js-line-number" data-line-number="377"></td>
        <td id="LC377" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L378" class="blob-num js-line-number" data-line-number="378"></td>
        <td id="LC378" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L379" class="blob-num js-line-number" data-line-number="379"></td>
        <td id="LC379" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L380" class="blob-num js-line-number" data-line-number="380"></td>
        <td id="LC380" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">_popup</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L381" class="blob-num js-line-number" data-line-number="381"></td>
        <td id="LC381" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L382" class="blob-num js-line-number" data-line-number="382"></td>
        <td id="LC382" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L383" class="blob-num js-line-number" data-line-number="383"></td>
        <td id="LC383" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L384" class="blob-num js-line-number" data-line-number="384"></td>
        <td id="LC384" class="blob-code js-file-line">  <span class="nx">L</span><span class="p">.</span><span class="nx">Popup</span><span class="p">.</span><span class="nx">addInitHook</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L385" class="blob-num js-line-number" data-line-number="385"></td>
        <td id="LC385" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">actions</span> <span class="o">=</span> <span class="nx">PopupActions</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L386" class="blob-num js-line-number" data-line-number="386"></td>
        <td id="LC386" class="blob-code js-file-line">  <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L387" class="blob-num js-line-number" data-line-number="387"></td>
        <td id="LC387" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L388" class="blob-num js-line-number" data-line-number="388"></td>
        <td id="LC388" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L389" class="blob-num js-line-number" data-line-number="389"></td>
        <td id="LC389" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L390" class="blob-num js-line-number" data-line-number="390"></td>
        <td id="LC390" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">9</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L391" class="blob-num js-line-number" data-line-number="391"></td>
        <td id="LC391" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L392" class="blob-num js-line-number" data-line-number="392"></td>
        <td id="LC392" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Action</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L393" class="blob-num js-line-number" data-line-number="393"></td>
        <td id="LC393" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L394" class="blob-num js-line-number" data-line-number="394"></td>
        <td id="LC394" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">loc</span> <span class="o">=</span> <span class="nb">window</span><span class="p">.</span><span class="nx">location</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L395" class="blob-num js-line-number" data-line-number="395"></td>
        <td id="LC395" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Location</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L396" class="blob-num js-line-number" data-line-number="396"></td>
        <td id="LC396" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L397" class="blob-num js-line-number" data-line-number="397"></td>
        <td id="LC397" class="blob-code js-file-line">  <span class="c1">// changes the browser url hash</span></td>
      </tr>
      <tr>
        <td id="L398" class="blob-num js-line-number" data-line-number="398"></td>
        <td id="LC398" class="blob-code js-file-line">  <span class="nx">changeHash</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">hash</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L399" class="blob-num js-line-number" data-line-number="399"></td>
        <td id="LC399" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">hash</span> <span class="o">===</span> <span class="kc">undefined</span><span class="p">)</span> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">&quot;hash should be a string&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L400" class="blob-num js-line-number" data-line-number="400"></td>
        <td id="LC400" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L401" class="blob-num js-line-number" data-line-number="401"></td>
        <td id="LC401" class="blob-code js-file-line">      <span class="nx">loc</span><span class="p">.</span><span class="nx">hash</span> <span class="o">=</span> <span class="nx">hash</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L402" class="blob-num js-line-number" data-line-number="402"></td>
        <td id="LC402" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L403" class="blob-num js-line-number" data-line-number="403"></td>
        <td id="LC403" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L404" class="blob-num js-line-number" data-line-number="404"></td>
        <td id="LC404" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L405" class="blob-num js-line-number" data-line-number="405"></td>
        <td id="LC405" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L406" class="blob-num js-line-number" data-line-number="406"></td>
        <td id="LC406" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L407" class="blob-num js-line-number" data-line-number="407"></td>
        <td id="LC407" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L408" class="blob-num js-line-number" data-line-number="408"></td>
        <td id="LC408" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Location</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L409" class="blob-num js-line-number" data-line-number="409"></td>
        <td id="LC409" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L410" class="blob-num js-line-number" data-line-number="410"></td>
        <td id="LC410" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">10</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L411" class="blob-num js-line-number" data-line-number="411"></td>
        <td id="LC411" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L412" class="blob-num js-line-number" data-line-number="412"></td>
        <td id="LC412" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Action</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L413" class="blob-num js-line-number" data-line-number="413"></td>
        <td id="LC413" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L414" class="blob-num js-line-number" data-line-number="414"></td>
        <td id="LC414" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L415" class="blob-num js-line-number" data-line-number="415"></td>
        <td id="LC415" class="blob-code js-file-line"><span class="cm"> * mini progress var adds a small line to the top of the browser</span></td>
      </tr>
      <tr>
        <td id="L416" class="blob-num js-line-number" data-line-number="416"></td>
        <td id="LC416" class="blob-code js-file-line"><span class="cm"> * and moves according to story progress</span></td>
      </tr>
      <tr>
        <td id="L417" class="blob-num js-line-number" data-line-number="417"></td>
        <td id="LC417" class="blob-code js-file-line"><span class="cm"> * usage:</span></td>
      </tr>
      <tr>
        <td id="L418" class="blob-num js-line-number" data-line-number="418"></td>
        <td id="LC418" class="blob-code js-file-line"><span class="cm"> * var pg = MiniProgressBar()</span></td>
      </tr>
      <tr>
        <td id="L419" class="blob-num js-line-number" data-line-number="419"></td>
        <td id="LC419" class="blob-code js-file-line"><span class="cm"> * story.addAction(trigger, pg.percent(10)) //goes to 10%</span></td>
      </tr>
      <tr>
        <td id="L420" class="blob-num js-line-number" data-line-number="420"></td>
        <td id="LC420" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L421" class="blob-num js-line-number" data-line-number="421"></td>
        <td id="LC421" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L422" class="blob-num js-line-number" data-line-number="422"></td>
        <td id="LC422" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">MiniProgressBar</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L423" class="blob-num js-line-number" data-line-number="423"></td>
        <td id="LC423" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L424" class="blob-num js-line-number" data-line-number="424"></td>
        <td id="LC424" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">defaultStyle</span> <span class="o">=</span>  <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L425" class="blob-num js-line-number" data-line-number="425"></td>
        <td id="LC425" class="blob-code js-file-line">    <span class="nx">position</span><span class="o">:</span> <span class="s1">&#39;fixed&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L426" class="blob-num js-line-number" data-line-number="426"></td>
        <td id="LC426" class="blob-code js-file-line">    <span class="nx">left</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L427" class="blob-num js-line-number" data-line-number="427"></td>
        <td id="LC427" class="blob-code js-file-line">    <span class="nx">top</span><span class="o">:</span> <span class="mi">0</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L428" class="blob-num js-line-number" data-line-number="428"></td>
        <td id="LC428" class="blob-code js-file-line">    <span class="nx">height</span><span class="o">:</span> <span class="s1">&#39;3px&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L429" class="blob-num js-line-number" data-line-number="429"></td>
        <td id="LC429" class="blob-code js-file-line">    <span class="nx">display</span><span class="o">:</span> <span class="s1">&#39;inline-block&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L430" class="blob-num js-line-number" data-line-number="430"></td>
        <td id="LC430" class="blob-code js-file-line">    <span class="nx">background</span><span class="o">:</span> <span class="s1">&#39;#ff7373&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L431" class="blob-num js-line-number" data-line-number="431"></td>
        <td id="LC431" class="blob-code js-file-line">    <span class="s1">&#39;z-index&#39;</span><span class="o">:</span> <span class="mi">2</span></td>
      </tr>
      <tr>
        <td id="L432" class="blob-num js-line-number" data-line-number="432"></td>
        <td id="LC432" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L433" class="blob-num js-line-number" data-line-number="433"></td>
        <td id="LC433" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L434" class="blob-num js-line-number" data-line-number="434"></td>
        <td id="LC434" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">pg</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L435" class="blob-num js-line-number" data-line-number="435"></td>
        <td id="LC435" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L436" class="blob-num js-line-number" data-line-number="436"></td>
        <td id="LC436" class="blob-code js-file-line">  <span class="c1">// create an element and apply default style</span></td>
      </tr>
      <tr>
        <td id="L437" class="blob-num js-line-number" data-line-number="437"></td>
        <td id="LC437" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">div</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">&#39;div&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L438" class="blob-num js-line-number" data-line-number="438"></td>
        <td id="LC438" class="blob-code js-file-line">  <span class="nx">div</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="s1">&#39;class&#39;</span><span class="p">,</span> <span class="s1">&#39;oddysey-miniprogressbar&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L439" class="blob-num js-line-number" data-line-number="439"></td>
        <td id="LC439" class="blob-code js-file-line">  <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">s</span> <span class="k">in</span> <span class="nx">defaultStyle</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L440" class="blob-num js-line-number" data-line-number="440"></td>
        <td id="LC440" class="blob-code js-file-line">    <span class="nx">div</span><span class="p">.</span><span class="nx">style</span><span class="p">[</span><span class="nx">s</span><span class="p">]</span> <span class="o">=</span> <span class="nx">defaultStyle</span><span class="p">[</span><span class="nx">s</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L441" class="blob-num js-line-number" data-line-number="441"></td>
        <td id="LC441" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L442" class="blob-num js-line-number" data-line-number="442"></td>
        <td id="LC442" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L443" class="blob-num js-line-number" data-line-number="443"></td>
        <td id="LC443" class="blob-code js-file-line">  <span class="c1">// append to element or to tge body</span></td>
      </tr>
      <tr>
        <td id="L444" class="blob-num js-line-number" data-line-number="444"></td>
        <td id="LC444" class="blob-code js-file-line">  <span class="p">(</span><span class="nx">el</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">).</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">div</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L445" class="blob-num js-line-number" data-line-number="445"></td>
        <td id="LC445" class="blob-code js-file-line">  </td>
      </tr>
      <tr>
        <td id="L446" class="blob-num js-line-number" data-line-number="446"></td>
        <td id="LC446" class="blob-code js-file-line">  <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L447" class="blob-num js-line-number" data-line-number="447"></td>
        <td id="LC447" class="blob-code js-file-line"><span class="cm">   * returns an action that moves the percentaje bar to the specified one</span></td>
      </tr>
      <tr>
        <td id="L448" class="blob-num js-line-number" data-line-number="448"></td>
        <td id="LC448" class="blob-code js-file-line"><span class="cm">   */</span></td>
      </tr>
      <tr>
        <td id="L449" class="blob-num js-line-number" data-line-number="449"></td>
        <td id="LC449" class="blob-code js-file-line">  <span class="nx">pg</span><span class="p">.</span><span class="nx">percent</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">p</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L450" class="blob-num js-line-number" data-line-number="450"></td>
        <td id="LC450" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L451" class="blob-num js-line-number" data-line-number="451"></td>
        <td id="LC451" class="blob-code js-file-line">      <span class="nx">div</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">p</span> <span class="o">+</span> <span class="s2">&quot;%&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L452" class="blob-num js-line-number" data-line-number="452"></td>
        <td id="LC452" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L453" class="blob-num js-line-number" data-line-number="453"></td>
        <td id="LC453" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L454" class="blob-num js-line-number" data-line-number="454"></td>
        <td id="LC454" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L455" class="blob-num js-line-number" data-line-number="455"></td>
        <td id="LC455" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">pg</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L456" class="blob-num js-line-number" data-line-number="456"></td>
        <td id="LC456" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L457" class="blob-num js-line-number" data-line-number="457"></td>
        <td id="LC457" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L458" class="blob-num js-line-number" data-line-number="458"></td>
        <td id="LC458" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">MiniProgressBar</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L459" class="blob-num js-line-number" data-line-number="459"></td>
        <td id="LC459" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L460" class="blob-num js-line-number" data-line-number="460"></td>
        <td id="LC460" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">11</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L461" class="blob-num js-line-number" data-line-number="461"></td>
        <td id="LC461" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L462" class="blob-num js-line-number" data-line-number="462"></td>
        <td id="LC462" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Action</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L463" class="blob-num js-line-number" data-line-number="463"></td>
        <td id="LC463" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L464" class="blob-num js-line-number" data-line-number="464"></td>
        <td id="LC464" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Sleep</span><span class="p">(</span><span class="nx">ms</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L465" class="blob-num js-line-number" data-line-number="465"></td>
        <td id="LC465" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L466" class="blob-num js-line-number" data-line-number="466"></td>
        <td id="LC466" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">Action</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L467" class="blob-num js-line-number" data-line-number="467"></td>
        <td id="LC467" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L468" class="blob-num js-line-number" data-line-number="468"></td>
        <td id="LC468" class="blob-code js-file-line">    <span class="nx">enter</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L469" class="blob-num js-line-number" data-line-number="469"></td>
        <td id="LC469" class="blob-code js-file-line">      <span class="nx">setTimeout</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">finish</span><span class="p">,</span> <span class="nx">ms</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L470" class="blob-num js-line-number" data-line-number="470"></td>
        <td id="LC470" class="blob-code js-file-line">      <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L471" class="blob-num js-line-number" data-line-number="471"></td>
        <td id="LC471" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L472" class="blob-num js-line-number" data-line-number="472"></td>
        <td id="LC472" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L473" class="blob-num js-line-number" data-line-number="473"></td>
        <td id="LC473" class="blob-code js-file-line">  <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L474" class="blob-num js-line-number" data-line-number="474"></td>
        <td id="LC474" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L475" class="blob-num js-line-number" data-line-number="475"></td>
        <td id="LC475" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L476" class="blob-num js-line-number" data-line-number="476"></td>
        <td id="LC476" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Sleep</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L477" class="blob-num js-line-number" data-line-number="477"></td>
        <td id="LC477" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L478" class="blob-num js-line-number" data-line-number="478"></td>
        <td id="LC478" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L479" class="blob-num js-line-number" data-line-number="479"></td>
        <td id="LC479" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">12</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L480" class="blob-num js-line-number" data-line-number="480"></td>
        <td id="LC480" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L481" class="blob-num js-line-number" data-line-number="481"></td>
        <td id="LC481" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Action</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L482" class="blob-num js-line-number" data-line-number="482"></td>
        <td id="LC482" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Core</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../core&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L483" class="blob-num js-line-number" data-line-number="483"></td>
        <td id="LC483" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">classList</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../util/classList&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L484" class="blob-num js-line-number" data-line-number="484"></td>
        <td id="LC484" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L485" class="blob-num js-line-number" data-line-number="485"></td>
        <td id="LC485" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Slides</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L486" class="blob-num js-line-number" data-line-number="486"></td>
        <td id="LC486" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L487" class="blob-num js-line-number" data-line-number="487"></td>
        <td id="LC487" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L488" class="blob-num js-line-number" data-line-number="488"></td>
        <td id="LC488" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">slides</span><span class="p">()</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L489" class="blob-num js-line-number" data-line-number="489"></td>
        <td id="LC489" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L490" class="blob-num js-line-number" data-line-number="490"></td>
        <td id="LC490" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_activate</span><span class="p">(</span><span class="nx">idx</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L491" class="blob-num js-line-number" data-line-number="491"></td>
        <td id="LC491" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">slideElements</span> <span class="o">=</span> <span class="nx">Core</span><span class="p">.</span><span class="nx">getElement</span><span class="p">(</span><span class="nx">el</span><span class="p">).</span><span class="nx">children</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L492" class="blob-num js-line-number" data-line-number="492"></td>
        <td id="LC492" class="blob-code js-file-line">    <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">slideElements</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L493" class="blob-num js-line-number" data-line-number="493"></td>
        <td id="LC493" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">===</span> <span class="nx">idx</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L494" class="blob-num js-line-number" data-line-number="494"></td>
        <td id="LC494" class="blob-code js-file-line">        <span class="nx">slideElements</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">classList</span><span class="p">.</span><span class="nx">add</span><span class="p">(</span><span class="s2">&quot;selected&quot;</span><span class="p">,</span> <span class="s2">&quot;selected_slide&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L495" class="blob-num js-line-number" data-line-number="495"></td>
        <td id="LC495" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L496" class="blob-num js-line-number" data-line-number="496"></td>
        <td id="LC496" class="blob-code js-file-line">        <span class="nx">slideElements</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">classList</span><span class="p">.</span><span class="nx">remove</span><span class="p">(</span><span class="s2">&quot;selected&quot;</span><span class="p">,</span> <span class="s2">&quot;selected_slide&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L497" class="blob-num js-line-number" data-line-number="497"></td>
        <td id="LC497" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L498" class="blob-num js-line-number" data-line-number="498"></td>
        <td id="LC498" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L499" class="blob-num js-line-number" data-line-number="499"></td>
        <td id="LC499" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L500" class="blob-num js-line-number" data-line-number="500"></td>
        <td id="LC500" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L501" class="blob-num js-line-number" data-line-number="501"></td>
        <td id="LC501" class="blob-code js-file-line">  <span class="nx">slides</span><span class="p">.</span><span class="nx">activate</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L502" class="blob-num js-line-number" data-line-number="502"></td>
        <td id="LC502" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">Action</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L503" class="blob-num js-line-number" data-line-number="503"></td>
        <td id="LC503" class="blob-code js-file-line">      <span class="nx">_activate</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L504" class="blob-num js-line-number" data-line-number="504"></td>
        <td id="LC504" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L505" class="blob-num js-line-number" data-line-number="505"></td>
        <td id="LC505" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L506" class="blob-num js-line-number" data-line-number="506"></td>
        <td id="LC506" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L507" class="blob-num js-line-number" data-line-number="507"></td>
        <td id="LC507" class="blob-code js-file-line">  <span class="nx">_activate</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L508" class="blob-num js-line-number" data-line-number="508"></td>
        <td id="LC508" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L509" class="blob-num js-line-number" data-line-number="509"></td>
        <td id="LC509" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">slides</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L510" class="blob-num js-line-number" data-line-number="510"></td>
        <td id="LC510" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L511" class="blob-num js-line-number" data-line-number="511"></td>
        <td id="LC511" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L512" class="blob-num js-line-number" data-line-number="512"></td>
        <td id="LC512" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L513" class="blob-num js-line-number" data-line-number="513"></td>
        <td id="LC513" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Slides</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L514" class="blob-num js-line-number" data-line-number="514"></td>
        <td id="LC514" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../core&quot;</span><span class="o">:</span><span class="mi">13</span><span class="p">,</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">,</span><span class="s2">&quot;../util/classList&quot;</span><span class="o">:</span><span class="mi">24</span><span class="p">}],</span><span class="mi">13</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L515" class="blob-num js-line-number" data-line-number="515"></td>
        <td id="LC515" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L516" class="blob-num js-line-number" data-line-number="516"></td>
        <td id="LC516" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">getElement</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L517" class="blob-num js-line-number" data-line-number="517"></td>
        <td id="LC517" class="blob-code js-file-line">  <span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="nx">jQuery</span> <span class="o">!==</span> <span class="s1">&#39;undefined&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L518" class="blob-num js-line-number" data-line-number="518"></td>
        <td id="LC518" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="k">instanceof</span> <span class="nx">jQuery</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L519" class="blob-num js-line-number" data-line-number="519"></td>
        <td id="LC519" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">el</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L520" class="blob-num js-line-number" data-line-number="520"></td>
        <td id="LC520" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="nx">el</span> <span class="o">===</span> <span class="s1">&#39;string&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L521" class="blob-num js-line-number" data-line-number="521"></td>
        <td id="LC521" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s1">&#39;#&#39;</span> <span class="o">||</span> <span class="nx">el</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s1">&#39;.&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L522" class="blob-num js-line-number" data-line-number="522"></td>
        <td id="LC522" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">getElement</span><span class="p">(</span><span class="nx">$</span><span class="p">(</span><span class="nx">el</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L523" class="blob-num js-line-number" data-line-number="523"></td>
        <td id="LC523" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L524" class="blob-num js-line-number" data-line-number="524"></td>
        <td id="LC524" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L525" class="blob-num js-line-number" data-line-number="525"></td>
        <td id="LC525" class="blob-code js-file-line">  <span class="p">}</span> </td>
      </tr>
      <tr>
        <td id="L526" class="blob-num js-line-number" data-line-number="526"></td>
        <td id="LC526" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="k">instanceof</span> <span class="nx">NodeList</span> <span class="o">||</span> <span class="nx">el</span> <span class="k">instanceof</span> <span class="nx">HTMLCollection</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L527" class="blob-num js-line-number" data-line-number="527"></td>
        <td id="LC527" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">el</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L528" class="blob-num js-line-number" data-line-number="528"></td>
        <td id="LC528" class="blob-code js-file-line">  <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="k">instanceof</span> <span class="nx">Element</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L529" class="blob-num js-line-number" data-line-number="529"></td>
        <td id="LC529" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">el</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L530" class="blob-num js-line-number" data-line-number="530"></td>
        <td id="LC530" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L531" class="blob-num js-line-number" data-line-number="531"></td>
        <td id="LC531" class="blob-code js-file-line">  <span class="k">return</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L532" class="blob-num js-line-number" data-line-number="532"></td>
        <td id="LC532" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L533" class="blob-num js-line-number" data-line-number="533"></td>
        <td id="LC533" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L534" class="blob-num js-line-number" data-line-number="534"></td>
        <td id="LC534" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L535" class="blob-num js-line-number" data-line-number="535"></td>
        <td id="LC535" class="blob-code js-file-line">  <span class="nx">getElement</span><span class="o">:</span> <span class="nx">getElement</span></td>
      </tr>
      <tr>
        <td id="L536" class="blob-num js-line-number" data-line-number="536"></td>
        <td id="LC536" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L537" class="blob-num js-line-number" data-line-number="537"></td>
        <td id="LC537" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L538" class="blob-num js-line-number" data-line-number="538"></td>
        <td id="LC538" class="blob-code js-file-line"><span class="p">},{}],</span><span class="mi">14</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L539" class="blob-num js-line-number" data-line-number="539"></td>
        <td id="LC539" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L540" class="blob-num js-line-number" data-line-number="540"></td>
        <td id="LC540" class="blob-code js-file-line"><span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../../vendor/d3.custom&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L541" class="blob-num js-line-number" data-line-number="541"></td>
        <td id="LC541" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L542" class="blob-num js-line-number" data-line-number="542"></td>
        <td id="LC542" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Story</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L543" class="blob-num js-line-number" data-line-number="543"></td>
        <td id="LC543" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L544" class="blob-num js-line-number" data-line-number="544"></td>
        <td id="LC544" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">triggers</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L545" class="blob-num js-line-number" data-line-number="545"></td>
        <td id="LC545" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">events</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L546" class="blob-num js-line-number" data-line-number="546"></td>
        <td id="LC546" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">currentState</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L547" class="blob-num js-line-number" data-line-number="547"></td>
        <td id="LC547" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">prevState</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L548" class="blob-num js-line-number" data-line-number="548"></td>
        <td id="LC548" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L549" class="blob-num js-line-number" data-line-number="549"></td>
        <td id="LC549" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">story</span><span class="p">(</span><span class="nx">t</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L550" class="blob-num js-line-number" data-line-number="550"></td>
        <td id="LC550" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L551" class="blob-num js-line-number" data-line-number="551"></td>
        <td id="LC551" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L552" class="blob-num js-line-number" data-line-number="552"></td>
        <td id="LC552" class="blob-code js-file-line">  <span class="c1">// event non attached to states</span></td>
      </tr>
      <tr>
        <td id="L553" class="blob-num js-line-number" data-line-number="553"></td>
        <td id="LC553" class="blob-code js-file-line">  <span class="nx">story</span><span class="p">.</span><span class="nx">addEvent</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">trigger</span><span class="p">,</span> <span class="nx">action</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L554" class="blob-num js-line-number" data-line-number="554"></td>
        <td id="LC554" class="blob-code js-file-line">    <span class="nx">trigger</span><span class="p">.</span><span class="nx">_story</span><span class="p">(</span><span class="nx">story</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L555" class="blob-num js-line-number" data-line-number="555"></td>
        <td id="LC555" class="blob-code js-file-line">      <span class="nx">action</span><span class="p">.</span><span class="nx">enter</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L556" class="blob-num js-line-number" data-line-number="556"></td>
        <td id="LC556" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L557" class="blob-num js-line-number" data-line-number="557"></td>
        <td id="LC557" class="blob-code js-file-line">    <span class="nx">events</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L558" class="blob-num js-line-number" data-line-number="558"></td>
        <td id="LC558" class="blob-code js-file-line">      <span class="nx">a</span><span class="o">:</span> <span class="nx">trigger</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L559" class="blob-num js-line-number" data-line-number="559"></td>
        <td id="LC559" class="blob-code js-file-line">      <span class="nx">b</span><span class="o">:</span> <span class="nx">action</span></td>
      </tr>
      <tr>
        <td id="L560" class="blob-num js-line-number" data-line-number="560"></td>
        <td id="LC560" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L561" class="blob-num js-line-number" data-line-number="561"></td>
        <td id="LC561" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">story</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L562" class="blob-num js-line-number" data-line-number="562"></td>
        <td id="LC562" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L563" class="blob-num js-line-number" data-line-number="563"></td>
        <td id="LC563" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L564" class="blob-num js-line-number" data-line-number="564"></td>
        <td id="LC564" class="blob-code js-file-line">  <span class="nx">story</span><span class="p">.</span><span class="nx">clear</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L565" class="blob-num js-line-number" data-line-number="565"></td>
        <td id="LC565" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">all</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">.</span><span class="nx">concat</span><span class="p">(</span><span class="nx">events</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L566" class="blob-num js-line-number" data-line-number="566"></td>
        <td id="LC566" class="blob-code js-file-line">    <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">all</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L567" class="blob-num js-line-number" data-line-number="567"></td>
        <td id="LC567" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="nx">all</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L568" class="blob-num js-line-number" data-line-number="568"></td>
        <td id="LC568" class="blob-code js-file-line">      <span class="nx">a</span><span class="p">.</span><span class="nx">a</span><span class="p">.</span><span class="nx">story</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L569" class="blob-num js-line-number" data-line-number="569"></td>
        <td id="LC569" class="blob-code js-file-line">      <span class="nx">a</span><span class="p">.</span><span class="nx">a</span><span class="p">.</span><span class="nx">trigger</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L570" class="blob-num js-line-number" data-line-number="570"></td>
        <td id="LC570" class="blob-code js-file-line">      <span class="nx">a</span><span class="p">.</span><span class="nx">a</span><span class="p">.</span><span class="nx">clear</span> <span class="o">&amp;&amp;</span> <span class="nx">a</span><span class="p">.</span><span class="nx">a</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L571" class="blob-num js-line-number" data-line-number="571"></td>
        <td id="LC571" class="blob-code js-file-line">      <span class="nx">a</span><span class="p">.</span><span class="nx">b</span><span class="p">.</span><span class="nx">clear</span> <span class="o">&amp;&amp;</span> <span class="nx">a</span><span class="p">.</span><span class="nx">b</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L572" class="blob-num js-line-number" data-line-number="572"></td>
        <td id="LC572" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L573" class="blob-num js-line-number" data-line-number="573"></td>
        <td id="LC573" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L574" class="blob-num js-line-number" data-line-number="574"></td>
        <td id="LC574" class="blob-code js-file-line">    <span class="nx">triggers</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L575" class="blob-num js-line-number" data-line-number="575"></td>
        <td id="LC575" class="blob-code js-file-line">    <span class="nx">events</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L576" class="blob-num js-line-number" data-line-number="576"></td>
        <td id="LC576" class="blob-code js-file-line">    <span class="nx">currentState</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L577" class="blob-num js-line-number" data-line-number="577"></td>
        <td id="LC577" class="blob-code js-file-line">    <span class="nx">prevState</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L578" class="blob-num js-line-number" data-line-number="578"></td>
        <td id="LC578" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L579" class="blob-num js-line-number" data-line-number="579"></td>
        <td id="LC579" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L580" class="blob-num js-line-number" data-line-number="580"></td>
        <td id="LC580" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L581" class="blob-num js-line-number" data-line-number="581"></td>
        <td id="LC581" class="blob-code js-file-line">  <span class="c1">// go to state index</span></td>
      </tr>
      <tr>
        <td id="L582" class="blob-num js-line-number" data-line-number="582"></td>
        <td id="LC582" class="blob-code js-file-line">  <span class="nx">story</span><span class="p">.</span><span class="nx">go</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="nx">opts</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L583" class="blob-num js-line-number" data-line-number="583"></td>
        <td id="LC583" class="blob-code js-file-line">    <span class="nx">opts</span> <span class="o">=</span> <span class="nx">opts</span> <span class="o">||</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L584" class="blob-num js-line-number" data-line-number="584"></td>
        <td id="LC584" class="blob-code js-file-line">    <span class="k">if</span><span class="p">(</span><span class="nx">index</span> <span class="o">&lt;</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="nx">index</span> <span class="o">&gt;</span> <span class="nx">triggers</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L585" class="blob-num js-line-number" data-line-number="585"></td>
        <td id="LC585" class="blob-code js-file-line">      <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">&quot;index should be less than states length&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L586" class="blob-num js-line-number" data-line-number="586"></td>
        <td id="LC586" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L587" class="blob-num js-line-number" data-line-number="587"></td>
        <td id="LC587" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">story</span><span class="p">.</span><span class="nx">state</span><span class="p">()</span> <span class="o">!==</span> <span class="nx">index</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L588" class="blob-num js-line-number" data-line-number="588"></td>
        <td id="LC588" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L589" class="blob-num js-line-number" data-line-number="589"></td>
        <td id="LC589" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">opts</span><span class="p">.</span><span class="nx">reverse</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L590" class="blob-num js-line-number" data-line-number="590"></td>
        <td id="LC590" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">[</span><span class="nx">index</span><span class="p">].</span><span class="nx">a</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L591" class="blob-num js-line-number" data-line-number="591"></td>
        <td id="LC591" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">reverse</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L592" class="blob-num js-line-number" data-line-number="592"></td>
        <td id="LC592" class="blob-code js-file-line">          <span class="nx">a</span><span class="p">.</span><span class="nx">reverse</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L593" class="blob-num js-line-number" data-line-number="593"></td>
        <td id="LC593" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L594" class="blob-num js-line-number" data-line-number="594"></td>
        <td id="LC594" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L595" class="blob-num js-line-number" data-line-number="595"></td>
        <td id="LC595" class="blob-code js-file-line">      <span class="c1">// current state</span></td>
      </tr>
      <tr>
        <td id="L596" class="blob-num js-line-number" data-line-number="596"></td>
        <td id="LC596" class="blob-code js-file-line">      <span class="nx">story</span><span class="p">.</span><span class="nx">state</span><span class="p">(</span><span class="nx">index</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L597" class="blob-num js-line-number" data-line-number="597"></td>
        <td id="LC597" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L598" class="blob-num js-line-number" data-line-number="598"></td>
        <td id="LC598" class="blob-code js-file-line">      <span class="c1">// raise exit</span></td>
      </tr>
      <tr>
        <td id="L599" class="blob-num js-line-number" data-line-number="599"></td>
        <td id="LC599" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">prevState</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L600" class="blob-num js-line-number" data-line-number="600"></td>
        <td id="LC600" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">prev</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">[</span><span class="nx">prevState</span><span class="p">].</span><span class="nx">b</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L601" class="blob-num js-line-number" data-line-number="601"></td>
        <td id="LC601" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">prev</span><span class="p">.</span><span class="nx">exit</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L602" class="blob-num js-line-number" data-line-number="602"></td>
        <td id="LC602" class="blob-code js-file-line">          <span class="nx">prev</span><span class="p">.</span><span class="nx">exit</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L603" class="blob-num js-line-number" data-line-number="603"></td>
        <td id="LC603" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L604" class="blob-num js-line-number" data-line-number="604"></td>
        <td id="LC604" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L605" class="blob-num js-line-number" data-line-number="605"></td>
        <td id="LC605" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L606" class="blob-num js-line-number" data-line-number="606"></td>
        <td id="LC606" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">[</span><span class="nx">index</span><span class="p">].</span><span class="nx">b</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L607" class="blob-num js-line-number" data-line-number="607"></td>
        <td id="LC607" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L608" class="blob-num js-line-number" data-line-number="608"></td>
        <td id="LC608" class="blob-code js-file-line">      <span class="c1">// enter in current state</span></td>
      </tr>
      <tr>
        <td id="L609" class="blob-num js-line-number" data-line-number="609"></td>
        <td id="LC609" class="blob-code js-file-line">      <span class="nx">b</span><span class="p">.</span><span class="nx">enter</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L610" class="blob-num js-line-number" data-line-number="610"></td>
        <td id="LC610" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L611" class="blob-num js-line-number" data-line-number="611"></td>
        <td id="LC611" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L612" class="blob-num js-line-number" data-line-number="612"></td>
        <td id="LC612" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L613" class="blob-num js-line-number" data-line-number="613"></td>
        <td id="LC613" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L614" class="blob-num js-line-number" data-line-number="614"></td>
        <td id="LC614" class="blob-code js-file-line">  <span class="nx">story</span><span class="p">.</span><span class="nx">addState</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">opts</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L615" class="blob-num js-line-number" data-line-number="615"></td>
        <td id="LC615" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L616" class="blob-num js-line-number" data-line-number="616"></td>
        <td id="LC616" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L617" class="blob-num js-line-number" data-line-number="617"></td>
        <td id="LC617" class="blob-code js-file-line">    <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">a</span> <span class="o">||</span> <span class="o">!</span><span class="nx">b</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L618" class="blob-num js-line-number" data-line-number="618"></td>
        <td id="LC618" class="blob-code js-file-line">      <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">&quot;action and trigger must be defined&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L619" class="blob-num js-line-number" data-line-number="619"></td>
        <td id="LC619" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L620" class="blob-num js-line-number" data-line-number="620"></td>
        <td id="LC620" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L621" class="blob-num js-line-number" data-line-number="621"></td>
        <td id="LC621" class="blob-code js-file-line">    <span class="nx">triggers</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L622" class="blob-num js-line-number" data-line-number="622"></td>
        <td id="LC622" class="blob-code js-file-line">      <span class="nx">a</span><span class="o">:</span> <span class="nx">a</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L623" class="blob-num js-line-number" data-line-number="623"></td>
        <td id="LC623" class="blob-code js-file-line">      <span class="nx">b</span><span class="o">:</span> <span class="nx">b</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L624" class="blob-num js-line-number" data-line-number="624"></td>
        <td id="LC624" class="blob-code js-file-line">      <span class="nx">opts</span><span class="o">:</span> <span class="nx">opts</span></td>
      </tr>
      <tr>
        <td id="L625" class="blob-num js-line-number" data-line-number="625"></td>
        <td id="LC625" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L626" class="blob-num js-line-number" data-line-number="626"></td>
        <td id="LC626" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L627" class="blob-num js-line-number" data-line-number="627"></td>
        <td id="LC627" class="blob-code js-file-line">    <span class="nx">a</span><span class="p">.</span><span class="nx">_story</span><span class="p">(</span><span class="nx">story</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L628" class="blob-num js-line-number" data-line-number="628"></td>
        <td id="LC628" class="blob-code js-file-line">      <span class="nx">story</span><span class="p">.</span><span class="nx">go</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L629" class="blob-num js-line-number" data-line-number="629"></td>
        <td id="LC629" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L630" class="blob-num js-line-number" data-line-number="630"></td>
        <td id="LC630" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L631" class="blob-num js-line-number" data-line-number="631"></td>
        <td id="LC631" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">story</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L632" class="blob-num js-line-number" data-line-number="632"></td>
        <td id="LC632" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L633" class="blob-num js-line-number" data-line-number="633"></td>
        <td id="LC633" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L634" class="blob-num js-line-number" data-line-number="634"></td>
        <td id="LC634" class="blob-code js-file-line">  <span class="nx">story</span><span class="p">.</span><span class="nx">addLinearState</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">opts</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L635" class="blob-num js-line-number" data-line-number="635"></td>
        <td id="LC635" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">j</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L636" class="blob-num js-line-number" data-line-number="636"></td>
        <td id="LC636" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L637" class="blob-num js-line-number" data-line-number="637"></td>
        <td id="LC637" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L638" class="blob-num js-line-number" data-line-number="638"></td>
        <td id="LC638" class="blob-code js-file-line">    <span class="nx">triggers</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L639" class="blob-num js-line-number" data-line-number="639"></td>
        <td id="LC639" class="blob-code js-file-line">      <span class="nx">a</span><span class="o">:</span> <span class="nx">a</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L640" class="blob-num js-line-number" data-line-number="640"></td>
        <td id="LC640" class="blob-code js-file-line">      <span class="nx">b</span><span class="o">:</span> <span class="nx">b</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L641" class="blob-num js-line-number" data-line-number="641"></td>
        <td id="LC641" class="blob-code js-file-line">      <span class="nx">opts</span><span class="o">:</span> <span class="nx">opts</span></td>
      </tr>
      <tr>
        <td id="L642" class="blob-num js-line-number" data-line-number="642"></td>
        <td id="LC642" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L643" class="blob-num js-line-number" data-line-number="643"></td>
        <td id="LC643" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L644" class="blob-num js-line-number" data-line-number="644"></td>
        <td id="LC644" class="blob-code js-file-line">    <span class="nx">a</span><span class="p">.</span><span class="nx">_story</span><span class="p">(</span><span class="nx">story</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">t</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L645" class="blob-num js-line-number" data-line-number="645"></td>
        <td id="LC645" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">story</span><span class="p">.</span><span class="nx">state</span><span class="p">()</span> <span class="o">!==</span> <span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L646" class="blob-num js-line-number" data-line-number="646"></td>
        <td id="LC646" class="blob-code js-file-line">        <span class="nx">story</span><span class="p">.</span><span class="nx">go</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L647" class="blob-num js-line-number" data-line-number="647"></td>
        <td id="LC647" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L648" class="blob-num js-line-number" data-line-number="648"></td>
        <td id="LC648" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">b</span><span class="p">.</span><span class="nx">update</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L649" class="blob-num js-line-number" data-line-number="649"></td>
        <td id="LC649" class="blob-code js-file-line">          <span class="nx">b</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="nx">t</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L650" class="blob-num js-line-number" data-line-number="650"></td>
        <td id="LC650" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L651" class="blob-num js-line-number" data-line-number="651"></td>
        <td id="LC651" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L652" class="blob-num js-line-number" data-line-number="652"></td>
        <td id="LC652" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L653" class="blob-num js-line-number" data-line-number="653"></td>
        <td id="LC653" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L654" class="blob-num js-line-number" data-line-number="654"></td>
        <td id="LC654" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">story</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L655" class="blob-num js-line-number" data-line-number="655"></td>
        <td id="LC655" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L656" class="blob-num js-line-number" data-line-number="656"></td>
        <td id="LC656" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L657" class="blob-num js-line-number" data-line-number="657"></td>
        <td id="LC657" class="blob-code js-file-line">  <span class="nx">story</span><span class="p">.</span><span class="nx">state</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L658" class="blob-num js-line-number" data-line-number="658"></td>
        <td id="LC658" class="blob-code js-file-line">    <span class="k">if</span><span class="p">(</span><span class="nx">_</span> <span class="o">===</span> <span class="kc">undefined</span><span class="p">)</span> <span class="k">return</span> <span class="nx">currentState</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L659" class="blob-num js-line-number" data-line-number="659"></td>
        <td id="LC659" class="blob-code js-file-line">    <span class="nx">prevState</span> <span class="o">=</span> <span class="nx">currentState</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L660" class="blob-num js-line-number" data-line-number="660"></td>
        <td id="LC660" class="blob-code js-file-line">    <span class="nx">currentState</span> <span class="o">=</span> <span class="nx">_</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L661" class="blob-num js-line-number" data-line-number="661"></td>
        <td id="LC661" class="blob-code js-file-line">    <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L662" class="blob-num js-line-number" data-line-number="662"></td>
        <td id="LC662" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L663" class="blob-num js-line-number" data-line-number="663"></td>
        <td id="LC663" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L664" class="blob-num js-line-number" data-line-number="664"></td>
        <td id="LC664" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">story</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L665" class="blob-num js-line-number" data-line-number="665"></td>
        <td id="LC665" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L666" class="blob-num js-line-number" data-line-number="666"></td>
        <td id="LC666" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L667" class="blob-num js-line-number" data-line-number="667"></td>
        <td id="LC667" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L668" class="blob-num js-line-number" data-line-number="668"></td>
        <td id="LC668" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L669" class="blob-num js-line-number" data-line-number="669"></td>
        <td id="LC669" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L670" class="blob-num js-line-number" data-line-number="670"></td>
        <td id="LC670" class="blob-code js-file-line"><span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L671" class="blob-num js-line-number" data-line-number="671"></td>
        <td id="LC671" class="blob-code js-file-line"><span class="c1">// basic action</span></td>
      </tr>
      <tr>
        <td id="L672" class="blob-num js-line-number" data-line-number="672"></td>
        <td id="LC672" class="blob-code js-file-line"><span class="c1">// t can be a function or an object</span></td>
      </tr>
      <tr>
        <td id="L673" class="blob-num js-line-number" data-line-number="673"></td>
        <td id="LC673" class="blob-code js-file-line"><span class="c1">// if is a function it&#39;s called on ``enter`` event</span></td>
      </tr>
      <tr>
        <td id="L674" class="blob-num js-line-number" data-line-number="674"></td>
        <td id="LC674" class="blob-code js-file-line"><span class="c1">// if t is an object with enter/exit/update methods</span></td>
      </tr>
      <tr>
        <td id="L675" class="blob-num js-line-number" data-line-number="675"></td>
        <td id="LC675" class="blob-code js-file-line"><span class="c1">// they&#39;re called on state changes</span></td>
      </tr>
      <tr>
        <td id="L676" class="blob-num js-line-number" data-line-number="676"></td>
        <td id="LC676" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Action</span><span class="p">(</span><span class="nx">t</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L677" class="blob-num js-line-number" data-line-number="677"></td>
        <td id="LC677" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L678" class="blob-num js-line-number" data-line-number="678"></td>
        <td id="LC678" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">evt</span> <span class="o">=</span> <span class="nx">d3</span><span class="p">.</span><span class="nx">dispatch</span><span class="p">(</span><span class="s1">&#39;finish&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L679" class="blob-num js-line-number" data-line-number="679"></td>
        <td id="LC679" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">action</span> <span class="o">=</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L680" class="blob-num js-line-number" data-line-number="680"></td>
        <td id="LC680" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">enter</span> <span class="o">===</span> <span class="kc">undefined</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="p">(</span><span class="k">typeof</span><span class="p">(</span><span class="nx">t</span><span class="p">)</span> <span class="o">===</span> <span class="s1">&#39;function&#39;</span> <span class="o">&amp;&amp;</span> <span class="nx">t</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">enter</span> <span class="o">!==</span> <span class="kc">undefined</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L681" class="blob-num js-line-number" data-line-number="681"></td>
        <td id="LC681" class="blob-code js-file-line">    <span class="nx">action</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L682" class="blob-num js-line-number" data-line-number="682"></td>
        <td id="LC682" class="blob-code js-file-line">      <span class="nx">enter</span><span class="o">:</span> <span class="nx">t</span></td>
      </tr>
      <tr>
        <td id="L683" class="blob-num js-line-number" data-line-number="683"></td>
        <td id="LC683" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L684" class="blob-num js-line-number" data-line-number="684"></td>
        <td id="LC684" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L685" class="blob-num js-line-number" data-line-number="685"></td>
        <td id="LC685" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L686" class="blob-num js-line-number" data-line-number="686"></td>
        <td id="LC686" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">d3</span><span class="p">.</span><span class="nx">rebind</span><span class="p">(</span><span class="nx">action</span><span class="p">,</span> <span class="nx">evt</span><span class="p">,</span> <span class="s1">&#39;on&#39;</span><span class="p">,</span> <span class="s1">&#39;finish&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L687" class="blob-num js-line-number" data-line-number="687"></td>
        <td id="LC687" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L688" class="blob-num js-line-number" data-line-number="688"></td>
        <td id="LC688" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L689" class="blob-num js-line-number" data-line-number="689"></td>
        <td id="LC689" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L690" class="blob-num js-line-number" data-line-number="690"></td>
        <td id="LC690" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Trigger</span><span class="p">(</span><span class="nx">t</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L691" class="blob-num js-line-number" data-line-number="691"></td>
        <td id="LC691" class="blob-code js-file-line">  <span class="nx">t</span> <span class="o">=</span> <span class="nx">t</span> <span class="o">||</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L692" class="blob-num js-line-number" data-line-number="692"></td>
        <td id="LC692" class="blob-code js-file-line">  <span class="nx">t</span><span class="p">.</span><span class="nx">_story</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">story</span><span class="p">,</span> <span class="nx">trigger</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L693" class="blob-num js-line-number" data-line-number="693"></td>
        <td id="LC693" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">trigger</span> <span class="o">=</span> <span class="nx">trigger</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L694" class="blob-num js-line-number" data-line-number="694"></td>
        <td id="LC694" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">story</span> <span class="o">=</span> <span class="nx">story</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L695" class="blob-num js-line-number" data-line-number="695"></td>
        <td id="LC695" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L696" class="blob-num js-line-number" data-line-number="696"></td>
        <td id="LC696" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L697" class="blob-num js-line-number" data-line-number="697"></td>
        <td id="LC697" class="blob-code js-file-line">  <span class="nx">t</span><span class="p">.</span><span class="nx">then</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">t</span><span class="p">,</span> <span class="nx">context</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L698" class="blob-num js-line-number" data-line-number="698"></td>
        <td id="LC698" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">trigger</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L699" class="blob-num js-line-number" data-line-number="699"></td>
        <td id="LC699" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">trigger</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L700" class="blob-num js-line-number" data-line-number="700"></td>
        <td id="LC700" class="blob-code js-file-line">        <span class="nx">t</span><span class="p">.</span><span class="nx">trigger</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L701" class="blob-num js-line-number" data-line-number="701"></td>
        <td id="LC701" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">reverse</span><span class="p">)</span> <span class="nx">t</span><span class="p">.</span><span class="nx">reverse</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L702" class="blob-num js-line-number" data-line-number="702"></td>
        <td id="LC702" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">call</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L703" class="blob-num js-line-number" data-line-number="703"></td>
        <td id="LC703" class="blob-code js-file-line">        <span class="nx">t</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">context</span> <span class="o">||</span> <span class="nx">self</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L704" class="blob-num js-line-number" data-line-number="704"></td>
        <td id="LC704" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L705" class="blob-num js-line-number" data-line-number="705"></td>
        <td id="LC705" class="blob-code js-file-line">        <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">&quot;then first param should be either function or trigger&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L706" class="blob-num js-line-number" data-line-number="706"></td>
        <td id="LC706" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L707" class="blob-num js-line-number" data-line-number="707"></td>
        <td id="LC707" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L708" class="blob-num js-line-number" data-line-number="708"></td>
        <td id="LC708" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L709" class="blob-num js-line-number" data-line-number="709"></td>
        <td id="LC709" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L710" class="blob-num js-line-number" data-line-number="710"></td>
        <td id="LC710" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L711" class="blob-num js-line-number" data-line-number="711"></td>
        <td id="LC711" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L712" class="blob-num js-line-number" data-line-number="712"></td>
        <td id="LC712" class="blob-code js-file-line"><span class="c1">///</span></td>
      </tr>
      <tr>
        <td id="L713" class="blob-num js-line-number" data-line-number="713"></td>
        <td id="LC713" class="blob-code js-file-line"><span class="c1">// executes actions in parallel</span></td>
      </tr>
      <tr>
        <td id="L714" class="blob-num js-line-number" data-line-number="714"></td>
        <td id="LC714" class="blob-code js-file-line"><span class="c1">// usage:</span></td>
      </tr>
      <tr>
        <td id="L715" class="blob-num js-line-number" data-line-number="715"></td>
        <td id="LC715" class="blob-code js-file-line"><span class="c1">//    Parallel(action1, action2, action3)</span></td>
      </tr>
      <tr>
        <td id="L716" class="blob-num js-line-number" data-line-number="716"></td>
        <td id="LC716" class="blob-code js-file-line"><span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L717" class="blob-num js-line-number" data-line-number="717"></td>
        <td id="LC717" class="blob-code js-file-line"><span class="c1">// raises finish when all the tasks has been completed</span></td>
      </tr>
      <tr>
        <td id="L718" class="blob-num js-line-number" data-line-number="718"></td>
        <td id="LC718" class="blob-code js-file-line"><span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L719" class="blob-num js-line-number" data-line-number="719"></td>
        <td id="LC719" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Parallel</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L720" class="blob-num js-line-number" data-line-number="720"></td>
        <td id="LC720" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">actions</span> <span class="o">=</span> <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">slice</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L721" class="blob-num js-line-number" data-line-number="721"></td>
        <td id="LC721" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">tasksLeft</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L722" class="blob-num js-line-number" data-line-number="722"></td>
        <td id="LC722" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L723" class="blob-num js-line-number" data-line-number="723"></td>
        <td id="LC723" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_Parallel</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L724" class="blob-num js-line-number" data-line-number="724"></td>
        <td id="LC724" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L725" class="blob-num js-line-number" data-line-number="725"></td>
        <td id="LC725" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">start</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L726" class="blob-num js-line-number" data-line-number="726"></td>
        <td id="LC726" class="blob-code js-file-line">    <span class="nx">tasksLeft</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L727" class="blob-num js-line-number" data-line-number="727"></td>
        <td id="LC727" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L728" class="blob-num js-line-number" data-line-number="728"></td>
        <td id="LC728" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L729" class="blob-num js-line-number" data-line-number="729"></td>
        <td id="LC729" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">done</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L730" class="blob-num js-line-number" data-line-number="730"></td>
        <td id="LC730" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">--</span><span class="nx">tasksLeft</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L731" class="blob-num js-line-number" data-line-number="731"></td>
        <td id="LC731" class="blob-code js-file-line">      <span class="nx">_Parallel</span><span class="p">.</span><span class="nx">finish</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L732" class="blob-num js-line-number" data-line-number="732"></td>
        <td id="LC732" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L733" class="blob-num js-line-number" data-line-number="733"></td>
        <td id="LC733" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L734" class="blob-num js-line-number" data-line-number="734"></td>
        <td id="LC734" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L735" class="blob-num js-line-number" data-line-number="735"></td>
        <td id="LC735" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">wait</span><span class="p">(</span><span class="nx">action</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L736" class="blob-num js-line-number" data-line-number="736"></td>
        <td id="LC736" class="blob-code js-file-line">    <span class="nx">action</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">&#39;finish.parallel&#39;</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L737" class="blob-num js-line-number" data-line-number="737"></td>
        <td id="LC737" class="blob-code js-file-line">      <span class="nx">action</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">&#39;finish.parallel&#39;</span><span class="p">,</span> <span class="kc">null</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L738" class="blob-num js-line-number" data-line-number="738"></td>
        <td id="LC738" class="blob-code js-file-line">      <span class="nx">done</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L739" class="blob-num js-line-number" data-line-number="739"></td>
        <td id="LC739" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L740" class="blob-num js-line-number" data-line-number="740"></td>
        <td id="LC740" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L741" class="blob-num js-line-number" data-line-number="741"></td>
        <td id="LC741" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L742" class="blob-num js-line-number" data-line-number="742"></td>
        <td id="LC742" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L743" class="blob-num js-line-number" data-line-number="743"></td>
        <td id="LC743" class="blob-code js-file-line">  <span class="nx">_Parallel</span><span class="p">.</span><span class="nx">enter</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L744" class="blob-num js-line-number" data-line-number="744"></td>
        <td id="LC744" class="blob-code js-file-line">    <span class="nx">start</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L745" class="blob-num js-line-number" data-line-number="745"></td>
        <td id="LC745" class="blob-code js-file-line">    <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">len</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L746" class="blob-num js-line-number" data-line-number="746"></td>
        <td id="LC746" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L747" class="blob-num js-line-number" data-line-number="747"></td>
        <td id="LC747" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">enter</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L748" class="blob-num js-line-number" data-line-number="748"></td>
        <td id="LC748" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">enter</span><span class="p">())</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L749" class="blob-num js-line-number" data-line-number="749"></td>
        <td id="LC749" class="blob-code js-file-line">          <span class="nx">wait</span><span class="p">(</span><span class="nx">a</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L750" class="blob-num js-line-number" data-line-number="750"></td>
        <td id="LC750" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L751" class="blob-num js-line-number" data-line-number="751"></td>
        <td id="LC751" class="blob-code js-file-line">          <span class="nx">done</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L752" class="blob-num js-line-number" data-line-number="752"></td>
        <td id="LC752" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L753" class="blob-num js-line-number" data-line-number="753"></td>
        <td id="LC753" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L754" class="blob-num js-line-number" data-line-number="754"></td>
        <td id="LC754" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L755" class="blob-num js-line-number" data-line-number="755"></td>
        <td id="LC755" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L756" class="blob-num js-line-number" data-line-number="756"></td>
        <td id="LC756" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L757" class="blob-num js-line-number" data-line-number="757"></td>
        <td id="LC757" class="blob-code js-file-line">  <span class="nx">_Parallel</span><span class="p">.</span><span class="nx">exit</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L758" class="blob-num js-line-number" data-line-number="758"></td>
        <td id="LC758" class="blob-code js-file-line">    <span class="nx">start</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L759" class="blob-num js-line-number" data-line-number="759"></td>
        <td id="LC759" class="blob-code js-file-line">    <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">;</span> <span class="o">--</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L760" class="blob-num js-line-number" data-line-number="760"></td>
        <td id="LC760" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L761" class="blob-num js-line-number" data-line-number="761"></td>
        <td id="LC761" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">exit</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L762" class="blob-num js-line-number" data-line-number="762"></td>
        <td id="LC762" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">exit</span><span class="p">())</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L763" class="blob-num js-line-number" data-line-number="763"></td>
        <td id="LC763" class="blob-code js-file-line">          <span class="nx">wait</span><span class="p">(</span><span class="nx">a</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L764" class="blob-num js-line-number" data-line-number="764"></td>
        <td id="LC764" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L765" class="blob-num js-line-number" data-line-number="765"></td>
        <td id="LC765" class="blob-code js-file-line">          <span class="nx">done</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L766" class="blob-num js-line-number" data-line-number="766"></td>
        <td id="LC766" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L767" class="blob-num js-line-number" data-line-number="767"></td>
        <td id="LC767" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L768" class="blob-num js-line-number" data-line-number="768"></td>
        <td id="LC768" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L769" class="blob-num js-line-number" data-line-number="769"></td>
        <td id="LC769" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L770" class="blob-num js-line-number" data-line-number="770"></td>
        <td id="LC770" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L771" class="blob-num js-line-number" data-line-number="771"></td>
        <td id="LC771" class="blob-code js-file-line">  <span class="nx">_Parallel</span><span class="p">.</span><span class="nx">clear</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L772" class="blob-num js-line-number" data-line-number="772"></td>
        <td id="LC772" class="blob-code js-file-line">    <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">len</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L773" class="blob-num js-line-number" data-line-number="773"></td>
        <td id="LC773" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L774" class="blob-num js-line-number" data-line-number="774"></td>
        <td id="LC774" class="blob-code js-file-line">      <span class="nx">a</span><span class="p">.</span><span class="nx">clear</span> <span class="o">&amp;&amp;</span> <span class="nx">a</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L775" class="blob-num js-line-number" data-line-number="775"></td>
        <td id="LC775" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L776" class="blob-num js-line-number" data-line-number="776"></td>
        <td id="LC776" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L777" class="blob-num js-line-number" data-line-number="777"></td>
        <td id="LC777" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L778" class="blob-num js-line-number" data-line-number="778"></td>
        <td id="LC778" class="blob-code js-file-line">  <span class="nx">_Parallel</span> <span class="o">=</span> <span class="nx">Action</span><span class="p">(</span><span class="nx">_Parallel</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L779" class="blob-num js-line-number" data-line-number="779"></td>
        <td id="LC779" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">_Parallel</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L780" class="blob-num js-line-number" data-line-number="780"></td>
        <td id="LC780" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L781" class="blob-num js-line-number" data-line-number="781"></td>
        <td id="LC781" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L782" class="blob-num js-line-number" data-line-number="782"></td>
        <td id="LC782" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L783" class="blob-num js-line-number" data-line-number="783"></td>
        <td id="LC783" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L784" class="blob-num js-line-number" data-line-number="784"></td>
        <td id="LC784" class="blob-code js-file-line"><span class="c1">///</span></td>
      </tr>
      <tr>
        <td id="L785" class="blob-num js-line-number" data-line-number="785"></td>
        <td id="LC785" class="blob-code js-file-line"><span class="c1">// executes actions serially, waits until the previous task</span></td>
      </tr>
      <tr>
        <td id="L786" class="blob-num js-line-number" data-line-number="786"></td>
        <td id="LC786" class="blob-code js-file-line"><span class="c1">// is completed to start with the second and so on</span></td>
      </tr>
      <tr>
        <td id="L787" class="blob-num js-line-number" data-line-number="787"></td>
        <td id="LC787" class="blob-code js-file-line"><span class="c1">// usage:</span></td>
      </tr>
      <tr>
        <td id="L788" class="blob-num js-line-number" data-line-number="788"></td>
        <td id="LC788" class="blob-code js-file-line"><span class="c1">//    Step(action1, action2, action3)</span></td>
      </tr>
      <tr>
        <td id="L789" class="blob-num js-line-number" data-line-number="789"></td>
        <td id="LC789" class="blob-code js-file-line"><span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L790" class="blob-num js-line-number" data-line-number="790"></td>
        <td id="LC790" class="blob-code js-file-line"><span class="c1">// raises finish when all the tasks has been completed</span></td>
      </tr>
      <tr>
        <td id="L791" class="blob-num js-line-number" data-line-number="791"></td>
        <td id="LC791" class="blob-code js-file-line"><span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L792" class="blob-num js-line-number" data-line-number="792"></td>
        <td id="LC792" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Step</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L793" class="blob-num js-line-number" data-line-number="793"></td>
        <td id="LC793" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L794" class="blob-num js-line-number" data-line-number="794"></td>
        <td id="LC794" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">actions</span> <span class="o">=</span> <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">slice</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L795" class="blob-num js-line-number" data-line-number="795"></td>
        <td id="LC795" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">queue</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L796" class="blob-num js-line-number" data-line-number="796"></td>
        <td id="LC796" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L797" class="blob-num js-line-number" data-line-number="797"></td>
        <td id="LC797" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_Step</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L798" class="blob-num js-line-number" data-line-number="798"></td>
        <td id="LC798" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L799" class="blob-num js-line-number" data-line-number="799"></td>
        <td id="LC799" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">next</span><span class="p">(</span><span class="nx">method</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L800" class="blob-num js-line-number" data-line-number="800"></td>
        <td id="LC800" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">queue</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L801" class="blob-num js-line-number" data-line-number="801"></td>
        <td id="LC801" class="blob-code js-file-line">      <span class="nx">_Step</span><span class="p">.</span><span class="nx">finish</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L802" class="blob-num js-line-number" data-line-number="802"></td>
        <td id="LC802" class="blob-code js-file-line">      <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L803" class="blob-num js-line-number" data-line-number="803"></td>
        <td id="LC803" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L804" class="blob-num js-line-number" data-line-number="804"></td>
        <td id="LC804" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="nx">queue</span><span class="p">.</span><span class="nx">pop</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L805" class="blob-num js-line-number" data-line-number="805"></td>
        <td id="LC805" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">on</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L806" class="blob-num js-line-number" data-line-number="806"></td>
        <td id="LC806" class="blob-code js-file-line">      <span class="nx">a</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">&#39;finish.chain&#39;</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L807" class="blob-num js-line-number" data-line-number="807"></td>
        <td id="LC807" class="blob-code js-file-line">        <span class="nx">a</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">&#39;finish.chain&#39;</span><span class="p">,</span> <span class="kc">null</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L808" class="blob-num js-line-number" data-line-number="808"></td>
        <td id="LC808" class="blob-code js-file-line">        <span class="nx">next</span><span class="p">(</span><span class="nx">method</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L809" class="blob-num js-line-number" data-line-number="809"></td>
        <td id="LC809" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L810" class="blob-num js-line-number" data-line-number="810"></td>
        <td id="LC810" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L811" class="blob-num js-line-number" data-line-number="811"></td>
        <td id="LC811" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">a</span><span class="p">[</span><span class="nx">method</span><span class="p">]</span> <span class="o">||</span> <span class="o">!</span><span class="nx">a</span><span class="p">[</span><span class="nx">method</span><span class="p">]())</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L812" class="blob-num js-line-number" data-line-number="812"></td>
        <td id="LC812" class="blob-code js-file-line">      <span class="nx">next</span><span class="p">(</span><span class="nx">method</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L813" class="blob-num js-line-number" data-line-number="813"></td>
        <td id="LC813" class="blob-code js-file-line">      <span class="k">if</span><span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">on</span><span class="p">)</span> <span class="nx">a</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">&#39;finish.chain&#39;</span><span class="p">,</span> <span class="kc">null</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L814" class="blob-num js-line-number" data-line-number="814"></td>
        <td id="LC814" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L815" class="blob-num js-line-number" data-line-number="815"></td>
        <td id="LC815" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L816" class="blob-num js-line-number" data-line-number="816"></td>
        <td id="LC816" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L817" class="blob-num js-line-number" data-line-number="817"></td>
        <td id="LC817" class="blob-code js-file-line">  <span class="nx">_Step</span><span class="p">.</span><span class="nx">enter</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L818" class="blob-num js-line-number" data-line-number="818"></td>
        <td id="LC818" class="blob-code js-file-line">    <span class="c1">// call enter on each action</span></td>
      </tr>
      <tr>
        <td id="L819" class="blob-num js-line-number" data-line-number="819"></td>
        <td id="LC819" class="blob-code js-file-line">    <span class="nx">queue</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">.</span><span class="nx">slice</span><span class="p">().</span><span class="nx">reverse</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L820" class="blob-num js-line-number" data-line-number="820"></td>
        <td id="LC820" class="blob-code js-file-line">    <span class="nx">next</span><span class="p">(</span><span class="s1">&#39;enter&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L821" class="blob-num js-line-number" data-line-number="821"></td>
        <td id="LC821" class="blob-code js-file-line">    <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L822" class="blob-num js-line-number" data-line-number="822"></td>
        <td id="LC822" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L823" class="blob-num js-line-number" data-line-number="823"></td>
        <td id="LC823" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L824" class="blob-num js-line-number" data-line-number="824"></td>
        <td id="LC824" class="blob-code js-file-line">  <span class="nx">_Step</span><span class="p">.</span><span class="nx">exit</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L825" class="blob-num js-line-number" data-line-number="825"></td>
        <td id="LC825" class="blob-code js-file-line">    <span class="c1">// call exit on each action</span></td>
      </tr>
      <tr>
        <td id="L826" class="blob-num js-line-number" data-line-number="826"></td>
        <td id="LC826" class="blob-code js-file-line">    <span class="nx">queue</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">.</span><span class="nx">slice</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L827" class="blob-num js-line-number" data-line-number="827"></td>
        <td id="LC827" class="blob-code js-file-line">    <span class="nx">next</span><span class="p">(</span><span class="s1">&#39;exit&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L828" class="blob-num js-line-number" data-line-number="828"></td>
        <td id="LC828" class="blob-code js-file-line">    <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L829" class="blob-num js-line-number" data-line-number="829"></td>
        <td id="LC829" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L830" class="blob-num js-line-number" data-line-number="830"></td>
        <td id="LC830" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L831" class="blob-num js-line-number" data-line-number="831"></td>
        <td id="LC831" class="blob-code js-file-line">  <span class="nx">_Step</span><span class="p">.</span><span class="nx">clear</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L832" class="blob-num js-line-number" data-line-number="832"></td>
        <td id="LC832" class="blob-code js-file-line">    <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">len</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L833" class="blob-num js-line-number" data-line-number="833"></td>
        <td id="LC833" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="nx">actions</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L834" class="blob-num js-line-number" data-line-number="834"></td>
        <td id="LC834" class="blob-code js-file-line">      <span class="nx">a</span><span class="p">.</span><span class="nx">clear</span> <span class="o">&amp;&amp;</span> <span class="nx">a</span><span class="p">.</span><span class="nx">clear</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L835" class="blob-num js-line-number" data-line-number="835"></td>
        <td id="LC835" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L836" class="blob-num js-line-number" data-line-number="836"></td>
        <td id="LC836" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L837" class="blob-num js-line-number" data-line-number="837"></td>
        <td id="LC837" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L838" class="blob-num js-line-number" data-line-number="838"></td>
        <td id="LC838" class="blob-code js-file-line">  <span class="nx">_Step</span> <span class="o">=</span> <span class="nx">Action</span><span class="p">(</span><span class="nx">_Step</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L839" class="blob-num js-line-number" data-line-number="839"></td>
        <td id="LC839" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">_Step</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L840" class="blob-num js-line-number" data-line-number="840"></td>
        <td id="LC840" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L841" class="blob-num js-line-number" data-line-number="841"></td>
        <td id="LC841" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L842" class="blob-num js-line-number" data-line-number="842"></td>
        <td id="LC842" class="blob-code js-file-line"><span class="c1">// check change between two states and triggers</span></td>
      </tr>
      <tr>
        <td id="L843" class="blob-num js-line-number" data-line-number="843"></td>
        <td id="LC843" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Edge</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L844" class="blob-num js-line-number" data-line-number="844"></td>
        <td id="LC844" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">s</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L845" class="blob-num js-line-number" data-line-number="845"></td>
        <td id="LC845" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">t</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L846" class="blob-num js-line-number" data-line-number="846"></td>
        <td id="LC846" class="blob-code js-file-line">  <span class="nx">a</span><span class="p">.</span><span class="nx">_story</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L847" class="blob-num js-line-number" data-line-number="847"></td>
        <td id="LC847" class="blob-code js-file-line">    <span class="k">if</span><span class="p">(</span><span class="nx">s</span> <span class="o">!==</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L848" class="blob-num js-line-number" data-line-number="848"></td>
        <td id="LC848" class="blob-code js-file-line">      <span class="nx">t</span><span class="p">.</span><span class="nx">trigger</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L849" class="blob-num js-line-number" data-line-number="849"></td>
        <td id="LC849" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L850" class="blob-num js-line-number" data-line-number="850"></td>
        <td id="LC850" class="blob-code js-file-line">    <span class="nx">s</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L851" class="blob-num js-line-number" data-line-number="851"></td>
        <td id="LC851" class="blob-code js-file-line">  <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L852" class="blob-num js-line-number" data-line-number="852"></td>
        <td id="LC852" class="blob-code js-file-line">  <span class="nx">b</span><span class="p">.</span><span class="nx">_story</span><span class="p">(</span><span class="kc">null</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L853" class="blob-num js-line-number" data-line-number="853"></td>
        <td id="LC853" class="blob-code js-file-line">    <span class="k">if</span><span class="p">(</span><span class="nx">s</span> <span class="o">!==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L854" class="blob-num js-line-number" data-line-number="854"></td>
        <td id="LC854" class="blob-code js-file-line">      <span class="nx">t</span><span class="p">.</span><span class="nx">trigger</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L855" class="blob-num js-line-number" data-line-number="855"></td>
        <td id="LC855" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L856" class="blob-num js-line-number" data-line-number="856"></td>
        <td id="LC856" class="blob-code js-file-line">    <span class="nx">s</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L857" class="blob-num js-line-number" data-line-number="857"></td>
        <td id="LC857" class="blob-code js-file-line">  <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L858" class="blob-num js-line-number" data-line-number="858"></td>
        <td id="LC858" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">Trigger</span><span class="p">(</span><span class="nx">t</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L859" class="blob-num js-line-number" data-line-number="859"></td>
        <td id="LC859" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L860" class="blob-num js-line-number" data-line-number="860"></td>
        <td id="LC860" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L861" class="blob-num js-line-number" data-line-number="861"></td>
        <td id="LC861" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L862" class="blob-num js-line-number" data-line-number="862"></td>
        <td id="LC862" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L863" class="blob-num js-line-number" data-line-number="863"></td>
        <td id="LC863" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L864" class="blob-num js-line-number" data-line-number="864"></td>
        <td id="LC864" class="blob-code js-file-line">  <span class="nx">Story</span><span class="o">:</span> <span class="nx">Story</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L865" class="blob-num js-line-number" data-line-number="865"></td>
        <td id="LC865" class="blob-code js-file-line">  <span class="nx">Action</span><span class="o">:</span> <span class="nx">Action</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L866" class="blob-num js-line-number" data-line-number="866"></td>
        <td id="LC866" class="blob-code js-file-line">  <span class="nx">Trigger</span><span class="o">:</span> <span class="nx">Trigger</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L867" class="blob-num js-line-number" data-line-number="867"></td>
        <td id="LC867" class="blob-code js-file-line">  <span class="nx">Step</span><span class="o">:</span> <span class="nx">Step</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L868" class="blob-num js-line-number" data-line-number="868"></td>
        <td id="LC868" class="blob-code js-file-line">  <span class="nx">Parallel</span><span class="o">:</span> <span class="nx">Parallel</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L869" class="blob-num js-line-number" data-line-number="869"></td>
        <td id="LC869" class="blob-code js-file-line">  <span class="nx">Edge</span><span class="o">:</span> <span class="nx">Edge</span></td>
      </tr>
      <tr>
        <td id="L870" class="blob-num js-line-number" data-line-number="870"></td>
        <td id="LC870" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L871" class="blob-num js-line-number" data-line-number="871"></td>
        <td id="LC871" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L872" class="blob-num js-line-number" data-line-number="872"></td>
        <td id="LC872" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L873" class="blob-num js-line-number" data-line-number="873"></td>
        <td id="LC873" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../../vendor/d3.custom&quot;</span><span class="o">:</span><span class="mi">32</span><span class="p">}],</span><span class="mi">15</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L874" class="blob-num js-line-number" data-line-number="874"></td>
        <td id="LC874" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L875" class="blob-num js-line-number" data-line-number="875"></td>
        <td id="LC875" class="blob-code js-file-line"><span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../../vendor/markdown&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L876" class="blob-num js-line-number" data-line-number="876"></td>
        <td id="LC876" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">mapActions</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L877" class="blob-num js-line-number" data-line-number="877"></td>
        <td id="LC877" class="blob-code js-file-line">    <span class="s1">&#39;move map to current position&#39;</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L878" class="blob-num js-line-number" data-line-number="878"></td>
        <td id="LC878" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">center</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">map</span><span class="p">.</span><span class="nx">getCenter</span><span class="p">()</span></td>
      </tr>
      <tr>
        <td id="L879" class="blob-num js-line-number" data-line-number="879"></td>
        <td id="LC879" class="blob-code js-file-line">      <span class="k">return</span> <span class="s1">&#39;- center: [&#39;</span> <span class="o">+</span> <span class="nx">center</span><span class="p">.</span><span class="nx">lat</span><span class="p">.</span><span class="nx">toFixed</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;, &#39;</span> <span class="o">+</span> <span class="nx">center</span><span class="p">.</span><span class="nx">lng</span><span class="p">.</span><span class="nx">toFixed</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;]\n- zoom: &#39;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">map</span><span class="p">.</span><span class="nx">getZoom</span><span class="p">()</span></td>
      </tr>
      <tr>
        <td id="L880" class="blob-num js-line-number" data-line-number="880"></td>
        <td id="LC880" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L881" class="blob-num js-line-number" data-line-number="881"></td>
        <td id="LC881" class="blob-code js-file-line">    <span class="s1">&#39;show marker at current position&#39;</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L882" class="blob-num js-line-number" data-line-number="882"></td>
        <td id="LC882" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">center</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">map</span><span class="p">.</span><span class="nx">getCenter</span><span class="p">()</span></td>
      </tr>
      <tr>
        <td id="L883" class="blob-num js-line-number" data-line-number="883"></td>
        <td id="LC883" class="blob-code js-file-line">      <span class="k">return</span> <span class="s1">&#39;L.marker([&#39;</span> <span class="o">+</span> <span class="nx">center</span><span class="p">.</span><span class="nx">lat</span><span class="p">.</span><span class="nx">toFixed</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;, &#39;</span> <span class="o">+</span> <span class="nx">center</span><span class="p">.</span><span class="nx">lng</span><span class="p">.</span><span class="nx">toFixed</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;]).actions.addRemove(S.map)&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L884" class="blob-num js-line-number" data-line-number="884"></td>
        <td id="LC884" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L885" class="blob-num js-line-number" data-line-number="885"></td>
        <td id="LC885" class="blob-code js-file-line">    <span class="s1">&#39;sleep&#39;</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L886" class="blob-num js-line-number" data-line-number="886"></td>
        <td id="LC886" class="blob-code js-file-line">      <span class="k">return</span> <span class="s2">&quot;O.Actions.Sleep(1000)&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L887" class="blob-num js-line-number" data-line-number="887"></td>
        <td id="LC887" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L888" class="blob-num js-line-number" data-line-number="888"></td>
        <td id="LC888" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L889" class="blob-num js-line-number" data-line-number="889"></td>
        <td id="LC889" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L890" class="blob-num js-line-number" data-line-number="890"></td>
        <td id="LC890" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Template</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">template</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L891" class="blob-num js-line-number" data-line-number="891"></td>
        <td id="LC891" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">initialized</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L892" class="blob-num js-line-number" data-line-number="892"></td>
        <td id="LC892" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L893" class="blob-num js-line-number" data-line-number="893"></td>
        <td id="LC893" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">readMessage</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L894" class="blob-num js-line-number" data-line-number="894"></td>
        <td id="LC894" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">msg</span> <span class="o">=</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">event</span><span class="p">.</span><span class="nx">data</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L895" class="blob-num js-line-number" data-line-number="895"></td>
        <td id="LC895" class="blob-code js-file-line">    <span class="nx">template</span><span class="p">.</span><span class="nx">editor</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L896" class="blob-num js-line-number" data-line-number="896"></td>
        <td id="LC896" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L897" class="blob-num js-line-number" data-line-number="897"></td>
        <td id="LC897" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">initialized</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L898" class="blob-num js-line-number" data-line-number="898"></td>
        <td id="LC898" class="blob-code js-file-line">      <span class="nx">configureEditor</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L899" class="blob-num js-line-number" data-line-number="899"></td>
        <td id="LC899" class="blob-code js-file-line">      <span class="nx">initialized</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L900" class="blob-num js-line-number" data-line-number="900"></td>
        <td id="LC900" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L901" class="blob-num js-line-number" data-line-number="901"></td>
        <td id="LC901" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L902" class="blob-num js-line-number" data-line-number="902"></td>
        <td id="LC902" class="blob-code js-file-line">    <span class="kd">function</span> <span class="nx">sendMsg</span><span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L903" class="blob-num js-line-number" data-line-number="903"></td>
        <td id="LC903" class="blob-code js-file-line">      <span class="nx">event</span><span class="p">.</span><span class="nx">source</span><span class="p">.</span><span class="nx">postMessage</span><span class="p">(</span><span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L904" class="blob-num js-line-number" data-line-number="904"></td>
        <td id="LC904" class="blob-code js-file-line">        <span class="nx">id</span><span class="o">:</span> <span class="nx">msg</span><span class="p">.</span><span class="nx">id</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L905" class="blob-num js-line-number" data-line-number="905"></td>
        <td id="LC905" class="blob-code js-file-line">        <span class="nx">data</span><span class="o">:</span> <span class="nx">_</span></td>
      </tr>
      <tr>
        <td id="L906" class="blob-num js-line-number" data-line-number="906"></td>
        <td id="LC906" class="blob-code js-file-line">      <span class="p">}),</span> <span class="nx">event</span><span class="p">.</span><span class="nx">currentTarget</span> <span class="o">?</span> <span class="nx">event</span><span class="p">.</span><span class="nx">currentTarget</span><span class="p">.</span><span class="nx">location</span> <span class="o">:</span> <span class="nx">event</span><span class="p">.</span><span class="nx">source</span><span class="p">.</span><span class="nx">location</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L907" class="blob-num js-line-number" data-line-number="907"></td>
        <td id="LC907" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L908" class="blob-num js-line-number" data-line-number="908"></td>
        <td id="LC908" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L909" class="blob-num js-line-number" data-line-number="909"></td>
        <td id="LC909" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">msg</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">&#39;md&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L910" class="blob-num js-line-number" data-line-number="910"></td>
        <td id="LC910" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">actions</span> <span class="o">=</span> <span class="nx">actionsFromMarkdown</span><span class="p">(</span><span class="nx">msg</span><span class="p">.</span><span class="nx">code</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L911" class="blob-num js-line-number" data-line-number="911"></td>
        <td id="LC911" class="blob-code js-file-line">      <span class="k">try</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L912" class="blob-num js-line-number" data-line-number="912"></td>
        <td id="LC912" class="blob-code js-file-line">        <span class="nx">template</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="nx">actions</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L913" class="blob-num js-line-number" data-line-number="913"></td>
        <td id="LC913" class="blob-code js-file-line">        <span class="nx">sendMsg</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L914" class="blob-num js-line-number" data-line-number="914"></td>
        <td id="LC914" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L915" class="blob-num js-line-number" data-line-number="915"></td>
        <td id="LC915" class="blob-code js-file-line">        <span class="nx">sendMsg</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">message</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L916" class="blob-num js-line-number" data-line-number="916"></td>
        <td id="LC916" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L917" class="blob-num js-line-number" data-line-number="917"></td>
        <td id="LC917" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">msg</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">&#39;actions&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L918" class="blob-num js-line-number" data-line-number="918"></td>
        <td id="LC918" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">actions</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L919" class="blob-num js-line-number" data-line-number="919"></td>
        <td id="LC919" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">template</span><span class="p">.</span><span class="nx">map</span> <span class="o">&amp;&amp;</span> <span class="nx">template</span><span class="p">.</span><span class="nx">map</span> <span class="k">instanceof</span> <span class="nx">L</span><span class="p">.</span><span class="nx">Map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L920" class="blob-num js-line-number" data-line-number="920"></td>
        <td id="LC920" class="blob-code js-file-line">        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">k</span> <span class="k">in</span> <span class="nx">mapActions</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L921" class="blob-num js-line-number" data-line-number="921"></td>
        <td id="LC921" class="blob-code js-file-line">          <span class="nx">actions</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">k</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L922" class="blob-num js-line-number" data-line-number="922"></td>
        <td id="LC922" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L923" class="blob-num js-line-number" data-line-number="923"></td>
        <td id="LC923" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L924" class="blob-num js-line-number" data-line-number="924"></td>
        <td id="LC924" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">template</span><span class="p">.</span><span class="nx">actions</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L925" class="blob-num js-line-number" data-line-number="925"></td>
        <td id="LC925" class="blob-code js-file-line">        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">k</span> <span class="k">in</span> <span class="nx">template</span><span class="p">.</span><span class="nx">actions</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L926" class="blob-num js-line-number" data-line-number="926"></td>
        <td id="LC926" class="blob-code js-file-line">          <span class="nx">actions</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">k</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L927" class="blob-num js-line-number" data-line-number="927"></td>
        <td id="LC927" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L928" class="blob-num js-line-number" data-line-number="928"></td>
        <td id="LC928" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L929" class="blob-num js-line-number" data-line-number="929"></td>
        <td id="LC929" class="blob-code js-file-line">      <span class="nx">sendMsg</span><span class="p">(</span><span class="nx">actions</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L930" class="blob-num js-line-number" data-line-number="930"></td>
        <td id="LC930" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">msg</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">&#39;get_action&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L931" class="blob-num js-line-number" data-line-number="931"></td>
        <td id="LC931" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">msg</span><span class="p">.</span><span class="nx">code</span> <span class="k">in</span> <span class="nx">mapActions</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L932" class="blob-num js-line-number" data-line-number="932"></td>
        <td id="LC932" class="blob-code js-file-line">        <span class="nx">sendMsg</span><span class="p">(</span><span class="nx">mapActions</span><span class="p">[</span><span class="nx">msg</span><span class="p">.</span><span class="nx">code</span><span class="p">].</span><span class="nx">call</span><span class="p">(</span><span class="nx">template</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L933" class="blob-num js-line-number" data-line-number="933"></td>
        <td id="LC933" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L934" class="blob-num js-line-number" data-line-number="934"></td>
        <td id="LC934" class="blob-code js-file-line">        <span class="nx">sendMsg</span><span class="p">(</span><span class="nx">template</span><span class="p">.</span><span class="nx">actions</span><span class="p">[</span><span class="nx">msg</span><span class="p">.</span><span class="nx">code</span><span class="p">].</span><span class="nx">call</span><span class="p">(</span><span class="nx">template</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L935" class="blob-num js-line-number" data-line-number="935"></td>
        <td id="LC935" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L936" class="blob-num js-line-number" data-line-number="936"></td>
        <td id="LC936" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">msg</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">&#39;code&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L937" class="blob-num js-line-number" data-line-number="937"></td>
        <td id="LC937" class="blob-code js-file-line">      <span class="nx">sendMsg</span><span class="p">(</span><span class="nb">eval</span><span class="p">(</span><span class="nx">msg</span><span class="p">.</span><span class="nx">code</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L938" class="blob-num js-line-number" data-line-number="938"></td>
        <td id="LC938" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">msg</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="s1">&#39;change_slide&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L939" class="blob-num js-line-number" data-line-number="939"></td>
        <td id="LC939" class="blob-code js-file-line">      <span class="nx">template</span><span class="p">.</span><span class="nx">changeSlide</span> <span class="o">&amp;&amp;</span> <span class="nx">template</span><span class="p">.</span><span class="nx">changeSlide</span><span class="p">(</span><span class="nx">msg</span><span class="p">.</span><span class="nx">slide</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L940" class="blob-num js-line-number" data-line-number="940"></td>
        <td id="LC940" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L941" class="blob-num js-line-number" data-line-number="941"></td>
        <td id="LC941" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L942" class="blob-num js-line-number" data-line-number="942"></td>
        <td id="LC942" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L943" class="blob-num js-line-number" data-line-number="943"></td>
        <td id="LC943" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L944" class="blob-num js-line-number" data-line-number="944"></td>
        <td id="LC944" class="blob-code js-file-line">    <span class="nb">window</span><span class="p">.</span><span class="nx">attachEvent</span><span class="p">(</span><span class="s2">&quot;message&quot;</span><span class="p">,</span> <span class="kd">function</span> <span class="nx">load</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L945" class="blob-num js-line-number" data-line-number="945"></td>
        <td id="LC945" class="blob-code js-file-line">      <span class="nx">readMessage</span><span class="p">(</span><span class="nx">event</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L946" class="blob-num js-line-number" data-line-number="946"></td>
        <td id="LC946" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L947" class="blob-num js-line-number" data-line-number="947"></td>
        <td id="LC947" class="blob-code js-file-line">  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L948" class="blob-num js-line-number" data-line-number="948"></td>
        <td id="LC948" class="blob-code js-file-line">    <span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s2">&quot;message&quot;</span><span class="p">,</span> <span class="kd">function</span> <span class="nx">load</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L949" class="blob-num js-line-number" data-line-number="949"></td>
        <td id="LC949" class="blob-code js-file-line">      <span class="nx">readMessage</span><span class="p">(</span><span class="nx">event</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L950" class="blob-num js-line-number" data-line-number="950"></td>
        <td id="LC950" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L951" class="blob-num js-line-number" data-line-number="951"></td>
        <td id="LC951" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L952" class="blob-num js-line-number" data-line-number="952"></td>
        <td id="LC952" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L953" class="blob-num js-line-number" data-line-number="953"></td>
        <td id="LC953" class="blob-code js-file-line">  <span class="nx">template</span><span class="p">.</span><span class="nx">init</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L954" class="blob-num js-line-number" data-line-number="954"></td>
        <td id="LC954" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L955" class="blob-num js-line-number" data-line-number="955"></td>
        <td id="LC955" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">configureEditor</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L956" class="blob-num js-line-number" data-line-number="956"></td>
        <td id="LC956" class="blob-code js-file-line">    <span class="c1">// add helpers</span></td>
      </tr>
      <tr>
        <td id="L957" class="blob-num js-line-number" data-line-number="957"></td>
        <td id="LC957" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">template</span><span class="p">.</span><span class="nx">map</span> <span class="o">&amp;&amp;</span> <span class="nx">template</span><span class="p">.</span><span class="nx">map</span> <span class="k">instanceof</span> <span class="nx">L</span><span class="p">.</span><span class="nx">Map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L958" class="blob-num js-line-number" data-line-number="958"></td>
        <td id="LC958" class="blob-code js-file-line">      <span class="k">new</span> <span class="nx">L</span><span class="p">.</span><span class="nx">CrossHair</span><span class="p">(</span><span class="s1">&#39;img/crosshair.png&#39;</span><span class="p">).</span><span class="nx">addTo</span><span class="p">(</span><span class="nx">template</span><span class="p">.</span><span class="nx">map</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L959" class="blob-num js-line-number" data-line-number="959"></td>
        <td id="LC959" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L960" class="blob-num js-line-number" data-line-number="960"></td>
        <td id="LC960" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L961" class="blob-num js-line-number" data-line-number="961"></td>
        <td id="LC961" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L962" class="blob-num js-line-number" data-line-number="962"></td>
        <td id="LC962" class="blob-code js-file-line">  <span class="nb">window</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L963" class="blob-num js-line-number" data-line-number="963"></td>
        <td id="LC963" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">origin</span> <span class="o">=</span> <span class="nx">location</span><span class="p">.</span><span class="nx">pathname</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L964" class="blob-num js-line-number" data-line-number="964"></td>
        <td id="LC964" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L965" class="blob-num js-line-number" data-line-number="965"></td>
        <td id="LC965" class="blob-code js-file-line">    <span class="nx">Template</span><span class="p">.</span><span class="nx">Storage</span><span class="p">.</span><span class="nx">load</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">md</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L966" class="blob-num js-line-number" data-line-number="966"></td>
        <td id="LC966" class="blob-code js-file-line">      <span class="nx">template</span><span class="p">.</span><span class="nx">update</span><span class="p">(</span><span class="nx">actionsFromMarkdown</span><span class="p">(</span><span class="nx">md</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L967" class="blob-num js-line-number" data-line-number="967"></td>
        <td id="LC967" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L968" class="blob-num js-line-number" data-line-number="968"></td>
        <td id="LC968" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L969" class="blob-num js-line-number" data-line-number="969"></td>
        <td id="LC969" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L970" class="blob-num js-line-number" data-line-number="970"></td>
        <td id="LC970" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L971" class="blob-num js-line-number" data-line-number="971"></td>
        <td id="LC971" class="blob-code js-file-line"><span class="nx">Template</span><span class="p">.</span><span class="nx">Storage</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L972" class="blob-num js-line-number" data-line-number="972"></td>
        <td id="LC972" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L973" class="blob-num js-line-number" data-line-number="973"></td>
        <td id="LC973" class="blob-code js-file-line">  <span class="nx">save</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">md</span><span class="p">,</span> <span class="nx">template</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L974" class="blob-num js-line-number" data-line-number="974"></td>
        <td id="LC974" class="blob-code js-file-line">    <span class="nx">location</span><span class="p">.</span><span class="nx">hash</span> <span class="o">=</span> <span class="s2">&quot;md/&quot;</span> <span class="o">+</span> <span class="nx">template</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span> <span class="o">+</span> <span class="nx">btoa</span><span class="p">(</span><span class="nx">md</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L975" class="blob-num js-line-number" data-line-number="975"></td>
        <td id="LC975" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L976" class="blob-num js-line-number" data-line-number="976"></td>
        <td id="LC976" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L977" class="blob-num js-line-number" data-line-number="977"></td>
        <td id="LC977" class="blob-code js-file-line">  <span class="nx">load</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">done</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L978" class="blob-num js-line-number" data-line-number="978"></td>
        <td id="LC978" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">&#39;md_template&#39;</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L979" class="blob-num js-line-number" data-line-number="979"></td>
        <td id="LC979" class="blob-code js-file-line">      <span class="nx">done</span><span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">&#39;md_template&#39;</span><span class="p">).</span><span class="nx">text</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L980" class="blob-num js-line-number" data-line-number="980"></td>
        <td id="LC980" class="blob-code js-file-line">      <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L981" class="blob-num js-line-number" data-line-number="981"></td>
        <td id="LC981" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L982" class="blob-num js-line-number" data-line-number="982"></td>
        <td id="LC982" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L983" class="blob-num js-line-number" data-line-number="983"></td>
        <td id="LC983" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">h</span> <span class="o">=</span> <span class="nx">location</span><span class="p">.</span><span class="nx">hash</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L984" class="blob-num js-line-number" data-line-number="984"></td>
        <td id="LC984" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">done</span> <span class="o">&amp;&amp;</span> <span class="nx">h</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L985" class="blob-num js-line-number" data-line-number="985"></td>
        <td id="LC985" class="blob-code js-file-line">      <span class="c1">// #md/template/base_64_markdown</span></td>
      </tr>
      <tr>
        <td id="L986" class="blob-num js-line-number" data-line-number="986"></td>
        <td id="LC986" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">tk</span> <span class="o">=</span> <span class="nx">h</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L987" class="blob-num js-line-number" data-line-number="987"></td>
        <td id="LC987" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">tk</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s1">&#39;#md&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L988" class="blob-num js-line-number" data-line-number="988"></td>
        <td id="LC988" class="blob-code js-file-line">        <span class="nx">done</span><span class="p">(</span><span class="nx">atob</span><span class="p">(</span><span class="nx">tk</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">2</span><span class="p">).</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)),</span> <span class="nx">tk</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L989" class="blob-num js-line-number" data-line-number="989"></td>
        <td id="LC989" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L990" class="blob-num js-line-number" data-line-number="990"></td>
        <td id="LC990" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L991" class="blob-num js-line-number" data-line-number="991"></td>
        <td id="LC991" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L992" class="blob-num js-line-number" data-line-number="992"></td>
        <td id="LC992" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L993" class="blob-num js-line-number" data-line-number="993"></td>
        <td id="LC993" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L994" class="blob-num js-line-number" data-line-number="994"></td>
        <td id="LC994" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Slide</span><span class="p">(</span><span class="nx">tree</span><span class="p">,</span> <span class="nx">actions</span><span class="p">,</span> <span class="nx">prop</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L995" class="blob-num js-line-number" data-line-number="995"></td>
        <td id="LC995" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L996" class="blob-num js-line-number" data-line-number="996"></td>
        <td id="LC996" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">html</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L997" class="blob-num js-line-number" data-line-number="997"></td>
        <td id="LC997" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">md_tree</span> <span class="o">=</span> <span class="nx">tree</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L998" class="blob-num js-line-number" data-line-number="998"></td>
        <td id="LC998" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">properties</span> <span class="o">=</span> <span class="nx">prop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L999" class="blob-num js-line-number" data-line-number="999"></td>
        <td id="LC999" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1000" class="blob-num js-line-number" data-line-number="1000"></td>
        <td id="LC1000" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1001" class="blob-num js-line-number" data-line-number="1001"></td>
        <td id="LC1001" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1002" class="blob-num js-line-number" data-line-number="1002"></td>
        <td id="LC1002" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">compile</span><span class="p">(</span><span class="nx">context</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1003" class="blob-num js-line-number" data-line-number="1003"></td>
        <td id="LC1003" class="blob-code js-file-line">    <span class="nx">propertiesToActions</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1004" class="blob-num js-line-number" data-line-number="1004"></td>
        <td id="LC1004" class="blob-code js-file-line">    <span class="c1">//sort actions by order</span></td>
      </tr>
      <tr>
        <td id="L1005" class="blob-num js-line-number" data-line-number="1005"></td>
        <td id="LC1005" class="blob-code js-file-line">    <span class="nx">actions</span><span class="p">.</span><span class="nx">sort</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1006" class="blob-num js-line-number" data-line-number="1006"></td>
        <td id="LC1006" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">a</span><span class="p">.</span><span class="nx">order</span> <span class="o">-</span> <span class="nx">b</span><span class="p">.</span><span class="nx">order</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1007" class="blob-num js-line-number" data-line-number="1007"></td>
        <td id="LC1007" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1008" class="blob-num js-line-number" data-line-number="1008"></td>
        <td id="LC1008" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1009" class="blob-num js-line-number" data-line-number="1009"></td>
        <td id="LC1009" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="p">(</span><span class="s1">&#39;map&#39;</span> <span class="k">in</span> <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1010" class="blob-num js-line-number" data-line-number="1010"></td>
        <td id="LC1010" class="blob-code js-file-line">      <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">map</span><span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">mapper</span><span class="p">,</span> <span class="nx">that</span> <span class="cm">/*opt*/</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1011" class="blob-num js-line-number" data-line-number="1011"></td>
        <td id="LC1011" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">other</span><span class="o">=</span> <span class="k">new</span> <span class="nb">Array</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">length</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1012" class="blob-num js-line-number" data-line-number="1012"></td>
        <td id="LC1012" class="blob-code js-file-line">        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">n</span><span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">&lt;</span><span class="nx">n</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L1013" class="blob-num js-line-number" data-line-number="1013"></td>
        <td id="LC1013" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="k">this</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L1014" class="blob-num js-line-number" data-line-number="1014"></td>
        <td id="LC1014" class="blob-code js-file-line">              <span class="nx">other</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="o">=</span> <span class="nx">mapper</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">that</span><span class="p">,</span> <span class="k">this</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">i</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1015" class="blob-num js-line-number" data-line-number="1015"></td>
        <td id="LC1015" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">other</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1016" class="blob-num js-line-number" data-line-number="1016"></td>
        <td id="LC1016" class="blob-code js-file-line">      <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1017" class="blob-num js-line-number" data-line-number="1017"></td>
        <td id="LC1017" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1018" class="blob-num js-line-number" data-line-number="1018"></td>
        <td id="LC1018" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1019" class="blob-num js-line-number" data-line-number="1019"></td>
        <td id="LC1019" class="blob-code js-file-line">    <span class="nx">action</span> <span class="o">=</span> <span class="nx">O</span><span class="p">.</span><span class="nx">Step</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">window</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L1020" class="blob-num js-line-number" data-line-number="1020"></td>
        <td id="LC1020" class="blob-code js-file-line">      <span class="nx">actions</span><span class="p">.</span><span class="nx">map</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1021" class="blob-num js-line-number" data-line-number="1021"></td>
        <td id="LC1021" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">o</span> <span class="o">=</span> <span class="nx">a</span><span class="p">.</span><span class="nx">cmd</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1022" class="blob-num js-line-number" data-line-number="1022"></td>
        <td id="LC1022" class="blob-code js-file-line">        <span class="k">try</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1023" class="blob-num js-line-number" data-line-number="1023"></td>
        <td id="LC1023" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="nb">Function</span><span class="p">(</span><span class="s2">&quot;S&quot;</span><span class="p">,</span> <span class="s2">&quot;return &quot;</span> <span class="o">+</span> <span class="nx">o</span> <span class="o">+</span> <span class="s2">&quot;;&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1024" class="blob-num js-line-number" data-line-number="1024"></td>
        <td id="LC1024" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1025" class="blob-num js-line-number" data-line-number="1025"></td>
        <td id="LC1025" class="blob-code js-file-line">          <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">&quot;error while compiling &quot;</span> <span class="o">+</span> <span class="nx">o</span> <span class="o">+</span> <span class="s2">&quot;: &quot;</span> <span class="o">+</span> <span class="nx">e</span><span class="p">.</span><span class="nx">message</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1026" class="blob-num js-line-number" data-line-number="1026"></td>
        <td id="LC1026" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1027" class="blob-num js-line-number" data-line-number="1027"></td>
        <td id="LC1027" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">f</span><span class="p">(</span><span class="nx">context</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1028" class="blob-num js-line-number" data-line-number="1028"></td>
        <td id="LC1028" class="blob-code js-file-line">      <span class="p">})</span></td>
      </tr>
      <tr>
        <td id="L1029" class="blob-num js-line-number" data-line-number="1029"></td>
        <td id="LC1029" class="blob-code js-file-line">    <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1030" class="blob-num js-line-number" data-line-number="1030"></td>
        <td id="LC1030" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1031" class="blob-num js-line-number" data-line-number="1031"></td>
        <td id="LC1031" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1032" class="blob-num js-line-number" data-line-number="1032"></td>
        <td id="LC1032" class="blob-code js-file-line">  <span class="cm">/*</span></td>
      </tr>
      <tr>
        <td id="L1033" class="blob-num js-line-number" data-line-number="1033"></td>
        <td id="LC1033" class="blob-code js-file-line"><span class="cm">   * there are special propertues like pos, marker and so </span></td>
      </tr>
      <tr>
        <td id="L1034" class="blob-num js-line-number" data-line-number="1034"></td>
        <td id="LC1034" class="blob-code js-file-line"><span class="cm">   * on that should become actions</span></td>
      </tr>
      <tr>
        <td id="L1035" class="blob-num js-line-number" data-line-number="1035"></td>
        <td id="LC1035" class="blob-code js-file-line"><span class="cm">   */</span></td>
      </tr>
      <tr>
        <td id="L1036" class="blob-num js-line-number" data-line-number="1036"></td>
        <td id="LC1036" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">propertiesToActions</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1037" class="blob-num js-line-number" data-line-number="1037"></td>
        <td id="LC1037" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">k</span> <span class="k">in</span> <span class="nx">properties</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1038" class="blob-num js-line-number" data-line-number="1038"></td>
        <td id="LC1038" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">prop</span> <span class="o">=</span> <span class="nx">properties</span><span class="p">[</span><span class="nx">k</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1039" class="blob-num js-line-number" data-line-number="1039"></td>
        <td id="LC1039" class="blob-code js-file-line">      <span class="k">switch</span> <span class="p">(</span><span class="nx">k</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1040" class="blob-num js-line-number" data-line-number="1040"></td>
        <td id="LC1040" class="blob-code js-file-line">        <span class="k">case</span> <span class="s1">&#39;center&#39;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L1041" class="blob-num js-line-number" data-line-number="1041"></td>
        <td id="LC1041" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">prop</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1042" class="blob-num js-line-number" data-line-number="1042"></td>
        <td id="LC1042" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span><span class="nx">properties</span><span class="p">.</span><span class="nx">zoom</span> <span class="o">===</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1043" class="blob-num js-line-number" data-line-number="1043"></td>
        <td id="LC1043" class="blob-code js-file-line">            <span class="nx">actions</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L1044" class="blob-num js-line-number" data-line-number="1044"></td>
        <td id="LC1044" class="blob-code js-file-line">              <span class="nx">order</span><span class="o">:</span> <span class="nx">prop</span><span class="p">.</span><span class="nx">order</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L1045" class="blob-num js-line-number" data-line-number="1045"></td>
        <td id="LC1045" class="blob-code js-file-line">              <span class="nx">cmd</span><span class="o">:</span> <span class="s1">&#39;S.map.actions.panTo([&#39;</span> <span class="o">+</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;,&#39;</span> <span class="o">+</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;])&#39;</span></td>
      </tr>
      <tr>
        <td id="L1046" class="blob-num js-line-number" data-line-number="1046"></td>
        <td id="LC1046" class="blob-code js-file-line">            <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1047" class="blob-num js-line-number" data-line-number="1047"></td>
        <td id="LC1047" class="blob-code js-file-line">          <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1048" class="blob-num js-line-number" data-line-number="1048"></td>
        <td id="LC1048" class="blob-code js-file-line">            <span class="nx">actions</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L1049" class="blob-num js-line-number" data-line-number="1049"></td>
        <td id="LC1049" class="blob-code js-file-line">              <span class="nx">order</span><span class="o">:</span> <span class="nx">prop</span><span class="p">.</span><span class="nx">order</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L1050" class="blob-num js-line-number" data-line-number="1050"></td>
        <td id="LC1050" class="blob-code js-file-line">              <span class="nx">cmd</span><span class="o">:</span> <span class="s1">&#39;S.map.actions.setView([&#39;</span> <span class="o">+</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;,&#39;</span> <span class="o">+</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;], &#39;</span> <span class="o">+</span> <span class="nx">properties</span><span class="p">.</span><span class="nx">zoom</span><span class="p">.</span><span class="nx">value</span> <span class="o">+</span> <span class="s1">&#39;)&#39;</span></td>
      </tr>
      <tr>
        <td id="L1051" class="blob-num js-line-number" data-line-number="1051"></td>
        <td id="LC1051" class="blob-code js-file-line">            <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1052" class="blob-num js-line-number" data-line-number="1052"></td>
        <td id="LC1052" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1053" class="blob-num js-line-number" data-line-number="1053"></td>
        <td id="LC1053" class="blob-code js-file-line">        <span class="k">case</span> <span class="s1">&#39;zoom&#39;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L1054" class="blob-num js-line-number" data-line-number="1054"></td>
        <td id="LC1054" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">properties</span><span class="p">.</span><span class="nx">center</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1055" class="blob-num js-line-number" data-line-number="1055"></td>
        <td id="LC1055" class="blob-code js-file-line">            <span class="nx">actions</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L1056" class="blob-num js-line-number" data-line-number="1056"></td>
        <td id="LC1056" class="blob-code js-file-line">              <span class="nx">order</span><span class="o">:</span> <span class="nx">prop</span><span class="p">.</span><span class="nx">order</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L1057" class="blob-num js-line-number" data-line-number="1057"></td>
        <td id="LC1057" class="blob-code js-file-line">              <span class="nx">cmd</span><span class="o">:</span> <span class="s1">&#39;S.map.actions.setZoom(&#39;</span> <span class="o">+</span> <span class="nx">properties</span><span class="p">.</span><span class="nx">zoom</span><span class="p">.</span><span class="nx">value</span><span class="o">+</span> <span class="s1">&#39;)&#39;</span></td>
      </tr>
      <tr>
        <td id="L1058" class="blob-num js-line-number" data-line-number="1058"></td>
        <td id="LC1058" class="blob-code js-file-line">            <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1059" class="blob-num js-line-number" data-line-number="1059"></td>
        <td id="LC1059" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1060" class="blob-num js-line-number" data-line-number="1060"></td>
        <td id="LC1060" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1061" class="blob-num js-line-number" data-line-number="1061"></td>
        <td id="LC1061" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1062" class="blob-num js-line-number" data-line-number="1062"></td>
        <td id="LC1062" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1063" class="blob-num js-line-number" data-line-number="1063"></td>
        <td id="LC1063" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1064" class="blob-num js-line-number" data-line-number="1064"></td>
        <td id="LC1064" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_slide</span><span class="p">(</span><span class="nx">context</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1065" class="blob-num js-line-number" data-line-number="1065"></td>
        <td id="LC1065" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">action</span><span class="p">)</span> <span class="nx">compile</span><span class="p">(</span><span class="nx">context</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1066" class="blob-num js-line-number" data-line-number="1066"></td>
        <td id="LC1066" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">action</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1067" class="blob-num js-line-number" data-line-number="1067"></td>
        <td id="LC1067" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1068" class="blob-num js-line-number" data-line-number="1068"></td>
        <td id="LC1068" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1069" class="blob-num js-line-number" data-line-number="1069"></td>
        <td id="LC1069" class="blob-code js-file-line">  <span class="nx">_slide</span><span class="p">.</span><span class="nx">html</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1070" class="blob-num js-line-number" data-line-number="1070"></td>
        <td id="LC1070" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">html</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1071" class="blob-num js-line-number" data-line-number="1071"></td>
        <td id="LC1071" class="blob-code js-file-line">      <span class="nx">html</span> <span class="o">=</span> <span class="nx">markdown</span><span class="p">.</span><span class="nx">toHTML</span><span class="p">([</span><span class="s1">&#39;markdown&#39;</span><span class="p">].</span><span class="nx">concat</span><span class="p">(</span><span class="nx">md_tree</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L1072" class="blob-num js-line-number" data-line-number="1072"></td>
        <td id="LC1072" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1073" class="blob-num js-line-number" data-line-number="1073"></td>
        <td id="LC1073" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">html</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1074" class="blob-num js-line-number" data-line-number="1074"></td>
        <td id="LC1074" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1075" class="blob-num js-line-number" data-line-number="1075"></td>
        <td id="LC1075" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1076" class="blob-num js-line-number" data-line-number="1076"></td>
        <td id="LC1076" class="blob-code js-file-line">  <span class="nx">_slide</span><span class="p">.</span><span class="nx">props</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1077" class="blob-num js-line-number" data-line-number="1077"></td>
        <td id="LC1077" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">properties</span> <span class="o">||</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L1078" class="blob-num js-line-number" data-line-number="1078"></td>
        <td id="LC1078" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1079" class="blob-num js-line-number" data-line-number="1079"></td>
        <td id="LC1079" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1080" class="blob-num js-line-number" data-line-number="1080"></td>
        <td id="LC1080" class="blob-code js-file-line">  <span class="nx">_slide</span><span class="p">.</span><span class="nx">get</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1081" class="blob-num js-line-number" data-line-number="1081"></td>
        <td id="LC1081" class="blob-code js-file-line">    <span class="k">return</span> <span class="p">(</span><span class="nx">properties</span> <span class="o">||</span> <span class="p">{})[</span><span class="nx">_</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1082" class="blob-num js-line-number" data-line-number="1082"></td>
        <td id="LC1082" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1083" class="blob-num js-line-number" data-line-number="1083"></td>
        <td id="LC1083" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1084" class="blob-num js-line-number" data-line-number="1084"></td>
        <td id="LC1084" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">_slide</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1085" class="blob-num js-line-number" data-line-number="1085"></td>
        <td id="LC1085" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1086" class="blob-num js-line-number" data-line-number="1086"></td>
        <td id="LC1086" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1087" class="blob-num js-line-number" data-line-number="1087"></td>
        <td id="LC1087" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">trim</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1088" class="blob-num js-line-number" data-line-number="1088"></td>
        <td id="LC1088" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">x</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/^\s+|\s+$/gm</span><span class="p">,</span><span class="s1">&#39;&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1089" class="blob-num js-line-number" data-line-number="1089"></td>
        <td id="LC1089" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1090" class="blob-num js-line-number" data-line-number="1090"></td>
        <td id="LC1090" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1091" class="blob-num js-line-number" data-line-number="1091"></td>
        <td id="LC1091" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">prop_re</span> <span class="o">=</span> <span class="sr">/^-([^:]+):(.*)/</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1092" class="blob-num js-line-number" data-line-number="1092"></td>
        <td id="LC1092" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">parseProperties</span><span class="p">(</span><span class="nx">code</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1093" class="blob-num js-line-number" data-line-number="1093"></td>
        <td id="LC1093" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">props</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L1094" class="blob-num js-line-number" data-line-number="1094"></td>
        <td id="LC1094" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">lines</span> <span class="o">=</span> <span class="nx">code</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39;\n&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1095" class="blob-num js-line-number" data-line-number="1095"></td>
        <td id="LC1095" class="blob-code js-file-line">  <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">lines</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1096" class="blob-num js-line-number" data-line-number="1096"></td>
        <td id="LC1096" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">e</span> <span class="o">=</span> <span class="nx">prop_re</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">lines</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L1097" class="blob-num js-line-number" data-line-number="1097"></td>
        <td id="LC1097" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1098" class="blob-num js-line-number" data-line-number="1098"></td>
        <td id="LC1098" class="blob-code js-file-line">      <span class="k">try</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1099" class="blob-num js-line-number" data-line-number="1099"></td>
        <td id="LC1099" class="blob-code js-file-line">      <span class="nx">props</span><span class="p">[</span><span class="nx">trim</span><span class="p">(</span><span class="nx">e</span><span class="p">[</span><span class="mi">1</span><span class="p">])]</span> <span class="o">=</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">trim</span><span class="p">(</span><span class="nx">e</span><span class="p">[</span><span class="mi">2</span><span class="p">]));</span></td>
      </tr>
      <tr>
        <td id="L1100" class="blob-num js-line-number" data-line-number="1100"></td>
        <td id="LC1100" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">catch</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1101" class="blob-num js-line-number" data-line-number="1101"></td>
        <td id="LC1101" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1102" class="blob-num js-line-number" data-line-number="1102"></td>
        <td id="LC1102" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1103" class="blob-num js-line-number" data-line-number="1103"></td>
        <td id="LC1103" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1104" class="blob-num js-line-number" data-line-number="1104"></td>
        <td id="LC1104" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">props</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1105" class="blob-num js-line-number" data-line-number="1105"></td>
        <td id="LC1105" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1106" class="blob-num js-line-number" data-line-number="1106"></td>
        <td id="LC1106" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1107" class="blob-num js-line-number" data-line-number="1107"></td>
        <td id="LC1107" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L1108" class="blob-num js-line-number" data-line-number="1108"></td>
        <td id="LC1108" class="blob-code js-file-line"><span class="cm"> * given a markdown parsed tree return a list of slides with</span></td>
      </tr>
      <tr>
        <td id="L1109" class="blob-num js-line-number" data-line-number="1109"></td>
        <td id="LC1109" class="blob-code js-file-line"><span class="cm"> * html and actions</span></td>
      </tr>
      <tr>
        <td id="L1110" class="blob-num js-line-number" data-line-number="1110"></td>
        <td id="LC1110" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L1111" class="blob-num js-line-number" data-line-number="1111"></td>
        <td id="LC1111" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1112" class="blob-num js-line-number" data-line-number="1112"></td>
        <td id="LC1112" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">md2json</span><span class="p">(</span><span class="nx">tree</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1113" class="blob-num js-line-number" data-line-number="1113"></td>
        <td id="LC1113" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">slide</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1114" class="blob-num js-line-number" data-line-number="1114"></td>
        <td id="LC1114" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">slides</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L1115" class="blob-num js-line-number" data-line-number="1115"></td>
        <td id="LC1115" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">globalProperties</span> <span class="o">=</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L1116" class="blob-num js-line-number" data-line-number="1116"></td>
        <td id="LC1116" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">elements</span> <span class="o">=</span> <span class="nx">tree</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1117" class="blob-num js-line-number" data-line-number="1117"></td>
        <td id="LC1117" class="blob-code js-file-line">  <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">elements</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1118" class="blob-num js-line-number" data-line-number="1118"></td>
        <td id="LC1118" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="nx">elements</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1119" class="blob-num js-line-number" data-line-number="1119"></td>
        <td id="LC1119" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">add</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1120" class="blob-num js-line-number" data-line-number="1120"></td>
        <td id="LC1120" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s1">&#39;header&#39;</span> <span class="o">&amp;&amp;</span> <span class="nx">el</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">level</span> <span class="o">===</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1121" class="blob-num js-line-number" data-line-number="1121"></td>
        <td id="LC1121" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">slide</span><span class="p">)</span> <span class="nx">slides</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">Slide</span><span class="p">(</span><span class="nx">slide</span><span class="p">.</span><span class="nx">md_tree</span><span class="p">,</span> <span class="nx">slide</span><span class="p">.</span><span class="nx">actions</span><span class="p">,</span> <span class="nx">slide</span><span class="p">.</span><span class="nx">properties</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L1122" class="blob-num js-line-number" data-line-number="1122"></td>
        <td id="LC1122" class="blob-code js-file-line">      <span class="nx">slide</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1123" class="blob-num js-line-number" data-line-number="1123"></td>
        <td id="LC1123" class="blob-code js-file-line">        <span class="nx">md_tree</span><span class="o">:</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L1124" class="blob-num js-line-number" data-line-number="1124"></td>
        <td id="LC1124" class="blob-code js-file-line">        <span class="nx">html</span><span class="o">:</span> <span class="s1">&#39;&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L1125" class="blob-num js-line-number" data-line-number="1125"></td>
        <td id="LC1125" class="blob-code js-file-line">        <span class="nx">actions</span><span class="o">:</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L1126" class="blob-num js-line-number" data-line-number="1126"></td>
        <td id="LC1126" class="blob-code js-file-line">        <span class="nx">properties</span><span class="o">:</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L1127" class="blob-num js-line-number" data-line-number="1127"></td>
        <td id="LC1127" class="blob-code js-file-line">      <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1128" class="blob-num js-line-number" data-line-number="1128"></td>
        <td id="LC1128" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s1">&#39;para&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1129" class="blob-num js-line-number" data-line-number="1129"></td>
        <td id="LC1129" class="blob-code js-file-line">      <span class="c1">// search inline code inside it</span></td>
      </tr>
      <tr>
        <td id="L1130" class="blob-num js-line-number" data-line-number="1130"></td>
        <td id="LC1130" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">actions</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L1131" class="blob-num js-line-number" data-line-number="1131"></td>
        <td id="LC1131" class="blob-code js-file-line">      <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">j</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">j</span> <span class="o">&lt;</span> <span class="nx">el</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">j</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1132" class="blob-num js-line-number" data-line-number="1132"></td>
        <td id="LC1132" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">subel</span> <span class="o">=</span> <span class="nx">el</span><span class="p">[</span><span class="nx">j</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1133" class="blob-num js-line-number" data-line-number="1133"></td>
        <td id="LC1133" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">subel</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;inlinecode&quot;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1134" class="blob-num js-line-number" data-line-number="1134"></td>
        <td id="LC1134" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">lines</span> <span class="o">=</span> <span class="nx">subel</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39;\n&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1135" class="blob-num js-line-number" data-line-number="1135"></td>
        <td id="LC1135" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1136" class="blob-num js-line-number" data-line-number="1136"></td>
        <td id="LC1136" class="blob-code js-file-line">          <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">ln</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">ln</span> <span class="o">&lt;</span> <span class="nx">lines</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">ln</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1137" class="blob-num js-line-number" data-line-number="1137"></td>
        <td id="LC1137" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">line</span> <span class="o">=</span> <span class="nx">lines</span><span class="p">[</span><span class="nx">ln</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1138" class="blob-num js-line-number" data-line-number="1138"></td>
        <td id="LC1138" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">(</span><span class="nx">trim</span><span class="p">(</span><span class="nx">line</span><span class="p">)</span> <span class="o">!==</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1139" class="blob-num js-line-number" data-line-number="1139"></td>
        <td id="LC1139" class="blob-code js-file-line">              <span class="c1">// if matches property, parse it</span></td>
      </tr>
      <tr>
        <td id="L1140" class="blob-num js-line-number" data-line-number="1140"></td>
        <td id="LC1140" class="blob-code js-file-line">              <span class="k">if</span> <span class="p">(</span><span class="nx">prop_re</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">line</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1141" class="blob-num js-line-number" data-line-number="1141"></td>
        <td id="LC1141" class="blob-code js-file-line">                <span class="kd">var</span> <span class="nx">p</span> <span class="o">=</span> <span class="nx">parseProperties</span><span class="p">(</span><span class="nx">subel</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L1142" class="blob-num js-line-number" data-line-number="1142"></td>
        <td id="LC1142" class="blob-code js-file-line">                <span class="kd">var</span> <span class="nx">prop</span> <span class="o">=</span> <span class="nx">slide</span> <span class="o">?</span> <span class="nx">slide</span><span class="p">.</span><span class="nx">properties</span><span class="o">:</span> <span class="nx">globalProperties</span></td>
      </tr>
      <tr>
        <td id="L1143" class="blob-num js-line-number" data-line-number="1143"></td>
        <td id="LC1143" class="blob-code js-file-line">                <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">k</span> <span class="k">in</span> <span class="nx">p</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1144" class="blob-num js-line-number" data-line-number="1144"></td>
        <td id="LC1144" class="blob-code js-file-line">                  <span class="nx">prop</span><span class="p">[</span><span class="nx">k</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1145" class="blob-num js-line-number" data-line-number="1145"></td>
        <td id="LC1145" class="blob-code js-file-line">                    <span class="nx">order</span><span class="o">:</span> <span class="nx">ln</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L1146" class="blob-num js-line-number" data-line-number="1146"></td>
        <td id="LC1146" class="blob-code js-file-line">                    <span class="nx">value</span><span class="o">:</span> <span class="nx">p</span><span class="p">[</span><span class="nx">k</span><span class="p">]</span></td>
      </tr>
      <tr>
        <td id="L1147" class="blob-num js-line-number" data-line-number="1147"></td>
        <td id="LC1147" class="blob-code js-file-line">                  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1148" class="blob-num js-line-number" data-line-number="1148"></td>
        <td id="LC1148" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1149" class="blob-num js-line-number" data-line-number="1149"></td>
        <td id="LC1149" class="blob-code js-file-line">              <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1150" class="blob-num js-line-number" data-line-number="1150"></td>
        <td id="LC1150" class="blob-code js-file-line">                <span class="nx">slide</span> <span class="o">&amp;&amp;</span> <span class="nx">slide</span><span class="p">.</span><span class="nx">actions</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L1151" class="blob-num js-line-number" data-line-number="1151"></td>
        <td id="LC1151" class="blob-code js-file-line">                  <span class="nx">cmd</span><span class="o">:</span> <span class="nx">line</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L1152" class="blob-num js-line-number" data-line-number="1152"></td>
        <td id="LC1152" class="blob-code js-file-line">                  <span class="nx">order</span><span class="o">:</span> <span class="nx">ln</span></td>
      </tr>
      <tr>
        <td id="L1153" class="blob-num js-line-number" data-line-number="1153"></td>
        <td id="LC1153" class="blob-code js-file-line">                <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1154" class="blob-num js-line-number" data-line-number="1154"></td>
        <td id="LC1154" class="blob-code js-file-line">              <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1155" class="blob-num js-line-number" data-line-number="1155"></td>
        <td id="LC1155" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1156" class="blob-num js-line-number" data-line-number="1156"></td>
        <td id="LC1156" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1157" class="blob-num js-line-number" data-line-number="1157"></td>
        <td id="LC1157" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1158" class="blob-num js-line-number" data-line-number="1158"></td>
        <td id="LC1158" class="blob-code js-file-line">          <span class="c1">// remove from list</span></td>
      </tr>
      <tr>
        <td id="L1159" class="blob-num js-line-number" data-line-number="1159"></td>
        <td id="LC1159" class="blob-code js-file-line">          <span class="nx">el</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">j</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1160" class="blob-num js-line-number" data-line-number="1160"></td>
        <td id="LC1160" class="blob-code js-file-line">          <span class="o">--</span><span class="nx">j</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1161" class="blob-num js-line-number" data-line-number="1161"></td>
        <td id="LC1161" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1162" class="blob-num js-line-number" data-line-number="1162"></td>
        <td id="LC1162" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1163" class="blob-num js-line-number" data-line-number="1163"></td>
        <td id="LC1163" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1164" class="blob-num js-line-number" data-line-number="1164"></td>
        <td id="LC1164" class="blob-code js-file-line">    <span class="nx">add</span> <span class="o">&amp;&amp;</span> <span class="nx">slide</span> <span class="o">&amp;&amp;</span> <span class="nx">slide</span><span class="p">.</span><span class="nx">md_tree</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1165" class="blob-num js-line-number" data-line-number="1165"></td>
        <td id="LC1165" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1166" class="blob-num js-line-number" data-line-number="1166"></td>
        <td id="LC1166" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">slide</span><span class="p">)</span> <span class="nx">slides</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">Slide</span><span class="p">(</span><span class="nx">slide</span><span class="p">.</span><span class="nx">md_tree</span><span class="p">,</span> <span class="nx">slide</span><span class="p">.</span><span class="nx">actions</span><span class="p">,</span> <span class="nx">slide</span><span class="p">.</span><span class="nx">properties</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L1167" class="blob-num js-line-number" data-line-number="1167"></td>
        <td id="LC1167" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1168" class="blob-num js-line-number" data-line-number="1168"></td>
        <td id="LC1168" class="blob-code js-file-line">  <span class="c1">// remove the order for globalProperties</span></td>
      </tr>
      <tr>
        <td id="L1169" class="blob-num js-line-number" data-line-number="1169"></td>
        <td id="LC1169" class="blob-code js-file-line">  <span class="nx">slides</span><span class="p">.</span><span class="nx">global</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L1170" class="blob-num js-line-number" data-line-number="1170"></td>
        <td id="LC1170" class="blob-code js-file-line">  <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">k</span> <span class="k">in</span> <span class="nx">globalProperties</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1171" class="blob-num js-line-number" data-line-number="1171"></td>
        <td id="LC1171" class="blob-code js-file-line">    <span class="nx">slides</span><span class="p">.</span><span class="nx">global</span><span class="p">[</span><span class="nx">k</span><span class="p">]</span> <span class="o">=</span> <span class="nx">globalProperties</span><span class="p">[</span><span class="nx">k</span><span class="p">].</span><span class="nx">value</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1172" class="blob-num js-line-number" data-line-number="1172"></td>
        <td id="LC1172" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1173" class="blob-num js-line-number" data-line-number="1173"></td>
        <td id="LC1173" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1174" class="blob-num js-line-number" data-line-number="1174"></td>
        <td id="LC1174" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">slides</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1175" class="blob-num js-line-number" data-line-number="1175"></td>
        <td id="LC1175" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1176" class="blob-num js-line-number" data-line-number="1176"></td>
        <td id="LC1176" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1177" class="blob-num js-line-number" data-line-number="1177"></td>
        <td id="LC1177" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1178" class="blob-num js-line-number" data-line-number="1178"></td>
        <td id="LC1178" class="blob-code js-file-line"><span class="c1">// return a list of Slide objects</span></td>
      </tr>
      <tr>
        <td id="L1179" class="blob-num js-line-number" data-line-number="1179"></td>
        <td id="LC1179" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">actionsFromMarkdown</span><span class="p">(</span><span class="nx">md</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1180" class="blob-num js-line-number" data-line-number="1180"></td>
        <td id="LC1180" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">md_tree</span> <span class="o">=</span> <span class="nx">markdown</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">md</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1181" class="blob-num js-line-number" data-line-number="1181"></td>
        <td id="LC1181" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">md2json</span><span class="p">(</span><span class="nx">md_tree</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1182" class="blob-num js-line-number" data-line-number="1182"></td>
        <td id="LC1182" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1183" class="blob-num js-line-number" data-line-number="1183"></td>
        <td id="LC1183" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1184" class="blob-num js-line-number" data-line-number="1184"></td>
        <td id="LC1184" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1185" class="blob-num js-line-number" data-line-number="1185"></td>
        <td id="LC1185" class="blob-code js-file-line"><span class="nx">Template</span><span class="p">.</span><span class="nx">parseProperties</span> <span class="o">=</span> <span class="nx">parseProperties</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1186" class="blob-num js-line-number" data-line-number="1186"></td>
        <td id="LC1186" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1187" class="blob-num js-line-number" data-line-number="1187"></td>
        <td id="LC1187" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Template</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1188" class="blob-num js-line-number" data-line-number="1188"></td>
        <td id="LC1188" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1189" class="blob-num js-line-number" data-line-number="1189"></td>
        <td id="LC1189" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../../vendor/markdown&quot;</span><span class="o">:</span><span class="mi">33</span><span class="p">}],</span><span class="mi">16</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1190" class="blob-num js-line-number" data-line-number="1190"></td>
        <td id="LC1190" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1191" class="blob-num js-line-number" data-line-number="1191"></td>
        <td id="LC1191" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Trigger</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Trigger</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1192" class="blob-num js-line-number" data-line-number="1192"></td>
        <td id="LC1192" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Core</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../core&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1193" class="blob-num js-line-number" data-line-number="1193"></td>
        <td id="LC1193" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Hammer</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;hammerjs&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1194" class="blob-num js-line-number" data-line-number="1194"></td>
        <td id="LC1194" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1195" class="blob-num js-line-number" data-line-number="1195"></td>
        <td id="LC1195" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Gestures</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1196" class="blob-num js-line-number" data-line-number="1196"></td>
        <td id="LC1196" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1197" class="blob-num js-line-number" data-line-number="1197"></td>
        <td id="LC1197" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">gestures</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L1198" class="blob-num js-line-number" data-line-number="1198"></td>
        <td id="LC1198" class="blob-code js-file-line">  <span class="nx">el</span> <span class="o">=</span> <span class="nx">el</span> <span class="o">||</span> <span class="nb">document</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1199" class="blob-num js-line-number" data-line-number="1199"></td>
        <td id="LC1199" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_hammerEvent</span><span class="p">(</span><span class="nx">eventName</span><span class="p">,</span> <span class="nx">fnName</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1200" class="blob-num js-line-number" data-line-number="1200"></td>
        <td id="LC1200" class="blob-code js-file-line">    <span class="nx">gestures</span><span class="p">[</span><span class="nx">fnName</span><span class="p">]</span><span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1201" class="blob-num js-line-number" data-line-number="1201"></td>
        <td id="LC1201" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">Trigger</span><span class="p">({});</span></td>
      </tr>
      <tr>
        <td id="L1202" class="blob-num js-line-number" data-line-number="1202"></td>
        <td id="LC1202" class="blob-code js-file-line">      <span class="nx">Hammer</span><span class="p">(</span><span class="nx">el</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="nx">eventName</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1203" class="blob-num js-line-number" data-line-number="1203"></td>
        <td id="LC1203" class="blob-code js-file-line">        <span class="nx">t</span><span class="p">.</span><span class="nx">trigger</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1204" class="blob-num js-line-number" data-line-number="1204"></td>
        <td id="LC1204" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1205" class="blob-num js-line-number" data-line-number="1205"></td>
        <td id="LC1205" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1206" class="blob-num js-line-number" data-line-number="1206"></td>
        <td id="LC1206" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1207" class="blob-num js-line-number" data-line-number="1207"></td>
        <td id="LC1207" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1208" class="blob-num js-line-number" data-line-number="1208"></td>
        <td id="LC1208" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1209" class="blob-num js-line-number" data-line-number="1209"></td>
        <td id="LC1209" class="blob-code js-file-line">  <span class="nx">_hammerEvent</span><span class="p">(</span><span class="s1">&#39;swipeup&#39;</span><span class="p">,</span> <span class="s1">&#39;swipeUp&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1210" class="blob-num js-line-number" data-line-number="1210"></td>
        <td id="LC1210" class="blob-code js-file-line">  <span class="nx">_hammerEvent</span><span class="p">(</span><span class="s1">&#39;swipedown&#39;</span><span class="p">,</span> <span class="s1">&#39;swipeDown&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1211" class="blob-num js-line-number" data-line-number="1211"></td>
        <td id="LC1211" class="blob-code js-file-line">  <span class="nx">_hammerEvent</span><span class="p">(</span><span class="s1">&#39;swipeleft&#39;</span><span class="p">,</span> <span class="s1">&#39;swipeLeft&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1212" class="blob-num js-line-number" data-line-number="1212"></td>
        <td id="LC1212" class="blob-code js-file-line">  <span class="nx">_hammerEvent</span><span class="p">(</span><span class="s1">&#39;swiperight&#39;</span><span class="p">,</span> <span class="s1">&#39;swipeRight&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1213" class="blob-num js-line-number" data-line-number="1213"></td>
        <td id="LC1213" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1214" class="blob-num js-line-number" data-line-number="1214"></td>
        <td id="LC1214" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">gestures</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1215" class="blob-num js-line-number" data-line-number="1215"></td>
        <td id="LC1215" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1216" class="blob-num js-line-number" data-line-number="1216"></td>
        <td id="LC1216" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1217" class="blob-num js-line-number" data-line-number="1217"></td>
        <td id="LC1217" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1218" class="blob-num js-line-number" data-line-number="1218"></td>
        <td id="LC1218" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Gestures</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1219" class="blob-num js-line-number" data-line-number="1219"></td>
        <td id="LC1219" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1220" class="blob-num js-line-number" data-line-number="1220"></td>
        <td id="LC1220" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../core&quot;</span><span class="o">:</span><span class="mi">13</span><span class="p">,</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">,</span><span class="s2">&quot;hammerjs&quot;</span><span class="o">:</span><span class="mi">31</span><span class="p">}],</span><span class="mi">17</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1221" class="blob-num js-line-number" data-line-number="1221"></td>
        <td id="LC1221" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1222" class="blob-num js-line-number" data-line-number="1222"></td>
        <td id="LC1222" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1223" class="blob-num js-line-number" data-line-number="1223"></td>
        <td id="LC1223" class="blob-code js-file-line">  <span class="nx">Scroll</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./scroll&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L1224" class="blob-num js-line-number" data-line-number="1224"></td>
        <td id="LC1224" class="blob-code js-file-line">  <span class="nx">Sequential</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./sequential&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L1225" class="blob-num js-line-number" data-line-number="1225"></td>
        <td id="LC1225" class="blob-code js-file-line">  <span class="nx">Keys</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./keys&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L1226" class="blob-num js-line-number" data-line-number="1226"></td>
        <td id="LC1226" class="blob-code js-file-line">  <span class="nx">Video</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./video&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L1227" class="blob-num js-line-number" data-line-number="1227"></td>
        <td id="LC1227" class="blob-code js-file-line">  <span class="nx">Gestures</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./gestures&#39;</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L1228" class="blob-num js-line-number" data-line-number="1228"></td>
        <td id="LC1228" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1229" class="blob-num js-line-number" data-line-number="1229"></td>
        <td id="LC1229" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1230" class="blob-num js-line-number" data-line-number="1230"></td>
        <td id="LC1230" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;./gestures&quot;</span><span class="o">:</span><span class="mi">16</span><span class="p">,</span><span class="s2">&quot;./keys&quot;</span><span class="o">:</span><span class="mi">18</span><span class="p">,</span><span class="s2">&quot;./scroll&quot;</span><span class="o">:</span><span class="mi">19</span><span class="p">,</span><span class="s2">&quot;./sequential&quot;</span><span class="o">:</span><span class="mi">20</span><span class="p">,</span><span class="s2">&quot;./video&quot;</span><span class="o">:</span><span class="mi">21</span><span class="p">}],</span><span class="mi">18</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1231" class="blob-num js-line-number" data-line-number="1231"></td>
        <td id="LC1231" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1232" class="blob-num js-line-number" data-line-number="1232"></td>
        <td id="LC1232" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Trigger</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Trigger</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1233" class="blob-num js-line-number" data-line-number="1233"></td>
        <td id="LC1233" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Core</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../core&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1234" class="blob-num js-line-number" data-line-number="1234"></td>
        <td id="LC1234" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1235" class="blob-num js-line-number" data-line-number="1235"></td>
        <td id="LC1235" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L1236" class="blob-num js-line-number" data-line-number="1236"></td>
        <td id="LC1236" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L1237" class="blob-num js-line-number" data-line-number="1237"></td>
        <td id="LC1237" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L1238" class="blob-num js-line-number" data-line-number="1238"></td>
        <td id="LC1238" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L1239" class="blob-num js-line-number" data-line-number="1239"></td>
        <td id="LC1239" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Keys</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1240" class="blob-num js-line-number" data-line-number="1240"></td>
        <td id="LC1240" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1241" class="blob-num js-line-number" data-line-number="1241"></td>
        <td id="LC1241" class="blob-code js-file-line">  <span class="nx">KEY_LEFT</span> <span class="o">=</span> <span class="mi">37</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1242" class="blob-num js-line-number" data-line-number="1242"></td>
        <td id="LC1242" class="blob-code js-file-line">  <span class="nx">KEY_UP</span> <span class="o">=</span> <span class="mi">38</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1243" class="blob-num js-line-number" data-line-number="1243"></td>
        <td id="LC1243" class="blob-code js-file-line">  <span class="nx">KEY_RIGHT</span> <span class="o">=</span> <span class="mi">39</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1244" class="blob-num js-line-number" data-line-number="1244"></td>
        <td id="LC1244" class="blob-code js-file-line">  <span class="nx">KEY_DOWN</span> <span class="o">=</span> <span class="mi">40</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1245" class="blob-num js-line-number" data-line-number="1245"></td>
        <td id="LC1245" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1246" class="blob-num js-line-number" data-line-number="1246"></td>
        <td id="LC1246" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">el</span> <span class="o">=</span> <span class="nb">document</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1247" class="blob-num js-line-number" data-line-number="1247"></td>
        <td id="LC1247" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1248" class="blob-num js-line-number" data-line-number="1248"></td>
        <td id="LC1248" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">keys</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L1249" class="blob-num js-line-number" data-line-number="1249"></td>
        <td id="LC1249" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1250" class="blob-num js-line-number" data-line-number="1250"></td>
        <td id="LC1250" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">listenForKey</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">k</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1251" class="blob-num js-line-number" data-line-number="1251"></td>
        <td id="LC1251" class="blob-code js-file-line">    <span class="kd">function</span> <span class="nx">keyDown</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1252" class="blob-num js-line-number" data-line-number="1252"></td>
        <td id="LC1252" class="blob-code js-file-line">      <span class="nx">e</span> <span class="o">=</span> <span class="nx">e</span> <span class="o">||</span> <span class="nb">window</span><span class="p">.</span><span class="nx">event</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1253" class="blob-num js-line-number" data-line-number="1253"></td>
        <td id="LC1253" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1254" class="blob-num js-line-number" data-line-number="1254"></td>
        <td id="LC1254" class="blob-code js-file-line">       <span class="kd">var</span> <span class="nx">code</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">keyCode</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1255" class="blob-num js-line-number" data-line-number="1255"></td>
        <td id="LC1255" class="blob-code js-file-line">       <span class="k">if</span> <span class="p">(</span><span class="nx">code</span> <span class="o">===</span> <span class="nx">k</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1256" class="blob-num js-line-number" data-line-number="1256"></td>
        <td id="LC1256" class="blob-code js-file-line">         <span class="nx">callback</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1257" class="blob-num js-line-number" data-line-number="1257"></td>
        <td id="LC1257" class="blob-code js-file-line">         <span class="nx">e</span><span class="p">.</span><span class="nx">preventDefault</span> <span class="o">?</span> <span class="nx">e</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">()</span> <span class="o">:</span> <span class="nx">e</span><span class="p">.</span><span class="nx">returnValue</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1258" class="blob-num js-line-number" data-line-number="1258"></td>
        <td id="LC1258" class="blob-code js-file-line">         <span class="nx">e</span><span class="p">.</span><span class="nx">stopPropagation</span> <span class="o">?</span> <span class="nx">e</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">()</span> <span class="o">:</span> <span class="nx">e</span><span class="p">.</span><span class="nx">cancelBubble</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1259" class="blob-num js-line-number" data-line-number="1259"></td>
        <td id="LC1259" class="blob-code js-file-line">       <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1260" class="blob-num js-line-number" data-line-number="1260"></td>
        <td id="LC1260" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1261" class="blob-num js-line-number" data-line-number="1261"></td>
        <td id="LC1261" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1262" class="blob-num js-line-number" data-line-number="1262"></td>
        <td id="LC1262" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1263" class="blob-num js-line-number" data-line-number="1263"></td>
        <td id="LC1263" class="blob-code js-file-line">      <span class="nx">el</span><span class="p">.</span><span class="nx">attachEvent</span><span class="p">(</span><span class="s2">&quot;onkeydown&quot;</span><span class="p">,</span> <span class="kd">function</span> <span class="nx">load</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1264" class="blob-num js-line-number" data-line-number="1264"></td>
        <td id="LC1264" class="blob-code js-file-line">        <span class="nx">keyDown</span><span class="p">(</span><span class="nx">event</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1265" class="blob-num js-line-number" data-line-number="1265"></td>
        <td id="LC1265" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1266" class="blob-num js-line-number" data-line-number="1266"></td>
        <td id="LC1266" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1267" class="blob-num js-line-number" data-line-number="1267"></td>
        <td id="LC1267" class="blob-code js-file-line">      <span class="nx">el</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s2">&quot;keydown&quot;</span><span class="p">,</span> <span class="kd">function</span> <span class="nx">load</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1268" class="blob-num js-line-number" data-line-number="1268"></td>
        <td id="LC1268" class="blob-code js-file-line">        <span class="nx">keyDown</span><span class="p">(</span><span class="nx">event</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1269" class="blob-num js-line-number" data-line-number="1269"></td>
        <td id="LC1269" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1270" class="blob-num js-line-number" data-line-number="1270"></td>
        <td id="LC1270" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1271" class="blob-num js-line-number" data-line-number="1271"></td>
        <td id="LC1271" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1272" class="blob-num js-line-number" data-line-number="1272"></td>
        <td id="LC1272" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1273" class="blob-num js-line-number" data-line-number="1273"></td>
        <td id="LC1273" class="blob-code js-file-line">  <span class="nx">keys</span><span class="p">.</span><span class="nx">left</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1274" class="blob-num js-line-number" data-line-number="1274"></td>
        <td id="LC1274" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">Trigger</span><span class="p">({});</span></td>
      </tr>
      <tr>
        <td id="L1275" class="blob-num js-line-number" data-line-number="1275"></td>
        <td id="LC1275" class="blob-code js-file-line">    <span class="nx">listenForKey</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">KEY_LEFT</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1276" class="blob-num js-line-number" data-line-number="1276"></td>
        <td id="LC1276" class="blob-code js-file-line">      <span class="nx">t</span><span class="p">.</span><span class="nx">trigger</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1277" class="blob-num js-line-number" data-line-number="1277"></td>
        <td id="LC1277" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1278" class="blob-num js-line-number" data-line-number="1278"></td>
        <td id="LC1278" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1279" class="blob-num js-line-number" data-line-number="1279"></td>
        <td id="LC1279" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1280" class="blob-num js-line-number" data-line-number="1280"></td>
        <td id="LC1280" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1281" class="blob-num js-line-number" data-line-number="1281"></td>
        <td id="LC1281" class="blob-code js-file-line">  <span class="nx">keys</span><span class="p">.</span><span class="nx">right</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1282" class="blob-num js-line-number" data-line-number="1282"></td>
        <td id="LC1282" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">Trigger</span><span class="p">({});</span></td>
      </tr>
      <tr>
        <td id="L1283" class="blob-num js-line-number" data-line-number="1283"></td>
        <td id="LC1283" class="blob-code js-file-line">    <span class="nx">listenForKey</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">KEY_RIGHT</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1284" class="blob-num js-line-number" data-line-number="1284"></td>
        <td id="LC1284" class="blob-code js-file-line">      <span class="nx">t</span><span class="p">.</span><span class="nx">trigger</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1285" class="blob-num js-line-number" data-line-number="1285"></td>
        <td id="LC1285" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1286" class="blob-num js-line-number" data-line-number="1286"></td>
        <td id="LC1286" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1287" class="blob-num js-line-number" data-line-number="1287"></td>
        <td id="LC1287" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1288" class="blob-num js-line-number" data-line-number="1288"></td>
        <td id="LC1288" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1289" class="blob-num js-line-number" data-line-number="1289"></td>
        <td id="LC1289" class="blob-code js-file-line">  <span class="nx">keys</span><span class="p">.</span><span class="nx">on</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">element</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1290" class="blob-num js-line-number" data-line-number="1290"></td>
        <td id="LC1290" class="blob-code js-file-line">    <span class="nx">el</span> <span class="o">=</span> <span class="nx">Core</span><span class="p">.</span><span class="nx">getElement</span><span class="p">(</span><span class="nx">element</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1291" class="blob-num js-line-number" data-line-number="1291"></td>
        <td id="LC1291" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">keys</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1292" class="blob-num js-line-number" data-line-number="1292"></td>
        <td id="LC1292" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1293" class="blob-num js-line-number" data-line-number="1293"></td>
        <td id="LC1293" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1294" class="blob-num js-line-number" data-line-number="1294"></td>
        <td id="LC1294" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">keys</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1295" class="blob-num js-line-number" data-line-number="1295"></td>
        <td id="LC1295" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1296" class="blob-num js-line-number" data-line-number="1296"></td>
        <td id="LC1296" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1297" class="blob-num js-line-number" data-line-number="1297"></td>
        <td id="LC1297" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1298" class="blob-num js-line-number" data-line-number="1298"></td>
        <td id="LC1298" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Keys</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1299" class="blob-num js-line-number" data-line-number="1299"></td>
        <td id="LC1299" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1300" class="blob-num js-line-number" data-line-number="1300"></td>
        <td id="LC1300" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../core&quot;</span><span class="o">:</span><span class="mi">13</span><span class="p">,</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">19</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1301" class="blob-num js-line-number" data-line-number="1301"></td>
        <td id="LC1301" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1302" class="blob-num js-line-number" data-line-number="1302"></td>
        <td id="LC1302" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Trigger</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Trigger</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1303" class="blob-num js-line-number" data-line-number="1303"></td>
        <td id="LC1303" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Core</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../core&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1304" class="blob-num js-line-number" data-line-number="1304"></td>
        <td id="LC1304" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1305" class="blob-num js-line-number" data-line-number="1305"></td>
        <td id="LC1305" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">cte</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">c</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1306" class="blob-num js-line-number" data-line-number="1306"></td>
        <td id="LC1306" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1307" class="blob-num js-line-number" data-line-number="1307"></td>
        <td id="LC1307" class="blob-code js-file-line"><span class="c1">//TODO: add support for elements != window</span></td>
      </tr>
      <tr>
        <td id="L1308" class="blob-num js-line-number" data-line-number="1308"></td>
        <td id="LC1308" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Scroll</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1309" class="blob-num js-line-number" data-line-number="1309"></td>
        <td id="LC1309" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1310" class="blob-num js-line-number" data-line-number="1310"></td>
        <td id="LC1310" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">scroller</span> <span class="o">=</span> <span class="nb">window</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1311" class="blob-num js-line-number" data-line-number="1311"></td>
        <td id="LC1311" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">scrolls</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L1312" class="blob-num js-line-number" data-line-number="1312"></td>
        <td id="LC1312" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">initialized</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1313" class="blob-num js-line-number" data-line-number="1313"></td>
        <td id="LC1313" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">offset</span> <span class="o">=</span> <span class="nx">cte</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1314" class="blob-num js-line-number" data-line-number="1314"></td>
        <td id="LC1314" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">condition</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1315" class="blob-num js-line-number" data-line-number="1315"></td>
        <td id="LC1315" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1316" class="blob-num js-line-number" data-line-number="1316"></td>
        <td id="LC1316" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">scroll</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L1317" class="blob-num js-line-number" data-line-number="1317"></td>
        <td id="LC1317" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1318" class="blob-num js-line-number" data-line-number="1318"></td>
        <td id="LC1318" class="blob-code js-file-line">  <span class="nx">scroll</span><span class="p">.</span><span class="nx">reach</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1319" class="blob-num js-line-number" data-line-number="1319"></td>
        <td id="LC1319" class="blob-code js-file-line">    <span class="kd">function</span> <span class="nx">_reach</span> <span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L1320" class="blob-num js-line-number" data-line-number="1320"></td>
        <td id="LC1320" class="blob-code js-file-line">    <span class="nx">Trigger</span><span class="p">(</span><span class="nx">_reach</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1321" class="blob-num js-line-number" data-line-number="1321"></td>
        <td id="LC1321" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1322" class="blob-num js-line-number" data-line-number="1322"></td>
        <td id="LC1322" class="blob-code js-file-line">    <span class="nx">_reach</span><span class="p">.</span><span class="nx">scroll</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">scrollY</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1323" class="blob-num js-line-number" data-line-number="1323"></td>
        <td id="LC1323" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">e</span> <span class="o">=</span> <span class="nx">Core</span><span class="p">.</span><span class="nx">getElement</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1324" class="blob-num js-line-number" data-line-number="1324"></td>
        <td id="LC1324" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">bounds</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">getBoundingClientRect</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1325" class="blob-num js-line-number" data-line-number="1325"></td>
        <td id="LC1325" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">offset</span> <span class="o">=</span> <span class="nx">_reach</span><span class="p">.</span><span class="nx">offset</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1326" class="blob-num js-line-number" data-line-number="1326"></td>
        <td id="LC1326" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">condition</span><span class="p">(</span><span class="nx">bounds</span><span class="p">,</span> <span class="nx">offset</span><span class="p">,</span> <span class="nx">scrollY</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1327" class="blob-num js-line-number" data-line-number="1327"></td>
        <td id="LC1327" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">t</span> <span class="o">!==</span> <span class="kc">null</span> <span class="o">&amp;&amp;</span> <span class="nx">t</span> <span class="o">!==</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1328" class="blob-num js-line-number" data-line-number="1328"></td>
        <td id="LC1328" class="blob-code js-file-line">        <span class="nx">_reach</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">t</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1329" class="blob-num js-line-number" data-line-number="1329"></td>
        <td id="LC1329" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1330" class="blob-num js-line-number" data-line-number="1330"></td>
        <td id="LC1330" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">_reach</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1331" class="blob-num js-line-number" data-line-number="1331"></td>
        <td id="LC1331" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1332" class="blob-num js-line-number" data-line-number="1332"></td>
        <td id="LC1332" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1333" class="blob-num js-line-number" data-line-number="1333"></td>
        <td id="LC1333" class="blob-code js-file-line">    <span class="nx">_reach</span><span class="p">.</span><span class="nx">condition</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1334" class="blob-num js-line-number" data-line-number="1334"></td>
        <td id="LC1334" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1335" class="blob-num js-line-number" data-line-number="1335"></td>
        <td id="LC1335" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">condition</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1336" class="blob-num js-line-number" data-line-number="1336"></td>
        <td id="LC1336" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1337" class="blob-num js-line-number" data-line-number="1337"></td>
        <td id="LC1337" class="blob-code js-file-line">      <span class="nx">condition</span> <span class="o">=</span> <span class="nx">_</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1338" class="blob-num js-line-number" data-line-number="1338"></td>
        <td id="LC1338" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1339" class="blob-num js-line-number" data-line-number="1339"></td>
        <td id="LC1339" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1340" class="blob-num js-line-number" data-line-number="1340"></td>
        <td id="LC1340" class="blob-code js-file-line">    <span class="c1">/// sets offset in px or % of element</span></td>
      </tr>
      <tr>
        <td id="L1341" class="blob-num js-line-number" data-line-number="1341"></td>
        <td id="LC1341" class="blob-code js-file-line">    <span class="c1">// offset(&#39;50%&#39;) offset(100)</span></td>
      </tr>
      <tr>
        <td id="L1342" class="blob-num js-line-number" data-line-number="1342"></td>
        <td id="LC1342" class="blob-code js-file-line">    <span class="nx">_reach</span><span class="p">.</span><span class="nx">offset</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1343" class="blob-num js-line-number" data-line-number="1343"></td>
        <td id="LC1343" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1344" class="blob-num js-line-number" data-line-number="1344"></td>
        <td id="LC1344" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">offset</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1345" class="blob-num js-line-number" data-line-number="1345"></td>
        <td id="LC1345" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1346" class="blob-num js-line-number" data-line-number="1346"></td>
        <td id="LC1346" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span><span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="o">===</span> <span class="s1">&#39;number&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1347" class="blob-num js-line-number" data-line-number="1347"></td>
        <td id="LC1347" class="blob-code js-file-line">        <span class="nx">offset</span> <span class="o">=</span> <span class="nx">cte</span><span class="p">(</span><span class="nx">_</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1348" class="blob-num js-line-number" data-line-number="1348"></td>
        <td id="LC1348" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1349" class="blob-num js-line-number" data-line-number="1349"></td>
        <td id="LC1349" class="blob-code js-file-line">        <span class="nx">offset</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1350" class="blob-num js-line-number" data-line-number="1350"></td>
        <td id="LC1350" class="blob-code js-file-line">          <span class="c1">//remove %</span></td>
      </tr>
      <tr>
        <td id="L1351" class="blob-num js-line-number" data-line-number="1351"></td>
        <td id="LC1351" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">percent</span> <span class="o">=</span> <span class="o">+</span><span class="nx">_</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="s1">&#39;%&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1352" class="blob-num js-line-number" data-line-number="1352"></td>
        <td id="LC1352" class="blob-code js-file-line">          <span class="k">return</span> <span class="nx">scroller</span><span class="p">.</span><span class="nx">innerHeight</span> <span class="o">*</span> <span class="nx">percent</span> <span class="o">*</span> <span class="mf">0.01</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1353" class="blob-num js-line-number" data-line-number="1353"></td>
        <td id="LC1353" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1354" class="blob-num js-line-number" data-line-number="1354"></td>
        <td id="LC1354" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1355" class="blob-num js-line-number" data-line-number="1355"></td>
        <td id="LC1355" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">_reach</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1356" class="blob-num js-line-number" data-line-number="1356"></td>
        <td id="LC1356" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1357" class="blob-num js-line-number" data-line-number="1357"></td>
        <td id="LC1357" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1358" class="blob-num js-line-number" data-line-number="1358"></td>
        <td id="LC1358" class="blob-code js-file-line">    <span class="nx">_reach</span><span class="p">.</span><span class="nx">reverse</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1359" class="blob-num js-line-number" data-line-number="1359"></td>
        <td id="LC1359" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">e</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1360" class="blob-num js-line-number" data-line-number="1360"></td>
        <td id="LC1360" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">bounds</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">getBoundingClientRect</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1361" class="blob-num js-line-number" data-line-number="1361"></td>
        <td id="LC1361" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">offset</span> <span class="o">=</span> <span class="nx">_reach</span><span class="p">.</span><span class="nx">offset</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1362" class="blob-num js-line-number" data-line-number="1362"></td>
        <td id="LC1362" class="blob-code js-file-line">      <span class="nx">scroller</span><span class="p">.</span><span class="nx">scrollTo</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span> <span class="o">-</span> <span class="nx">offset</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1363" class="blob-num js-line-number" data-line-number="1363"></td>
        <td id="LC1363" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1364" class="blob-num js-line-number" data-line-number="1364"></td>
        <td id="LC1364" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1365" class="blob-num js-line-number" data-line-number="1365"></td>
        <td id="LC1365" class="blob-code js-file-line">    <span class="nx">_reach</span><span class="p">.</span><span class="nx">clear</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1366" class="blob-num js-line-number" data-line-number="1366"></td>
        <td id="LC1366" class="blob-code js-file-line">      <span class="nx">unregister</span><span class="p">(</span><span class="nx">_reach</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1367" class="blob-num js-line-number" data-line-number="1367"></td>
        <td id="LC1367" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1368" class="blob-num js-line-number" data-line-number="1368"></td>
        <td id="LC1368" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1369" class="blob-num js-line-number" data-line-number="1369"></td>
        <td id="LC1369" class="blob-code js-file-line">    <span class="c1">// add to working scrolls</span></td>
      </tr>
      <tr>
        <td id="L1370" class="blob-num js-line-number" data-line-number="1370"></td>
        <td id="LC1370" class="blob-code js-file-line">    <span class="nx">register</span><span class="p">(</span><span class="nx">_reach</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1371" class="blob-num js-line-number" data-line-number="1371"></td>
        <td id="LC1371" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1372" class="blob-num js-line-number" data-line-number="1372"></td>
        <td id="LC1372" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">_reach</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1373" class="blob-num js-line-number" data-line-number="1373"></td>
        <td id="LC1373" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1374" class="blob-num js-line-number" data-line-number="1374"></td>
        <td id="LC1374" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1375" class="blob-num js-line-number" data-line-number="1375"></td>
        <td id="LC1375" class="blob-code js-file-line">  <span class="nx">scroll</span><span class="p">.</span><span class="nx">within</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1376" class="blob-num js-line-number" data-line-number="1376"></td>
        <td id="LC1376" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="nx">scroll</span><span class="p">.</span><span class="nx">reach</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1377" class="blob-num js-line-number" data-line-number="1377"></td>
        <td id="LC1377" class="blob-code js-file-line">    <span class="nx">r</span><span class="p">.</span><span class="nx">condition</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">bounds</span><span class="p">,</span> <span class="nx">offset</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1378" class="blob-num js-line-number" data-line-number="1378"></td>
        <td id="LC1378" class="blob-code js-file-line">      <span class="k">if</span><span class="p">(</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span> <span class="o">&lt;=</span> <span class="nx">offset</span> <span class="o">&amp;&amp;</span> <span class="nx">bounds</span><span class="p">.</span><span class="nx">bottom</span> <span class="o">&gt;=</span> <span class="nx">offset</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1379" class="blob-num js-line-number" data-line-number="1379"></td>
        <td id="LC1379" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="p">(</span><span class="nx">offset</span> <span class="o">-</span> <span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="nx">bounds</span><span class="p">.</span><span class="nx">bottom</span> <span class="o">-</span> <span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1380" class="blob-num js-line-number" data-line-number="1380"></td>
        <td id="LC1380" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1381" class="blob-num js-line-number" data-line-number="1381"></td>
        <td id="LC1381" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1382" class="blob-num js-line-number" data-line-number="1382"></td>
        <td id="LC1382" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1383" class="blob-num js-line-number" data-line-number="1383"></td>
        <td id="LC1383" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">r</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1384" class="blob-num js-line-number" data-line-number="1384"></td>
        <td id="LC1384" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1385" class="blob-num js-line-number" data-line-number="1385"></td>
        <td id="LC1385" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1386" class="blob-num js-line-number" data-line-number="1386"></td>
        <td id="LC1386" class="blob-code js-file-line">  <span class="nx">scroll</span><span class="p">.</span><span class="nx">less</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">opt</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1387" class="blob-num js-line-number" data-line-number="1387"></td>
        <td id="LC1387" class="blob-code js-file-line">    <span class="nx">opt</span> <span class="o">=</span> <span class="nx">opt</span> <span class="o">||</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L1388" class="blob-num js-line-number" data-line-number="1388"></td>
        <td id="LC1388" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="nx">scroll</span><span class="p">.</span><span class="nx">reach</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1389" class="blob-num js-line-number" data-line-number="1389"></td>
        <td id="LC1389" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">fixedBoundsTop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1390" class="blob-num js-line-number" data-line-number="1390"></td>
        <td id="LC1390" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">opt</span><span class="p">.</span><span class="nx">fixed</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1391" class="blob-num js-line-number" data-line-number="1391"></td>
        <td id="LC1391" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">e</span> <span class="o">=</span> <span class="nx">Core</span><span class="p">.</span><span class="nx">getElement</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1392" class="blob-num js-line-number" data-line-number="1392"></td>
        <td id="LC1392" class="blob-code js-file-line">      <span class="nx">fixedBoundsTop</span> <span class="o">=</span> <span class="nx">scroller</span><span class="p">.</span><span class="nx">scrollY</span> <span class="o">+</span> <span class="nx">e</span><span class="p">.</span><span class="nx">getBoundingClientRect</span><span class="p">().</span><span class="nx">top</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1393" class="blob-num js-line-number" data-line-number="1393"></td>
        <td id="LC1393" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1394" class="blob-num js-line-number" data-line-number="1394"></td>
        <td id="LC1394" class="blob-code js-file-line">    <span class="nx">r</span><span class="p">.</span><span class="nx">condition</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">bounds</span><span class="p">,</span> <span class="nx">offset</span><span class="p">,</span> <span class="nx">scrollY</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1395" class="blob-num js-line-number" data-line-number="1395"></td>
        <td id="LC1395" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">opt</span><span class="p">.</span><span class="nx">fixed</span> <span class="o">?</span> <span class="nx">fixedBoundsTop</span><span class="o">:</span> <span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1396" class="blob-num js-line-number" data-line-number="1396"></td>
        <td id="LC1396" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">o</span> <span class="o">=</span> <span class="nx">opt</span><span class="p">.</span><span class="nx">fixed</span> <span class="o">?</span> <span class="nx">scrollY</span><span class="o">:</span> <span class="nx">offset</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1397" class="blob-num js-line-number" data-line-number="1397"></td>
        <td id="LC1397" class="blob-code js-file-line">      <span class="k">if</span><span class="p">(</span><span class="nx">t</span> <span class="o">&gt;=</span> <span class="nx">o</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1398" class="blob-num js-line-number" data-line-number="1398"></td>
        <td id="LC1398" class="blob-code js-file-line">        <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1399" class="blob-num js-line-number" data-line-number="1399"></td>
        <td id="LC1399" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1400" class="blob-num js-line-number" data-line-number="1400"></td>
        <td id="LC1400" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1401" class="blob-num js-line-number" data-line-number="1401"></td>
        <td id="LC1401" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">r</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1402" class="blob-num js-line-number" data-line-number="1402"></td>
        <td id="LC1402" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1403" class="blob-num js-line-number" data-line-number="1403"></td>
        <td id="LC1403" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1404" class="blob-num js-line-number" data-line-number="1404"></td>
        <td id="LC1404" class="blob-code js-file-line">  <span class="nx">scroll</span><span class="p">.</span><span class="nx">greater</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">opt</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1405" class="blob-num js-line-number" data-line-number="1405"></td>
        <td id="LC1405" class="blob-code js-file-line">    <span class="nx">opt</span> <span class="o">=</span> <span class="nx">opt</span> <span class="o">||</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L1406" class="blob-num js-line-number" data-line-number="1406"></td>
        <td id="LC1406" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="nx">scroll</span><span class="p">.</span><span class="nx">reach</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1407" class="blob-num js-line-number" data-line-number="1407"></td>
        <td id="LC1407" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">fixedBoundsTop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1408" class="blob-num js-line-number" data-line-number="1408"></td>
        <td id="LC1408" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">opt</span><span class="p">.</span><span class="nx">fixed</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1409" class="blob-num js-line-number" data-line-number="1409"></td>
        <td id="LC1409" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">e</span> <span class="o">=</span> <span class="nx">Core</span><span class="p">.</span><span class="nx">getElement</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1410" class="blob-num js-line-number" data-line-number="1410"></td>
        <td id="LC1410" class="blob-code js-file-line">      <span class="nx">fixedBoundsTop</span> <span class="o">=</span> <span class="nx">scroller</span><span class="p">.</span><span class="nx">scrollY</span> <span class="o">+</span> <span class="nx">e</span><span class="p">.</span><span class="nx">getBoundingClientRect</span><span class="p">().</span><span class="nx">top</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1411" class="blob-num js-line-number" data-line-number="1411"></td>
        <td id="LC1411" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1412" class="blob-num js-line-number" data-line-number="1412"></td>
        <td id="LC1412" class="blob-code js-file-line">    <span class="nx">r</span><span class="p">.</span><span class="nx">condition</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">bounds</span><span class="p">,</span> <span class="nx">offset</span><span class="p">,</span> <span class="nx">scrollY</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1413" class="blob-num js-line-number" data-line-number="1413"></td>
        <td id="LC1413" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">opt</span><span class="p">.</span><span class="nx">fixed</span> <span class="o">?</span> <span class="nx">fixedBoundsTop</span><span class="o">:</span> <span class="nx">bounds</span><span class="p">.</span><span class="nx">top</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1414" class="blob-num js-line-number" data-line-number="1414"></td>
        <td id="LC1414" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">o</span> <span class="o">=</span> <span class="nx">opt</span><span class="p">.</span><span class="nx">fixed</span> <span class="o">?</span> <span class="nx">scrollY</span><span class="o">:</span> <span class="nx">offset</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1415" class="blob-num js-line-number" data-line-number="1415"></td>
        <td id="LC1415" class="blob-code js-file-line">      <span class="k">if</span><span class="p">(</span><span class="nx">t</span> <span class="o">&lt;=</span> <span class="nx">o</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1416" class="blob-num js-line-number" data-line-number="1416"></td>
        <td id="LC1416" class="blob-code js-file-line">        <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1417" class="blob-num js-line-number" data-line-number="1417"></td>
        <td id="LC1417" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1418" class="blob-num js-line-number" data-line-number="1418"></td>
        <td id="LC1418" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1419" class="blob-num js-line-number" data-line-number="1419"></td>
        <td id="LC1419" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">r</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1420" class="blob-num js-line-number" data-line-number="1420"></td>
        <td id="LC1420" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1421" class="blob-num js-line-number" data-line-number="1421"></td>
        <td id="LC1421" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1422" class="blob-num js-line-number" data-line-number="1422"></td>
        <td id="LC1422" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">register</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1423" class="blob-num js-line-number" data-line-number="1423"></td>
        <td id="LC1423" class="blob-code js-file-line">    <span class="nx">scrolls</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">s</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1424" class="blob-num js-line-number" data-line-number="1424"></td>
        <td id="LC1424" class="blob-code js-file-line">    <span class="nx">initScroll</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1425" class="blob-num js-line-number" data-line-number="1425"></td>
        <td id="LC1425" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1426" class="blob-num js-line-number" data-line-number="1426"></td>
        <td id="LC1426" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1427" class="blob-num js-line-number" data-line-number="1427"></td>
        <td id="LC1427" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">unregister</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1428" class="blob-num js-line-number" data-line-number="1428"></td>
        <td id="LC1428" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">scrolls</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">s</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1429" class="blob-num js-line-number" data-line-number="1429"></td>
        <td id="LC1429" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1430" class="blob-num js-line-number" data-line-number="1430"></td>
        <td id="LC1430" class="blob-code js-file-line">      <span class="nx">scrolls</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1431" class="blob-num js-line-number" data-line-number="1431"></td>
        <td id="LC1431" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1432" class="blob-num js-line-number" data-line-number="1432"></td>
        <td id="LC1432" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1433" class="blob-num js-line-number" data-line-number="1433"></td>
        <td id="LC1433" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1434" class="blob-num js-line-number" data-line-number="1434"></td>
        <td id="LC1434" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">initScroll</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1435" class="blob-num js-line-number" data-line-number="1435"></td>
        <td id="LC1435" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">initialized</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1436" class="blob-num js-line-number" data-line-number="1436"></td>
        <td id="LC1436" class="blob-code js-file-line">      <span class="nx">initialized</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1437" class="blob-num js-line-number" data-line-number="1437"></td>
        <td id="LC1437" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1438" class="blob-num js-line-number" data-line-number="1438"></td>
        <td id="LC1438" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">forEach</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1439" class="blob-num js-line-number" data-line-number="1439"></td>
        <td id="LC1439" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1440" class="blob-num js-line-number" data-line-number="1440"></td>
        <td id="LC1440" class="blob-code js-file-line">        <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">forEach</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="nx">thisArg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1441" class="blob-num js-line-number" data-line-number="1441"></td>
        <td id="LC1441" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1442" class="blob-num js-line-number" data-line-number="1442"></td>
        <td id="LC1442" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">T</span><span class="p">,</span> <span class="nx">k</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1443" class="blob-num js-line-number" data-line-number="1443"></td>
        <td id="LC1443" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1444" class="blob-num js-line-number" data-line-number="1444"></td>
        <td id="LC1444" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span><span class="k">this</span> <span class="o">==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1445" class="blob-num js-line-number" data-line-number="1445"></td>
        <td id="LC1445" class="blob-code js-file-line">            <span class="k">throw</span> <span class="k">new</span> <span class="nx">TypeError</span><span class="p">(</span><span class="s2">&quot; this is null or not defined&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1446" class="blob-num js-line-number" data-line-number="1446"></td>
        <td id="LC1446" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1447" class="blob-num js-line-number" data-line-number="1447"></td>
        <td id="LC1447" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1448" class="blob-num js-line-number" data-line-number="1448"></td>
        <td id="LC1448" class="blob-code js-file-line">          <span class="c1">// 1. Let O be the result of calling ToObject passing the |this| value as the argument.</span></td>
      </tr>
      <tr>
        <td id="L1449" class="blob-num js-line-number" data-line-number="1449"></td>
        <td id="LC1449" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">O</span> <span class="o">=</span> <span class="nb">Object</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1450" class="blob-num js-line-number" data-line-number="1450"></td>
        <td id="LC1450" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1451" class="blob-num js-line-number" data-line-number="1451"></td>
        <td id="LC1451" class="blob-code js-file-line">          <span class="c1">// 2. Let lenValue be the result of calling the Get internal method of O with the argument &quot;length&quot;.</span></td>
      </tr>
      <tr>
        <td id="L1452" class="blob-num js-line-number" data-line-number="1452"></td>
        <td id="LC1452" class="blob-code js-file-line">          <span class="c1">// 3. Let len be ToUint32(lenValue).</span></td>
      </tr>
      <tr>
        <td id="L1453" class="blob-num js-line-number" data-line-number="1453"></td>
        <td id="LC1453" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">O</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;&gt;&gt;</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1454" class="blob-num js-line-number" data-line-number="1454"></td>
        <td id="LC1454" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1455" class="blob-num js-line-number" data-line-number="1455"></td>
        <td id="LC1455" class="blob-code js-file-line">          <span class="c1">// 4. If IsCallable(callback) is false, throw a TypeError exception.</span></td>
      </tr>
      <tr>
        <td id="L1456" class="blob-num js-line-number" data-line-number="1456"></td>
        <td id="LC1456" class="blob-code js-file-line">          <span class="c1">// See: http://es5.github.com/#x9.11</span></td>
      </tr>
      <tr>
        <td id="L1457" class="blob-num js-line-number" data-line-number="1457"></td>
        <td id="LC1457" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">callback</span> <span class="o">!==</span> <span class="s2">&quot;function&quot;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1458" class="blob-num js-line-number" data-line-number="1458"></td>
        <td id="LC1458" class="blob-code js-file-line">            <span class="k">throw</span> <span class="k">new</span> <span class="nx">TypeError</span><span class="p">(</span><span class="nx">callback</span> <span class="o">+</span> <span class="s2">&quot; is not a function&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1459" class="blob-num js-line-number" data-line-number="1459"></td>
        <td id="LC1459" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1460" class="blob-num js-line-number" data-line-number="1460"></td>
        <td id="LC1460" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1461" class="blob-num js-line-number" data-line-number="1461"></td>
        <td id="LC1461" class="blob-code js-file-line">          <span class="c1">// 5. If thisArg was supplied, let T be thisArg; else let T be undefined.</span></td>
      </tr>
      <tr>
        <td id="L1462" class="blob-num js-line-number" data-line-number="1462"></td>
        <td id="LC1462" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span><span class="nx">thisArg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1463" class="blob-num js-line-number" data-line-number="1463"></td>
        <td id="LC1463" class="blob-code js-file-line">            <span class="nx">T</span> <span class="o">=</span> <span class="nx">thisArg</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1464" class="blob-num js-line-number" data-line-number="1464"></td>
        <td id="LC1464" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1465" class="blob-num js-line-number" data-line-number="1465"></td>
        <td id="LC1465" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1466" class="blob-num js-line-number" data-line-number="1466"></td>
        <td id="LC1466" class="blob-code js-file-line">          <span class="c1">// 6. Let k be 0</span></td>
      </tr>
      <tr>
        <td id="L1467" class="blob-num js-line-number" data-line-number="1467"></td>
        <td id="LC1467" class="blob-code js-file-line">          <span class="nx">k</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1468" class="blob-num js-line-number" data-line-number="1468"></td>
        <td id="LC1468" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1469" class="blob-num js-line-number" data-line-number="1469"></td>
        <td id="LC1469" class="blob-code js-file-line">          <span class="c1">// 7. Repeat, while k &lt; len</span></td>
      </tr>
      <tr>
        <td id="L1470" class="blob-num js-line-number" data-line-number="1470"></td>
        <td id="LC1470" class="blob-code js-file-line">          <span class="k">while</span> <span class="p">(</span><span class="nx">k</span> <span class="o">&lt;</span> <span class="nx">len</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1471" class="blob-num js-line-number" data-line-number="1471"></td>
        <td id="LC1471" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1472" class="blob-num js-line-number" data-line-number="1472"></td>
        <td id="LC1472" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">kValue</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1473" class="blob-num js-line-number" data-line-number="1473"></td>
        <td id="LC1473" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1474" class="blob-num js-line-number" data-line-number="1474"></td>
        <td id="LC1474" class="blob-code js-file-line">            <span class="c1">// a. Let Pk be ToString(k).</span></td>
      </tr>
      <tr>
        <td id="L1475" class="blob-num js-line-number" data-line-number="1475"></td>
        <td id="LC1475" class="blob-code js-file-line">            <span class="c1">//   This is implicit for LHS operands of the in operator</span></td>
      </tr>
      <tr>
        <td id="L1476" class="blob-num js-line-number" data-line-number="1476"></td>
        <td id="LC1476" class="blob-code js-file-line">            <span class="c1">// b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.</span></td>
      </tr>
      <tr>
        <td id="L1477" class="blob-num js-line-number" data-line-number="1477"></td>
        <td id="LC1477" class="blob-code js-file-line">            <span class="c1">//   This step can be combined with c</span></td>
      </tr>
      <tr>
        <td id="L1478" class="blob-num js-line-number" data-line-number="1478"></td>
        <td id="LC1478" class="blob-code js-file-line">            <span class="c1">// c. If kPresent is true, then</span></td>
      </tr>
      <tr>
        <td id="L1479" class="blob-num js-line-number" data-line-number="1479"></td>
        <td id="LC1479" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">(</span><span class="nx">k</span> <span class="k">in</span> <span class="nx">O</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1480" class="blob-num js-line-number" data-line-number="1480"></td>
        <td id="LC1480" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1481" class="blob-num js-line-number" data-line-number="1481"></td>
        <td id="LC1481" class="blob-code js-file-line">              <span class="c1">// i. Let kValue be the result of calling the Get internal method of O with argument Pk.</span></td>
      </tr>
      <tr>
        <td id="L1482" class="blob-num js-line-number" data-line-number="1482"></td>
        <td id="LC1482" class="blob-code js-file-line">              <span class="nx">kValue</span> <span class="o">=</span> <span class="nx">O</span><span class="p">[</span><span class="nx">k</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1483" class="blob-num js-line-number" data-line-number="1483"></td>
        <td id="LC1483" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1484" class="blob-num js-line-number" data-line-number="1484"></td>
        <td id="LC1484" class="blob-code js-file-line">              <span class="c1">// ii. Call the Call internal method of callback with T as the this value and</span></td>
      </tr>
      <tr>
        <td id="L1485" class="blob-num js-line-number" data-line-number="1485"></td>
        <td id="LC1485" class="blob-code js-file-line">              <span class="c1">// argument list containing kValue, k, and O.</span></td>
      </tr>
      <tr>
        <td id="L1486" class="blob-num js-line-number" data-line-number="1486"></td>
        <td id="LC1486" class="blob-code js-file-line">              <span class="nx">callback</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">T</span><span class="p">,</span> <span class="nx">kValue</span><span class="p">,</span> <span class="nx">k</span><span class="p">,</span> <span class="nx">O</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1487" class="blob-num js-line-number" data-line-number="1487"></td>
        <td id="LC1487" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1488" class="blob-num js-line-number" data-line-number="1488"></td>
        <td id="LC1488" class="blob-code js-file-line">            <span class="c1">// d. Increase k by 1.</span></td>
      </tr>
      <tr>
        <td id="L1489" class="blob-num js-line-number" data-line-number="1489"></td>
        <td id="LC1489" class="blob-code js-file-line">            <span class="nx">k</span><span class="o">++</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1490" class="blob-num js-line-number" data-line-number="1490"></td>
        <td id="LC1490" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1491" class="blob-num js-line-number" data-line-number="1491"></td>
        <td id="LC1491" class="blob-code js-file-line">          <span class="c1">// 8. return undefined</span></td>
      </tr>
      <tr>
        <td id="L1492" class="blob-num js-line-number" data-line-number="1492"></td>
        <td id="LC1492" class="blob-code js-file-line">        <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1493" class="blob-num js-line-number" data-line-number="1493"></td>
        <td id="LC1493" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1494" class="blob-num js-line-number" data-line-number="1494"></td>
        <td id="LC1494" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1495" class="blob-num js-line-number" data-line-number="1495"></td>
        <td id="LC1495" class="blob-code js-file-line">      <span class="kd">function</span> <span class="nx">scrollEach</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1496" class="blob-num js-line-number" data-line-number="1496"></td>
        <td id="LC1496" class="blob-code js-file-line">        <span class="nx">scrolls</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1497" class="blob-num js-line-number" data-line-number="1497"></td>
        <td id="LC1497" class="blob-code js-file-line">          <span class="nx">s</span><span class="p">.</span><span class="nx">scroll</span><span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">scrollY</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1498" class="blob-num js-line-number" data-line-number="1498"></td>
        <td id="LC1498" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1499" class="blob-num js-line-number" data-line-number="1499"></td>
        <td id="LC1499" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1500" class="blob-num js-line-number" data-line-number="1500"></td>
        <td id="LC1500" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1501" class="blob-num js-line-number" data-line-number="1501"></td>
        <td id="LC1501" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1502" class="blob-num js-line-number" data-line-number="1502"></td>
        <td id="LC1502" class="blob-code js-file-line">        <span class="nx">scroller</span><span class="p">.</span><span class="nx">attachEvent</span><span class="p">(</span><span class="s2">&quot;onscroll&quot;</span><span class="p">,</span> <span class="kd">function</span> <span class="nx">load</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1503" class="blob-num js-line-number" data-line-number="1503"></td>
        <td id="LC1503" class="blob-code js-file-line">          <span class="nx">scrollEach</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1504" class="blob-num js-line-number" data-line-number="1504"></td>
        <td id="LC1504" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1505" class="blob-num js-line-number" data-line-number="1505"></td>
        <td id="LC1505" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1506" class="blob-num js-line-number" data-line-number="1506"></td>
        <td id="LC1506" class="blob-code js-file-line">        <span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s2">&quot;scroll&quot;</span><span class="p">,</span> <span class="kd">function</span> <span class="nx">load</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1507" class="blob-num js-line-number" data-line-number="1507"></td>
        <td id="LC1507" class="blob-code js-file-line">          <span class="nx">scrollEach</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1508" class="blob-num js-line-number" data-line-number="1508"></td>
        <td id="LC1508" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1509" class="blob-num js-line-number" data-line-number="1509"></td>
        <td id="LC1509" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1510" class="blob-num js-line-number" data-line-number="1510"></td>
        <td id="LC1510" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1511" class="blob-num js-line-number" data-line-number="1511"></td>
        <td id="LC1511" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1512" class="blob-num js-line-number" data-line-number="1512"></td>
        <td id="LC1512" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1513" class="blob-num js-line-number" data-line-number="1513"></td>
        <td id="LC1513" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">scroll</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1514" class="blob-num js-line-number" data-line-number="1514"></td>
        <td id="LC1514" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1515" class="blob-num js-line-number" data-line-number="1515"></td>
        <td id="LC1515" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1516" class="blob-num js-line-number" data-line-number="1516"></td>
        <td id="LC1516" class="blob-code js-file-line"><span class="nx">Scroll</span><span class="p">.</span><span class="nx">_scrolls</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L1517" class="blob-num js-line-number" data-line-number="1517"></td>
        <td id="LC1517" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Scroll</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1518" class="blob-num js-line-number" data-line-number="1518"></td>
        <td id="LC1518" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1519" class="blob-num js-line-number" data-line-number="1519"></td>
        <td id="LC1519" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../core&quot;</span><span class="o">:</span><span class="mi">13</span><span class="p">,</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">20</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1520" class="blob-num js-line-number" data-line-number="1520"></td>
        <td id="LC1520" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1521" class="blob-num js-line-number" data-line-number="1521"></td>
        <td id="LC1521" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Trigger</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../story&#39;</span><span class="p">).</span><span class="nx">Trigger</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1522" class="blob-num js-line-number" data-line-number="1522"></td>
        <td id="LC1522" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1523" class="blob-num js-line-number" data-line-number="1523"></td>
        <td id="LC1523" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Sequential</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1524" class="blob-num js-line-number" data-line-number="1524"></td>
        <td id="LC1524" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">current</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1525" class="blob-num js-line-number" data-line-number="1525"></td>
        <td id="LC1525" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">steps</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L1526" class="blob-num js-line-number" data-line-number="1526"></td>
        <td id="LC1526" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">max</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1527" class="blob-num js-line-number" data-line-number="1527"></td>
        <td id="LC1527" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">triggers</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L1528" class="blob-num js-line-number" data-line-number="1528"></td>
        <td id="LC1528" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1529" class="blob-num js-line-number" data-line-number="1529"></td>
        <td id="LC1529" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">seq</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L1530" class="blob-num js-line-number" data-line-number="1530"></td>
        <td id="LC1530" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1531" class="blob-num js-line-number" data-line-number="1531"></td>
        <td id="LC1531" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">update</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1532" class="blob-num js-line-number" data-line-number="1532"></td>
        <td id="LC1532" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">steps</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1533" class="blob-num js-line-number" data-line-number="1533"></td>
        <td id="LC1533" class="blob-code js-file-line">      <span class="nx">steps</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">check</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1534" class="blob-num js-line-number" data-line-number="1534"></td>
        <td id="LC1534" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1535" class="blob-num js-line-number" data-line-number="1535"></td>
        <td id="LC1535" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1536" class="blob-num js-line-number" data-line-number="1536"></td>
        <td id="LC1536" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1537" class="blob-num js-line-number" data-line-number="1537"></td>
        <td id="LC1537" class="blob-code js-file-line">  <span class="nx">seq</span><span class="p">.</span><span class="nx">state</span> <span class="o">=</span> <span class="nx">seq</span><span class="p">.</span><span class="nx">step</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1538" class="blob-num js-line-number" data-line-number="1538"></td>
        <td id="LC1538" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">n</span> <span class="k">in</span> <span class="nx">triggers</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1539" class="blob-num js-line-number" data-line-number="1539"></td>
        <td id="LC1539" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">triggers</span><span class="p">[</span><span class="nx">n</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1540" class="blob-num js-line-number" data-line-number="1540"></td>
        <td id="LC1540" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1541" class="blob-num js-line-number" data-line-number="1541"></td>
        <td id="LC1541" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">Trigger</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L1542" class="blob-num js-line-number" data-line-number="1542"></td>
        <td id="LC1542" class="blob-code js-file-line">      <span class="nx">check</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1543" class="blob-num js-line-number" data-line-number="1543"></td>
        <td id="LC1543" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">n</span> <span class="o">===</span> <span class="nx">current</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="p">.</span><span class="nx">trigger</span><span class="p">)</span> <span class="k">this</span><span class="p">.</span><span class="nx">trigger</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1544" class="blob-num js-line-number" data-line-number="1544"></td>
        <td id="LC1544" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L1545" class="blob-num js-line-number" data-line-number="1545"></td>
        <td id="LC1545" class="blob-code js-file-line">      <span class="nx">reverse</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1546" class="blob-num js-line-number" data-line-number="1546"></td>
        <td id="LC1546" class="blob-code js-file-line">        <span class="nx">current</span> <span class="o">=</span> <span class="nx">n</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1547" class="blob-num js-line-number" data-line-number="1547"></td>
        <td id="LC1547" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1548" class="blob-num js-line-number" data-line-number="1548"></td>
        <td id="LC1548" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1549" class="blob-num js-line-number" data-line-number="1549"></td>
        <td id="LC1549" class="blob-code js-file-line">    <span class="nx">max</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">max</span><span class="p">,</span> <span class="nx">n</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1550" class="blob-num js-line-number" data-line-number="1550"></td>
        <td id="LC1550" class="blob-code js-file-line">    <span class="nx">steps</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">t</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1551" class="blob-num js-line-number" data-line-number="1551"></td>
        <td id="LC1551" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">triggers</span><span class="p">[</span><span class="nx">n</span><span class="p">]</span> <span class="o">=</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1552" class="blob-num js-line-number" data-line-number="1552"></td>
        <td id="LC1552" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1553" class="blob-num js-line-number" data-line-number="1553"></td>
        <td id="LC1553" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1554" class="blob-num js-line-number" data-line-number="1554"></td>
        <td id="LC1554" class="blob-code js-file-line">  <span class="nx">seq</span><span class="p">.</span><span class="nx">next</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1555" class="blob-num js-line-number" data-line-number="1555"></td>
        <td id="LC1555" class="blob-code js-file-line">    <span class="nx">current</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1556" class="blob-num js-line-number" data-line-number="1556"></td>
        <td id="LC1556" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">current</span> <span class="o">&gt;</span> <span class="nx">max</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1557" class="blob-num js-line-number" data-line-number="1557"></td>
        <td id="LC1557" class="blob-code js-file-line">      <span class="nx">current</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1558" class="blob-num js-line-number" data-line-number="1558"></td>
        <td id="LC1558" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1559" class="blob-num js-line-number" data-line-number="1559"></td>
        <td id="LC1559" class="blob-code js-file-line">    <span class="nx">update</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1560" class="blob-num js-line-number" data-line-number="1560"></td>
        <td id="LC1560" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1561" class="blob-num js-line-number" data-line-number="1561"></td>
        <td id="LC1561" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1562" class="blob-num js-line-number" data-line-number="1562"></td>
        <td id="LC1562" class="blob-code js-file-line">  <span class="nx">seq</span><span class="p">.</span><span class="nx">clear</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1563" class="blob-num js-line-number" data-line-number="1563"></td>
        <td id="LC1563" class="blob-code js-file-line">    <span class="nx">steps</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L1564" class="blob-num js-line-number" data-line-number="1564"></td>
        <td id="LC1564" class="blob-code js-file-line">    <span class="nx">max</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1565" class="blob-num js-line-number" data-line-number="1565"></td>
        <td id="LC1565" class="blob-code js-file-line">    <span class="nx">current</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1566" class="blob-num js-line-number" data-line-number="1566"></td>
        <td id="LC1566" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">seq</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1567" class="blob-num js-line-number" data-line-number="1567"></td>
        <td id="LC1567" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1568" class="blob-num js-line-number" data-line-number="1568"></td>
        <td id="LC1568" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1569" class="blob-num js-line-number" data-line-number="1569"></td>
        <td id="LC1569" class="blob-code js-file-line">  <span class="nx">seq</span><span class="p">.</span><span class="nx">current</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1570" class="blob-num js-line-number" data-line-number="1570"></td>
        <td id="LC1570" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1571" class="blob-num js-line-number" data-line-number="1571"></td>
        <td id="LC1571" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nx">max</span><span class="p">,</span> <span class="nx">_</span><span class="p">),</span> <span class="mi">0</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1572" class="blob-num js-line-number" data-line-number="1572"></td>
        <td id="LC1572" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">c</span> <span class="o">!==</span> <span class="nx">current</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1573" class="blob-num js-line-number" data-line-number="1573"></td>
        <td id="LC1573" class="blob-code js-file-line">        <span class="nx">current</span> <span class="o">=</span> <span class="nx">c</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1574" class="blob-num js-line-number" data-line-number="1574"></td>
        <td id="LC1574" class="blob-code js-file-line">        <span class="nx">update</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1575" class="blob-num js-line-number" data-line-number="1575"></td>
        <td id="LC1575" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1576" class="blob-num js-line-number" data-line-number="1576"></td>
        <td id="LC1576" class="blob-code js-file-line">      <span class="k">return</span> <span class="k">this</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1577" class="blob-num js-line-number" data-line-number="1577"></td>
        <td id="LC1577" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1578" class="blob-num js-line-number" data-line-number="1578"></td>
        <td id="LC1578" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">current</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1579" class="blob-num js-line-number" data-line-number="1579"></td>
        <td id="LC1579" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1580" class="blob-num js-line-number" data-line-number="1580"></td>
        <td id="LC1580" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1581" class="blob-num js-line-number" data-line-number="1581"></td>
        <td id="LC1581" class="blob-code js-file-line">  <span class="nx">seq</span><span class="p">.</span><span class="nx">prev</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1582" class="blob-num js-line-number" data-line-number="1582"></td>
        <td id="LC1582" class="blob-code js-file-line">    <span class="nx">current</span> <span class="o">-=</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1583" class="blob-num js-line-number" data-line-number="1583"></td>
        <td id="LC1583" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">current</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1584" class="blob-num js-line-number" data-line-number="1584"></td>
        <td id="LC1584" class="blob-code js-file-line">      <span class="nx">current</span> <span class="o">=</span> <span class="nx">max</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1585" class="blob-num js-line-number" data-line-number="1585"></td>
        <td id="LC1585" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1586" class="blob-num js-line-number" data-line-number="1586"></td>
        <td id="LC1586" class="blob-code js-file-line">    <span class="nx">update</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1587" class="blob-num js-line-number" data-line-number="1587"></td>
        <td id="LC1587" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1588" class="blob-num js-line-number" data-line-number="1588"></td>
        <td id="LC1588" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1589" class="blob-num js-line-number" data-line-number="1589"></td>
        <td id="LC1589" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">seq</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1590" class="blob-num js-line-number" data-line-number="1590"></td>
        <td id="LC1590" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1591" class="blob-num js-line-number" data-line-number="1591"></td>
        <td id="LC1591" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1592" class="blob-num js-line-number" data-line-number="1592"></td>
        <td id="LC1592" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Sequential</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1593" class="blob-num js-line-number" data-line-number="1593"></td>
        <td id="LC1593" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1594" class="blob-num js-line-number" data-line-number="1594"></td>
        <td id="LC1594" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../story&quot;</span><span class="o">:</span><span class="mi">14</span><span class="p">}],</span><span class="mi">21</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1595" class="blob-num js-line-number" data-line-number="1595"></td>
        <td id="LC1595" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1596" class="blob-num js-line-number" data-line-number="1596"></td>
        <td id="LC1596" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">Video</span><span class="p">(</span><span class="nx">player</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1597" class="blob-num js-line-number" data-line-number="1597"></td>
        <td id="LC1597" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">YT</span> <span class="o">===</span> <span class="s1">&#39;undefined&#39;</span> <span class="o">||</span> <span class="o">!</span><span class="p">(</span><span class="nx">player</span> <span class="k">instanceof</span> <span class="nx">YT</span><span class="p">.</span><span class="nx">Player</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1598" class="blob-num js-line-number" data-line-number="1598"></td>
        <td id="LC1598" class="blob-code js-file-line">    <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">&quot;player should be a YT.Player instance, see youtube API&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1599" class="blob-num js-line-number" data-line-number="1599"></td>
        <td id="LC1599" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1600" class="blob-num js-line-number" data-line-number="1600"></td>
        <td id="LC1600" class="blob-code js-file-line">  </td>
      </tr>
      <tr>
        <td id="L1601" class="blob-num js-line-number" data-line-number="1601"></td>
        <td id="LC1601" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">triggers</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L1602" class="blob-num js-line-number" data-line-number="1602"></td>
        <td id="LC1602" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1603" class="blob-num js-line-number" data-line-number="1603"></td>
        <td id="LC1603" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">setInterval</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1604" class="blob-num js-line-number" data-line-number="1604"></td>
        <td id="LC1604" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">seconds</span> <span class="o">=</span> <span class="nx">player</span><span class="p">.</span><span class="nx">getCurrentTime</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1605" class="blob-num js-line-number" data-line-number="1605"></td>
        <td id="LC1605" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">triggers</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1606" class="blob-num js-line-number" data-line-number="1606"></td>
        <td id="LC1606" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1607" class="blob-num js-line-number" data-line-number="1607"></td>
        <td id="LC1607" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">start</span> <span class="o">&lt;=</span> <span class="nx">seconds</span> <span class="o">&amp;&amp;</span> <span class="nx">t</span><span class="p">.</span><span class="nx">end</span> <span class="o">&gt;</span> <span class="nx">seconds</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1608" class="blob-num js-line-number" data-line-number="1608"></td>
        <td id="LC1608" class="blob-code js-file-line">        <span class="nx">t</span><span class="p">.</span><span class="nx">trigger</span><span class="p">((</span><span class="nx">seconds</span> <span class="o">-</span> <span class="nx">t</span><span class="p">.</span><span class="nx">start</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">end</span> <span class="o">-</span> <span class="nx">t</span><span class="p">.</span><span class="nx">start</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L1609" class="blob-num js-line-number" data-line-number="1609"></td>
        <td id="LC1609" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1610" class="blob-num js-line-number" data-line-number="1610"></td>
        <td id="LC1610" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1611" class="blob-num js-line-number" data-line-number="1611"></td>
        <td id="LC1611" class="blob-code js-file-line">  <span class="p">},</span> <span class="mi">100</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1612" class="blob-num js-line-number" data-line-number="1612"></td>
        <td id="LC1612" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1613" class="blob-num js-line-number" data-line-number="1613"></td>
        <td id="LC1613" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">clear</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">t</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1614" class="blob-num js-line-number" data-line-number="1614"></td>
        <td id="LC1614" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">triggers</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1615" class="blob-num js-line-number" data-line-number="1615"></td>
        <td id="LC1615" class="blob-code js-file-line">      <span class="nx">clearInterval</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1616" class="blob-num js-line-number" data-line-number="1616"></td>
        <td id="LC1616" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1617" class="blob-num js-line-number" data-line-number="1617"></td>
        <td id="LC1617" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1618" class="blob-num js-line-number" data-line-number="1618"></td>
        <td id="LC1618" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1619" class="blob-num js-line-number" data-line-number="1619"></td>
        <td id="LC1619" class="blob-code js-file-line">  <span class="k">return</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1620" class="blob-num js-line-number" data-line-number="1620"></td>
        <td id="LC1620" class="blob-code js-file-line">    <span class="nx">between</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1621" class="blob-num js-line-number" data-line-number="1621"></td>
        <td id="LC1621" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">O</span><span class="p">.</span><span class="nx">Trigger</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1622" class="blob-num js-line-number" data-line-number="1622"></td>
        <td id="LC1622" class="blob-code js-file-line">      <span class="nx">t</span><span class="p">.</span><span class="nx">start</span> <span class="o">=</span> <span class="nx">start</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1623" class="blob-num js-line-number" data-line-number="1623"></td>
        <td id="LC1623" class="blob-code js-file-line">      <span class="nx">t</span><span class="p">.</span><span class="nx">end</span> <span class="o">=</span> <span class="nx">end</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1624" class="blob-num js-line-number" data-line-number="1624"></td>
        <td id="LC1624" class="blob-code js-file-line">      <span class="nx">triggers</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">t</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1625" class="blob-num js-line-number" data-line-number="1625"></td>
        <td id="LC1625" class="blob-code js-file-line">      <span class="nx">t</span><span class="p">.</span><span class="nx">clear</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1626" class="blob-num js-line-number" data-line-number="1626"></td>
        <td id="LC1626" class="blob-code js-file-line">        <span class="nx">triggers</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">triggers</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">t</span><span class="p">),</span> <span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1627" class="blob-num js-line-number" data-line-number="1627"></td>
        <td id="LC1627" class="blob-code js-file-line">        <span class="nx">clear</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1628" class="blob-num js-line-number" data-line-number="1628"></td>
        <td id="LC1628" class="blob-code js-file-line">      <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1629" class="blob-num js-line-number" data-line-number="1629"></td>
        <td id="LC1629" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1630" class="blob-num js-line-number" data-line-number="1630"></td>
        <td id="LC1630" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1631" class="blob-num js-line-number" data-line-number="1631"></td>
        <td id="LC1631" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1632" class="blob-num js-line-number" data-line-number="1632"></td>
        <td id="LC1632" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1633" class="blob-num js-line-number" data-line-number="1633"></td>
        <td id="LC1633" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1634" class="blob-num js-line-number" data-line-number="1634"></td>
        <td id="LC1634" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1635" class="blob-num js-line-number" data-line-number="1635"></td>
        <td id="LC1635" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Video</span></td>
      </tr>
      <tr>
        <td id="L1636" class="blob-num js-line-number" data-line-number="1636"></td>
        <td id="LC1636" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1637" class="blob-num js-line-number" data-line-number="1637"></td>
        <td id="LC1637" class="blob-code js-file-line"><span class="p">},{}],</span><span class="mi">22</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1638" class="blob-num js-line-number" data-line-number="1638"></td>
        <td id="LC1638" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L1639" class="blob-num js-line-number" data-line-number="1639"></td>
        <td id="LC1639" class="blob-code js-file-line"><span class="cm"># dot progress</span></td>
      </tr>
      <tr>
        <td id="L1640" class="blob-num js-line-number" data-line-number="1640"></td>
        <td id="LC1640" class="blob-code js-file-line"><span class="cm">ui widget that controls dot progress </span></td>
      </tr>
      <tr>
        <td id="L1641" class="blob-num js-line-number" data-line-number="1641"></td>
        <td id="LC1641" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1642" class="blob-num js-line-number" data-line-number="1642"></td>
        <td id="LC1642" class="blob-code js-file-line"><span class="cm">## usage</span></td>
      </tr>
      <tr>
        <td id="L1643" class="blob-num js-line-number" data-line-number="1643"></td>
        <td id="LC1643" class="blob-code js-file-line"><span class="cm">in order to use it you need to instanciate using a container, so for example:</span></td>
      </tr>
      <tr>
        <td id="L1644" class="blob-num js-line-number" data-line-number="1644"></td>
        <td id="LC1644" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1645" class="blob-num js-line-number" data-line-number="1645"></td>
        <td id="LC1645" class="blob-code js-file-line"><span class="cm">  &lt;div id=&quot;dots&quot;&gt;&lt;/div&gt;</span></td>
      </tr>
      <tr>
        <td id="L1646" class="blob-num js-line-number" data-line-number="1646"></td>
        <td id="LC1646" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1647" class="blob-num js-line-number" data-line-number="1647"></td>
        <td id="LC1647" class="blob-code js-file-line"><span class="cm">  ...</span></td>
      </tr>
      <tr>
        <td id="L1648" class="blob-num js-line-number" data-line-number="1648"></td>
        <td id="LC1648" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1649" class="blob-num js-line-number" data-line-number="1649"></td>
        <td id="LC1649" class="blob-code js-file-line"><span class="cm">  var progress = DotProgress(&#39;dots&#39;)</span></td>
      </tr>
      <tr>
        <td id="L1650" class="blob-num js-line-number" data-line-number="1650"></td>
        <td id="LC1650" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1651" class="blob-num js-line-number" data-line-number="1651"></td>
        <td id="LC1651" class="blob-code js-file-line"><span class="cm">  // we set the number of slides</span></td>
      </tr>
      <tr>
        <td id="L1652" class="blob-num js-line-number" data-line-number="1652"></td>
        <td id="LC1652" class="blob-code js-file-line"><span class="cm">  progress.count(10);</span></td>
      </tr>
      <tr>
        <td id="L1653" class="blob-num js-line-number" data-line-number="1653"></td>
        <td id="LC1653" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1654" class="blob-num js-line-number" data-line-number="1654"></td>
        <td id="LC1654" class="blob-code js-file-line"><span class="cm">  // we can activate it as an action</span></td>
      </tr>
      <tr>
        <td id="L1655" class="blob-num js-line-number" data-line-number="1655"></td>
        <td id="LC1655" class="blob-code js-file-line"><span class="cm">  // then the story enters in this state the second dot</span></td>
      </tr>
      <tr>
        <td id="L1656" class="blob-num js-line-number" data-line-number="1656"></td>
        <td id="LC1656" class="blob-code js-file-line"><span class="cm">  // will be activated</span></td>
      </tr>
      <tr>
        <td id="L1657" class="blob-num js-line-number" data-line-number="1657"></td>
        <td id="LC1657" class="blob-code js-file-line"><span class="cm">  story.addState(trigger, progress.activate(1))</span></td>
      </tr>
      <tr>
        <td id="L1658" class="blob-num js-line-number" data-line-number="1658"></td>
        <td id="LC1658" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1659" class="blob-num js-line-number" data-line-number="1659"></td>
        <td id="LC1659" class="blob-code js-file-line"><span class="cm">  // when an user clicks on the dot it can trigger an action</span></td>
      </tr>
      <tr>
        <td id="L1660" class="blob-num js-line-number" data-line-number="1660"></td>
        <td id="LC1660" class="blob-code js-file-line"><span class="cm">  story.addState(progress.step(1), action);</span></td>
      </tr>
      <tr>
        <td id="L1661" class="blob-num js-line-number" data-line-number="1661"></td>
        <td id="LC1661" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1662" class="blob-num js-line-number" data-line-number="1662"></td>
        <td id="LC1662" class="blob-code js-file-line"><span class="cm">## styling</span></td>
      </tr>
      <tr>
        <td id="L1663" class="blob-num js-line-number" data-line-number="1663"></td>
        <td id="LC1663" class="blob-code js-file-line"><span class="cm">the html rendered is the following:</span></td>
      </tr>
      <tr>
        <td id="L1664" class="blob-num js-line-number" data-line-number="1664"></td>
        <td id="LC1664" class="blob-code js-file-line"><span class="cm">```</span></td>
      </tr>
      <tr>
        <td id="L1665" class="blob-num js-line-number" data-line-number="1665"></td>
        <td id="LC1665" class="blob-code js-file-line"><span class="cm">  &lt;div id=&quot;dots&quot;&gt;</span></td>
      </tr>
      <tr>
        <td id="L1666" class="blob-num js-line-number" data-line-number="1666"></td>
        <td id="LC1666" class="blob-code js-file-line"><span class="cm">    &lt;ul&gt;</span></td>
      </tr>
      <tr>
        <td id="L1667" class="blob-num js-line-number" data-line-number="1667"></td>
        <td id="LC1667" class="blob-code js-file-line"><span class="cm">      &lt;li&gt;&lt;href=&quot;#0&quot;&gt;&lt;/a&gt;&lt;/li&gt;</span></td>
      </tr>
      <tr>
        <td id="L1668" class="blob-num js-line-number" data-line-number="1668"></td>
        <td id="LC1668" class="blob-code js-file-line"><span class="cm">      &lt;li&gt;&lt;href=&quot;#1&quot; class=&quot;active&quot;&gt;&lt;/a&gt;&lt;/li&gt;</span></td>
      </tr>
      <tr>
        <td id="L1669" class="blob-num js-line-number" data-line-number="1669"></td>
        <td id="LC1669" class="blob-code js-file-line"><span class="cm">      &lt;li&gt;&lt;href=&quot;#2&quot;&gt;&lt;/a&gt;&lt;/li&gt;</span></td>
      </tr>
      <tr>
        <td id="L1670" class="blob-num js-line-number" data-line-number="1670"></td>
        <td id="LC1670" class="blob-code js-file-line"><span class="cm">      &lt;li&gt;&lt;href=&quot;#2&quot;&gt;&lt;/a&gt;&lt;/li&gt;</span></td>
      </tr>
      <tr>
        <td id="L1671" class="blob-num js-line-number" data-line-number="1671"></td>
        <td id="LC1671" class="blob-code js-file-line"><span class="cm">    &lt;/ul&gt;</span></td>
      </tr>
      <tr>
        <td id="L1672" class="blob-num js-line-number" data-line-number="1672"></td>
        <td id="LC1672" class="blob-code js-file-line"><span class="cm">  &lt;/div&gt;</span></td>
      </tr>
      <tr>
        <td id="L1673" class="blob-num js-line-number" data-line-number="1673"></td>
        <td id="LC1673" class="blob-code js-file-line"><span class="cm">```</span></td>
      </tr>
      <tr>
        <td id="L1674" class="blob-num js-line-number" data-line-number="1674"></td>
        <td id="LC1674" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1675" class="blob-num js-line-number" data-line-number="1675"></td>
        <td id="LC1675" class="blob-code js-file-line"><span class="cm">so you can use active class to style the active one</span></td>
      </tr>
      <tr>
        <td id="L1676" class="blob-num js-line-number" data-line-number="1676"></td>
        <td id="LC1676" class="blob-code js-file-line"><span class="cm"> </span></td>
      </tr>
      <tr>
        <td id="L1677" class="blob-num js-line-number" data-line-number="1677"></td>
        <td id="LC1677" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L1678" class="blob-num js-line-number" data-line-number="1678"></td>
        <td id="LC1678" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1679" class="blob-num js-line-number" data-line-number="1679"></td>
        <td id="LC1679" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Core</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;../core&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1680" class="blob-num js-line-number" data-line-number="1680"></td>
        <td id="LC1680" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1681" class="blob-num js-line-number" data-line-number="1681"></td>
        <td id="LC1681" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">DotProgress</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1682" class="blob-num js-line-number" data-line-number="1682"></td>
        <td id="LC1682" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1683" class="blob-num js-line-number" data-line-number="1683"></td>
        <td id="LC1683" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">element</span> <span class="o">=</span> <span class="nx">Core</span><span class="p">.</span><span class="nx">getElement</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1684" class="blob-num js-line-number" data-line-number="1684"></td>
        <td id="LC1684" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">triggers</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L1685" class="blob-num js-line-number" data-line-number="1685"></td>
        <td id="LC1685" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1686" class="blob-num js-line-number" data-line-number="1686"></td>
        <td id="LC1686" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">_progress</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1687" class="blob-num js-line-number" data-line-number="1687"></td>
        <td id="LC1687" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">_progress</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1688" class="blob-num js-line-number" data-line-number="1688"></td>
        <td id="LC1688" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1689" class="blob-num js-line-number" data-line-number="1689"></td>
        <td id="LC1689" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1690" class="blob-num js-line-number" data-line-number="1690"></td>
        <td id="LC1690" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">render</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1691" class="blob-num js-line-number" data-line-number="1691"></td>
        <td id="LC1691" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">html</span> <span class="o">=</span> <span class="s1">&#39;&lt;ul&gt;&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1692" class="blob-num js-line-number" data-line-number="1692"></td>
        <td id="LC1692" class="blob-code js-file-line">    <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">count</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span> </td>
      </tr>
      <tr>
        <td id="L1693" class="blob-num js-line-number" data-line-number="1693"></td>
        <td id="LC1693" class="blob-code js-file-line">      <span class="nx">html</span> <span class="o">+=</span> <span class="s1">&#39;&lt;li&gt;&lt;a slide-index=&quot;&#39;</span> <span class="o">+</span> <span class="nx">i</span> <span class="o">+</span> <span class="s1">&#39;&quot; href=&quot;#&#39;</span> <span class="o">+</span> <span class="nx">i</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&lt;/a&gt;&lt;/li&gt;&#39;</span><span class="p">;</span> </td>
      </tr>
      <tr>
        <td id="L1694" class="blob-num js-line-number" data-line-number="1694"></td>
        <td id="LC1694" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1695" class="blob-num js-line-number" data-line-number="1695"></td>
        <td id="LC1695" class="blob-code js-file-line">    <span class="nx">html</span> <span class="o">+=</span> <span class="s2">&quot;&lt;/ul&gt;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1696" class="blob-num js-line-number" data-line-number="1696"></td>
        <td id="LC1696" class="blob-code js-file-line">    <span class="nx">element</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">html</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1697" class="blob-num js-line-number" data-line-number="1697"></td>
        <td id="LC1697" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1698" class="blob-num js-line-number" data-line-number="1698"></td>
        <td id="LC1698" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1699" class="blob-num js-line-number" data-line-number="1699"></td>
        <td id="LC1699" class="blob-code js-file-line">  <span class="nx">_progress</span><span class="p">.</span><span class="nx">count</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1700" class="blob-num js-line-number" data-line-number="1700"></td>
        <td id="LC1700" class="blob-code js-file-line">    <span class="nx">count</span> <span class="o">=</span> <span class="nx">_</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1701" class="blob-num js-line-number" data-line-number="1701"></td>
        <td id="LC1701" class="blob-code js-file-line">    <span class="nx">render</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1702" class="blob-num js-line-number" data-line-number="1702"></td>
        <td id="LC1702" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">_progress</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1703" class="blob-num js-line-number" data-line-number="1703"></td>
        <td id="LC1703" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1704" class="blob-num js-line-number" data-line-number="1704"></td>
        <td id="LC1704" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1705" class="blob-num js-line-number" data-line-number="1705"></td>
        <td id="LC1705" class="blob-code js-file-line">  <span class="c1">// returns an action to activate the index</span></td>
      </tr>
      <tr>
        <td id="L1706" class="blob-num js-line-number" data-line-number="1706"></td>
        <td id="LC1706" class="blob-code js-file-line">  <span class="nx">_progress</span><span class="p">.</span><span class="nx">activate</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">activeIndex</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1707" class="blob-num js-line-number" data-line-number="1707"></td>
        <td id="LC1707" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">O</span><span class="p">.</span><span class="nx">Action</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1708" class="blob-num js-line-number" data-line-number="1708"></td>
        <td id="LC1708" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">children</span> <span class="o">=</span> <span class="nx">element</span><span class="p">.</span><span class="nx">children</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">children</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1709" class="blob-num js-line-number" data-line-number="1709"></td>
        <td id="LC1709" class="blob-code js-file-line">      <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">children</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1710" class="blob-num js-line-number" data-line-number="1710"></td>
        <td id="LC1710" class="blob-code js-file-line">        <span class="nx">children</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">children</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">setAttribute</span><span class="p">(</span><span class="s1">&#39;class&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1711" class="blob-num js-line-number" data-line-number="1711"></td>
        <td id="LC1711" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1712" class="blob-num js-line-number" data-line-number="1712"></td>
        <td id="LC1712" class="blob-code js-file-line">      <span class="nx">children</span><span class="p">[</span><span class="nx">activeIndex</span><span class="p">].</span><span class="nx">children</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">setAttribute</span><span class="p">(</span><span class="s1">&#39;class&#39;</span><span class="p">,</span> <span class="s1">&#39;active&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1713" class="blob-num js-line-number" data-line-number="1713"></td>
        <td id="LC1713" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1714" class="blob-num js-line-number" data-line-number="1714"></td>
        <td id="LC1714" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1715" class="blob-num js-line-number" data-line-number="1715"></td>
        <td id="LC1715" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1716" class="blob-num js-line-number" data-line-number="1716"></td>
        <td id="LC1716" class="blob-code js-file-line">  <span class="nx">element</span><span class="p">.</span><span class="nx">onclick</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1717" class="blob-num js-line-number" data-line-number="1717"></td>
        <td id="LC1717" class="blob-code js-file-line">   <span class="nx">e</span> <span class="o">=</span> <span class="nx">e</span> <span class="o">||</span> <span class="nb">window</span><span class="p">.</span><span class="nx">event</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1718" class="blob-num js-line-number" data-line-number="1718"></td>
        <td id="LC1718" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1719" class="blob-num js-line-number" data-line-number="1719"></td>
        <td id="LC1719" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">idx</span> <span class="o">=</span> <span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">target</span> <span class="o">||</span> <span class="nx">e</span><span class="p">.</span><span class="nx">srcElement</span><span class="p">).</span><span class="nx">getAttribute</span><span class="p">(</span><span class="s1">&#39;slide-index&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1720" class="blob-num js-line-number" data-line-number="1720"></td>
        <td id="LC1720" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">[</span><span class="nx">idx</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1721" class="blob-num js-line-number" data-line-number="1721"></td>
        <td id="LC1721" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">t</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1722" class="blob-num js-line-number" data-line-number="1722"></td>
        <td id="LC1722" class="blob-code js-file-line">      <span class="nx">t</span><span class="p">.</span><span class="nx">trigger</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1723" class="blob-num js-line-number" data-line-number="1723"></td>
        <td id="LC1723" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1724" class="blob-num js-line-number" data-line-number="1724"></td>
        <td id="LC1724" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1725" class="blob-num js-line-number" data-line-number="1725"></td>
        <td id="LC1725" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1726" class="blob-num js-line-number" data-line-number="1726"></td>
        <td id="LC1726" class="blob-code js-file-line">  <span class="nx">_progress</span><span class="p">.</span><span class="nx">step</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1727" class="blob-num js-line-number" data-line-number="1727"></td>
        <td id="LC1727" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">O</span><span class="p">.</span><span class="nx">Trigger</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1728" class="blob-num js-line-number" data-line-number="1728"></td>
        <td id="LC1728" class="blob-code js-file-line">    <span class="nx">triggers</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1729" class="blob-num js-line-number" data-line-number="1729"></td>
        <td id="LC1729" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">t</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1730" class="blob-num js-line-number" data-line-number="1730"></td>
        <td id="LC1730" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1731" class="blob-num js-line-number" data-line-number="1731"></td>
        <td id="LC1731" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1732" class="blob-num js-line-number" data-line-number="1732"></td>
        <td id="LC1732" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">_progress</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1733" class="blob-num js-line-number" data-line-number="1733"></td>
        <td id="LC1733" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1734" class="blob-num js-line-number" data-line-number="1734"></td>
        <td id="LC1734" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1735" class="blob-num js-line-number" data-line-number="1735"></td>
        <td id="LC1735" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1736" class="blob-num js-line-number" data-line-number="1736"></td>
        <td id="LC1736" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">DotProgress</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1737" class="blob-num js-line-number" data-line-number="1737"></td>
        <td id="LC1737" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1738" class="blob-num js-line-number" data-line-number="1738"></td>
        <td id="LC1738" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;../core&quot;</span><span class="o">:</span><span class="mi">13</span><span class="p">}],</span><span class="mi">23</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1739" class="blob-num js-line-number" data-line-number="1739"></td>
        <td id="LC1739" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1740" class="blob-num js-line-number" data-line-number="1740"></td>
        <td id="LC1740" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1741" class="blob-num js-line-number" data-line-number="1741"></td>
        <td id="LC1741" class="blob-code js-file-line">  <span class="nx">DotProgress</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./dotprogress&#39;</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L1742" class="blob-num js-line-number" data-line-number="1742"></td>
        <td id="LC1742" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1743" class="blob-num js-line-number" data-line-number="1743"></td>
        <td id="LC1743" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1744" class="blob-num js-line-number" data-line-number="1744"></td>
        <td id="LC1744" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;./dotprogress&quot;</span><span class="o">:</span><span class="mi">22</span><span class="p">}],</span><span class="mi">24</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1745" class="blob-num js-line-number" data-line-number="1745"></td>
        <td id="LC1745" class="blob-code js-file-line"><span class="cm">/*</span></td>
      </tr>
      <tr>
        <td id="L1746" class="blob-num js-line-number" data-line-number="1746"></td>
        <td id="LC1746" class="blob-code js-file-line"><span class="cm"> * classList.js: Cross-browser full element.classList implementation.</span></td>
      </tr>
      <tr>
        <td id="L1747" class="blob-num js-line-number" data-line-number="1747"></td>
        <td id="LC1747" class="blob-code js-file-line"><span class="cm"> * 2014-01-31</span></td>
      </tr>
      <tr>
        <td id="L1748" class="blob-num js-line-number" data-line-number="1748"></td>
        <td id="LC1748" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L1749" class="blob-num js-line-number" data-line-number="1749"></td>
        <td id="LC1749" class="blob-code js-file-line"><span class="cm"> * By Eli Grey, http://eligrey.com</span></td>
      </tr>
      <tr>
        <td id="L1750" class="blob-num js-line-number" data-line-number="1750"></td>
        <td id="LC1750" class="blob-code js-file-line"><span class="cm"> * Public Domain.</span></td>
      </tr>
      <tr>
        <td id="L1751" class="blob-num js-line-number" data-line-number="1751"></td>
        <td id="LC1751" class="blob-code js-file-line"><span class="cm"> * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.</span></td>
      </tr>
      <tr>
        <td id="L1752" class="blob-num js-line-number" data-line-number="1752"></td>
        <td id="LC1752" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L1753" class="blob-num js-line-number" data-line-number="1753"></td>
        <td id="LC1753" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1754" class="blob-num js-line-number" data-line-number="1754"></td>
        <td id="LC1754" class="blob-code js-file-line"><span class="cm">/*global self, document, DOMException */</span></td>
      </tr>
      <tr>
        <td id="L1755" class="blob-num js-line-number" data-line-number="1755"></td>
        <td id="LC1755" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1756" class="blob-num js-line-number" data-line-number="1756"></td>
        <td id="LC1756" class="blob-code js-file-line"><span class="cm">/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/</span></td>
      </tr>
      <tr>
        <td id="L1757" class="blob-num js-line-number" data-line-number="1757"></td>
        <td id="LC1757" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1758" class="blob-num js-line-number" data-line-number="1758"></td>
        <td id="LC1758" class="blob-code js-file-line"><span class="k">if</span> <span class="p">(</span><span class="s2">&quot;document&quot;</span> <span class="k">in</span> <span class="nx">self</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="p">(</span><span class="s2">&quot;classList&quot;</span> <span class="k">in</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;_&quot;</span><span class="p">)))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1759" class="blob-num js-line-number" data-line-number="1759"></td>
        <td id="LC1759" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1760" class="blob-num js-line-number" data-line-number="1760"></td>
        <td id="LC1760" class="blob-code js-file-line"><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">view</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1761" class="blob-num js-line-number" data-line-number="1761"></td>
        <td id="LC1761" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1762" class="blob-num js-line-number" data-line-number="1762"></td>
        <td id="LC1762" class="blob-code js-file-line"><span class="s2">&quot;use strict&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1763" class="blob-num js-line-number" data-line-number="1763"></td>
        <td id="LC1763" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1764" class="blob-num js-line-number" data-line-number="1764"></td>
        <td id="LC1764" class="blob-code js-file-line"><span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="p">(</span><span class="s1">&#39;Element&#39;</span> <span class="k">in</span> <span class="nx">view</span><span class="p">))</span> <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1765" class="blob-num js-line-number" data-line-number="1765"></td>
        <td id="LC1765" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1766" class="blob-num js-line-number" data-line-number="1766"></td>
        <td id="LC1766" class="blob-code js-file-line"><span class="kd">var</span></td>
      </tr>
      <tr>
        <td id="L1767" class="blob-num js-line-number" data-line-number="1767"></td>
        <td id="LC1767" class="blob-code js-file-line">      <span class="nx">classListProp</span> <span class="o">=</span> <span class="s2">&quot;classList&quot;</span></td>
      </tr>
      <tr>
        <td id="L1768" class="blob-num js-line-number" data-line-number="1768"></td>
        <td id="LC1768" class="blob-code js-file-line">    <span class="p">,</span> <span class="nx">protoProp</span> <span class="o">=</span> <span class="s2">&quot;prototype&quot;</span></td>
      </tr>
      <tr>
        <td id="L1769" class="blob-num js-line-number" data-line-number="1769"></td>
        <td id="LC1769" class="blob-code js-file-line">    <span class="p">,</span> <span class="nx">elemCtrProto</span> <span class="o">=</span> <span class="nx">view</span><span class="p">.</span><span class="nx">Element</span><span class="p">[</span><span class="nx">protoProp</span><span class="p">]</span></td>
      </tr>
      <tr>
        <td id="L1770" class="blob-num js-line-number" data-line-number="1770"></td>
        <td id="LC1770" class="blob-code js-file-line">    <span class="p">,</span> <span class="nx">objCtr</span> <span class="o">=</span> <span class="nb">Object</span></td>
      </tr>
      <tr>
        <td id="L1771" class="blob-num js-line-number" data-line-number="1771"></td>
        <td id="LC1771" class="blob-code js-file-line">    <span class="p">,</span> <span class="nx">strTrim</span> <span class="o">=</span> <span class="nb">String</span><span class="p">[</span><span class="nx">protoProp</span><span class="p">].</span><span class="nx">trim</span> <span class="o">||</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1772" class="blob-num js-line-number" data-line-number="1772"></td>
        <td id="LC1772" class="blob-code js-file-line">        <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/^\s+|\s+$/g</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1773" class="blob-num js-line-number" data-line-number="1773"></td>
        <td id="LC1773" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1774" class="blob-num js-line-number" data-line-number="1774"></td>
        <td id="LC1774" class="blob-code js-file-line">    <span class="p">,</span> <span class="nx">arrIndexOf</span> <span class="o">=</span> <span class="nb">Array</span><span class="p">[</span><span class="nx">protoProp</span><span class="p">].</span><span class="nx">indexOf</span> <span class="o">||</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">item</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1775" class="blob-num js-line-number" data-line-number="1775"></td>
        <td id="LC1775" class="blob-code js-file-line">        <span class="kd">var</span></td>
      </tr>
      <tr>
        <td id="L1776" class="blob-num js-line-number" data-line-number="1776"></td>
        <td id="LC1776" class="blob-code js-file-line">              <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span></td>
      </tr>
      <tr>
        <td id="L1777" class="blob-num js-line-number" data-line-number="1777"></td>
        <td id="LC1777" class="blob-code js-file-line">            <span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">length</span></td>
      </tr>
      <tr>
        <td id="L1778" class="blob-num js-line-number" data-line-number="1778"></td>
        <td id="LC1778" class="blob-code js-file-line">        <span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1779" class="blob-num js-line-number" data-line-number="1779"></td>
        <td id="LC1779" class="blob-code js-file-line">        <span class="k">for</span> <span class="p">(;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">len</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1780" class="blob-num js-line-number" data-line-number="1780"></td>
        <td id="LC1780" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="k">this</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="nx">item</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1781" class="blob-num js-line-number" data-line-number="1781"></td>
        <td id="LC1781" class="blob-code js-file-line">                <span class="k">return</span> <span class="nx">i</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1782" class="blob-num js-line-number" data-line-number="1782"></td>
        <td id="LC1782" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1783" class="blob-num js-line-number" data-line-number="1783"></td>
        <td id="LC1783" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1784" class="blob-num js-line-number" data-line-number="1784"></td>
        <td id="LC1784" class="blob-code js-file-line">        <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1785" class="blob-num js-line-number" data-line-number="1785"></td>
        <td id="LC1785" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1786" class="blob-num js-line-number" data-line-number="1786"></td>
        <td id="LC1786" class="blob-code js-file-line">    <span class="c1">// Vendors: please allow content code to instantiate DOMExceptions</span></td>
      </tr>
      <tr>
        <td id="L1787" class="blob-num js-line-number" data-line-number="1787"></td>
        <td id="LC1787" class="blob-code js-file-line">    <span class="p">,</span> <span class="nx">DOMEx</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">message</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1788" class="blob-num js-line-number" data-line-number="1788"></td>
        <td id="LC1788" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">type</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1789" class="blob-num js-line-number" data-line-number="1789"></td>
        <td id="LC1789" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">code</span> <span class="o">=</span> <span class="nx">DOMException</span><span class="p">[</span><span class="nx">type</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1790" class="blob-num js-line-number" data-line-number="1790"></td>
        <td id="LC1790" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">message</span> <span class="o">=</span> <span class="nx">message</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1791" class="blob-num js-line-number" data-line-number="1791"></td>
        <td id="LC1791" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1792" class="blob-num js-line-number" data-line-number="1792"></td>
        <td id="LC1792" class="blob-code js-file-line">    <span class="p">,</span> <span class="nx">checkTokenAndGetIndex</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">classList</span><span class="p">,</span> <span class="nx">token</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1793" class="blob-num js-line-number" data-line-number="1793"></td>
        <td id="LC1793" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">token</span> <span class="o">===</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1794" class="blob-num js-line-number" data-line-number="1794"></td>
        <td id="LC1794" class="blob-code js-file-line">            <span class="k">throw</span> <span class="k">new</span> <span class="nx">DOMEx</span><span class="p">(</span></td>
      </tr>
      <tr>
        <td id="L1795" class="blob-num js-line-number" data-line-number="1795"></td>
        <td id="LC1795" class="blob-code js-file-line">                  <span class="s2">&quot;SYNTAX_ERR&quot;</span></td>
      </tr>
      <tr>
        <td id="L1796" class="blob-num js-line-number" data-line-number="1796"></td>
        <td id="LC1796" class="blob-code js-file-line">                <span class="p">,</span> <span class="s2">&quot;An invalid or illegal string was specified&quot;</span></td>
      </tr>
      <tr>
        <td id="L1797" class="blob-num js-line-number" data-line-number="1797"></td>
        <td id="LC1797" class="blob-code js-file-line">            <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1798" class="blob-num js-line-number" data-line-number="1798"></td>
        <td id="LC1798" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1799" class="blob-num js-line-number" data-line-number="1799"></td>
        <td id="LC1799" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="sr">/\s/</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">token</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1800" class="blob-num js-line-number" data-line-number="1800"></td>
        <td id="LC1800" class="blob-code js-file-line">            <span class="k">throw</span> <span class="k">new</span> <span class="nx">DOMEx</span><span class="p">(</span></td>
      </tr>
      <tr>
        <td id="L1801" class="blob-num js-line-number" data-line-number="1801"></td>
        <td id="LC1801" class="blob-code js-file-line">                  <span class="s2">&quot;INVALID_CHARACTER_ERR&quot;</span></td>
      </tr>
      <tr>
        <td id="L1802" class="blob-num js-line-number" data-line-number="1802"></td>
        <td id="LC1802" class="blob-code js-file-line">                <span class="p">,</span> <span class="s2">&quot;String contains an invalid character&quot;</span></td>
      </tr>
      <tr>
        <td id="L1803" class="blob-num js-line-number" data-line-number="1803"></td>
        <td id="LC1803" class="blob-code js-file-line">            <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1804" class="blob-num js-line-number" data-line-number="1804"></td>
        <td id="LC1804" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1805" class="blob-num js-line-number" data-line-number="1805"></td>
        <td id="LC1805" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">arrIndexOf</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">classList</span><span class="p">,</span> <span class="nx">token</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1806" class="blob-num js-line-number" data-line-number="1806"></td>
        <td id="LC1806" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1807" class="blob-num js-line-number" data-line-number="1807"></td>
        <td id="LC1807" class="blob-code js-file-line">    <span class="p">,</span> <span class="nx">ClassList</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elem</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1808" class="blob-num js-line-number" data-line-number="1808"></td>
        <td id="LC1808" class="blob-code js-file-line">        <span class="kd">var</span></td>
      </tr>
      <tr>
        <td id="L1809" class="blob-num js-line-number" data-line-number="1809"></td>
        <td id="LC1809" class="blob-code js-file-line">              <span class="nx">trimmedClasses</span> <span class="o">=</span> <span class="nx">strTrim</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">elem</span><span class="p">.</span><span class="nx">getAttribute</span><span class="p">(</span><span class="s2">&quot;class&quot;</span><span class="p">)</span> <span class="o">||</span> <span class="s2">&quot;&quot;</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L1810" class="blob-num js-line-number" data-line-number="1810"></td>
        <td id="LC1810" class="blob-code js-file-line">            <span class="p">,</span> <span class="nx">classes</span> <span class="o">=</span> <span class="nx">trimmedClasses</span> <span class="o">?</span> <span class="nx">trimmedClasses</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="sr">/\s+/</span><span class="p">)</span> <span class="o">:</span> <span class="p">[]</span></td>
      </tr>
      <tr>
        <td id="L1811" class="blob-num js-line-number" data-line-number="1811"></td>
        <td id="LC1811" class="blob-code js-file-line">            <span class="p">,</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span></td>
      </tr>
      <tr>
        <td id="L1812" class="blob-num js-line-number" data-line-number="1812"></td>
        <td id="LC1812" class="blob-code js-file-line">            <span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">classes</span><span class="p">.</span><span class="nx">length</span></td>
      </tr>
      <tr>
        <td id="L1813" class="blob-num js-line-number" data-line-number="1813"></td>
        <td id="LC1813" class="blob-code js-file-line">        <span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1814" class="blob-num js-line-number" data-line-number="1814"></td>
        <td id="LC1814" class="blob-code js-file-line">        <span class="k">for</span> <span class="p">(;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">len</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1815" class="blob-num js-line-number" data-line-number="1815"></td>
        <td id="LC1815" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">classes</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L1816" class="blob-num js-line-number" data-line-number="1816"></td>
        <td id="LC1816" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1817" class="blob-num js-line-number" data-line-number="1817"></td>
        <td id="LC1817" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">_updateClassName</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1818" class="blob-num js-line-number" data-line-number="1818"></td>
        <td id="LC1818" class="blob-code js-file-line">            <span class="nx">elem</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="s2">&quot;class&quot;</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">toString</span><span class="p">());</span></td>
      </tr>
      <tr>
        <td id="L1819" class="blob-num js-line-number" data-line-number="1819"></td>
        <td id="LC1819" class="blob-code js-file-line">        <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1820" class="blob-num js-line-number" data-line-number="1820"></td>
        <td id="LC1820" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1821" class="blob-num js-line-number" data-line-number="1821"></td>
        <td id="LC1821" class="blob-code js-file-line">    <span class="p">,</span> <span class="nx">classListProto</span> <span class="o">=</span> <span class="nx">ClassList</span><span class="p">[</span><span class="nx">protoProp</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span></td>
      </tr>
      <tr>
        <td id="L1822" class="blob-num js-line-number" data-line-number="1822"></td>
        <td id="LC1822" class="blob-code js-file-line">    <span class="p">,</span> <span class="nx">classListGetter</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1823" class="blob-num js-line-number" data-line-number="1823"></td>
        <td id="LC1823" class="blob-code js-file-line">        <span class="k">return</span> <span class="k">new</span> <span class="nx">ClassList</span><span class="p">(</span><span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1824" class="blob-num js-line-number" data-line-number="1824"></td>
        <td id="LC1824" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1825" class="blob-num js-line-number" data-line-number="1825"></td>
        <td id="LC1825" class="blob-code js-file-line"><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1826" class="blob-num js-line-number" data-line-number="1826"></td>
        <td id="LC1826" class="blob-code js-file-line"><span class="c1">// Most DOMException implementations don&#39;t allow calling DOMException&#39;s toString()</span></td>
      </tr>
      <tr>
        <td id="L1827" class="blob-num js-line-number" data-line-number="1827"></td>
        <td id="LC1827" class="blob-code js-file-line"><span class="c1">// on non-DOMExceptions. Error&#39;s toString() is sufficient here.</span></td>
      </tr>
      <tr>
        <td id="L1828" class="blob-num js-line-number" data-line-number="1828"></td>
        <td id="LC1828" class="blob-code js-file-line"><span class="nx">DOMEx</span><span class="p">[</span><span class="nx">protoProp</span><span class="p">]</span> <span class="o">=</span> <span class="nb">Error</span><span class="p">[</span><span class="nx">protoProp</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L1829" class="blob-num js-line-number" data-line-number="1829"></td>
        <td id="LC1829" class="blob-code js-file-line"><span class="nx">classListProto</span><span class="p">.</span><span class="nx">item</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1830" class="blob-num js-line-number" data-line-number="1830"></td>
        <td id="LC1830" class="blob-code js-file-line">    <span class="k">return</span> <span class="k">this</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">||</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1831" class="blob-num js-line-number" data-line-number="1831"></td>
        <td id="LC1831" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1832" class="blob-num js-line-number" data-line-number="1832"></td>
        <td id="LC1832" class="blob-code js-file-line"><span class="nx">classListProto</span><span class="p">.</span><span class="nx">contains</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">token</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1833" class="blob-num js-line-number" data-line-number="1833"></td>
        <td id="LC1833" class="blob-code js-file-line">    <span class="nx">token</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1834" class="blob-num js-line-number" data-line-number="1834"></td>
        <td id="LC1834" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">checkTokenAndGetIndex</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">token</span><span class="p">)</span> <span class="o">!==</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1835" class="blob-num js-line-number" data-line-number="1835"></td>
        <td id="LC1835" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1836" class="blob-num js-line-number" data-line-number="1836"></td>
        <td id="LC1836" class="blob-code js-file-line"><span class="nx">classListProto</span><span class="p">.</span><span class="nx">add</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1837" class="blob-num js-line-number" data-line-number="1837"></td>
        <td id="LC1837" class="blob-code js-file-line">    <span class="kd">var</span></td>
      </tr>
      <tr>
        <td id="L1838" class="blob-num js-line-number" data-line-number="1838"></td>
        <td id="LC1838" class="blob-code js-file-line">          <span class="nx">tokens</span> <span class="o">=</span> <span class="nx">arguments</span></td>
      </tr>
      <tr>
        <td id="L1839" class="blob-num js-line-number" data-line-number="1839"></td>
        <td id="LC1839" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span></td>
      </tr>
      <tr>
        <td id="L1840" class="blob-num js-line-number" data-line-number="1840"></td>
        <td id="LC1840" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">tokens</span><span class="p">.</span><span class="nx">length</span></td>
      </tr>
      <tr>
        <td id="L1841" class="blob-num js-line-number" data-line-number="1841"></td>
        <td id="LC1841" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">token</span></td>
      </tr>
      <tr>
        <td id="L1842" class="blob-num js-line-number" data-line-number="1842"></td>
        <td id="LC1842" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">updated</span> <span class="o">=</span> <span class="kc">false</span></td>
      </tr>
      <tr>
        <td id="L1843" class="blob-num js-line-number" data-line-number="1843"></td>
        <td id="LC1843" class="blob-code js-file-line">    <span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1844" class="blob-num js-line-number" data-line-number="1844"></td>
        <td id="LC1844" class="blob-code js-file-line">    <span class="k">do</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1845" class="blob-num js-line-number" data-line-number="1845"></td>
        <td id="LC1845" class="blob-code js-file-line">        <span class="nx">token</span> <span class="o">=</span> <span class="nx">tokens</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">+</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1846" class="blob-num js-line-number" data-line-number="1846"></td>
        <td id="LC1846" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">checkTokenAndGetIndex</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">token</span><span class="p">)</span> <span class="o">===</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1847" class="blob-num js-line-number" data-line-number="1847"></td>
        <td id="LC1847" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">token</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1848" class="blob-num js-line-number" data-line-number="1848"></td>
        <td id="LC1848" class="blob-code js-file-line">            <span class="nx">updated</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1849" class="blob-num js-line-number" data-line-number="1849"></td>
        <td id="LC1849" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1850" class="blob-num js-line-number" data-line-number="1850"></td>
        <td id="LC1850" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1851" class="blob-num js-line-number" data-line-number="1851"></td>
        <td id="LC1851" class="blob-code js-file-line">    <span class="k">while</span> <span class="p">(</span><span class="o">++</span><span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">l</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1852" class="blob-num js-line-number" data-line-number="1852"></td>
        <td id="LC1852" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1853" class="blob-num js-line-number" data-line-number="1853"></td>
        <td id="LC1853" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">updated</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1854" class="blob-num js-line-number" data-line-number="1854"></td>
        <td id="LC1854" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">_updateClassName</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1855" class="blob-num js-line-number" data-line-number="1855"></td>
        <td id="LC1855" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1856" class="blob-num js-line-number" data-line-number="1856"></td>
        <td id="LC1856" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1857" class="blob-num js-line-number" data-line-number="1857"></td>
        <td id="LC1857" class="blob-code js-file-line"><span class="nx">classListProto</span><span class="p">.</span><span class="nx">remove</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1858" class="blob-num js-line-number" data-line-number="1858"></td>
        <td id="LC1858" class="blob-code js-file-line">    <span class="kd">var</span></td>
      </tr>
      <tr>
        <td id="L1859" class="blob-num js-line-number" data-line-number="1859"></td>
        <td id="LC1859" class="blob-code js-file-line">          <span class="nx">tokens</span> <span class="o">=</span> <span class="nx">arguments</span></td>
      </tr>
      <tr>
        <td id="L1860" class="blob-num js-line-number" data-line-number="1860"></td>
        <td id="LC1860" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span></td>
      </tr>
      <tr>
        <td id="L1861" class="blob-num js-line-number" data-line-number="1861"></td>
        <td id="LC1861" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">tokens</span><span class="p">.</span><span class="nx">length</span></td>
      </tr>
      <tr>
        <td id="L1862" class="blob-num js-line-number" data-line-number="1862"></td>
        <td id="LC1862" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">token</span></td>
      </tr>
      <tr>
        <td id="L1863" class="blob-num js-line-number" data-line-number="1863"></td>
        <td id="LC1863" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">updated</span> <span class="o">=</span> <span class="kc">false</span></td>
      </tr>
      <tr>
        <td id="L1864" class="blob-num js-line-number" data-line-number="1864"></td>
        <td id="LC1864" class="blob-code js-file-line">    <span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1865" class="blob-num js-line-number" data-line-number="1865"></td>
        <td id="LC1865" class="blob-code js-file-line">    <span class="k">do</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1866" class="blob-num js-line-number" data-line-number="1866"></td>
        <td id="LC1866" class="blob-code js-file-line">        <span class="nx">token</span> <span class="o">=</span> <span class="nx">tokens</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">+</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1867" class="blob-num js-line-number" data-line-number="1867"></td>
        <td id="LC1867" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">index</span> <span class="o">=</span> <span class="nx">checkTokenAndGetIndex</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">token</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1868" class="blob-num js-line-number" data-line-number="1868"></td>
        <td id="LC1868" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">index</span> <span class="o">!==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1869" class="blob-num js-line-number" data-line-number="1869"></td>
        <td id="LC1869" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1870" class="blob-num js-line-number" data-line-number="1870"></td>
        <td id="LC1870" class="blob-code js-file-line">            <span class="nx">updated</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1871" class="blob-num js-line-number" data-line-number="1871"></td>
        <td id="LC1871" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1872" class="blob-num js-line-number" data-line-number="1872"></td>
        <td id="LC1872" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1873" class="blob-num js-line-number" data-line-number="1873"></td>
        <td id="LC1873" class="blob-code js-file-line">    <span class="k">while</span> <span class="p">(</span><span class="o">++</span><span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">l</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1874" class="blob-num js-line-number" data-line-number="1874"></td>
        <td id="LC1874" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1875" class="blob-num js-line-number" data-line-number="1875"></td>
        <td id="LC1875" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">updated</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1876" class="blob-num js-line-number" data-line-number="1876"></td>
        <td id="LC1876" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">_updateClassName</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1877" class="blob-num js-line-number" data-line-number="1877"></td>
        <td id="LC1877" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1878" class="blob-num js-line-number" data-line-number="1878"></td>
        <td id="LC1878" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1879" class="blob-num js-line-number" data-line-number="1879"></td>
        <td id="LC1879" class="blob-code js-file-line"><span class="nx">classListProto</span><span class="p">.</span><span class="nx">toggle</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">token</span><span class="p">,</span> <span class="nx">force</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1880" class="blob-num js-line-number" data-line-number="1880"></td>
        <td id="LC1880" class="blob-code js-file-line">    <span class="nx">token</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1881" class="blob-num js-line-number" data-line-number="1881"></td>
        <td id="LC1881" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1882" class="blob-num js-line-number" data-line-number="1882"></td>
        <td id="LC1882" class="blob-code js-file-line">    <span class="kd">var</span></td>
      </tr>
      <tr>
        <td id="L1883" class="blob-num js-line-number" data-line-number="1883"></td>
        <td id="LC1883" class="blob-code js-file-line">          <span class="nx">result</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">contains</span><span class="p">(</span><span class="nx">token</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L1884" class="blob-num js-line-number" data-line-number="1884"></td>
        <td id="LC1884" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">method</span> <span class="o">=</span> <span class="nx">result</span> <span class="o">?</span></td>
      </tr>
      <tr>
        <td id="L1885" class="blob-num js-line-number" data-line-number="1885"></td>
        <td id="LC1885" class="blob-code js-file-line">            <span class="nx">force</span> <span class="o">!==</span> <span class="kc">true</span> <span class="o">&amp;&amp;</span> <span class="s2">&quot;remove&quot;</span></td>
      </tr>
      <tr>
        <td id="L1886" class="blob-num js-line-number" data-line-number="1886"></td>
        <td id="LC1886" class="blob-code js-file-line">        <span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L1887" class="blob-num js-line-number" data-line-number="1887"></td>
        <td id="LC1887" class="blob-code js-file-line">            <span class="nx">force</span> <span class="o">!==</span> <span class="kc">false</span> <span class="o">&amp;&amp;</span> <span class="s2">&quot;add&quot;</span></td>
      </tr>
      <tr>
        <td id="L1888" class="blob-num js-line-number" data-line-number="1888"></td>
        <td id="LC1888" class="blob-code js-file-line">    <span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1889" class="blob-num js-line-number" data-line-number="1889"></td>
        <td id="LC1889" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1890" class="blob-num js-line-number" data-line-number="1890"></td>
        <td id="LC1890" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">method</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1891" class="blob-num js-line-number" data-line-number="1891"></td>
        <td id="LC1891" class="blob-code js-file-line">        <span class="k">this</span><span class="p">[</span><span class="nx">method</span><span class="p">](</span><span class="nx">token</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1892" class="blob-num js-line-number" data-line-number="1892"></td>
        <td id="LC1892" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1893" class="blob-num js-line-number" data-line-number="1893"></td>
        <td id="LC1893" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1894" class="blob-num js-line-number" data-line-number="1894"></td>
        <td id="LC1894" class="blob-code js-file-line">    <span class="k">return</span> <span class="o">!</span><span class="nx">result</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1895" class="blob-num js-line-number" data-line-number="1895"></td>
        <td id="LC1895" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1896" class="blob-num js-line-number" data-line-number="1896"></td>
        <td id="LC1896" class="blob-code js-file-line"><span class="nx">classListProto</span><span class="p">.</span><span class="nx">toString</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1897" class="blob-num js-line-number" data-line-number="1897"></td>
        <td id="LC1897" class="blob-code js-file-line">    <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s2">&quot; &quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1898" class="blob-num js-line-number" data-line-number="1898"></td>
        <td id="LC1898" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1899" class="blob-num js-line-number" data-line-number="1899"></td>
        <td id="LC1899" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1900" class="blob-num js-line-number" data-line-number="1900"></td>
        <td id="LC1900" class="blob-code js-file-line"><span class="k">if</span> <span class="p">(</span><span class="nx">objCtr</span><span class="p">.</span><span class="nx">defineProperty</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1901" class="blob-num js-line-number" data-line-number="1901"></td>
        <td id="LC1901" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">classListPropDesc</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1902" class="blob-num js-line-number" data-line-number="1902"></td>
        <td id="LC1902" class="blob-code js-file-line">          <span class="nx">get</span><span class="o">:</span> <span class="nx">classListGetter</span></td>
      </tr>
      <tr>
        <td id="L1903" class="blob-num js-line-number" data-line-number="1903"></td>
        <td id="LC1903" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">enumerable</span><span class="o">:</span> <span class="kc">true</span></td>
      </tr>
      <tr>
        <td id="L1904" class="blob-num js-line-number" data-line-number="1904"></td>
        <td id="LC1904" class="blob-code js-file-line">        <span class="p">,</span> <span class="nx">configurable</span><span class="o">:</span> <span class="kc">true</span></td>
      </tr>
      <tr>
        <td id="L1905" class="blob-num js-line-number" data-line-number="1905"></td>
        <td id="LC1905" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1906" class="blob-num js-line-number" data-line-number="1906"></td>
        <td id="LC1906" class="blob-code js-file-line">    <span class="k">try</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1907" class="blob-num js-line-number" data-line-number="1907"></td>
        <td id="LC1907" class="blob-code js-file-line">        <span class="nx">objCtr</span><span class="p">.</span><span class="nx">defineProperty</span><span class="p">(</span><span class="nx">elemCtrProto</span><span class="p">,</span> <span class="nx">classListProp</span><span class="p">,</span> <span class="nx">classListPropDesc</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1908" class="blob-num js-line-number" data-line-number="1908"></td>
        <td id="LC1908" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">ex</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// IE 8 doesn&#39;t support enumerable:true</span></td>
      </tr>
      <tr>
        <td id="L1909" class="blob-num js-line-number" data-line-number="1909"></td>
        <td id="LC1909" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">ex</span><span class="p">.</span><span class="nx">number</span> <span class="o">===</span> <span class="o">-</span><span class="mh">0x7FF5EC54</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1910" class="blob-num js-line-number" data-line-number="1910"></td>
        <td id="LC1910" class="blob-code js-file-line">            <span class="nx">classListPropDesc</span><span class="p">.</span><span class="nx">enumerable</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1911" class="blob-num js-line-number" data-line-number="1911"></td>
        <td id="LC1911" class="blob-code js-file-line">            <span class="nx">objCtr</span><span class="p">.</span><span class="nx">defineProperty</span><span class="p">(</span><span class="nx">elemCtrProto</span><span class="p">,</span> <span class="nx">classListProp</span><span class="p">,</span> <span class="nx">classListPropDesc</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1912" class="blob-num js-line-number" data-line-number="1912"></td>
        <td id="LC1912" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1913" class="blob-num js-line-number" data-line-number="1913"></td>
        <td id="LC1913" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1914" class="blob-num js-line-number" data-line-number="1914"></td>
        <td id="LC1914" class="blob-code js-file-line"><span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">objCtr</span><span class="p">[</span><span class="nx">protoProp</span><span class="p">].</span><span class="nx">__defineGetter__</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1915" class="blob-num js-line-number" data-line-number="1915"></td>
        <td id="LC1915" class="blob-code js-file-line">    <span class="nx">elemCtrProto</span><span class="p">.</span><span class="nx">__defineGetter__</span><span class="p">(</span><span class="nx">classListProp</span><span class="p">,</span> <span class="nx">classListGetter</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1916" class="blob-num js-line-number" data-line-number="1916"></td>
        <td id="LC1916" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1917" class="blob-num js-line-number" data-line-number="1917"></td>
        <td id="LC1917" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1918" class="blob-num js-line-number" data-line-number="1918"></td>
        <td id="LC1918" class="blob-code js-file-line"><span class="p">}(</span><span class="nx">self</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L1919" class="blob-num js-line-number" data-line-number="1919"></td>
        <td id="LC1919" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1920" class="blob-num js-line-number" data-line-number="1920"></td>
        <td id="LC1920" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1921" class="blob-num js-line-number" data-line-number="1921"></td>
        <td id="LC1921" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1922" class="blob-num js-line-number" data-line-number="1922"></td>
        <td id="LC1922" class="blob-code js-file-line"><span class="p">},{}],</span><span class="mi">25</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1923" class="blob-num js-line-number" data-line-number="1923"></td>
        <td id="LC1923" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L1924" class="blob-num js-line-number" data-line-number="1924"></td>
        <td id="LC1924" class="blob-code js-file-line"><span class="cm"> * new L.CrossHair(&#39;http://image.com/image&#39;, { x: 10, y :10 }).addTo(map)</span></td>
      </tr>
      <tr>
        <td id="L1925" class="blob-num js-line-number" data-line-number="1925"></td>
        <td id="LC1925" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L1926" class="blob-num js-line-number" data-line-number="1926"></td>
        <td id="LC1926" class="blob-code js-file-line"><span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nb">window</span><span class="p">.</span><span class="nx">L</span> <span class="o">!==</span> <span class="s1">&#39;undefined&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1927" class="blob-num js-line-number" data-line-number="1927"></td>
        <td id="LC1927" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1928" class="blob-num js-line-number" data-line-number="1928"></td>
        <td id="LC1928" class="blob-code js-file-line"><span class="nx">L</span><span class="p">.</span><span class="nx">CrossHair</span> <span class="o">=</span> <span class="nx">L</span><span class="p">.</span><span class="nx">Control</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L1929" class="blob-num js-line-number" data-line-number="1929"></td>
        <td id="LC1929" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1930" class="blob-num js-line-number" data-line-number="1930"></td>
        <td id="LC1930" class="blob-code js-file-line">  <span class="nx">initialize</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">img</span><span class="p">,</span> <span class="nx">size</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1931" class="blob-num js-line-number" data-line-number="1931"></td>
        <td id="LC1931" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">image</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Image</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1932" class="blob-num js-line-number" data-line-number="1932"></td>
        <td id="LC1932" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">image</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="nx">L</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_updatePos</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1933" class="blob-num js-line-number" data-line-number="1933"></td>
        <td id="LC1933" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">image</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="nx">img</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1934" class="blob-num js-line-number" data-line-number="1934"></td>
        <td id="LC1934" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">size</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1935" class="blob-num js-line-number" data-line-number="1935"></td>
        <td id="LC1935" class="blob-code js-file-line">      <span class="k">this</span><span class="p">.</span><span class="nx">image</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="nx">size</span><span class="p">.</span><span class="nx">x</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1936" class="blob-num js-line-number" data-line-number="1936"></td>
        <td id="LC1936" class="blob-code js-file-line">      <span class="k">this</span><span class="p">.</span><span class="nx">image</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="nx">size</span><span class="p">.</span><span class="nx">y</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1937" class="blob-num js-line-number" data-line-number="1937"></td>
        <td id="LC1937" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1938" class="blob-num js-line-number" data-line-number="1938"></td>
        <td id="LC1938" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L1939" class="blob-num js-line-number" data-line-number="1939"></td>
        <td id="LC1939" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1940" class="blob-num js-line-number" data-line-number="1940"></td>
        <td id="LC1940" class="blob-code js-file-line">  <span class="nx">_updatePos</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1941" class="blob-num js-line-number" data-line-number="1941"></td>
        <td id="LC1941" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1942" class="blob-num js-line-number" data-line-number="1942"></td>
        <td id="LC1942" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">w</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">image</span><span class="p">.</span><span class="nx">width</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1943" class="blob-num js-line-number" data-line-number="1943"></td>
        <td id="LC1943" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">h</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">image</span><span class="p">.</span><span class="nx">height</span> <span class="o">&gt;&gt;</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1944" class="blob-num js-line-number" data-line-number="1944"></td>
        <td id="LC1944" class="blob-code js-file-line">      <span class="nx">w</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_map</span><span class="p">.</span><span class="nx">getSize</span><span class="p">().</span><span class="nx">x</span><span class="o">/</span><span class="mf">2.0</span> <span class="o">-</span> <span class="nx">w</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1945" class="blob-num js-line-number" data-line-number="1945"></td>
        <td id="LC1945" class="blob-code js-file-line">      <span class="nx">h</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_map</span><span class="p">.</span><span class="nx">getSize</span><span class="p">().</span><span class="nx">y</span><span class="o">/</span><span class="mf">2.0</span> <span class="o">-</span> <span class="nx">h</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1946" class="blob-num js-line-number" data-line-number="1946"></td>
        <td id="LC1946" class="blob-code js-file-line">      <span class="nx">L</span><span class="p">.</span><span class="nx">DomUtil</span><span class="p">.</span><span class="nx">setPosition</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">image</span><span class="p">,</span> <span class="p">{</span> <span class="nx">x</span><span class="o">:</span> <span class="nx">w</span><span class="p">,</span> <span class="nx">y</span><span class="o">:</span> <span class="nx">h</span> <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1947" class="blob-num js-line-number" data-line-number="1947"></td>
        <td id="LC1947" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1948" class="blob-num js-line-number" data-line-number="1948"></td>
        <td id="LC1948" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L1949" class="blob-num js-line-number" data-line-number="1949"></td>
        <td id="LC1949" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1950" class="blob-num js-line-number" data-line-number="1950"></td>
        <td id="LC1950" class="blob-code js-file-line">  <span class="nx">addTo</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1951" class="blob-num js-line-number" data-line-number="1951"></td>
        <td id="LC1951" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">r</span> <span class="o">=</span> <span class="nx">L</span><span class="p">.</span><span class="nx">Control</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">addTo</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">map</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1952" class="blob-num js-line-number" data-line-number="1952"></td>
        <td id="LC1952" class="blob-code js-file-line">    <span class="c1">// remove leaflet-top and leaflet-right classes</span></td>
      </tr>
      <tr>
        <td id="L1953" class="blob-num js-line-number" data-line-number="1953"></td>
        <td id="LC1953" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">image</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">setAttribute</span><span class="p">(</span><span class="s1">&#39;class&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1954" class="blob-num js-line-number" data-line-number="1954"></td>
        <td id="LC1954" class="blob-code js-file-line">    <span class="nx">map</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">&#39;resize&#39;</span><span class="p">,</span> <span class="nx">L</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_updatePos</span><span class="p">,</span> <span class="k">this</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L1955" class="blob-num js-line-number" data-line-number="1955"></td>
        <td id="LC1955" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">r</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1956" class="blob-num js-line-number" data-line-number="1956"></td>
        <td id="LC1956" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L1957" class="blob-num js-line-number" data-line-number="1957"></td>
        <td id="LC1957" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1958" class="blob-num js-line-number" data-line-number="1958"></td>
        <td id="LC1958" class="blob-code js-file-line">  <span class="nx">onRemove</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1959" class="blob-num js-line-number" data-line-number="1959"></td>
        <td id="LC1959" class="blob-code js-file-line">    <span class="nx">map</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="s1">&#39;resize&#39;</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L1960" class="blob-num js-line-number" data-line-number="1960"></td>
        <td id="LC1960" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L1961" class="blob-num js-line-number" data-line-number="1961"></td>
        <td id="LC1961" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1962" class="blob-num js-line-number" data-line-number="1962"></td>
        <td id="LC1962" class="blob-code js-file-line">  <span class="nx">onAdd</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1963" class="blob-num js-line-number" data-line-number="1963"></td>
        <td id="LC1963" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">_updatePos</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L1964" class="blob-num js-line-number" data-line-number="1964"></td>
        <td id="LC1964" class="blob-code js-file-line">    <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">image</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L1965" class="blob-num js-line-number" data-line-number="1965"></td>
        <td id="LC1965" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1966" class="blob-num js-line-number" data-line-number="1966"></td>
        <td id="LC1966" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1967" class="blob-num js-line-number" data-line-number="1967"></td>
        <td id="LC1967" class="blob-code js-file-line"><span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1968" class="blob-num js-line-number" data-line-number="1968"></td>
        <td id="LC1968" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1969" class="blob-num js-line-number" data-line-number="1969"></td>
        <td id="LC1969" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1970" class="blob-num js-line-number" data-line-number="1970"></td>
        <td id="LC1970" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1971" class="blob-num js-line-number" data-line-number="1971"></td>
        <td id="LC1971" class="blob-code js-file-line"><span class="p">},{}],</span><span class="mi">26</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1972" class="blob-num js-line-number" data-line-number="1972"></td>
        <td id="LC1972" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1973" class="blob-num js-line-number" data-line-number="1973"></td>
        <td id="LC1973" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1974" class="blob-num js-line-number" data-line-number="1974"></td>
        <td id="LC1974" class="blob-code js-file-line">  <span class="nx">CrossHair</span><span class="o">:</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./crosshair&#39;</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L1975" class="blob-num js-line-number" data-line-number="1975"></td>
        <td id="LC1975" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1976" class="blob-num js-line-number" data-line-number="1976"></td>
        <td id="LC1976" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L1977" class="blob-num js-line-number" data-line-number="1977"></td>
        <td id="LC1977" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;./crosshair&quot;</span><span class="o">:</span><span class="mi">25</span><span class="p">}],</span><span class="mi">27</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L1978" class="blob-num js-line-number" data-line-number="1978"></td>
        <td id="LC1978" class="blob-code js-file-line"><span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">create</span> <span class="o">===</span> <span class="s1">&#39;function&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1979" class="blob-num js-line-number" data-line-number="1979"></td>
        <td id="LC1979" class="blob-code js-file-line">  <span class="c1">// implementation from standard node.js &#39;util&#39; module</span></td>
      </tr>
      <tr>
        <td id="L1980" class="blob-num js-line-number" data-line-number="1980"></td>
        <td id="LC1980" class="blob-code js-file-line">  <span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">inherits</span><span class="p">(</span><span class="nx">ctor</span><span class="p">,</span> <span class="nx">superCtor</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1981" class="blob-num js-line-number" data-line-number="1981"></td>
        <td id="LC1981" class="blob-code js-file-line">    <span class="nx">ctor</span><span class="p">.</span><span class="nx">super_</span> <span class="o">=</span> <span class="nx">superCtor</span></td>
      </tr>
      <tr>
        <td id="L1982" class="blob-num js-line-number" data-line-number="1982"></td>
        <td id="LC1982" class="blob-code js-file-line">    <span class="nx">ctor</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">create</span><span class="p">(</span><span class="nx">superCtor</span><span class="p">.</span><span class="nx">prototype</span><span class="p">,</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1983" class="blob-num js-line-number" data-line-number="1983"></td>
        <td id="LC1983" class="blob-code js-file-line">      <span class="nx">constructor</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1984" class="blob-num js-line-number" data-line-number="1984"></td>
        <td id="LC1984" class="blob-code js-file-line">        <span class="nx">value</span><span class="o">:</span> <span class="nx">ctor</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L1985" class="blob-num js-line-number" data-line-number="1985"></td>
        <td id="LC1985" class="blob-code js-file-line">        <span class="nx">enumerable</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L1986" class="blob-num js-line-number" data-line-number="1986"></td>
        <td id="LC1986" class="blob-code js-file-line">        <span class="nx">writable</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L1987" class="blob-num js-line-number" data-line-number="1987"></td>
        <td id="LC1987" class="blob-code js-file-line">        <span class="nx">configurable</span><span class="o">:</span> <span class="kc">true</span></td>
      </tr>
      <tr>
        <td id="L1988" class="blob-num js-line-number" data-line-number="1988"></td>
        <td id="LC1988" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L1989" class="blob-num js-line-number" data-line-number="1989"></td>
        <td id="LC1989" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L1990" class="blob-num js-line-number" data-line-number="1990"></td>
        <td id="LC1990" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L1991" class="blob-num js-line-number" data-line-number="1991"></td>
        <td id="LC1991" class="blob-code js-file-line"><span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1992" class="blob-num js-line-number" data-line-number="1992"></td>
        <td id="LC1992" class="blob-code js-file-line">  <span class="c1">// old school shim for old browsers</span></td>
      </tr>
      <tr>
        <td id="L1993" class="blob-num js-line-number" data-line-number="1993"></td>
        <td id="LC1993" class="blob-code js-file-line">  <span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">inherits</span><span class="p">(</span><span class="nx">ctor</span><span class="p">,</span> <span class="nx">superCtor</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L1994" class="blob-num js-line-number" data-line-number="1994"></td>
        <td id="LC1994" class="blob-code js-file-line">    <span class="nx">ctor</span><span class="p">.</span><span class="nx">super_</span> <span class="o">=</span> <span class="nx">superCtor</span></td>
      </tr>
      <tr>
        <td id="L1995" class="blob-num js-line-number" data-line-number="1995"></td>
        <td id="LC1995" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">TempCtor</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L1996" class="blob-num js-line-number" data-line-number="1996"></td>
        <td id="LC1996" class="blob-code js-file-line">    <span class="nx">TempCtor</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="nx">superCtor</span><span class="p">.</span><span class="nx">prototype</span></td>
      </tr>
      <tr>
        <td id="L1997" class="blob-num js-line-number" data-line-number="1997"></td>
        <td id="LC1997" class="blob-code js-file-line">    <span class="nx">ctor</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">TempCtor</span><span class="p">()</span></td>
      </tr>
      <tr>
        <td id="L1998" class="blob-num js-line-number" data-line-number="1998"></td>
        <td id="LC1998" class="blob-code js-file-line">    <span class="nx">ctor</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">constructor</span> <span class="o">=</span> <span class="nx">ctor</span></td>
      </tr>
      <tr>
        <td id="L1999" class="blob-num js-line-number" data-line-number="1999"></td>
        <td id="LC1999" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2000" class="blob-num js-line-number" data-line-number="2000"></td>
        <td id="LC2000" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2001" class="blob-num js-line-number" data-line-number="2001"></td>
        <td id="LC2001" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2002" class="blob-num js-line-number" data-line-number="2002"></td>
        <td id="LC2002" class="blob-code js-file-line"><span class="p">},{}],</span><span class="mi">28</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L2003" class="blob-num js-line-number" data-line-number="2003"></td>
        <td id="LC2003" class="blob-code js-file-line"><span class="c1">// shim for using process in browser</span></td>
      </tr>
      <tr>
        <td id="L2004" class="blob-num js-line-number" data-line-number="2004"></td>
        <td id="LC2004" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2005" class="blob-num js-line-number" data-line-number="2005"></td>
        <td id="LC2005" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">process</span> <span class="o">=</span> <span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L2006" class="blob-num js-line-number" data-line-number="2006"></td>
        <td id="LC2006" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2007" class="blob-num js-line-number" data-line-number="2007"></td>
        <td id="LC2007" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">nextTick</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2008" class="blob-num js-line-number" data-line-number="2008"></td>
        <td id="LC2008" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">canSetImmediate</span> <span class="o">=</span> <span class="k">typeof</span> <span class="nb">window</span> <span class="o">!==</span> <span class="s1">&#39;undefined&#39;</span></td>
      </tr>
      <tr>
        <td id="L2009" class="blob-num js-line-number" data-line-number="2009"></td>
        <td id="LC2009" class="blob-code js-file-line">    <span class="o">&amp;&amp;</span> <span class="nb">window</span><span class="p">.</span><span class="nx">setImmediate</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2010" class="blob-num js-line-number" data-line-number="2010"></td>
        <td id="LC2010" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">canPost</span> <span class="o">=</span> <span class="k">typeof</span> <span class="nb">window</span> <span class="o">!==</span> <span class="s1">&#39;undefined&#39;</span></td>
      </tr>
      <tr>
        <td id="L2011" class="blob-num js-line-number" data-line-number="2011"></td>
        <td id="LC2011" class="blob-code js-file-line">    <span class="o">&amp;&amp;</span> <span class="nb">window</span><span class="p">.</span><span class="nx">postMessage</span> <span class="o">&amp;&amp;</span> <span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span></td>
      </tr>
      <tr>
        <td id="L2012" class="blob-num js-line-number" data-line-number="2012"></td>
        <td id="LC2012" class="blob-code js-file-line">    <span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2013" class="blob-num js-line-number" data-line-number="2013"></td>
        <td id="LC2013" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2014" class="blob-num js-line-number" data-line-number="2014"></td>
        <td id="LC2014" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">canSetImmediate</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2015" class="blob-num js-line-number" data-line-number="2015"></td>
        <td id="LC2015" class="blob-code js-file-line">        <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">f</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nb">window</span><span class="p">.</span><span class="nx">setImmediate</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span> <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2016" class="blob-num js-line-number" data-line-number="2016"></td>
        <td id="LC2016" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2017" class="blob-num js-line-number" data-line-number="2017"></td>
        <td id="LC2017" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2018" class="blob-num js-line-number" data-line-number="2018"></td>
        <td id="LC2018" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">canPost</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2019" class="blob-num js-line-number" data-line-number="2019"></td>
        <td id="LC2019" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">queue</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L2020" class="blob-num js-line-number" data-line-number="2020"></td>
        <td id="LC2020" class="blob-code js-file-line">        <span class="nb">window</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s1">&#39;message&#39;</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">ev</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2021" class="blob-num js-line-number" data-line-number="2021"></td>
        <td id="LC2021" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">source</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">source</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2022" class="blob-num js-line-number" data-line-number="2022"></td>
        <td id="LC2022" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">((</span><span class="nx">source</span> <span class="o">===</span> <span class="nb">window</span> <span class="o">||</span> <span class="nx">source</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">data</span> <span class="o">===</span> <span class="s1">&#39;process-tick&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2023" class="blob-num js-line-number" data-line-number="2023"></td>
        <td id="LC2023" class="blob-code js-file-line">                <span class="nx">ev</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L2024" class="blob-num js-line-number" data-line-number="2024"></td>
        <td id="LC2024" class="blob-code js-file-line">                <span class="k">if</span> <span class="p">(</span><span class="nx">queue</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2025" class="blob-num js-line-number" data-line-number="2025"></td>
        <td id="LC2025" class="blob-code js-file-line">                    <span class="kd">var</span> <span class="nx">fn</span> <span class="o">=</span> <span class="nx">queue</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L2026" class="blob-num js-line-number" data-line-number="2026"></td>
        <td id="LC2026" class="blob-code js-file-line">                    <span class="nx">fn</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L2027" class="blob-num js-line-number" data-line-number="2027"></td>
        <td id="LC2027" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2028" class="blob-num js-line-number" data-line-number="2028"></td>
        <td id="LC2028" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2029" class="blob-num js-line-number" data-line-number="2029"></td>
        <td id="LC2029" class="blob-code js-file-line">        <span class="p">},</span> <span class="kc">true</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2030" class="blob-num js-line-number" data-line-number="2030"></td>
        <td id="LC2030" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2031" class="blob-num js-line-number" data-line-number="2031"></td>
        <td id="LC2031" class="blob-code js-file-line">        <span class="k">return</span> <span class="kd">function</span> <span class="nx">nextTick</span><span class="p">(</span><span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2032" class="blob-num js-line-number" data-line-number="2032"></td>
        <td id="LC2032" class="blob-code js-file-line">            <span class="nx">queue</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">fn</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2033" class="blob-num js-line-number" data-line-number="2033"></td>
        <td id="LC2033" class="blob-code js-file-line">            <span class="nb">window</span><span class="p">.</span><span class="nx">postMessage</span><span class="p">(</span><span class="s1">&#39;process-tick&#39;</span><span class="p">,</span> <span class="s1">&#39;*&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2034" class="blob-num js-line-number" data-line-number="2034"></td>
        <td id="LC2034" class="blob-code js-file-line">        <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2035" class="blob-num js-line-number" data-line-number="2035"></td>
        <td id="LC2035" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2036" class="blob-num js-line-number" data-line-number="2036"></td>
        <td id="LC2036" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2037" class="blob-num js-line-number" data-line-number="2037"></td>
        <td id="LC2037" class="blob-code js-file-line">    <span class="k">return</span> <span class="kd">function</span> <span class="nx">nextTick</span><span class="p">(</span><span class="nx">fn</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2038" class="blob-num js-line-number" data-line-number="2038"></td>
        <td id="LC2038" class="blob-code js-file-line">        <span class="nx">setTimeout</span><span class="p">(</span><span class="nx">fn</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2039" class="blob-num js-line-number" data-line-number="2039"></td>
        <td id="LC2039" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2040" class="blob-num js-line-number" data-line-number="2040"></td>
        <td id="LC2040" class="blob-code js-file-line"><span class="p">})();</span></td>
      </tr>
      <tr>
        <td id="L2041" class="blob-num js-line-number" data-line-number="2041"></td>
        <td id="LC2041" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2042" class="blob-num js-line-number" data-line-number="2042"></td>
        <td id="LC2042" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="s1">&#39;browser&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2043" class="blob-num js-line-number" data-line-number="2043"></td>
        <td id="LC2043" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">browser</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2044" class="blob-num js-line-number" data-line-number="2044"></td>
        <td id="LC2044" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">env</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L2045" class="blob-num js-line-number" data-line-number="2045"></td>
        <td id="LC2045" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">argv</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L2046" class="blob-num js-line-number" data-line-number="2046"></td>
        <td id="LC2046" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2047" class="blob-num js-line-number" data-line-number="2047"></td>
        <td id="LC2047" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">noop</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L2048" class="blob-num js-line-number" data-line-number="2048"></td>
        <td id="LC2048" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2049" class="blob-num js-line-number" data-line-number="2049"></td>
        <td id="LC2049" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">on</span> <span class="o">=</span> <span class="nx">noop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2050" class="blob-num js-line-number" data-line-number="2050"></td>
        <td id="LC2050" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">addListener</span> <span class="o">=</span> <span class="nx">noop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2051" class="blob-num js-line-number" data-line-number="2051"></td>
        <td id="LC2051" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">once</span> <span class="o">=</span> <span class="nx">noop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2052" class="blob-num js-line-number" data-line-number="2052"></td>
        <td id="LC2052" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">off</span> <span class="o">=</span> <span class="nx">noop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2053" class="blob-num js-line-number" data-line-number="2053"></td>
        <td id="LC2053" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">removeListener</span> <span class="o">=</span> <span class="nx">noop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2054" class="blob-num js-line-number" data-line-number="2054"></td>
        <td id="LC2054" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">removeAllListeners</span> <span class="o">=</span> <span class="nx">noop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2055" class="blob-num js-line-number" data-line-number="2055"></td>
        <td id="LC2055" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">emit</span> <span class="o">=</span> <span class="nx">noop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2056" class="blob-num js-line-number" data-line-number="2056"></td>
        <td id="LC2056" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2057" class="blob-num js-line-number" data-line-number="2057"></td>
        <td id="LC2057" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">binding</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2058" class="blob-num js-line-number" data-line-number="2058"></td>
        <td id="LC2058" class="blob-code js-file-line">    <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">&#39;process.binding is not supported&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2059" class="blob-num js-line-number" data-line-number="2059"></td>
        <td id="LC2059" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2060" class="blob-num js-line-number" data-line-number="2060"></td>
        <td id="LC2060" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2061" class="blob-num js-line-number" data-line-number="2061"></td>
        <td id="LC2061" class="blob-code js-file-line"><span class="c1">// TODO(shtylman)</span></td>
      </tr>
      <tr>
        <td id="L2062" class="blob-num js-line-number" data-line-number="2062"></td>
        <td id="LC2062" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">cwd</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="s1">&#39;/&#39;</span> <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2063" class="blob-num js-line-number" data-line-number="2063"></td>
        <td id="LC2063" class="blob-code js-file-line"><span class="nx">process</span><span class="p">.</span><span class="nx">chdir</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">dir</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2064" class="blob-num js-line-number" data-line-number="2064"></td>
        <td id="LC2064" class="blob-code js-file-line">    <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">&#39;process.chdir is not supported&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2065" class="blob-num js-line-number" data-line-number="2065"></td>
        <td id="LC2065" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2066" class="blob-num js-line-number" data-line-number="2066"></td>
        <td id="LC2066" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2067" class="blob-num js-line-number" data-line-number="2067"></td>
        <td id="LC2067" class="blob-code js-file-line"><span class="p">},{}],</span><span class="mi">29</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L2068" class="blob-num js-line-number" data-line-number="2068"></td>
        <td id="LC2068" class="blob-code js-file-line"><span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">isBuffer</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2069" class="blob-num js-line-number" data-line-number="2069"></td>
        <td id="LC2069" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">arg</span> <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;object&#39;</span></td>
      </tr>
      <tr>
        <td id="L2070" class="blob-num js-line-number" data-line-number="2070"></td>
        <td id="LC2070" class="blob-code js-file-line">    <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">arg</span><span class="p">.</span><span class="nx">copy</span> <span class="o">===</span> <span class="s1">&#39;function&#39;</span></td>
      </tr>
      <tr>
        <td id="L2071" class="blob-num js-line-number" data-line-number="2071"></td>
        <td id="LC2071" class="blob-code js-file-line">    <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">arg</span><span class="p">.</span><span class="nx">fill</span> <span class="o">===</span> <span class="s1">&#39;function&#39;</span></td>
      </tr>
      <tr>
        <td id="L2072" class="blob-num js-line-number" data-line-number="2072"></td>
        <td id="LC2072" class="blob-code js-file-line">    <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">arg</span><span class="p">.</span><span class="nx">readUInt8</span> <span class="o">===</span> <span class="s1">&#39;function&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2073" class="blob-num js-line-number" data-line-number="2073"></td>
        <td id="LC2073" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2074" class="blob-num js-line-number" data-line-number="2074"></td>
        <td id="LC2074" class="blob-code js-file-line"><span class="p">},{}],</span><span class="mi">30</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L2075" class="blob-num js-line-number" data-line-number="2075"></td>
        <td id="LC2075" class="blob-code js-file-line"><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">process</span><span class="p">,</span><span class="nx">global</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L2076" class="blob-num js-line-number" data-line-number="2076"></td>
        <td id="LC2076" class="blob-code js-file-line"><span class="c1">// Copyright Joyent, Inc. and other Node contributors.</span></td>
      </tr>
      <tr>
        <td id="L2077" class="blob-num js-line-number" data-line-number="2077"></td>
        <td id="LC2077" class="blob-code js-file-line"><span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L2078" class="blob-num js-line-number" data-line-number="2078"></td>
        <td id="LC2078" class="blob-code js-file-line"><span class="c1">// Permission is hereby granted, free of charge, to any person obtaining a</span></td>
      </tr>
      <tr>
        <td id="L2079" class="blob-num js-line-number" data-line-number="2079"></td>
        <td id="LC2079" class="blob-code js-file-line"><span class="c1">// copy of this software and associated documentation files (the</span></td>
      </tr>
      <tr>
        <td id="L2080" class="blob-num js-line-number" data-line-number="2080"></td>
        <td id="LC2080" class="blob-code js-file-line"><span class="c1">// &quot;Software&quot;), to deal in the Software without restriction, including</span></td>
      </tr>
      <tr>
        <td id="L2081" class="blob-num js-line-number" data-line-number="2081"></td>
        <td id="LC2081" class="blob-code js-file-line"><span class="c1">// without limitation the rights to use, copy, modify, merge, publish,</span></td>
      </tr>
      <tr>
        <td id="L2082" class="blob-num js-line-number" data-line-number="2082"></td>
        <td id="LC2082" class="blob-code js-file-line"><span class="c1">// distribute, sublicense, and/or sell copies of the Software, and to permit</span></td>
      </tr>
      <tr>
        <td id="L2083" class="blob-num js-line-number" data-line-number="2083"></td>
        <td id="LC2083" class="blob-code js-file-line"><span class="c1">// persons to whom the Software is furnished to do so, subject to the</span></td>
      </tr>
      <tr>
        <td id="L2084" class="blob-num js-line-number" data-line-number="2084"></td>
        <td id="LC2084" class="blob-code js-file-line"><span class="c1">// following conditions:</span></td>
      </tr>
      <tr>
        <td id="L2085" class="blob-num js-line-number" data-line-number="2085"></td>
        <td id="LC2085" class="blob-code js-file-line"><span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L2086" class="blob-num js-line-number" data-line-number="2086"></td>
        <td id="LC2086" class="blob-code js-file-line"><span class="c1">// The above copyright notice and this permission notice shall be included</span></td>
      </tr>
      <tr>
        <td id="L2087" class="blob-num js-line-number" data-line-number="2087"></td>
        <td id="LC2087" class="blob-code js-file-line"><span class="c1">// in all copies or substantial portions of the Software.</span></td>
      </tr>
      <tr>
        <td id="L2088" class="blob-num js-line-number" data-line-number="2088"></td>
        <td id="LC2088" class="blob-code js-file-line"><span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L2089" class="blob-num js-line-number" data-line-number="2089"></td>
        <td id="LC2089" class="blob-code js-file-line"><span class="c1">// THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS</span></td>
      </tr>
      <tr>
        <td id="L2090" class="blob-num js-line-number" data-line-number="2090"></td>
        <td id="LC2090" class="blob-code js-file-line"><span class="c1">// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF</span></td>
      </tr>
      <tr>
        <td id="L2091" class="blob-num js-line-number" data-line-number="2091"></td>
        <td id="LC2091" class="blob-code js-file-line"><span class="c1">// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN</span></td>
      </tr>
      <tr>
        <td id="L2092" class="blob-num js-line-number" data-line-number="2092"></td>
        <td id="LC2092" class="blob-code js-file-line"><span class="c1">// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,</span></td>
      </tr>
      <tr>
        <td id="L2093" class="blob-num js-line-number" data-line-number="2093"></td>
        <td id="LC2093" class="blob-code js-file-line"><span class="c1">// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR</span></td>
      </tr>
      <tr>
        <td id="L2094" class="blob-num js-line-number" data-line-number="2094"></td>
        <td id="LC2094" class="blob-code js-file-line"><span class="c1">// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE</span></td>
      </tr>
      <tr>
        <td id="L2095" class="blob-num js-line-number" data-line-number="2095"></td>
        <td id="LC2095" class="blob-code js-file-line"><span class="c1">// USE OR OTHER DEALINGS IN THE SOFTWARE.</span></td>
      </tr>
      <tr>
        <td id="L2096" class="blob-num js-line-number" data-line-number="2096"></td>
        <td id="LC2096" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2097" class="blob-num js-line-number" data-line-number="2097"></td>
        <td id="LC2097" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">formatRegExp</span> <span class="o">=</span> <span class="sr">/%[sdj%]/g</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2098" class="blob-num js-line-number" data-line-number="2098"></td>
        <td id="LC2098" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">format</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2099" class="blob-num js-line-number" data-line-number="2099"></td>
        <td id="LC2099" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">isString</span><span class="p">(</span><span class="nx">f</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2100" class="blob-num js-line-number" data-line-number="2100"></td>
        <td id="LC2100" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">objects</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L2101" class="blob-num js-line-number" data-line-number="2101"></td>
        <td id="LC2101" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2102" class="blob-num js-line-number" data-line-number="2102"></td>
        <td id="LC2102" class="blob-code js-file-line">      <span class="nx">objects</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">inspect</span><span class="p">(</span><span class="nx">arguments</span><span class="p">[</span><span class="nx">i</span><span class="p">]));</span></td>
      </tr>
      <tr>
        <td id="L2103" class="blob-num js-line-number" data-line-number="2103"></td>
        <td id="LC2103" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2104" class="blob-num js-line-number" data-line-number="2104"></td>
        <td id="LC2104" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">objects</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2105" class="blob-num js-line-number" data-line-number="2105"></td>
        <td id="LC2105" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2106" class="blob-num js-line-number" data-line-number="2106"></td>
        <td id="LC2106" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2107" class="blob-num js-line-number" data-line-number="2107"></td>
        <td id="LC2107" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2108" class="blob-num js-line-number" data-line-number="2108"></td>
        <td id="LC2108" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">args</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2109" class="blob-num js-line-number" data-line-number="2109"></td>
        <td id="LC2109" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">args</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2110" class="blob-num js-line-number" data-line-number="2110"></td>
        <td id="LC2110" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">str</span> <span class="o">=</span> <span class="nb">String</span><span class="p">(</span><span class="nx">f</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="nx">formatRegExp</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2111" class="blob-num js-line-number" data-line-number="2111"></td>
        <td id="LC2111" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">x</span> <span class="o">===</span> <span class="s1">&#39;%%&#39;</span><span class="p">)</span> <span class="k">return</span> <span class="s1">&#39;%&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2112" class="blob-num js-line-number" data-line-number="2112"></td>
        <td id="LC2112" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">&gt;=</span> <span class="nx">len</span><span class="p">)</span> <span class="k">return</span> <span class="nx">x</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2113" class="blob-num js-line-number" data-line-number="2113"></td>
        <td id="LC2113" class="blob-code js-file-line">    <span class="k">switch</span> <span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2114" class="blob-num js-line-number" data-line-number="2114"></td>
        <td id="LC2114" class="blob-code js-file-line">      <span class="k">case</span> <span class="s1">&#39;%s&#39;</span><span class="o">:</span> <span class="k">return</span> <span class="nb">String</span><span class="p">(</span><span class="nx">args</span><span class="p">[</span><span class="nx">i</span><span class="o">++</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L2115" class="blob-num js-line-number" data-line-number="2115"></td>
        <td id="LC2115" class="blob-code js-file-line">      <span class="k">case</span> <span class="s1">&#39;%d&#39;</span><span class="o">:</span> <span class="k">return</span> <span class="nb">Number</span><span class="p">(</span><span class="nx">args</span><span class="p">[</span><span class="nx">i</span><span class="o">++</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L2116" class="blob-num js-line-number" data-line-number="2116"></td>
        <td id="LC2116" class="blob-code js-file-line">      <span class="k">case</span> <span class="s1">&#39;%j&#39;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L2117" class="blob-num js-line-number" data-line-number="2117"></td>
        <td id="LC2117" class="blob-code js-file-line">        <span class="k">try</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2118" class="blob-num js-line-number" data-line-number="2118"></td>
        <td id="LC2118" class="blob-code js-file-line">          <span class="k">return</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">args</span><span class="p">[</span><span class="nx">i</span><span class="o">++</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L2119" class="blob-num js-line-number" data-line-number="2119"></td>
        <td id="LC2119" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">_</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2120" class="blob-num js-line-number" data-line-number="2120"></td>
        <td id="LC2120" class="blob-code js-file-line">          <span class="k">return</span> <span class="s1">&#39;[Circular]&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2121" class="blob-num js-line-number" data-line-number="2121"></td>
        <td id="LC2121" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2122" class="blob-num js-line-number" data-line-number="2122"></td>
        <td id="LC2122" class="blob-code js-file-line">      <span class="k">default</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L2123" class="blob-num js-line-number" data-line-number="2123"></td>
        <td id="LC2123" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">x</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2124" class="blob-num js-line-number" data-line-number="2124"></td>
        <td id="LC2124" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2125" class="blob-num js-line-number" data-line-number="2125"></td>
        <td id="LC2125" class="blob-code js-file-line">  <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L2126" class="blob-num js-line-number" data-line-number="2126"></td>
        <td id="LC2126" class="blob-code js-file-line">  <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">len</span><span class="p">;</span> <span class="nx">x</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="o">++</span><span class="nx">i</span><span class="p">])</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2127" class="blob-num js-line-number" data-line-number="2127"></td>
        <td id="LC2127" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">isNull</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="o">||</span> <span class="o">!</span><span class="nx">isObject</span><span class="p">(</span><span class="nx">x</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2128" class="blob-num js-line-number" data-line-number="2128"></td>
        <td id="LC2128" class="blob-code js-file-line">      <span class="nx">str</span> <span class="o">+=</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="nx">x</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2129" class="blob-num js-line-number" data-line-number="2129"></td>
        <td id="LC2129" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2130" class="blob-num js-line-number" data-line-number="2130"></td>
        <td id="LC2130" class="blob-code js-file-line">      <span class="nx">str</span> <span class="o">+=</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="nx">inspect</span><span class="p">(</span><span class="nx">x</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2131" class="blob-num js-line-number" data-line-number="2131"></td>
        <td id="LC2131" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2132" class="blob-num js-line-number" data-line-number="2132"></td>
        <td id="LC2132" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2133" class="blob-num js-line-number" data-line-number="2133"></td>
        <td id="LC2133" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">str</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2134" class="blob-num js-line-number" data-line-number="2134"></td>
        <td id="LC2134" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2135" class="blob-num js-line-number" data-line-number="2135"></td>
        <td id="LC2135" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2136" class="blob-num js-line-number" data-line-number="2136"></td>
        <td id="LC2136" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2137" class="blob-num js-line-number" data-line-number="2137"></td>
        <td id="LC2137" class="blob-code js-file-line"><span class="c1">// Mark that a method should not be used.</span></td>
      </tr>
      <tr>
        <td id="L2138" class="blob-num js-line-number" data-line-number="2138"></td>
        <td id="LC2138" class="blob-code js-file-line"><span class="c1">// Returns a modified function which warns once by default.</span></td>
      </tr>
      <tr>
        <td id="L2139" class="blob-num js-line-number" data-line-number="2139"></td>
        <td id="LC2139" class="blob-code js-file-line"><span class="c1">// If --no-deprecation is set, then it is a no-op.</span></td>
      </tr>
      <tr>
        <td id="L2140" class="blob-num js-line-number" data-line-number="2140"></td>
        <td id="LC2140" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">deprecate</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">fn</span><span class="p">,</span> <span class="nx">msg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2141" class="blob-num js-line-number" data-line-number="2141"></td>
        <td id="LC2141" class="blob-code js-file-line">  <span class="c1">// Allow for deprecating things in the process of starting up.</span></td>
      </tr>
      <tr>
        <td id="L2142" class="blob-num js-line-number" data-line-number="2142"></td>
        <td id="LC2142" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">global</span><span class="p">.</span><span class="nx">process</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2143" class="blob-num js-line-number" data-line-number="2143"></td>
        <td id="LC2143" class="blob-code js-file-line">    <span class="k">return</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2144" class="blob-num js-line-number" data-line-number="2144"></td>
        <td id="LC2144" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">exports</span><span class="p">.</span><span class="nx">deprecate</span><span class="p">(</span><span class="nx">fn</span><span class="p">,</span> <span class="nx">msg</span><span class="p">).</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2145" class="blob-num js-line-number" data-line-number="2145"></td>
        <td id="LC2145" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2146" class="blob-num js-line-number" data-line-number="2146"></td>
        <td id="LC2146" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2147" class="blob-num js-line-number" data-line-number="2147"></td>
        <td id="LC2147" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2148" class="blob-num js-line-number" data-line-number="2148"></td>
        <td id="LC2148" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">process</span><span class="p">.</span><span class="nx">noDeprecation</span> <span class="o">===</span> <span class="kc">true</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2149" class="blob-num js-line-number" data-line-number="2149"></td>
        <td id="LC2149" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">fn</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2150" class="blob-num js-line-number" data-line-number="2150"></td>
        <td id="LC2150" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2151" class="blob-num js-line-number" data-line-number="2151"></td>
        <td id="LC2151" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2152" class="blob-num js-line-number" data-line-number="2152"></td>
        <td id="LC2152" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">warned</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2153" class="blob-num js-line-number" data-line-number="2153"></td>
        <td id="LC2153" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">deprecated</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2154" class="blob-num js-line-number" data-line-number="2154"></td>
        <td id="LC2154" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">warned</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2155" class="blob-num js-line-number" data-line-number="2155"></td>
        <td id="LC2155" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">process</span><span class="p">.</span><span class="nx">throwDeprecation</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2156" class="blob-num js-line-number" data-line-number="2156"></td>
        <td id="LC2156" class="blob-code js-file-line">        <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="nx">msg</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2157" class="blob-num js-line-number" data-line-number="2157"></td>
        <td id="LC2157" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">process</span><span class="p">.</span><span class="nx">traceDeprecation</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2158" class="blob-num js-line-number" data-line-number="2158"></td>
        <td id="LC2158" class="blob-code js-file-line">        <span class="nx">console</span><span class="p">.</span><span class="nx">trace</span><span class="p">(</span><span class="nx">msg</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2159" class="blob-num js-line-number" data-line-number="2159"></td>
        <td id="LC2159" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2160" class="blob-num js-line-number" data-line-number="2160"></td>
        <td id="LC2160" class="blob-code js-file-line">        <span class="nx">console</span><span class="p">.</span><span class="nx">error</span><span class="p">(</span><span class="nx">msg</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2161" class="blob-num js-line-number" data-line-number="2161"></td>
        <td id="LC2161" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2162" class="blob-num js-line-number" data-line-number="2162"></td>
        <td id="LC2162" class="blob-code js-file-line">      <span class="nx">warned</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2163" class="blob-num js-line-number" data-line-number="2163"></td>
        <td id="LC2163" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2164" class="blob-num js-line-number" data-line-number="2164"></td>
        <td id="LC2164" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">fn</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2165" class="blob-num js-line-number" data-line-number="2165"></td>
        <td id="LC2165" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2166" class="blob-num js-line-number" data-line-number="2166"></td>
        <td id="LC2166" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2167" class="blob-num js-line-number" data-line-number="2167"></td>
        <td id="LC2167" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">deprecated</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2168" class="blob-num js-line-number" data-line-number="2168"></td>
        <td id="LC2168" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2169" class="blob-num js-line-number" data-line-number="2169"></td>
        <td id="LC2169" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2170" class="blob-num js-line-number" data-line-number="2170"></td>
        <td id="LC2170" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2171" class="blob-num js-line-number" data-line-number="2171"></td>
        <td id="LC2171" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">debugs</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L2172" class="blob-num js-line-number" data-line-number="2172"></td>
        <td id="LC2172" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">debugEnviron</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2173" class="blob-num js-line-number" data-line-number="2173"></td>
        <td id="LC2173" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">debuglog</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">set</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2174" class="blob-num js-line-number" data-line-number="2174"></td>
        <td id="LC2174" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">debugEnviron</span><span class="p">))</span></td>
      </tr>
      <tr>
        <td id="L2175" class="blob-num js-line-number" data-line-number="2175"></td>
        <td id="LC2175" class="blob-code js-file-line">    <span class="nx">debugEnviron</span> <span class="o">=</span> <span class="nx">process</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">NODE_DEBUG</span> <span class="o">||</span> <span class="s1">&#39;&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2176" class="blob-num js-line-number" data-line-number="2176"></td>
        <td id="LC2176" class="blob-code js-file-line">  <span class="nx">set</span> <span class="o">=</span> <span class="nx">set</span><span class="p">.</span><span class="nx">toUpperCase</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L2177" class="blob-num js-line-number" data-line-number="2177"></td>
        <td id="LC2177" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">debugs</span><span class="p">[</span><span class="nx">set</span><span class="p">])</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2178" class="blob-num js-line-number" data-line-number="2178"></td>
        <td id="LC2178" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span><span class="s1">&#39;\\b&#39;</span> <span class="o">+</span> <span class="nx">set</span> <span class="o">+</span> <span class="s1">&#39;\\b&#39;</span><span class="p">,</span> <span class="s1">&#39;i&#39;</span><span class="p">).</span><span class="nx">test</span><span class="p">(</span><span class="nx">debugEnviron</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2179" class="blob-num js-line-number" data-line-number="2179"></td>
        <td id="LC2179" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">pid</span> <span class="o">=</span> <span class="nx">process</span><span class="p">.</span><span class="nx">pid</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2180" class="blob-num js-line-number" data-line-number="2180"></td>
        <td id="LC2180" class="blob-code js-file-line">      <span class="nx">debugs</span><span class="p">[</span><span class="nx">set</span><span class="p">]</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2181" class="blob-num js-line-number" data-line-number="2181"></td>
        <td id="LC2181" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">msg</span> <span class="o">=</span> <span class="nx">exports</span><span class="p">.</span><span class="nx">format</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">exports</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2182" class="blob-num js-line-number" data-line-number="2182"></td>
        <td id="LC2182" class="blob-code js-file-line">        <span class="nx">console</span><span class="p">.</span><span class="nx">error</span><span class="p">(</span><span class="s1">&#39;%s %d: %s&#39;</span><span class="p">,</span> <span class="nx">set</span><span class="p">,</span> <span class="nx">pid</span><span class="p">,</span> <span class="nx">msg</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2183" class="blob-num js-line-number" data-line-number="2183"></td>
        <td id="LC2183" class="blob-code js-file-line">      <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2184" class="blob-num js-line-number" data-line-number="2184"></td>
        <td id="LC2184" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2185" class="blob-num js-line-number" data-line-number="2185"></td>
        <td id="LC2185" class="blob-code js-file-line">      <span class="nx">debugs</span><span class="p">[</span><span class="nx">set</span><span class="p">]</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L2186" class="blob-num js-line-number" data-line-number="2186"></td>
        <td id="LC2186" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2187" class="blob-num js-line-number" data-line-number="2187"></td>
        <td id="LC2187" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2188" class="blob-num js-line-number" data-line-number="2188"></td>
        <td id="LC2188" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">debugs</span><span class="p">[</span><span class="nx">set</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2189" class="blob-num js-line-number" data-line-number="2189"></td>
        <td id="LC2189" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2190" class="blob-num js-line-number" data-line-number="2190"></td>
        <td id="LC2190" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2191" class="blob-num js-line-number" data-line-number="2191"></td>
        <td id="LC2191" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2192" class="blob-num js-line-number" data-line-number="2192"></td>
        <td id="LC2192" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2193" class="blob-num js-line-number" data-line-number="2193"></td>
        <td id="LC2193" class="blob-code js-file-line"><span class="cm"> * Echos the value of a value. Trys to print the value out</span></td>
      </tr>
      <tr>
        <td id="L2194" class="blob-num js-line-number" data-line-number="2194"></td>
        <td id="LC2194" class="blob-code js-file-line"><span class="cm"> * in the best way possible given the different types.</span></td>
      </tr>
      <tr>
        <td id="L2195" class="blob-num js-line-number" data-line-number="2195"></td>
        <td id="LC2195" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L2196" class="blob-num js-line-number" data-line-number="2196"></td>
        <td id="LC2196" class="blob-code js-file-line"><span class="cm"> * @param {Object} obj The object to print out.</span></td>
      </tr>
      <tr>
        <td id="L2197" class="blob-num js-line-number" data-line-number="2197"></td>
        <td id="LC2197" class="blob-code js-file-line"><span class="cm"> * @param {Object} opts Optional options object that alters the output.</span></td>
      </tr>
      <tr>
        <td id="L2198" class="blob-num js-line-number" data-line-number="2198"></td>
        <td id="LC2198" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2199" class="blob-num js-line-number" data-line-number="2199"></td>
        <td id="LC2199" class="blob-code js-file-line"><span class="cm">/* legacy: obj, showHidden, depth, colors*/</span></td>
      </tr>
      <tr>
        <td id="L2200" class="blob-num js-line-number" data-line-number="2200"></td>
        <td id="LC2200" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">inspect</span><span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">opts</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2201" class="blob-num js-line-number" data-line-number="2201"></td>
        <td id="LC2201" class="blob-code js-file-line">  <span class="c1">// default options</span></td>
      </tr>
      <tr>
        <td id="L2202" class="blob-num js-line-number" data-line-number="2202"></td>
        <td id="LC2202" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">ctx</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2203" class="blob-num js-line-number" data-line-number="2203"></td>
        <td id="LC2203" class="blob-code js-file-line">    <span class="nx">seen</span><span class="o">:</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L2204" class="blob-num js-line-number" data-line-number="2204"></td>
        <td id="LC2204" class="blob-code js-file-line">    <span class="nx">stylize</span><span class="o">:</span> <span class="nx">stylizeNoColor</span></td>
      </tr>
      <tr>
        <td id="L2205" class="blob-num js-line-number" data-line-number="2205"></td>
        <td id="LC2205" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2206" class="blob-num js-line-number" data-line-number="2206"></td>
        <td id="LC2206" class="blob-code js-file-line">  <span class="c1">// legacy...</span></td>
      </tr>
      <tr>
        <td id="L2207" class="blob-num js-line-number" data-line-number="2207"></td>
        <td id="LC2207" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;=</span> <span class="mi">3</span><span class="p">)</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">depth</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2208" class="blob-num js-line-number" data-line-number="2208"></td>
        <td id="LC2208" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;=</span> <span class="mi">4</span><span class="p">)</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">colors</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">[</span><span class="mi">3</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2209" class="blob-num js-line-number" data-line-number="2209"></td>
        <td id="LC2209" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isBoolean</span><span class="p">(</span><span class="nx">opts</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2210" class="blob-num js-line-number" data-line-number="2210"></td>
        <td id="LC2210" class="blob-code js-file-line">    <span class="c1">// legacy...</span></td>
      </tr>
      <tr>
        <td id="L2211" class="blob-num js-line-number" data-line-number="2211"></td>
        <td id="LC2211" class="blob-code js-file-line">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">showHidden</span> <span class="o">=</span> <span class="nx">opts</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2212" class="blob-num js-line-number" data-line-number="2212"></td>
        <td id="LC2212" class="blob-code js-file-line">  <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">opts</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2213" class="blob-num js-line-number" data-line-number="2213"></td>
        <td id="LC2213" class="blob-code js-file-line">    <span class="c1">// got an &quot;options&quot; object</span></td>
      </tr>
      <tr>
        <td id="L2214" class="blob-num js-line-number" data-line-number="2214"></td>
        <td id="LC2214" class="blob-code js-file-line">    <span class="nx">exports</span><span class="p">.</span><span class="nx">_extend</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">opts</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2215" class="blob-num js-line-number" data-line-number="2215"></td>
        <td id="LC2215" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2216" class="blob-num js-line-number" data-line-number="2216"></td>
        <td id="LC2216" class="blob-code js-file-line">  <span class="c1">// set default options</span></td>
      </tr>
      <tr>
        <td id="L2217" class="blob-num js-line-number" data-line-number="2217"></td>
        <td id="LC2217" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">ctx</span><span class="p">.</span><span class="nx">showHidden</span><span class="p">))</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">showHidden</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2218" class="blob-num js-line-number" data-line-number="2218"></td>
        <td id="LC2218" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">ctx</span><span class="p">.</span><span class="nx">depth</span><span class="p">))</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">depth</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2219" class="blob-num js-line-number" data-line-number="2219"></td>
        <td id="LC2219" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">ctx</span><span class="p">.</span><span class="nx">colors</span><span class="p">))</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">colors</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2220" class="blob-num js-line-number" data-line-number="2220"></td>
        <td id="LC2220" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">ctx</span><span class="p">.</span><span class="nx">customInspect</span><span class="p">))</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">customInspect</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2221" class="blob-num js-line-number" data-line-number="2221"></td>
        <td id="LC2221" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">ctx</span><span class="p">.</span><span class="nx">colors</span><span class="p">)</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span> <span class="o">=</span> <span class="nx">stylizeWithColor</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2222" class="blob-num js-line-number" data-line-number="2222"></td>
        <td id="LC2222" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">formatValue</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">obj</span><span class="p">,</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">depth</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2223" class="blob-num js-line-number" data-line-number="2223"></td>
        <td id="LC2223" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2224" class="blob-num js-line-number" data-line-number="2224"></td>
        <td id="LC2224" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">inspect</span> <span class="o">=</span> <span class="nx">inspect</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2225" class="blob-num js-line-number" data-line-number="2225"></td>
        <td id="LC2225" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2226" class="blob-num js-line-number" data-line-number="2226"></td>
        <td id="LC2226" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2227" class="blob-num js-line-number" data-line-number="2227"></td>
        <td id="LC2227" class="blob-code js-file-line"><span class="c1">// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics</span></td>
      </tr>
      <tr>
        <td id="L2228" class="blob-num js-line-number" data-line-number="2228"></td>
        <td id="LC2228" class="blob-code js-file-line"><span class="nx">inspect</span><span class="p">.</span><span class="nx">colors</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2229" class="blob-num js-line-number" data-line-number="2229"></td>
        <td id="LC2229" class="blob-code js-file-line">  <span class="s1">&#39;bold&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">22</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2230" class="blob-num js-line-number" data-line-number="2230"></td>
        <td id="LC2230" class="blob-code js-file-line">  <span class="s1">&#39;italic&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">23</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2231" class="blob-num js-line-number" data-line-number="2231"></td>
        <td id="LC2231" class="blob-code js-file-line">  <span class="s1">&#39;underline&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">24</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2232" class="blob-num js-line-number" data-line-number="2232"></td>
        <td id="LC2232" class="blob-code js-file-line">  <span class="s1">&#39;inverse&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">7</span><span class="p">,</span> <span class="mi">27</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2233" class="blob-num js-line-number" data-line-number="2233"></td>
        <td id="LC2233" class="blob-code js-file-line">  <span class="s1">&#39;white&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">37</span><span class="p">,</span> <span class="mi">39</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2234" class="blob-num js-line-number" data-line-number="2234"></td>
        <td id="LC2234" class="blob-code js-file-line">  <span class="s1">&#39;grey&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">90</span><span class="p">,</span> <span class="mi">39</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2235" class="blob-num js-line-number" data-line-number="2235"></td>
        <td id="LC2235" class="blob-code js-file-line">  <span class="s1">&#39;black&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">30</span><span class="p">,</span> <span class="mi">39</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2236" class="blob-num js-line-number" data-line-number="2236"></td>
        <td id="LC2236" class="blob-code js-file-line">  <span class="s1">&#39;blue&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">34</span><span class="p">,</span> <span class="mi">39</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2237" class="blob-num js-line-number" data-line-number="2237"></td>
        <td id="LC2237" class="blob-code js-file-line">  <span class="s1">&#39;cyan&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">36</span><span class="p">,</span> <span class="mi">39</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2238" class="blob-num js-line-number" data-line-number="2238"></td>
        <td id="LC2238" class="blob-code js-file-line">  <span class="s1">&#39;green&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">32</span><span class="p">,</span> <span class="mi">39</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2239" class="blob-num js-line-number" data-line-number="2239"></td>
        <td id="LC2239" class="blob-code js-file-line">  <span class="s1">&#39;magenta&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">35</span><span class="p">,</span> <span class="mi">39</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2240" class="blob-num js-line-number" data-line-number="2240"></td>
        <td id="LC2240" class="blob-code js-file-line">  <span class="s1">&#39;red&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">31</span><span class="p">,</span> <span class="mi">39</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L2241" class="blob-num js-line-number" data-line-number="2241"></td>
        <td id="LC2241" class="blob-code js-file-line">  <span class="s1">&#39;yellow&#39;</span> <span class="o">:</span> <span class="p">[</span><span class="mi">33</span><span class="p">,</span> <span class="mi">39</span><span class="p">]</span></td>
      </tr>
      <tr>
        <td id="L2242" class="blob-num js-line-number" data-line-number="2242"></td>
        <td id="LC2242" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2243" class="blob-num js-line-number" data-line-number="2243"></td>
        <td id="LC2243" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2244" class="blob-num js-line-number" data-line-number="2244"></td>
        <td id="LC2244" class="blob-code js-file-line"><span class="c1">// Don&#39;t use &#39;blue&#39; not visible on cmd.exe</span></td>
      </tr>
      <tr>
        <td id="L2245" class="blob-num js-line-number" data-line-number="2245"></td>
        <td id="LC2245" class="blob-code js-file-line"><span class="nx">inspect</span><span class="p">.</span><span class="nx">styles</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2246" class="blob-num js-line-number" data-line-number="2246"></td>
        <td id="LC2246" class="blob-code js-file-line">  <span class="s1">&#39;special&#39;</span><span class="o">:</span> <span class="s1">&#39;cyan&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2247" class="blob-num js-line-number" data-line-number="2247"></td>
        <td id="LC2247" class="blob-code js-file-line">  <span class="s1">&#39;number&#39;</span><span class="o">:</span> <span class="s1">&#39;yellow&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2248" class="blob-num js-line-number" data-line-number="2248"></td>
        <td id="LC2248" class="blob-code js-file-line">  <span class="s1">&#39;boolean&#39;</span><span class="o">:</span> <span class="s1">&#39;yellow&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2249" class="blob-num js-line-number" data-line-number="2249"></td>
        <td id="LC2249" class="blob-code js-file-line">  <span class="s1">&#39;undefined&#39;</span><span class="o">:</span> <span class="s1">&#39;grey&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2250" class="blob-num js-line-number" data-line-number="2250"></td>
        <td id="LC2250" class="blob-code js-file-line">  <span class="s1">&#39;null&#39;</span><span class="o">:</span> <span class="s1">&#39;bold&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2251" class="blob-num js-line-number" data-line-number="2251"></td>
        <td id="LC2251" class="blob-code js-file-line">  <span class="s1">&#39;string&#39;</span><span class="o">:</span> <span class="s1">&#39;green&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2252" class="blob-num js-line-number" data-line-number="2252"></td>
        <td id="LC2252" class="blob-code js-file-line">  <span class="s1">&#39;date&#39;</span><span class="o">:</span> <span class="s1">&#39;magenta&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2253" class="blob-num js-line-number" data-line-number="2253"></td>
        <td id="LC2253" class="blob-code js-file-line">  <span class="c1">// &quot;name&quot;: intentionally not styling</span></td>
      </tr>
      <tr>
        <td id="L2254" class="blob-num js-line-number" data-line-number="2254"></td>
        <td id="LC2254" class="blob-code js-file-line">  <span class="s1">&#39;regexp&#39;</span><span class="o">:</span> <span class="s1">&#39;red&#39;</span></td>
      </tr>
      <tr>
        <td id="L2255" class="blob-num js-line-number" data-line-number="2255"></td>
        <td id="LC2255" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2256" class="blob-num js-line-number" data-line-number="2256"></td>
        <td id="LC2256" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2257" class="blob-num js-line-number" data-line-number="2257"></td>
        <td id="LC2257" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2258" class="blob-num js-line-number" data-line-number="2258"></td>
        <td id="LC2258" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">stylizeWithColor</span><span class="p">(</span><span class="nx">str</span><span class="p">,</span> <span class="nx">styleType</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2259" class="blob-num js-line-number" data-line-number="2259"></td>
        <td id="LC2259" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">style</span> <span class="o">=</span> <span class="nx">inspect</span><span class="p">.</span><span class="nx">styles</span><span class="p">[</span><span class="nx">styleType</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2260" class="blob-num js-line-number" data-line-number="2260"></td>
        <td id="LC2260" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2261" class="blob-num js-line-number" data-line-number="2261"></td>
        <td id="LC2261" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">style</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2262" class="blob-num js-line-number" data-line-number="2262"></td>
        <td id="LC2262" class="blob-code js-file-line">    <span class="k">return</span> <span class="s1">&#39;\u001b[&#39;</span> <span class="o">+</span> <span class="nx">inspect</span><span class="p">.</span><span class="nx">colors</span><span class="p">[</span><span class="nx">style</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;m&#39;</span> <span class="o">+</span> <span class="nx">str</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L2263" class="blob-num js-line-number" data-line-number="2263"></td>
        <td id="LC2263" class="blob-code js-file-line">           <span class="s1">&#39;\u001b[&#39;</span> <span class="o">+</span> <span class="nx">inspect</span><span class="p">.</span><span class="nx">colors</span><span class="p">[</span><span class="nx">style</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39;m&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2264" class="blob-num js-line-number" data-line-number="2264"></td>
        <td id="LC2264" class="blob-code js-file-line">  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2265" class="blob-num js-line-number" data-line-number="2265"></td>
        <td id="LC2265" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">str</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2266" class="blob-num js-line-number" data-line-number="2266"></td>
        <td id="LC2266" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2267" class="blob-num js-line-number" data-line-number="2267"></td>
        <td id="LC2267" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2268" class="blob-num js-line-number" data-line-number="2268"></td>
        <td id="LC2268" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2269" class="blob-num js-line-number" data-line-number="2269"></td>
        <td id="LC2269" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2270" class="blob-num js-line-number" data-line-number="2270"></td>
        <td id="LC2270" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">stylizeNoColor</span><span class="p">(</span><span class="nx">str</span><span class="p">,</span> <span class="nx">styleType</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2271" class="blob-num js-line-number" data-line-number="2271"></td>
        <td id="LC2271" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">str</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2272" class="blob-num js-line-number" data-line-number="2272"></td>
        <td id="LC2272" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2273" class="blob-num js-line-number" data-line-number="2273"></td>
        <td id="LC2273" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2274" class="blob-num js-line-number" data-line-number="2274"></td>
        <td id="LC2274" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2275" class="blob-num js-line-number" data-line-number="2275"></td>
        <td id="LC2275" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">arrayToHash</span><span class="p">(</span><span class="nx">array</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2276" class="blob-num js-line-number" data-line-number="2276"></td>
        <td id="LC2276" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">hash</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L2277" class="blob-num js-line-number" data-line-number="2277"></td>
        <td id="LC2277" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2278" class="blob-num js-line-number" data-line-number="2278"></td>
        <td id="LC2278" class="blob-code js-file-line">  <span class="nx">array</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">val</span><span class="p">,</span> <span class="nx">idx</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2279" class="blob-num js-line-number" data-line-number="2279"></td>
        <td id="LC2279" class="blob-code js-file-line">    <span class="nx">hash</span><span class="p">[</span><span class="nx">val</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2280" class="blob-num js-line-number" data-line-number="2280"></td>
        <td id="LC2280" class="blob-code js-file-line">  <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L2281" class="blob-num js-line-number" data-line-number="2281"></td>
        <td id="LC2281" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2282" class="blob-num js-line-number" data-line-number="2282"></td>
        <td id="LC2282" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">hash</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2283" class="blob-num js-line-number" data-line-number="2283"></td>
        <td id="LC2283" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2284" class="blob-num js-line-number" data-line-number="2284"></td>
        <td id="LC2284" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2285" class="blob-num js-line-number" data-line-number="2285"></td>
        <td id="LC2285" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2286" class="blob-num js-line-number" data-line-number="2286"></td>
        <td id="LC2286" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">formatValue</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">recurseTimes</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2287" class="blob-num js-line-number" data-line-number="2287"></td>
        <td id="LC2287" class="blob-code js-file-line">  <span class="c1">// Provide a hook for user-specified inspect functions.</span></td>
      </tr>
      <tr>
        <td id="L2288" class="blob-num js-line-number" data-line-number="2288"></td>
        <td id="LC2288" class="blob-code js-file-line">  <span class="c1">// Check that value is an object with an inspect function on it</span></td>
      </tr>
      <tr>
        <td id="L2289" class="blob-num js-line-number" data-line-number="2289"></td>
        <td id="LC2289" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">ctx</span><span class="p">.</span><span class="nx">customInspect</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L2290" class="blob-num js-line-number" data-line-number="2290"></td>
        <td id="LC2290" class="blob-code js-file-line">      <span class="nx">value</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L2291" class="blob-num js-line-number" data-line-number="2291"></td>
        <td id="LC2291" class="blob-code js-file-line">      <span class="nx">isFunction</span><span class="p">(</span><span class="nx">value</span><span class="p">.</span><span class="nx">inspect</span><span class="p">)</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L2292" class="blob-num js-line-number" data-line-number="2292"></td>
        <td id="LC2292" class="blob-code js-file-line">      <span class="c1">// Filter out the util module, it&#39;s inspect function is special</span></td>
      </tr>
      <tr>
        <td id="L2293" class="blob-num js-line-number" data-line-number="2293"></td>
        <td id="LC2293" class="blob-code js-file-line">      <span class="nx">value</span><span class="p">.</span><span class="nx">inspect</span> <span class="o">!==</span> <span class="nx">exports</span><span class="p">.</span><span class="nx">inspect</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L2294" class="blob-num js-line-number" data-line-number="2294"></td>
        <td id="LC2294" class="blob-code js-file-line">      <span class="c1">// Also filter out any prototype objects using the circular check.</span></td>
      </tr>
      <tr>
        <td id="L2295" class="blob-num js-line-number" data-line-number="2295"></td>
        <td id="LC2295" class="blob-code js-file-line">      <span class="o">!</span><span class="p">(</span><span class="nx">value</span><span class="p">.</span><span class="nx">constructor</span> <span class="o">&amp;&amp;</span> <span class="nx">value</span><span class="p">.</span><span class="nx">constructor</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">===</span> <span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2296" class="blob-num js-line-number" data-line-number="2296"></td>
        <td id="LC2296" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">ret</span> <span class="o">=</span> <span class="nx">value</span><span class="p">.</span><span class="nx">inspect</span><span class="p">(</span><span class="nx">recurseTimes</span><span class="p">,</span> <span class="nx">ctx</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2297" class="blob-num js-line-number" data-line-number="2297"></td>
        <td id="LC2297" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">isString</span><span class="p">(</span><span class="nx">ret</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2298" class="blob-num js-line-number" data-line-number="2298"></td>
        <td id="LC2298" class="blob-code js-file-line">      <span class="nx">ret</span> <span class="o">=</span> <span class="nx">formatValue</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">ret</span><span class="p">,</span> <span class="nx">recurseTimes</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2299" class="blob-num js-line-number" data-line-number="2299"></td>
        <td id="LC2299" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2300" class="blob-num js-line-number" data-line-number="2300"></td>
        <td id="LC2300" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">ret</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2301" class="blob-num js-line-number" data-line-number="2301"></td>
        <td id="LC2301" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2302" class="blob-num js-line-number" data-line-number="2302"></td>
        <td id="LC2302" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2303" class="blob-num js-line-number" data-line-number="2303"></td>
        <td id="LC2303" class="blob-code js-file-line">  <span class="c1">// Primitive types cannot have properties</span></td>
      </tr>
      <tr>
        <td id="L2304" class="blob-num js-line-number" data-line-number="2304"></td>
        <td id="LC2304" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">primitive</span> <span class="o">=</span> <span class="nx">formatPrimitive</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">value</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2305" class="blob-num js-line-number" data-line-number="2305"></td>
        <td id="LC2305" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">primitive</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2306" class="blob-num js-line-number" data-line-number="2306"></td>
        <td id="LC2306" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">primitive</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2307" class="blob-num js-line-number" data-line-number="2307"></td>
        <td id="LC2307" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2308" class="blob-num js-line-number" data-line-number="2308"></td>
        <td id="LC2308" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2309" class="blob-num js-line-number" data-line-number="2309"></td>
        <td id="LC2309" class="blob-code js-file-line">  <span class="c1">// Look up the keys of the object.</span></td>
      </tr>
      <tr>
        <td id="L2310" class="blob-num js-line-number" data-line-number="2310"></td>
        <td id="LC2310" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">keys</span> <span class="o">=</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">keys</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2311" class="blob-num js-line-number" data-line-number="2311"></td>
        <td id="LC2311" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">visibleKeys</span> <span class="o">=</span> <span class="nx">arrayToHash</span><span class="p">(</span><span class="nx">keys</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2312" class="blob-num js-line-number" data-line-number="2312"></td>
        <td id="LC2312" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2313" class="blob-num js-line-number" data-line-number="2313"></td>
        <td id="LC2313" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">ctx</span><span class="p">.</span><span class="nx">showHidden</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2314" class="blob-num js-line-number" data-line-number="2314"></td>
        <td id="LC2314" class="blob-code js-file-line">    <span class="nx">keys</span> <span class="o">=</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">getOwnPropertyNames</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2315" class="blob-num js-line-number" data-line-number="2315"></td>
        <td id="LC2315" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2316" class="blob-num js-line-number" data-line-number="2316"></td>
        <td id="LC2316" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2317" class="blob-num js-line-number" data-line-number="2317"></td>
        <td id="LC2317" class="blob-code js-file-line">  <span class="c1">// IE doesn&#39;t make error fields non-enumerable</span></td>
      </tr>
      <tr>
        <td id="L2318" class="blob-num js-line-number" data-line-number="2318"></td>
        <td id="LC2318" class="blob-code js-file-line">  <span class="c1">// http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx</span></td>
      </tr>
      <tr>
        <td id="L2319" class="blob-num js-line-number" data-line-number="2319"></td>
        <td id="LC2319" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isError</span><span class="p">(</span><span class="nx">value</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L2320" class="blob-num js-line-number" data-line-number="2320"></td>
        <td id="LC2320" class="blob-code js-file-line">      <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">keys</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;message&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span> <span class="o">||</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;description&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2321" class="blob-num js-line-number" data-line-number="2321"></td>
        <td id="LC2321" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">formatError</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2322" class="blob-num js-line-number" data-line-number="2322"></td>
        <td id="LC2322" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2323" class="blob-num js-line-number" data-line-number="2323"></td>
        <td id="LC2323" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2324" class="blob-num js-line-number" data-line-number="2324"></td>
        <td id="LC2324" class="blob-code js-file-line">  <span class="c1">// Some type of object without properties can be shortcutted.</span></td>
      </tr>
      <tr>
        <td id="L2325" class="blob-num js-line-number" data-line-number="2325"></td>
        <td id="LC2325" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">keys</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2326" class="blob-num js-line-number" data-line-number="2326"></td>
        <td id="LC2326" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">isFunction</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2327" class="blob-num js-line-number" data-line-number="2327"></td>
        <td id="LC2327" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">name</span> <span class="o">=</span> <span class="nx">value</span><span class="p">.</span><span class="nx">name</span> <span class="o">?</span> <span class="s1">&#39;: &#39;</span> <span class="o">+</span> <span class="nx">value</span><span class="p">.</span><span class="nx">name</span> <span class="o">:</span> <span class="s1">&#39;&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2328" class="blob-num js-line-number" data-line-number="2328"></td>
        <td id="LC2328" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="s1">&#39;[Function&#39;</span> <span class="o">+</span> <span class="nx">name</span> <span class="o">+</span> <span class="s1">&#39;]&#39;</span><span class="p">,</span> <span class="s1">&#39;special&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2329" class="blob-num js-line-number" data-line-number="2329"></td>
        <td id="LC2329" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2330" class="blob-num js-line-number" data-line-number="2330"></td>
        <td id="LC2330" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">isRegExp</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2331" class="blob-num js-line-number" data-line-number="2331"></td>
        <td id="LC2331" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="nb">RegExp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">value</span><span class="p">),</span> <span class="s1">&#39;regexp&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2332" class="blob-num js-line-number" data-line-number="2332"></td>
        <td id="LC2332" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2333" class="blob-num js-line-number" data-line-number="2333"></td>
        <td id="LC2333" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">isDate</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2334" class="blob-num js-line-number" data-line-number="2334"></td>
        <td id="LC2334" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="nb">Date</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">value</span><span class="p">),</span> <span class="s1">&#39;date&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2335" class="blob-num js-line-number" data-line-number="2335"></td>
        <td id="LC2335" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2336" class="blob-num js-line-number" data-line-number="2336"></td>
        <td id="LC2336" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">isError</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2337" class="blob-num js-line-number" data-line-number="2337"></td>
        <td id="LC2337" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">formatError</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2338" class="blob-num js-line-number" data-line-number="2338"></td>
        <td id="LC2338" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2339" class="blob-num js-line-number" data-line-number="2339"></td>
        <td id="LC2339" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2340" class="blob-num js-line-number" data-line-number="2340"></td>
        <td id="LC2340" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2341" class="blob-num js-line-number" data-line-number="2341"></td>
        <td id="LC2341" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">base</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="nx">array</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span> <span class="nx">braces</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;{&#39;</span><span class="p">,</span> <span class="s1">&#39;}&#39;</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2342" class="blob-num js-line-number" data-line-number="2342"></td>
        <td id="LC2342" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2343" class="blob-num js-line-number" data-line-number="2343"></td>
        <td id="LC2343" class="blob-code js-file-line">  <span class="c1">// Make Array say that they are Array</span></td>
      </tr>
      <tr>
        <td id="L2344" class="blob-num js-line-number" data-line-number="2344"></td>
        <td id="LC2344" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isArray</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2345" class="blob-num js-line-number" data-line-number="2345"></td>
        <td id="LC2345" class="blob-code js-file-line">    <span class="nx">array</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2346" class="blob-num js-line-number" data-line-number="2346"></td>
        <td id="LC2346" class="blob-code js-file-line">    <span class="nx">braces</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;[&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2347" class="blob-num js-line-number" data-line-number="2347"></td>
        <td id="LC2347" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2348" class="blob-num js-line-number" data-line-number="2348"></td>
        <td id="LC2348" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2349" class="blob-num js-line-number" data-line-number="2349"></td>
        <td id="LC2349" class="blob-code js-file-line">  <span class="c1">// Make functions say that they are functions</span></td>
      </tr>
      <tr>
        <td id="L2350" class="blob-num js-line-number" data-line-number="2350"></td>
        <td id="LC2350" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isFunction</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2351" class="blob-num js-line-number" data-line-number="2351"></td>
        <td id="LC2351" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">n</span> <span class="o">=</span> <span class="nx">value</span><span class="p">.</span><span class="nx">name</span> <span class="o">?</span> <span class="s1">&#39;: &#39;</span> <span class="o">+</span> <span class="nx">value</span><span class="p">.</span><span class="nx">name</span> <span class="o">:</span> <span class="s1">&#39;&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2352" class="blob-num js-line-number" data-line-number="2352"></td>
        <td id="LC2352" class="blob-code js-file-line">    <span class="nx">base</span> <span class="o">=</span> <span class="s1">&#39; [Function&#39;</span> <span class="o">+</span> <span class="nx">n</span> <span class="o">+</span> <span class="s1">&#39;]&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2353" class="blob-num js-line-number" data-line-number="2353"></td>
        <td id="LC2353" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2354" class="blob-num js-line-number" data-line-number="2354"></td>
        <td id="LC2354" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2355" class="blob-num js-line-number" data-line-number="2355"></td>
        <td id="LC2355" class="blob-code js-file-line">  <span class="c1">// Make RegExps say that they are RegExps</span></td>
      </tr>
      <tr>
        <td id="L2356" class="blob-num js-line-number" data-line-number="2356"></td>
        <td id="LC2356" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isRegExp</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2357" class="blob-num js-line-number" data-line-number="2357"></td>
        <td id="LC2357" class="blob-code js-file-line">    <span class="nx">base</span> <span class="o">=</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="nb">RegExp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2358" class="blob-num js-line-number" data-line-number="2358"></td>
        <td id="LC2358" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2359" class="blob-num js-line-number" data-line-number="2359"></td>
        <td id="LC2359" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2360" class="blob-num js-line-number" data-line-number="2360"></td>
        <td id="LC2360" class="blob-code js-file-line">  <span class="c1">// Make dates with properties first say the date</span></td>
      </tr>
      <tr>
        <td id="L2361" class="blob-num js-line-number" data-line-number="2361"></td>
        <td id="LC2361" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isDate</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2362" class="blob-num js-line-number" data-line-number="2362"></td>
        <td id="LC2362" class="blob-code js-file-line">    <span class="nx">base</span> <span class="o">=</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="nb">Date</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toUTCString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2363" class="blob-num js-line-number" data-line-number="2363"></td>
        <td id="LC2363" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2364" class="blob-num js-line-number" data-line-number="2364"></td>
        <td id="LC2364" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2365" class="blob-num js-line-number" data-line-number="2365"></td>
        <td id="LC2365" class="blob-code js-file-line">  <span class="c1">// Make error with message first say the error</span></td>
      </tr>
      <tr>
        <td id="L2366" class="blob-num js-line-number" data-line-number="2366"></td>
        <td id="LC2366" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isError</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2367" class="blob-num js-line-number" data-line-number="2367"></td>
        <td id="LC2367" class="blob-code js-file-line">    <span class="nx">base</span> <span class="o">=</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="nx">formatError</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2368" class="blob-num js-line-number" data-line-number="2368"></td>
        <td id="LC2368" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2369" class="blob-num js-line-number" data-line-number="2369"></td>
        <td id="LC2369" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2370" class="blob-num js-line-number" data-line-number="2370"></td>
        <td id="LC2370" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">keys</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="o">!</span><span class="nx">array</span> <span class="o">||</span> <span class="nx">value</span><span class="p">.</span><span class="nx">length</span> <span class="o">==</span> <span class="mi">0</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2371" class="blob-num js-line-number" data-line-number="2371"></td>
        <td id="LC2371" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">braces</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="nx">base</span> <span class="o">+</span> <span class="nx">braces</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2372" class="blob-num js-line-number" data-line-number="2372"></td>
        <td id="LC2372" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2373" class="blob-num js-line-number" data-line-number="2373"></td>
        <td id="LC2373" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2374" class="blob-num js-line-number" data-line-number="2374"></td>
        <td id="LC2374" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">recurseTimes</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2375" class="blob-num js-line-number" data-line-number="2375"></td>
        <td id="LC2375" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">isRegExp</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2376" class="blob-num js-line-number" data-line-number="2376"></td>
        <td id="LC2376" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="nb">RegExp</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">value</span><span class="p">),</span> <span class="s1">&#39;regexp&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2377" class="blob-num js-line-number" data-line-number="2377"></td>
        <td id="LC2377" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2378" class="blob-num js-line-number" data-line-number="2378"></td>
        <td id="LC2378" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="s1">&#39;[Object]&#39;</span><span class="p">,</span> <span class="s1">&#39;special&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2379" class="blob-num js-line-number" data-line-number="2379"></td>
        <td id="LC2379" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2380" class="blob-num js-line-number" data-line-number="2380"></td>
        <td id="LC2380" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2381" class="blob-num js-line-number" data-line-number="2381"></td>
        <td id="LC2381" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2382" class="blob-num js-line-number" data-line-number="2382"></td>
        <td id="LC2382" class="blob-code js-file-line">  <span class="nx">ctx</span><span class="p">.</span><span class="nx">seen</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2383" class="blob-num js-line-number" data-line-number="2383"></td>
        <td id="LC2383" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2384" class="blob-num js-line-number" data-line-number="2384"></td>
        <td id="LC2384" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">output</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2385" class="blob-num js-line-number" data-line-number="2385"></td>
        <td id="LC2385" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">array</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2386" class="blob-num js-line-number" data-line-number="2386"></td>
        <td id="LC2386" class="blob-code js-file-line">    <span class="nx">output</span> <span class="o">=</span> <span class="nx">formatArray</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">recurseTimes</span><span class="p">,</span> <span class="nx">visibleKeys</span><span class="p">,</span> <span class="nx">keys</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2387" class="blob-num js-line-number" data-line-number="2387"></td>
        <td id="LC2387" class="blob-code js-file-line">  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2388" class="blob-num js-line-number" data-line-number="2388"></td>
        <td id="LC2388" class="blob-code js-file-line">    <span class="nx">output</span> <span class="o">=</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">map</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2389" class="blob-num js-line-number" data-line-number="2389"></td>
        <td id="LC2389" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">formatProperty</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">recurseTimes</span><span class="p">,</span> <span class="nx">visibleKeys</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="nx">array</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2390" class="blob-num js-line-number" data-line-number="2390"></td>
        <td id="LC2390" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L2391" class="blob-num js-line-number" data-line-number="2391"></td>
        <td id="LC2391" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2392" class="blob-num js-line-number" data-line-number="2392"></td>
        <td id="LC2392" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2393" class="blob-num js-line-number" data-line-number="2393"></td>
        <td id="LC2393" class="blob-code js-file-line">  <span class="nx">ctx</span><span class="p">.</span><span class="nx">seen</span><span class="p">.</span><span class="nx">pop</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L2394" class="blob-num js-line-number" data-line-number="2394"></td>
        <td id="LC2394" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2395" class="blob-num js-line-number" data-line-number="2395"></td>
        <td id="LC2395" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">reduceToSingleString</span><span class="p">(</span><span class="nx">output</span><span class="p">,</span> <span class="nx">base</span><span class="p">,</span> <span class="nx">braces</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2396" class="blob-num js-line-number" data-line-number="2396"></td>
        <td id="LC2396" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2397" class="blob-num js-line-number" data-line-number="2397"></td>
        <td id="LC2397" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2398" class="blob-num js-line-number" data-line-number="2398"></td>
        <td id="LC2398" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2399" class="blob-num js-line-number" data-line-number="2399"></td>
        <td id="LC2399" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">formatPrimitive</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2400" class="blob-num js-line-number" data-line-number="2400"></td>
        <td id="LC2400" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span></td>
      </tr>
      <tr>
        <td id="L2401" class="blob-num js-line-number" data-line-number="2401"></td>
        <td id="LC2401" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="s1">&#39;undefined&#39;</span><span class="p">,</span> <span class="s1">&#39;undefined&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2402" class="blob-num js-line-number" data-line-number="2402"></td>
        <td id="LC2402" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isString</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2403" class="blob-num js-line-number" data-line-number="2403"></td>
        <td id="LC2403" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">simple</span> <span class="o">=</span> <span class="s1">&#39;\&#39;&#39;</span> <span class="o">+</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">value</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/^&quot;|&quot;$/g</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L2404" class="blob-num js-line-number" data-line-number="2404"></td>
        <td id="LC2404" class="blob-code js-file-line">                                             <span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/&#39;/g</span><span class="p">,</span> <span class="s2">&quot;\\&#39;&quot;</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L2405" class="blob-num js-line-number" data-line-number="2405"></td>
        <td id="LC2405" class="blob-code js-file-line">                                             <span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\\&quot;/g</span><span class="p">,</span> <span class="s1">&#39;&quot;&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;\&#39;&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2406" class="blob-num js-line-number" data-line-number="2406"></td>
        <td id="LC2406" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="nx">simple</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2407" class="blob-num js-line-number" data-line-number="2407"></td>
        <td id="LC2407" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2408" class="blob-num js-line-number" data-line-number="2408"></td>
        <td id="LC2408" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isNumber</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span></td>
      </tr>
      <tr>
        <td id="L2409" class="blob-num js-line-number" data-line-number="2409"></td>
        <td id="LC2409" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="s1">&#39;&#39;</span> <span class="o">+</span> <span class="nx">value</span><span class="p">,</span> <span class="s1">&#39;number&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2410" class="blob-num js-line-number" data-line-number="2410"></td>
        <td id="LC2410" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isBoolean</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span></td>
      </tr>
      <tr>
        <td id="L2411" class="blob-num js-line-number" data-line-number="2411"></td>
        <td id="LC2411" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="s1">&#39;&#39;</span> <span class="o">+</span> <span class="nx">value</span><span class="p">,</span> <span class="s1">&#39;boolean&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2412" class="blob-num js-line-number" data-line-number="2412"></td>
        <td id="LC2412" class="blob-code js-file-line">  <span class="c1">// For some reason typeof null is &quot;object&quot;, so special case here.</span></td>
      </tr>
      <tr>
        <td id="L2413" class="blob-num js-line-number" data-line-number="2413"></td>
        <td id="LC2413" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isNull</span><span class="p">(</span><span class="nx">value</span><span class="p">))</span></td>
      </tr>
      <tr>
        <td id="L2414" class="blob-num js-line-number" data-line-number="2414"></td>
        <td id="LC2414" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="s1">&#39;null&#39;</span><span class="p">,</span> <span class="s1">&#39;null&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2415" class="blob-num js-line-number" data-line-number="2415"></td>
        <td id="LC2415" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2416" class="blob-num js-line-number" data-line-number="2416"></td>
        <td id="LC2416" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2417" class="blob-num js-line-number" data-line-number="2417"></td>
        <td id="LC2417" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2418" class="blob-num js-line-number" data-line-number="2418"></td>
        <td id="LC2418" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">formatError</span><span class="p">(</span><span class="nx">value</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2419" class="blob-num js-line-number" data-line-number="2419"></td>
        <td id="LC2419" class="blob-code js-file-line">  <span class="k">return</span> <span class="s1">&#39;[&#39;</span> <span class="o">+</span> <span class="nb">Error</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">value</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;]&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2420" class="blob-num js-line-number" data-line-number="2420"></td>
        <td id="LC2420" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2421" class="blob-num js-line-number" data-line-number="2421"></td>
        <td id="LC2421" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2422" class="blob-num js-line-number" data-line-number="2422"></td>
        <td id="LC2422" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2423" class="blob-num js-line-number" data-line-number="2423"></td>
        <td id="LC2423" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">formatArray</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">recurseTimes</span><span class="p">,</span> <span class="nx">visibleKeys</span><span class="p">,</span> <span class="nx">keys</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2424" class="blob-num js-line-number" data-line-number="2424"></td>
        <td id="LC2424" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">output</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L2425" class="blob-num js-line-number" data-line-number="2425"></td>
        <td id="LC2425" class="blob-code js-file-line">  <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">value</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">l</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2426" class="blob-num js-line-number" data-line-number="2426"></td>
        <td id="LC2426" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nb">String</span><span class="p">(</span><span class="nx">i</span><span class="p">)))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2427" class="blob-num js-line-number" data-line-number="2427"></td>
        <td id="LC2427" class="blob-code js-file-line">      <span class="nx">output</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">formatProperty</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">recurseTimes</span><span class="p">,</span> <span class="nx">visibleKeys</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2428" class="blob-num js-line-number" data-line-number="2428"></td>
        <td id="LC2428" class="blob-code js-file-line">          <span class="nb">String</span><span class="p">(</span><span class="nx">i</span><span class="p">),</span> <span class="kc">true</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L2429" class="blob-num js-line-number" data-line-number="2429"></td>
        <td id="LC2429" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2430" class="blob-num js-line-number" data-line-number="2430"></td>
        <td id="LC2430" class="blob-code js-file-line">      <span class="nx">output</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2431" class="blob-num js-line-number" data-line-number="2431"></td>
        <td id="LC2431" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2432" class="blob-num js-line-number" data-line-number="2432"></td>
        <td id="LC2432" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2433" class="blob-num js-line-number" data-line-number="2433"></td>
        <td id="LC2433" class="blob-code js-file-line">  <span class="nx">keys</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2434" class="blob-num js-line-number" data-line-number="2434"></td>
        <td id="LC2434" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">key</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span><span class="sr">/^\d+$/</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2435" class="blob-num js-line-number" data-line-number="2435"></td>
        <td id="LC2435" class="blob-code js-file-line">      <span class="nx">output</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">formatProperty</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">recurseTimes</span><span class="p">,</span> <span class="nx">visibleKeys</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2436" class="blob-num js-line-number" data-line-number="2436"></td>
        <td id="LC2436" class="blob-code js-file-line">          <span class="nx">key</span><span class="p">,</span> <span class="kc">true</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L2437" class="blob-num js-line-number" data-line-number="2437"></td>
        <td id="LC2437" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2438" class="blob-num js-line-number" data-line-number="2438"></td>
        <td id="LC2438" class="blob-code js-file-line">  <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L2439" class="blob-num js-line-number" data-line-number="2439"></td>
        <td id="LC2439" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">output</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2440" class="blob-num js-line-number" data-line-number="2440"></td>
        <td id="LC2440" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2441" class="blob-num js-line-number" data-line-number="2441"></td>
        <td id="LC2441" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2442" class="blob-num js-line-number" data-line-number="2442"></td>
        <td id="LC2442" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2443" class="blob-num js-line-number" data-line-number="2443"></td>
        <td id="LC2443" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">formatProperty</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">recurseTimes</span><span class="p">,</span> <span class="nx">visibleKeys</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="nx">array</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2444" class="blob-num js-line-number" data-line-number="2444"></td>
        <td id="LC2444" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">name</span><span class="p">,</span> <span class="nx">str</span><span class="p">,</span> <span class="nx">desc</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2445" class="blob-num js-line-number" data-line-number="2445"></td>
        <td id="LC2445" class="blob-code js-file-line">  <span class="nx">desc</span> <span class="o">=</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">getOwnPropertyDescriptor</span><span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">key</span><span class="p">)</span> <span class="o">||</span> <span class="p">{</span> <span class="nx">value</span><span class="o">:</span> <span class="nx">value</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2446" class="blob-num js-line-number" data-line-number="2446"></td>
        <td id="LC2446" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">desc</span><span class="p">.</span><span class="nx">get</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2447" class="blob-num js-line-number" data-line-number="2447"></td>
        <td id="LC2447" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">desc</span><span class="p">.</span><span class="nx">set</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2448" class="blob-num js-line-number" data-line-number="2448"></td>
        <td id="LC2448" class="blob-code js-file-line">      <span class="nx">str</span> <span class="o">=</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="s1">&#39;[Getter/Setter]&#39;</span><span class="p">,</span> <span class="s1">&#39;special&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2449" class="blob-num js-line-number" data-line-number="2449"></td>
        <td id="LC2449" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2450" class="blob-num js-line-number" data-line-number="2450"></td>
        <td id="LC2450" class="blob-code js-file-line">      <span class="nx">str</span> <span class="o">=</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="s1">&#39;[Getter]&#39;</span><span class="p">,</span> <span class="s1">&#39;special&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2451" class="blob-num js-line-number" data-line-number="2451"></td>
        <td id="LC2451" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2452" class="blob-num js-line-number" data-line-number="2452"></td>
        <td id="LC2452" class="blob-code js-file-line">  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2453" class="blob-num js-line-number" data-line-number="2453"></td>
        <td id="LC2453" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">desc</span><span class="p">.</span><span class="nx">set</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2454" class="blob-num js-line-number" data-line-number="2454"></td>
        <td id="LC2454" class="blob-code js-file-line">      <span class="nx">str</span> <span class="o">=</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="s1">&#39;[Setter]&#39;</span><span class="p">,</span> <span class="s1">&#39;special&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2455" class="blob-num js-line-number" data-line-number="2455"></td>
        <td id="LC2455" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2456" class="blob-num js-line-number" data-line-number="2456"></td>
        <td id="LC2456" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2457" class="blob-num js-line-number" data-line-number="2457"></td>
        <td id="LC2457" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">visibleKeys</span><span class="p">,</span> <span class="nx">key</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2458" class="blob-num js-line-number" data-line-number="2458"></td>
        <td id="LC2458" class="blob-code js-file-line">    <span class="nx">name</span> <span class="o">=</span> <span class="s1">&#39;[&#39;</span> <span class="o">+</span> <span class="nx">key</span> <span class="o">+</span> <span class="s1">&#39;]&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2459" class="blob-num js-line-number" data-line-number="2459"></td>
        <td id="LC2459" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2460" class="blob-num js-line-number" data-line-number="2460"></td>
        <td id="LC2460" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">str</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2461" class="blob-num js-line-number" data-line-number="2461"></td>
        <td id="LC2461" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">ctx</span><span class="p">.</span><span class="nx">seen</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">desc</span><span class="p">.</span><span class="nx">value</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2462" class="blob-num js-line-number" data-line-number="2462"></td>
        <td id="LC2462" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">isNull</span><span class="p">(</span><span class="nx">recurseTimes</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2463" class="blob-num js-line-number" data-line-number="2463"></td>
        <td id="LC2463" class="blob-code js-file-line">        <span class="nx">str</span> <span class="o">=</span> <span class="nx">formatValue</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">desc</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="kc">null</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2464" class="blob-num js-line-number" data-line-number="2464"></td>
        <td id="LC2464" class="blob-code js-file-line">      <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2465" class="blob-num js-line-number" data-line-number="2465"></td>
        <td id="LC2465" class="blob-code js-file-line">        <span class="nx">str</span> <span class="o">=</span> <span class="nx">formatValue</span><span class="p">(</span><span class="nx">ctx</span><span class="p">,</span> <span class="nx">desc</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> <span class="nx">recurseTimes</span> <span class="o">-</span> <span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2466" class="blob-num js-line-number" data-line-number="2466"></td>
        <td id="LC2466" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2467" class="blob-num js-line-number" data-line-number="2467"></td>
        <td id="LC2467" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">str</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;\n&#39;</span><span class="p">)</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2468" class="blob-num js-line-number" data-line-number="2468"></td>
        <td id="LC2468" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">array</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2469" class="blob-num js-line-number" data-line-number="2469"></td>
        <td id="LC2469" class="blob-code js-file-line">          <span class="nx">str</span> <span class="o">=</span> <span class="nx">str</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39;\n&#39;</span><span class="p">).</span><span class="nx">map</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">line</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2470" class="blob-num js-line-number" data-line-number="2470"></td>
        <td id="LC2470" class="blob-code js-file-line">            <span class="k">return</span> <span class="s1">&#39;  &#39;</span> <span class="o">+</span> <span class="nx">line</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2471" class="blob-num js-line-number" data-line-number="2471"></td>
        <td id="LC2471" class="blob-code js-file-line">          <span class="p">}).</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;\n&#39;</span><span class="p">).</span><span class="nx">substr</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2472" class="blob-num js-line-number" data-line-number="2472"></td>
        <td id="LC2472" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2473" class="blob-num js-line-number" data-line-number="2473"></td>
        <td id="LC2473" class="blob-code js-file-line">          <span class="nx">str</span> <span class="o">=</span> <span class="s1">&#39;\n&#39;</span> <span class="o">+</span> <span class="nx">str</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39;\n&#39;</span><span class="p">).</span><span class="nx">map</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">line</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2474" class="blob-num js-line-number" data-line-number="2474"></td>
        <td id="LC2474" class="blob-code js-file-line">            <span class="k">return</span> <span class="s1">&#39;   &#39;</span> <span class="o">+</span> <span class="nx">line</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2475" class="blob-num js-line-number" data-line-number="2475"></td>
        <td id="LC2475" class="blob-code js-file-line">          <span class="p">}).</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;\n&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2476" class="blob-num js-line-number" data-line-number="2476"></td>
        <td id="LC2476" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2477" class="blob-num js-line-number" data-line-number="2477"></td>
        <td id="LC2477" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2478" class="blob-num js-line-number" data-line-number="2478"></td>
        <td id="LC2478" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2479" class="blob-num js-line-number" data-line-number="2479"></td>
        <td id="LC2479" class="blob-code js-file-line">      <span class="nx">str</span> <span class="o">=</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="s1">&#39;[Circular]&#39;</span><span class="p">,</span> <span class="s1">&#39;special&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2480" class="blob-num js-line-number" data-line-number="2480"></td>
        <td id="LC2480" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2481" class="blob-num js-line-number" data-line-number="2481"></td>
        <td id="LC2481" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2482" class="blob-num js-line-number" data-line-number="2482"></td>
        <td id="LC2482" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">name</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2483" class="blob-num js-line-number" data-line-number="2483"></td>
        <td id="LC2483" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">array</span> <span class="o">&amp;&amp;</span> <span class="nx">key</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span><span class="sr">/^\d+$/</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2484" class="blob-num js-line-number" data-line-number="2484"></td>
        <td id="LC2484" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">str</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2485" class="blob-num js-line-number" data-line-number="2485"></td>
        <td id="LC2485" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2486" class="blob-num js-line-number" data-line-number="2486"></td>
        <td id="LC2486" class="blob-code js-file-line">    <span class="nx">name</span> <span class="o">=</span> <span class="nx">JSON</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="s1">&#39;&#39;</span> <span class="o">+</span> <span class="nx">key</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2487" class="blob-num js-line-number" data-line-number="2487"></td>
        <td id="LC2487" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">name</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span><span class="sr">/^&quot;([a-zA-Z_][a-zA-Z_0-9]*)&quot;$/</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2488" class="blob-num js-line-number" data-line-number="2488"></td>
        <td id="LC2488" class="blob-code js-file-line">      <span class="nx">name</span> <span class="o">=</span> <span class="nx">name</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nx">name</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">2</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2489" class="blob-num js-line-number" data-line-number="2489"></td>
        <td id="LC2489" class="blob-code js-file-line">      <span class="nx">name</span> <span class="o">=</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="s1">&#39;name&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2490" class="blob-num js-line-number" data-line-number="2490"></td>
        <td id="LC2490" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2491" class="blob-num js-line-number" data-line-number="2491"></td>
        <td id="LC2491" class="blob-code js-file-line">      <span class="nx">name</span> <span class="o">=</span> <span class="nx">name</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/&#39;/g</span><span class="p">,</span> <span class="s2">&quot;\\&#39;&quot;</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L2492" class="blob-num js-line-number" data-line-number="2492"></td>
        <td id="LC2492" class="blob-code js-file-line">                 <span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\\&quot;/g</span><span class="p">,</span> <span class="s1">&#39;&quot;&#39;</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L2493" class="blob-num js-line-number" data-line-number="2493"></td>
        <td id="LC2493" class="blob-code js-file-line">                 <span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/(^&quot;|&quot;$)/g</span><span class="p">,</span> <span class="s2">&quot;&#39;&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2494" class="blob-num js-line-number" data-line-number="2494"></td>
        <td id="LC2494" class="blob-code js-file-line">      <span class="nx">name</span> <span class="o">=</span> <span class="nx">ctx</span><span class="p">.</span><span class="nx">stylize</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2495" class="blob-num js-line-number" data-line-number="2495"></td>
        <td id="LC2495" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2496" class="blob-num js-line-number" data-line-number="2496"></td>
        <td id="LC2496" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2497" class="blob-num js-line-number" data-line-number="2497"></td>
        <td id="LC2497" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2498" class="blob-num js-line-number" data-line-number="2498"></td>
        <td id="LC2498" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">name</span> <span class="o">+</span> <span class="s1">&#39;: &#39;</span> <span class="o">+</span> <span class="nx">str</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2499" class="blob-num js-line-number" data-line-number="2499"></td>
        <td id="LC2499" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2500" class="blob-num js-line-number" data-line-number="2500"></td>
        <td id="LC2500" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2501" class="blob-num js-line-number" data-line-number="2501"></td>
        <td id="LC2501" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2502" class="blob-num js-line-number" data-line-number="2502"></td>
        <td id="LC2502" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">reduceToSingleString</span><span class="p">(</span><span class="nx">output</span><span class="p">,</span> <span class="nx">base</span><span class="p">,</span> <span class="nx">braces</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2503" class="blob-num js-line-number" data-line-number="2503"></td>
        <td id="LC2503" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">numLinesEst</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2504" class="blob-num js-line-number" data-line-number="2504"></td>
        <td id="LC2504" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">length</span> <span class="o">=</span> <span class="nx">output</span><span class="p">.</span><span class="nx">reduce</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">prev</span><span class="p">,</span> <span class="nx">cur</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2505" class="blob-num js-line-number" data-line-number="2505"></td>
        <td id="LC2505" class="blob-code js-file-line">    <span class="nx">numLinesEst</span><span class="o">++</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2506" class="blob-num js-line-number" data-line-number="2506"></td>
        <td id="LC2506" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">cur</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">&#39;\n&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">)</span> <span class="nx">numLinesEst</span><span class="o">++</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2507" class="blob-num js-line-number" data-line-number="2507"></td>
        <td id="LC2507" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">prev</span> <span class="o">+</span> <span class="nx">cur</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\u001b\[\d\d?m/g</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">).</span><span class="nx">length</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2508" class="blob-num js-line-number" data-line-number="2508"></td>
        <td id="LC2508" class="blob-code js-file-line">  <span class="p">},</span> <span class="mi">0</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2509" class="blob-num js-line-number" data-line-number="2509"></td>
        <td id="LC2509" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2510" class="blob-num js-line-number" data-line-number="2510"></td>
        <td id="LC2510" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">60</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2511" class="blob-num js-line-number" data-line-number="2511"></td>
        <td id="LC2511" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">braces</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L2512" class="blob-num js-line-number" data-line-number="2512"></td>
        <td id="LC2512" class="blob-code js-file-line">           <span class="p">(</span><span class="nx">base</span> <span class="o">===</span> <span class="s1">&#39;&#39;</span> <span class="o">?</span> <span class="s1">&#39;&#39;</span> <span class="o">:</span> <span class="nx">base</span> <span class="o">+</span> <span class="s1">&#39;\n &#39;</span><span class="p">)</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L2513" class="blob-num js-line-number" data-line-number="2513"></td>
        <td id="LC2513" class="blob-code js-file-line">           <span class="s1">&#39; &#39;</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L2514" class="blob-num js-line-number" data-line-number="2514"></td>
        <td id="LC2514" class="blob-code js-file-line">           <span class="nx">output</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;,\n  &#39;</span><span class="p">)</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L2515" class="blob-num js-line-number" data-line-number="2515"></td>
        <td id="LC2515" class="blob-code js-file-line">           <span class="s1">&#39; &#39;</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L2516" class="blob-num js-line-number" data-line-number="2516"></td>
        <td id="LC2516" class="blob-code js-file-line">           <span class="nx">braces</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2517" class="blob-num js-line-number" data-line-number="2517"></td>
        <td id="LC2517" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2518" class="blob-num js-line-number" data-line-number="2518"></td>
        <td id="LC2518" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2519" class="blob-num js-line-number" data-line-number="2519"></td>
        <td id="LC2519" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">braces</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="nx">base</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="nx">output</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;, &#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="nx">braces</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2520" class="blob-num js-line-number" data-line-number="2520"></td>
        <td id="LC2520" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2521" class="blob-num js-line-number" data-line-number="2521"></td>
        <td id="LC2521" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2522" class="blob-num js-line-number" data-line-number="2522"></td>
        <td id="LC2522" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2523" class="blob-num js-line-number" data-line-number="2523"></td>
        <td id="LC2523" class="blob-code js-file-line"><span class="c1">// NOTE: These type checking functions intentionally don&#39;t use `instanceof`</span></td>
      </tr>
      <tr>
        <td id="L2524" class="blob-num js-line-number" data-line-number="2524"></td>
        <td id="LC2524" class="blob-code js-file-line"><span class="c1">// because it is fragile and can be easily faked with `Object.create()`.</span></td>
      </tr>
      <tr>
        <td id="L2525" class="blob-num js-line-number" data-line-number="2525"></td>
        <td id="LC2525" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isArray</span><span class="p">(</span><span class="nx">ar</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2526" class="blob-num js-line-number" data-line-number="2526"></td>
        <td id="LC2526" class="blob-code js-file-line">  <span class="k">return</span> <span class="nb">Array</span><span class="p">.</span><span class="nx">isArray</span><span class="p">(</span><span class="nx">ar</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2527" class="blob-num js-line-number" data-line-number="2527"></td>
        <td id="LC2527" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2528" class="blob-num js-line-number" data-line-number="2528"></td>
        <td id="LC2528" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isArray</span> <span class="o">=</span> <span class="nx">isArray</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2529" class="blob-num js-line-number" data-line-number="2529"></td>
        <td id="LC2529" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2530" class="blob-num js-line-number" data-line-number="2530"></td>
        <td id="LC2530" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isBoolean</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2531" class="blob-num js-line-number" data-line-number="2531"></td>
        <td id="LC2531" class="blob-code js-file-line">  <span class="k">return</span> <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;boolean&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2532" class="blob-num js-line-number" data-line-number="2532"></td>
        <td id="LC2532" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2533" class="blob-num js-line-number" data-line-number="2533"></td>
        <td id="LC2533" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isBoolean</span> <span class="o">=</span> <span class="nx">isBoolean</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2534" class="blob-num js-line-number" data-line-number="2534"></td>
        <td id="LC2534" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2535" class="blob-num js-line-number" data-line-number="2535"></td>
        <td id="LC2535" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isNull</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2536" class="blob-num js-line-number" data-line-number="2536"></td>
        <td id="LC2536" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">arg</span> <span class="o">===</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2537" class="blob-num js-line-number" data-line-number="2537"></td>
        <td id="LC2537" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2538" class="blob-num js-line-number" data-line-number="2538"></td>
        <td id="LC2538" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isNull</span> <span class="o">=</span> <span class="nx">isNull</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2539" class="blob-num js-line-number" data-line-number="2539"></td>
        <td id="LC2539" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2540" class="blob-num js-line-number" data-line-number="2540"></td>
        <td id="LC2540" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isNullOrUndefined</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2541" class="blob-num js-line-number" data-line-number="2541"></td>
        <td id="LC2541" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">arg</span> <span class="o">==</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2542" class="blob-num js-line-number" data-line-number="2542"></td>
        <td id="LC2542" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2543" class="blob-num js-line-number" data-line-number="2543"></td>
        <td id="LC2543" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isNullOrUndefined</span> <span class="o">=</span> <span class="nx">isNullOrUndefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2544" class="blob-num js-line-number" data-line-number="2544"></td>
        <td id="LC2544" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2545" class="blob-num js-line-number" data-line-number="2545"></td>
        <td id="LC2545" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isNumber</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2546" class="blob-num js-line-number" data-line-number="2546"></td>
        <td id="LC2546" class="blob-code js-file-line">  <span class="k">return</span> <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;number&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2547" class="blob-num js-line-number" data-line-number="2547"></td>
        <td id="LC2547" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2548" class="blob-num js-line-number" data-line-number="2548"></td>
        <td id="LC2548" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isNumber</span> <span class="o">=</span> <span class="nx">isNumber</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2549" class="blob-num js-line-number" data-line-number="2549"></td>
        <td id="LC2549" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2550" class="blob-num js-line-number" data-line-number="2550"></td>
        <td id="LC2550" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isString</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2551" class="blob-num js-line-number" data-line-number="2551"></td>
        <td id="LC2551" class="blob-code js-file-line">  <span class="k">return</span> <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;string&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2552" class="blob-num js-line-number" data-line-number="2552"></td>
        <td id="LC2552" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2553" class="blob-num js-line-number" data-line-number="2553"></td>
        <td id="LC2553" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isString</span> <span class="o">=</span> <span class="nx">isString</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2554" class="blob-num js-line-number" data-line-number="2554"></td>
        <td id="LC2554" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2555" class="blob-num js-line-number" data-line-number="2555"></td>
        <td id="LC2555" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isSymbol</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2556" class="blob-num js-line-number" data-line-number="2556"></td>
        <td id="LC2556" class="blob-code js-file-line">  <span class="k">return</span> <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;symbol&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2557" class="blob-num js-line-number" data-line-number="2557"></td>
        <td id="LC2557" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2558" class="blob-num js-line-number" data-line-number="2558"></td>
        <td id="LC2558" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isSymbol</span> <span class="o">=</span> <span class="nx">isSymbol</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2559" class="blob-num js-line-number" data-line-number="2559"></td>
        <td id="LC2559" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2560" class="blob-num js-line-number" data-line-number="2560"></td>
        <td id="LC2560" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isUndefined</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2561" class="blob-num js-line-number" data-line-number="2561"></td>
        <td id="LC2561" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">arg</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2562" class="blob-num js-line-number" data-line-number="2562"></td>
        <td id="LC2562" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2563" class="blob-num js-line-number" data-line-number="2563"></td>
        <td id="LC2563" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isUndefined</span> <span class="o">=</span> <span class="nx">isUndefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2564" class="blob-num js-line-number" data-line-number="2564"></td>
        <td id="LC2564" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2565" class="blob-num js-line-number" data-line-number="2565"></td>
        <td id="LC2565" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isRegExp</span><span class="p">(</span><span class="nx">re</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2566" class="blob-num js-line-number" data-line-number="2566"></td>
        <td id="LC2566" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">isObject</span><span class="p">(</span><span class="nx">re</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="nx">objectToString</span><span class="p">(</span><span class="nx">re</span><span class="p">)</span> <span class="o">===</span> <span class="s1">&#39;[object RegExp]&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2567" class="blob-num js-line-number" data-line-number="2567"></td>
        <td id="LC2567" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2568" class="blob-num js-line-number" data-line-number="2568"></td>
        <td id="LC2568" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isRegExp</span> <span class="o">=</span> <span class="nx">isRegExp</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2569" class="blob-num js-line-number" data-line-number="2569"></td>
        <td id="LC2569" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2570" class="blob-num js-line-number" data-line-number="2570"></td>
        <td id="LC2570" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isObject</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2571" class="blob-num js-line-number" data-line-number="2571"></td>
        <td id="LC2571" class="blob-code js-file-line">  <span class="k">return</span> <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;object&#39;</span> <span class="o">&amp;&amp;</span> <span class="nx">arg</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2572" class="blob-num js-line-number" data-line-number="2572"></td>
        <td id="LC2572" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2573" class="blob-num js-line-number" data-line-number="2573"></td>
        <td id="LC2573" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isObject</span> <span class="o">=</span> <span class="nx">isObject</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2574" class="blob-num js-line-number" data-line-number="2574"></td>
        <td id="LC2574" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2575" class="blob-num js-line-number" data-line-number="2575"></td>
        <td id="LC2575" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isDate</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2576" class="blob-num js-line-number" data-line-number="2576"></td>
        <td id="LC2576" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">isObject</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="nx">objectToString</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="o">===</span> <span class="s1">&#39;[object Date]&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2577" class="blob-num js-line-number" data-line-number="2577"></td>
        <td id="LC2577" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2578" class="blob-num js-line-number" data-line-number="2578"></td>
        <td id="LC2578" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isDate</span> <span class="o">=</span> <span class="nx">isDate</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2579" class="blob-num js-line-number" data-line-number="2579"></td>
        <td id="LC2579" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2580" class="blob-num js-line-number" data-line-number="2580"></td>
        <td id="LC2580" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isError</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2581" class="blob-num js-line-number" data-line-number="2581"></td>
        <td id="LC2581" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">isObject</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L2582" class="blob-num js-line-number" data-line-number="2582"></td>
        <td id="LC2582" class="blob-code js-file-line">      <span class="p">(</span><span class="nx">objectToString</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="o">===</span> <span class="s1">&#39;[object Error]&#39;</span> <span class="o">||</span> <span class="nx">e</span> <span class="k">instanceof</span> <span class="nb">Error</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2583" class="blob-num js-line-number" data-line-number="2583"></td>
        <td id="LC2583" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2584" class="blob-num js-line-number" data-line-number="2584"></td>
        <td id="LC2584" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isError</span> <span class="o">=</span> <span class="nx">isError</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2585" class="blob-num js-line-number" data-line-number="2585"></td>
        <td id="LC2585" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2586" class="blob-num js-line-number" data-line-number="2586"></td>
        <td id="LC2586" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isFunction</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2587" class="blob-num js-line-number" data-line-number="2587"></td>
        <td id="LC2587" class="blob-code js-file-line">  <span class="k">return</span> <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;function&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2588" class="blob-num js-line-number" data-line-number="2588"></td>
        <td id="LC2588" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2589" class="blob-num js-line-number" data-line-number="2589"></td>
        <td id="LC2589" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isFunction</span> <span class="o">=</span> <span class="nx">isFunction</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2590" class="blob-num js-line-number" data-line-number="2590"></td>
        <td id="LC2590" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2591" class="blob-num js-line-number" data-line-number="2591"></td>
        <td id="LC2591" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">isPrimitive</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2592" class="blob-num js-line-number" data-line-number="2592"></td>
        <td id="LC2592" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">arg</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">||</span></td>
      </tr>
      <tr>
        <td id="L2593" class="blob-num js-line-number" data-line-number="2593"></td>
        <td id="LC2593" class="blob-code js-file-line">         <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;boolean&#39;</span> <span class="o">||</span></td>
      </tr>
      <tr>
        <td id="L2594" class="blob-num js-line-number" data-line-number="2594"></td>
        <td id="LC2594" class="blob-code js-file-line">         <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;number&#39;</span> <span class="o">||</span></td>
      </tr>
      <tr>
        <td id="L2595" class="blob-num js-line-number" data-line-number="2595"></td>
        <td id="LC2595" class="blob-code js-file-line">         <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;string&#39;</span> <span class="o">||</span></td>
      </tr>
      <tr>
        <td id="L2596" class="blob-num js-line-number" data-line-number="2596"></td>
        <td id="LC2596" class="blob-code js-file-line">         <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;symbol&#39;</span> <span class="o">||</span>  <span class="c1">// ES6 symbol</span></td>
      </tr>
      <tr>
        <td id="L2597" class="blob-num js-line-number" data-line-number="2597"></td>
        <td id="LC2597" class="blob-code js-file-line">         <span class="k">typeof</span> <span class="nx">arg</span> <span class="o">===</span> <span class="s1">&#39;undefined&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2598" class="blob-num js-line-number" data-line-number="2598"></td>
        <td id="LC2598" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2599" class="blob-num js-line-number" data-line-number="2599"></td>
        <td id="LC2599" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isPrimitive</span> <span class="o">=</span> <span class="nx">isPrimitive</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2600" class="blob-num js-line-number" data-line-number="2600"></td>
        <td id="LC2600" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2601" class="blob-num js-line-number" data-line-number="2601"></td>
        <td id="LC2601" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">isBuffer</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;./support/isBuffer&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2602" class="blob-num js-line-number" data-line-number="2602"></td>
        <td id="LC2602" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2603" class="blob-num js-line-number" data-line-number="2603"></td>
        <td id="LC2603" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">objectToString</span><span class="p">(</span><span class="nx">o</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2604" class="blob-num js-line-number" data-line-number="2604"></td>
        <td id="LC2604" class="blob-code js-file-line">  <span class="k">return</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">o</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2605" class="blob-num js-line-number" data-line-number="2605"></td>
        <td id="LC2605" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2606" class="blob-num js-line-number" data-line-number="2606"></td>
        <td id="LC2606" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2607" class="blob-num js-line-number" data-line-number="2607"></td>
        <td id="LC2607" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2608" class="blob-num js-line-number" data-line-number="2608"></td>
        <td id="LC2608" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">pad</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2609" class="blob-num js-line-number" data-line-number="2609"></td>
        <td id="LC2609" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">n</span> <span class="o">&lt;</span> <span class="mi">10</span> <span class="o">?</span> <span class="s1">&#39;0&#39;</span> <span class="o">+</span> <span class="nx">n</span><span class="p">.</span><span class="nx">toString</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="o">:</span> <span class="nx">n</span><span class="p">.</span><span class="nx">toString</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2610" class="blob-num js-line-number" data-line-number="2610"></td>
        <td id="LC2610" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2611" class="blob-num js-line-number" data-line-number="2611"></td>
        <td id="LC2611" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2612" class="blob-num js-line-number" data-line-number="2612"></td>
        <td id="LC2612" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2613" class="blob-num js-line-number" data-line-number="2613"></td>
        <td id="LC2613" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">months</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;Jan&#39;</span><span class="p">,</span> <span class="s1">&#39;Feb&#39;</span><span class="p">,</span> <span class="s1">&#39;Mar&#39;</span><span class="p">,</span> <span class="s1">&#39;Apr&#39;</span><span class="p">,</span> <span class="s1">&#39;May&#39;</span><span class="p">,</span> <span class="s1">&#39;Jun&#39;</span><span class="p">,</span> <span class="s1">&#39;Jul&#39;</span><span class="p">,</span> <span class="s1">&#39;Aug&#39;</span><span class="p">,</span> <span class="s1">&#39;Sep&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2614" class="blob-num js-line-number" data-line-number="2614"></td>
        <td id="LC2614" class="blob-code js-file-line">              <span class="s1">&#39;Oct&#39;</span><span class="p">,</span> <span class="s1">&#39;Nov&#39;</span><span class="p">,</span> <span class="s1">&#39;Dec&#39;</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2615" class="blob-num js-line-number" data-line-number="2615"></td>
        <td id="LC2615" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2616" class="blob-num js-line-number" data-line-number="2616"></td>
        <td id="LC2616" class="blob-code js-file-line"><span class="c1">// 26 Feb 16:19:34</span></td>
      </tr>
      <tr>
        <td id="L2617" class="blob-num js-line-number" data-line-number="2617"></td>
        <td id="LC2617" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">timestamp</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2618" class="blob-num js-line-number" data-line-number="2618"></td>
        <td id="LC2618" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">d</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L2619" class="blob-num js-line-number" data-line-number="2619"></td>
        <td id="LC2619" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">time</span> <span class="o">=</span> <span class="p">[</span><span class="nx">pad</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">getHours</span><span class="p">()),</span></td>
      </tr>
      <tr>
        <td id="L2620" class="blob-num js-line-number" data-line-number="2620"></td>
        <td id="LC2620" class="blob-code js-file-line">              <span class="nx">pad</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">getMinutes</span><span class="p">()),</span></td>
      </tr>
      <tr>
        <td id="L2621" class="blob-num js-line-number" data-line-number="2621"></td>
        <td id="LC2621" class="blob-code js-file-line">              <span class="nx">pad</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">getSeconds</span><span class="p">())].</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2622" class="blob-num js-line-number" data-line-number="2622"></td>
        <td id="LC2622" class="blob-code js-file-line">  <span class="k">return</span> <span class="p">[</span><span class="nx">d</span><span class="p">.</span><span class="nx">getDate</span><span class="p">(),</span> <span class="nx">months</span><span class="p">[</span><span class="nx">d</span><span class="p">.</span><span class="nx">getMonth</span><span class="p">()],</span> <span class="nx">time</span><span class="p">].</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2623" class="blob-num js-line-number" data-line-number="2623"></td>
        <td id="LC2623" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2624" class="blob-num js-line-number" data-line-number="2624"></td>
        <td id="LC2624" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2625" class="blob-num js-line-number" data-line-number="2625"></td>
        <td id="LC2625" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2626" class="blob-num js-line-number" data-line-number="2626"></td>
        <td id="LC2626" class="blob-code js-file-line"><span class="c1">// log is just a thin wrapper to console.log that prepends a timestamp</span></td>
      </tr>
      <tr>
        <td id="L2627" class="blob-num js-line-number" data-line-number="2627"></td>
        <td id="LC2627" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">log</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2628" class="blob-num js-line-number" data-line-number="2628"></td>
        <td id="LC2628" class="blob-code js-file-line">  <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s1">&#39;%s - %s&#39;</span><span class="p">,</span> <span class="nx">timestamp</span><span class="p">(),</span> <span class="nx">exports</span><span class="p">.</span><span class="nx">format</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">exports</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L2629" class="blob-num js-line-number" data-line-number="2629"></td>
        <td id="LC2629" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2630" class="blob-num js-line-number" data-line-number="2630"></td>
        <td id="LC2630" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2631" class="blob-num js-line-number" data-line-number="2631"></td>
        <td id="LC2631" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2632" class="blob-num js-line-number" data-line-number="2632"></td>
        <td id="LC2632" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2633" class="blob-num js-line-number" data-line-number="2633"></td>
        <td id="LC2633" class="blob-code js-file-line"><span class="cm"> * Inherit the prototype methods from one constructor into another.</span></td>
      </tr>
      <tr>
        <td id="L2634" class="blob-num js-line-number" data-line-number="2634"></td>
        <td id="LC2634" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L2635" class="blob-num js-line-number" data-line-number="2635"></td>
        <td id="LC2635" class="blob-code js-file-line"><span class="cm"> * The Function.prototype.inherits from lang.js rewritten as a standalone</span></td>
      </tr>
      <tr>
        <td id="L2636" class="blob-num js-line-number" data-line-number="2636"></td>
        <td id="LC2636" class="blob-code js-file-line"><span class="cm"> * function (not on Function.prototype). NOTE: If this file is to be loaded</span></td>
      </tr>
      <tr>
        <td id="L2637" class="blob-num js-line-number" data-line-number="2637"></td>
        <td id="LC2637" class="blob-code js-file-line"><span class="cm"> * during bootstrapping this function needs to be rewritten using some native</span></td>
      </tr>
      <tr>
        <td id="L2638" class="blob-num js-line-number" data-line-number="2638"></td>
        <td id="LC2638" class="blob-code js-file-line"><span class="cm"> * functions as prototype setup using normal JavaScript does not work as</span></td>
      </tr>
      <tr>
        <td id="L2639" class="blob-num js-line-number" data-line-number="2639"></td>
        <td id="LC2639" class="blob-code js-file-line"><span class="cm"> * expected during bootstrapping (see mirror.js in r114903).</span></td>
      </tr>
      <tr>
        <td id="L2640" class="blob-num js-line-number" data-line-number="2640"></td>
        <td id="LC2640" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L2641" class="blob-num js-line-number" data-line-number="2641"></td>
        <td id="LC2641" class="blob-code js-file-line"><span class="cm"> * @param {function} ctor Constructor function which needs to inherit the</span></td>
      </tr>
      <tr>
        <td id="L2642" class="blob-num js-line-number" data-line-number="2642"></td>
        <td id="LC2642" class="blob-code js-file-line"><span class="cm"> *     prototype.</span></td>
      </tr>
      <tr>
        <td id="L2643" class="blob-num js-line-number" data-line-number="2643"></td>
        <td id="LC2643" class="blob-code js-file-line"><span class="cm"> * @param {function} superCtor Constructor function to inherit prototype from.</span></td>
      </tr>
      <tr>
        <td id="L2644" class="blob-num js-line-number" data-line-number="2644"></td>
        <td id="LC2644" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2645" class="blob-num js-line-number" data-line-number="2645"></td>
        <td id="LC2645" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">inherits</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s1">&#39;inherits&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2646" class="blob-num js-line-number" data-line-number="2646"></td>
        <td id="LC2646" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2647" class="blob-num js-line-number" data-line-number="2647"></td>
        <td id="LC2647" class="blob-code js-file-line"><span class="nx">exports</span><span class="p">.</span><span class="nx">_extend</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">origin</span><span class="p">,</span> <span class="nx">add</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2648" class="blob-num js-line-number" data-line-number="2648"></td>
        <td id="LC2648" class="blob-code js-file-line">  <span class="c1">// Don&#39;t do anything if add isn&#39;t an object</span></td>
      </tr>
      <tr>
        <td id="L2649" class="blob-num js-line-number" data-line-number="2649"></td>
        <td id="LC2649" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">add</span> <span class="o">||</span> <span class="o">!</span><span class="nx">isObject</span><span class="p">(</span><span class="nx">add</span><span class="p">))</span> <span class="k">return</span> <span class="nx">origin</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2650" class="blob-num js-line-number" data-line-number="2650"></td>
        <td id="LC2650" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2651" class="blob-num js-line-number" data-line-number="2651"></td>
        <td id="LC2651" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">keys</span> <span class="o">=</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">keys</span><span class="p">(</span><span class="nx">add</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2652" class="blob-num js-line-number" data-line-number="2652"></td>
        <td id="LC2652" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2653" class="blob-num js-line-number" data-line-number="2653"></td>
        <td id="LC2653" class="blob-code js-file-line">  <span class="k">while</span> <span class="p">(</span><span class="nx">i</span><span class="o">--</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2654" class="blob-num js-line-number" data-line-number="2654"></td>
        <td id="LC2654" class="blob-code js-file-line">    <span class="nx">origin</span><span class="p">[</span><span class="nx">keys</span><span class="p">[</span><span class="nx">i</span><span class="p">]]</span> <span class="o">=</span> <span class="nx">add</span><span class="p">[</span><span class="nx">keys</span><span class="p">[</span><span class="nx">i</span><span class="p">]];</span></td>
      </tr>
      <tr>
        <td id="L2655" class="blob-num js-line-number" data-line-number="2655"></td>
        <td id="LC2655" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2656" class="blob-num js-line-number" data-line-number="2656"></td>
        <td id="LC2656" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">origin</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2657" class="blob-num js-line-number" data-line-number="2657"></td>
        <td id="LC2657" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2658" class="blob-num js-line-number" data-line-number="2658"></td>
        <td id="LC2658" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2659" class="blob-num js-line-number" data-line-number="2659"></td>
        <td id="LC2659" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">prop</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2660" class="blob-num js-line-number" data-line-number="2660"></td>
        <td id="LC2660" class="blob-code js-file-line">  <span class="k">return</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">prop</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2661" class="blob-num js-line-number" data-line-number="2661"></td>
        <td id="LC2661" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2662" class="blob-num js-line-number" data-line-number="2662"></td>
        <td id="LC2662" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2663" class="blob-num js-line-number" data-line-number="2663"></td>
        <td id="LC2663" class="blob-code js-file-line"><span class="p">}).</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span><span class="nx">_dereq_</span><span class="p">(</span><span class="s2">&quot;FWaASH&quot;</span><span class="p">),</span><span class="k">typeof</span> <span class="nx">self</span> <span class="o">!==</span> <span class="s2">&quot;undefined&quot;</span> <span class="o">?</span> <span class="nx">self</span> <span class="o">:</span> <span class="k">typeof</span> <span class="nb">window</span> <span class="o">!==</span> <span class="s2">&quot;undefined&quot;</span> <span class="o">?</span> <span class="nb">window</span> <span class="o">:</span> <span class="p">{})</span></td>
      </tr>
      <tr>
        <td id="L2664" class="blob-num js-line-number" data-line-number="2664"></td>
        <td id="LC2664" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;./support/isBuffer&quot;</span><span class="o">:</span><span class="mi">29</span><span class="p">,</span><span class="s2">&quot;FWaASH&quot;</span><span class="o">:</span><span class="mi">28</span><span class="p">,</span><span class="s2">&quot;inherits&quot;</span><span class="o">:</span><span class="mi">27</span><span class="p">}],</span><span class="mi">31</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L2665" class="blob-num js-line-number" data-line-number="2665"></td>
        <td id="LC2665" class="blob-code js-file-line"><span class="cm">/*! Hammer.JS - v1.1.3 - 2014-05-20</span></td>
      </tr>
      <tr>
        <td id="L2666" class="blob-num js-line-number" data-line-number="2666"></td>
        <td id="LC2666" class="blob-code js-file-line"><span class="cm"> * http://eightmedia.github.io/hammer.js</span></td>
      </tr>
      <tr>
        <td id="L2667" class="blob-num js-line-number" data-line-number="2667"></td>
        <td id="LC2667" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L2668" class="blob-num js-line-number" data-line-number="2668"></td>
        <td id="LC2668" class="blob-code js-file-line"><span class="cm"> * Copyright (c) 2014 Jorik Tangelder &lt;j.tangelder@gmail.com&gt;;</span></td>
      </tr>
      <tr>
        <td id="L2669" class="blob-num js-line-number" data-line-number="2669"></td>
        <td id="LC2669" class="blob-code js-file-line"><span class="cm"> * Licensed under the MIT license */</span></td>
      </tr>
      <tr>
        <td id="L2670" class="blob-num js-line-number" data-line-number="2670"></td>
        <td id="LC2670" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2671" class="blob-num js-line-number" data-line-number="2671"></td>
        <td id="LC2671" class="blob-code js-file-line"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nb">window</span><span class="p">,</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2672" class="blob-num js-line-number" data-line-number="2672"></td>
        <td id="LC2672" class="blob-code js-file-line">  <span class="s1">&#39;use strict&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2673" class="blob-num js-line-number" data-line-number="2673"></td>
        <td id="LC2673" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2674" class="blob-num js-line-number" data-line-number="2674"></td>
        <td id="LC2674" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2675" class="blob-num js-line-number" data-line-number="2675"></td>
        <td id="LC2675" class="blob-code js-file-line"><span class="cm"> * @main</span></td>
      </tr>
      <tr>
        <td id="L2676" class="blob-num js-line-number" data-line-number="2676"></td>
        <td id="LC2676" class="blob-code js-file-line"><span class="cm"> * @module hammer</span></td>
      </tr>
      <tr>
        <td id="L2677" class="blob-num js-line-number" data-line-number="2677"></td>
        <td id="LC2677" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L2678" class="blob-num js-line-number" data-line-number="2678"></td>
        <td id="LC2678" class="blob-code js-file-line"><span class="cm"> * @class Hammer</span></td>
      </tr>
      <tr>
        <td id="L2679" class="blob-num js-line-number" data-line-number="2679"></td>
        <td id="LC2679" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L2680" class="blob-num js-line-number" data-line-number="2680"></td>
        <td id="LC2680" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2681" class="blob-num js-line-number" data-line-number="2681"></td>
        <td id="LC2681" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2682" class="blob-num js-line-number" data-line-number="2682"></td>
        <td id="LC2682" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2683" class="blob-num js-line-number" data-line-number="2683"></td>
        <td id="LC2683" class="blob-code js-file-line"><span class="cm"> * Hammer, use this to create instances</span></td>
      </tr>
      <tr>
        <td id="L2684" class="blob-num js-line-number" data-line-number="2684"></td>
        <td id="LC2684" class="blob-code js-file-line"><span class="cm"> * ````</span></td>
      </tr>
      <tr>
        <td id="L2685" class="blob-num js-line-number" data-line-number="2685"></td>
        <td id="LC2685" class="blob-code js-file-line"><span class="cm"> * var hammertime = new Hammer(myElement);</span></td>
      </tr>
      <tr>
        <td id="L2686" class="blob-num js-line-number" data-line-number="2686"></td>
        <td id="LC2686" class="blob-code js-file-line"><span class="cm"> * ````</span></td>
      </tr>
      <tr>
        <td id="L2687" class="blob-num js-line-number" data-line-number="2687"></td>
        <td id="LC2687" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L2688" class="blob-num js-line-number" data-line-number="2688"></td>
        <td id="LC2688" class="blob-code js-file-line"><span class="cm"> * @method Hammer</span></td>
      </tr>
      <tr>
        <td id="L2689" class="blob-num js-line-number" data-line-number="2689"></td>
        <td id="LC2689" class="blob-code js-file-line"><span class="cm"> * @param {HTMLElement} element</span></td>
      </tr>
      <tr>
        <td id="L2690" class="blob-num js-line-number" data-line-number="2690"></td>
        <td id="LC2690" class="blob-code js-file-line"><span class="cm"> * @param {Object} [options={}]</span></td>
      </tr>
      <tr>
        <td id="L2691" class="blob-num js-line-number" data-line-number="2691"></td>
        <td id="LC2691" class="blob-code js-file-line"><span class="cm"> * @return {Hammer.Instance}</span></td>
      </tr>
      <tr>
        <td id="L2692" class="blob-num js-line-number" data-line-number="2692"></td>
        <td id="LC2692" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2693" class="blob-num js-line-number" data-line-number="2693"></td>
        <td id="LC2693" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Hammer</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">Hammer</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">options</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2694" class="blob-num js-line-number" data-line-number="2694"></td>
        <td id="LC2694" class="blob-code js-file-line">    <span class="k">return</span> <span class="k">new</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">Instance</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">options</span> <span class="o">||</span> <span class="p">{});</span></td>
      </tr>
      <tr>
        <td id="L2695" class="blob-num js-line-number" data-line-number="2695"></td>
        <td id="LC2695" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2696" class="blob-num js-line-number" data-line-number="2696"></td>
        <td id="LC2696" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2697" class="blob-num js-line-number" data-line-number="2697"></td>
        <td id="LC2697" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2698" class="blob-num js-line-number" data-line-number="2698"></td>
        <td id="LC2698" class="blob-code js-file-line"><span class="cm"> * version, as defined in package.json</span></td>
      </tr>
      <tr>
        <td id="L2699" class="blob-num js-line-number" data-line-number="2699"></td>
        <td id="LC2699" class="blob-code js-file-line"><span class="cm"> * the value will be set at each build</span></td>
      </tr>
      <tr>
        <td id="L2700" class="blob-num js-line-number" data-line-number="2700"></td>
        <td id="LC2700" class="blob-code js-file-line"><span class="cm"> * @property VERSION</span></td>
      </tr>
      <tr>
        <td id="L2701" class="blob-num js-line-number" data-line-number="2701"></td>
        <td id="LC2701" class="blob-code js-file-line"><span class="cm"> * @final</span></td>
      </tr>
      <tr>
        <td id="L2702" class="blob-num js-line-number" data-line-number="2702"></td>
        <td id="LC2702" class="blob-code js-file-line"><span class="cm"> * @type {String}</span></td>
      </tr>
      <tr>
        <td id="L2703" class="blob-num js-line-number" data-line-number="2703"></td>
        <td id="LC2703" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2704" class="blob-num js-line-number" data-line-number="2704"></td>
        <td id="LC2704" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">VERSION</span> <span class="o">=</span> <span class="s1">&#39;1.1.3&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2705" class="blob-num js-line-number" data-line-number="2705"></td>
        <td id="LC2705" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2706" class="blob-num js-line-number" data-line-number="2706"></td>
        <td id="LC2706" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2707" class="blob-num js-line-number" data-line-number="2707"></td>
        <td id="LC2707" class="blob-code js-file-line"><span class="cm"> * default settings.</span></td>
      </tr>
      <tr>
        <td id="L2708" class="blob-num js-line-number" data-line-number="2708"></td>
        <td id="LC2708" class="blob-code js-file-line"><span class="cm"> * more settings are defined per gesture at `/gestures`. Each gesture can be disabled/enabled</span></td>
      </tr>
      <tr>
        <td id="L2709" class="blob-num js-line-number" data-line-number="2709"></td>
        <td id="LC2709" class="blob-code js-file-line"><span class="cm"> * by setting it&#39;s name (like `swipe`) to false.</span></td>
      </tr>
      <tr>
        <td id="L2710" class="blob-num js-line-number" data-line-number="2710"></td>
        <td id="LC2710" class="blob-code js-file-line"><span class="cm"> * You can set the defaults for all instances by changing this object before creating an instance.</span></td>
      </tr>
      <tr>
        <td id="L2711" class="blob-num js-line-number" data-line-number="2711"></td>
        <td id="LC2711" class="blob-code js-file-line"><span class="cm"> * @example</span></td>
      </tr>
      <tr>
        <td id="L2712" class="blob-num js-line-number" data-line-number="2712"></td>
        <td id="LC2712" class="blob-code js-file-line"><span class="cm"> * ````</span></td>
      </tr>
      <tr>
        <td id="L2713" class="blob-num js-line-number" data-line-number="2713"></td>
        <td id="LC2713" class="blob-code js-file-line"><span class="cm"> *  Hammer.defaults.drag = false;</span></td>
      </tr>
      <tr>
        <td id="L2714" class="blob-num js-line-number" data-line-number="2714"></td>
        <td id="LC2714" class="blob-code js-file-line"><span class="cm"> *  Hammer.defaults.behavior.touchAction = &#39;pan-y&#39;;</span></td>
      </tr>
      <tr>
        <td id="L2715" class="blob-num js-line-number" data-line-number="2715"></td>
        <td id="LC2715" class="blob-code js-file-line"><span class="cm"> *  delete Hammer.defaults.behavior.userSelect;</span></td>
      </tr>
      <tr>
        <td id="L2716" class="blob-num js-line-number" data-line-number="2716"></td>
        <td id="LC2716" class="blob-code js-file-line"><span class="cm"> * ````</span></td>
      </tr>
      <tr>
        <td id="L2717" class="blob-num js-line-number" data-line-number="2717"></td>
        <td id="LC2717" class="blob-code js-file-line"><span class="cm"> * @property defaults</span></td>
      </tr>
      <tr>
        <td id="L2718" class="blob-num js-line-number" data-line-number="2718"></td>
        <td id="LC2718" class="blob-code js-file-line"><span class="cm"> * @type {Object}</span></td>
      </tr>
      <tr>
        <td id="L2719" class="blob-num js-line-number" data-line-number="2719"></td>
        <td id="LC2719" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2720" class="blob-num js-line-number" data-line-number="2720"></td>
        <td id="LC2720" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">defaults</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2721" class="blob-num js-line-number" data-line-number="2721"></td>
        <td id="LC2721" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2722" class="blob-num js-line-number" data-line-number="2722"></td>
        <td id="LC2722" class="blob-code js-file-line"><span class="cm">     * this setting object adds styles and attributes to the element to prevent the browser from doing</span></td>
      </tr>
      <tr>
        <td id="L2723" class="blob-num js-line-number" data-line-number="2723"></td>
        <td id="LC2723" class="blob-code js-file-line"><span class="cm">     * its native behavior. The css properties are auto prefixed for the browsers when needed.</span></td>
      </tr>
      <tr>
        <td id="L2724" class="blob-num js-line-number" data-line-number="2724"></td>
        <td id="LC2724" class="blob-code js-file-line"><span class="cm">     * @property defaults.behavior</span></td>
      </tr>
      <tr>
        <td id="L2725" class="blob-num js-line-number" data-line-number="2725"></td>
        <td id="LC2725" class="blob-code js-file-line"><span class="cm">     * @type {Object}</span></td>
      </tr>
      <tr>
        <td id="L2726" class="blob-num js-line-number" data-line-number="2726"></td>
        <td id="LC2726" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L2727" class="blob-num js-line-number" data-line-number="2727"></td>
        <td id="LC2727" class="blob-code js-file-line">    <span class="nx">behavior</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2728" class="blob-num js-line-number" data-line-number="2728"></td>
        <td id="LC2728" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2729" class="blob-num js-line-number" data-line-number="2729"></td>
        <td id="LC2729" class="blob-code js-file-line"><span class="cm">         * Disables text selection to improve the dragging gesture. When the value is `none` it also sets</span></td>
      </tr>
      <tr>
        <td id="L2730" class="blob-num js-line-number" data-line-number="2730"></td>
        <td id="LC2730" class="blob-code js-file-line"><span class="cm">         * `onselectstart=false` for IE on the element. Mainly for desktop browsers.</span></td>
      </tr>
      <tr>
        <td id="L2731" class="blob-num js-line-number" data-line-number="2731"></td>
        <td id="LC2731" class="blob-code js-file-line"><span class="cm">         * @property defaults.behavior.userSelect</span></td>
      </tr>
      <tr>
        <td id="L2732" class="blob-num js-line-number" data-line-number="2732"></td>
        <td id="LC2732" class="blob-code js-file-line"><span class="cm">         * @type {String}</span></td>
      </tr>
      <tr>
        <td id="L2733" class="blob-num js-line-number" data-line-number="2733"></td>
        <td id="LC2733" class="blob-code js-file-line"><span class="cm">         * @default &#39;none&#39;</span></td>
      </tr>
      <tr>
        <td id="L2734" class="blob-num js-line-number" data-line-number="2734"></td>
        <td id="LC2734" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L2735" class="blob-num js-line-number" data-line-number="2735"></td>
        <td id="LC2735" class="blob-code js-file-line">        <span class="nx">userSelect</span><span class="o">:</span> <span class="s1">&#39;none&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2736" class="blob-num js-line-number" data-line-number="2736"></td>
        <td id="LC2736" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2737" class="blob-num js-line-number" data-line-number="2737"></td>
        <td id="LC2737" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2738" class="blob-num js-line-number" data-line-number="2738"></td>
        <td id="LC2738" class="blob-code js-file-line"><span class="cm">         * Specifies whether and how a given region can be manipulated by the user (for instance, by panning or zooming).</span></td>
      </tr>
      <tr>
        <td id="L2739" class="blob-num js-line-number" data-line-number="2739"></td>
        <td id="LC2739" class="blob-code js-file-line"><span class="cm">         * Used by Chrome 35&gt; and IE10&gt;. By default this makes the element blocking any touch event.</span></td>
      </tr>
      <tr>
        <td id="L2740" class="blob-num js-line-number" data-line-number="2740"></td>
        <td id="LC2740" class="blob-code js-file-line"><span class="cm">         * @property defaults.behavior.touchAction</span></td>
      </tr>
      <tr>
        <td id="L2741" class="blob-num js-line-number" data-line-number="2741"></td>
        <td id="LC2741" class="blob-code js-file-line"><span class="cm">         * @type {String}</span></td>
      </tr>
      <tr>
        <td id="L2742" class="blob-num js-line-number" data-line-number="2742"></td>
        <td id="LC2742" class="blob-code js-file-line"><span class="cm">         * @default: &#39;pan-y&#39;</span></td>
      </tr>
      <tr>
        <td id="L2743" class="blob-num js-line-number" data-line-number="2743"></td>
        <td id="LC2743" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L2744" class="blob-num js-line-number" data-line-number="2744"></td>
        <td id="LC2744" class="blob-code js-file-line">        <span class="nx">touchAction</span><span class="o">:</span> <span class="s1">&#39;pan-y&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2745" class="blob-num js-line-number" data-line-number="2745"></td>
        <td id="LC2745" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2746" class="blob-num js-line-number" data-line-number="2746"></td>
        <td id="LC2746" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2747" class="blob-num js-line-number" data-line-number="2747"></td>
        <td id="LC2747" class="blob-code js-file-line"><span class="cm">         * Disables the default callout shown when you touch and hold a touch target.</span></td>
      </tr>
      <tr>
        <td id="L2748" class="blob-num js-line-number" data-line-number="2748"></td>
        <td id="LC2748" class="blob-code js-file-line"><span class="cm">         * On iOS, when you touch and hold a touch target such as a link, Safari displays</span></td>
      </tr>
      <tr>
        <td id="L2749" class="blob-num js-line-number" data-line-number="2749"></td>
        <td id="LC2749" class="blob-code js-file-line"><span class="cm">         * a callout containing information about the link. This property allows you to disable that callout.</span></td>
      </tr>
      <tr>
        <td id="L2750" class="blob-num js-line-number" data-line-number="2750"></td>
        <td id="LC2750" class="blob-code js-file-line"><span class="cm">         * @property defaults.behavior.touchCallout</span></td>
      </tr>
      <tr>
        <td id="L2751" class="blob-num js-line-number" data-line-number="2751"></td>
        <td id="LC2751" class="blob-code js-file-line"><span class="cm">         * @type {String}</span></td>
      </tr>
      <tr>
        <td id="L2752" class="blob-num js-line-number" data-line-number="2752"></td>
        <td id="LC2752" class="blob-code js-file-line"><span class="cm">         * @default &#39;none&#39;</span></td>
      </tr>
      <tr>
        <td id="L2753" class="blob-num js-line-number" data-line-number="2753"></td>
        <td id="LC2753" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L2754" class="blob-num js-line-number" data-line-number="2754"></td>
        <td id="LC2754" class="blob-code js-file-line">        <span class="nx">touchCallout</span><span class="o">:</span> <span class="s1">&#39;none&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2755" class="blob-num js-line-number" data-line-number="2755"></td>
        <td id="LC2755" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2756" class="blob-num js-line-number" data-line-number="2756"></td>
        <td id="LC2756" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2757" class="blob-num js-line-number" data-line-number="2757"></td>
        <td id="LC2757" class="blob-code js-file-line"><span class="cm">         * Specifies whether zooming is enabled. Used by IE10&gt;</span></td>
      </tr>
      <tr>
        <td id="L2758" class="blob-num js-line-number" data-line-number="2758"></td>
        <td id="LC2758" class="blob-code js-file-line"><span class="cm">         * @property defaults.behavior.contentZooming</span></td>
      </tr>
      <tr>
        <td id="L2759" class="blob-num js-line-number" data-line-number="2759"></td>
        <td id="LC2759" class="blob-code js-file-line"><span class="cm">         * @type {String}</span></td>
      </tr>
      <tr>
        <td id="L2760" class="blob-num js-line-number" data-line-number="2760"></td>
        <td id="LC2760" class="blob-code js-file-line"><span class="cm">         * @default &#39;none&#39;</span></td>
      </tr>
      <tr>
        <td id="L2761" class="blob-num js-line-number" data-line-number="2761"></td>
        <td id="LC2761" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L2762" class="blob-num js-line-number" data-line-number="2762"></td>
        <td id="LC2762" class="blob-code js-file-line">        <span class="nx">contentZooming</span><span class="o">:</span> <span class="s1">&#39;none&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2763" class="blob-num js-line-number" data-line-number="2763"></td>
        <td id="LC2763" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2764" class="blob-num js-line-number" data-line-number="2764"></td>
        <td id="LC2764" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2765" class="blob-num js-line-number" data-line-number="2765"></td>
        <td id="LC2765" class="blob-code js-file-line"><span class="cm">         * Specifies that an entire element should be draggable instead of its contents.</span></td>
      </tr>
      <tr>
        <td id="L2766" class="blob-num js-line-number" data-line-number="2766"></td>
        <td id="LC2766" class="blob-code js-file-line"><span class="cm">         * Mainly for desktop browsers.</span></td>
      </tr>
      <tr>
        <td id="L2767" class="blob-num js-line-number" data-line-number="2767"></td>
        <td id="LC2767" class="blob-code js-file-line"><span class="cm">         * @property defaults.behavior.userDrag</span></td>
      </tr>
      <tr>
        <td id="L2768" class="blob-num js-line-number" data-line-number="2768"></td>
        <td id="LC2768" class="blob-code js-file-line"><span class="cm">         * @type {String}</span></td>
      </tr>
      <tr>
        <td id="L2769" class="blob-num js-line-number" data-line-number="2769"></td>
        <td id="LC2769" class="blob-code js-file-line"><span class="cm">         * @default &#39;none&#39;</span></td>
      </tr>
      <tr>
        <td id="L2770" class="blob-num js-line-number" data-line-number="2770"></td>
        <td id="LC2770" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L2771" class="blob-num js-line-number" data-line-number="2771"></td>
        <td id="LC2771" class="blob-code js-file-line">        <span class="nx">userDrag</span><span class="o">:</span> <span class="s1">&#39;none&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L2772" class="blob-num js-line-number" data-line-number="2772"></td>
        <td id="LC2772" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2773" class="blob-num js-line-number" data-line-number="2773"></td>
        <td id="LC2773" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2774" class="blob-num js-line-number" data-line-number="2774"></td>
        <td id="LC2774" class="blob-code js-file-line"><span class="cm">         * Overrides the highlight color shown when the user taps a link or a JavaScript</span></td>
      </tr>
      <tr>
        <td id="L2775" class="blob-num js-line-number" data-line-number="2775"></td>
        <td id="LC2775" class="blob-code js-file-line"><span class="cm">         * clickable element in Safari on iPhone. This property obeys the alpha value, if specified.</span></td>
      </tr>
      <tr>
        <td id="L2776" class="blob-num js-line-number" data-line-number="2776"></td>
        <td id="LC2776" class="blob-code js-file-line"><span class="cm">         *</span></td>
      </tr>
      <tr>
        <td id="L2777" class="blob-num js-line-number" data-line-number="2777"></td>
        <td id="LC2777" class="blob-code js-file-line"><span class="cm">         * If you don&#39;t specify an alpha value, Safari on iPhone applies a default alpha value</span></td>
      </tr>
      <tr>
        <td id="L2778" class="blob-num js-line-number" data-line-number="2778"></td>
        <td id="LC2778" class="blob-code js-file-line"><span class="cm">         * to the color. To disable tap highlighting, set the alpha value to 0 (invisible).</span></td>
      </tr>
      <tr>
        <td id="L2779" class="blob-num js-line-number" data-line-number="2779"></td>
        <td id="LC2779" class="blob-code js-file-line"><span class="cm">         * If you set the alpha value to 1.0 (opaque), the element is not visible when tapped.</span></td>
      </tr>
      <tr>
        <td id="L2780" class="blob-num js-line-number" data-line-number="2780"></td>
        <td id="LC2780" class="blob-code js-file-line"><span class="cm">         * @property defaults.behavior.tapHighlightColor</span></td>
      </tr>
      <tr>
        <td id="L2781" class="blob-num js-line-number" data-line-number="2781"></td>
        <td id="LC2781" class="blob-code js-file-line"><span class="cm">         * @type {String}</span></td>
      </tr>
      <tr>
        <td id="L2782" class="blob-num js-line-number" data-line-number="2782"></td>
        <td id="LC2782" class="blob-code js-file-line"><span class="cm">         * @default &#39;rgba(0,0,0,0)&#39;</span></td>
      </tr>
      <tr>
        <td id="L2783" class="blob-num js-line-number" data-line-number="2783"></td>
        <td id="LC2783" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L2784" class="blob-num js-line-number" data-line-number="2784"></td>
        <td id="LC2784" class="blob-code js-file-line">        <span class="nx">tapHighlightColor</span><span class="o">:</span> <span class="s1">&#39;rgba(0,0,0,0)&#39;</span></td>
      </tr>
      <tr>
        <td id="L2785" class="blob-num js-line-number" data-line-number="2785"></td>
        <td id="LC2785" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2786" class="blob-num js-line-number" data-line-number="2786"></td>
        <td id="LC2786" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L2787" class="blob-num js-line-number" data-line-number="2787"></td>
        <td id="LC2787" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2788" class="blob-num js-line-number" data-line-number="2788"></td>
        <td id="LC2788" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2789" class="blob-num js-line-number" data-line-number="2789"></td>
        <td id="LC2789" class="blob-code js-file-line"><span class="cm"> * hammer document where the base events are added at</span></td>
      </tr>
      <tr>
        <td id="L2790" class="blob-num js-line-number" data-line-number="2790"></td>
        <td id="LC2790" class="blob-code js-file-line"><span class="cm"> * @property DOCUMENT</span></td>
      </tr>
      <tr>
        <td id="L2791" class="blob-num js-line-number" data-line-number="2791"></td>
        <td id="LC2791" class="blob-code js-file-line"><span class="cm"> * @type {HTMLElement}</span></td>
      </tr>
      <tr>
        <td id="L2792" class="blob-num js-line-number" data-line-number="2792"></td>
        <td id="LC2792" class="blob-code js-file-line"><span class="cm"> * @default window.document</span></td>
      </tr>
      <tr>
        <td id="L2793" class="blob-num js-line-number" data-line-number="2793"></td>
        <td id="LC2793" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2794" class="blob-num js-line-number" data-line-number="2794"></td>
        <td id="LC2794" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">DOCUMENT</span> <span class="o">=</span> <span class="nb">document</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2795" class="blob-num js-line-number" data-line-number="2795"></td>
        <td id="LC2795" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2796" class="blob-num js-line-number" data-line-number="2796"></td>
        <td id="LC2796" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2797" class="blob-num js-line-number" data-line-number="2797"></td>
        <td id="LC2797" class="blob-code js-file-line"><span class="cm"> * detect support for pointer events</span></td>
      </tr>
      <tr>
        <td id="L2798" class="blob-num js-line-number" data-line-number="2798"></td>
        <td id="LC2798" class="blob-code js-file-line"><span class="cm"> * @property HAS_POINTEREVENTS</span></td>
      </tr>
      <tr>
        <td id="L2799" class="blob-num js-line-number" data-line-number="2799"></td>
        <td id="LC2799" class="blob-code js-file-line"><span class="cm"> * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L2800" class="blob-num js-line-number" data-line-number="2800"></td>
        <td id="LC2800" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2801" class="blob-num js-line-number" data-line-number="2801"></td>
        <td id="LC2801" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">HAS_POINTEREVENTS</span> <span class="o">=</span> <span class="nx">navigator</span><span class="p">.</span><span class="nx">pointerEnabled</span> <span class="o">||</span> <span class="nx">navigator</span><span class="p">.</span><span class="nx">msPointerEnabled</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2802" class="blob-num js-line-number" data-line-number="2802"></td>
        <td id="LC2802" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2803" class="blob-num js-line-number" data-line-number="2803"></td>
        <td id="LC2803" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2804" class="blob-num js-line-number" data-line-number="2804"></td>
        <td id="LC2804" class="blob-code js-file-line"><span class="cm"> * detect support for touch events</span></td>
      </tr>
      <tr>
        <td id="L2805" class="blob-num js-line-number" data-line-number="2805"></td>
        <td id="LC2805" class="blob-code js-file-line"><span class="cm"> * @property HAS_TOUCHEVENTS</span></td>
      </tr>
      <tr>
        <td id="L2806" class="blob-num js-line-number" data-line-number="2806"></td>
        <td id="LC2806" class="blob-code js-file-line"><span class="cm"> * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L2807" class="blob-num js-line-number" data-line-number="2807"></td>
        <td id="LC2807" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2808" class="blob-num js-line-number" data-line-number="2808"></td>
        <td id="LC2808" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">HAS_TOUCHEVENTS</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;ontouchstart&#39;</span> <span class="k">in</span> <span class="nb">window</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2809" class="blob-num js-line-number" data-line-number="2809"></td>
        <td id="LC2809" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2810" class="blob-num js-line-number" data-line-number="2810"></td>
        <td id="LC2810" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2811" class="blob-num js-line-number" data-line-number="2811"></td>
        <td id="LC2811" class="blob-code js-file-line"><span class="cm"> * detect mobile browsers</span></td>
      </tr>
      <tr>
        <td id="L2812" class="blob-num js-line-number" data-line-number="2812"></td>
        <td id="LC2812" class="blob-code js-file-line"><span class="cm"> * @property IS_MOBILE</span></td>
      </tr>
      <tr>
        <td id="L2813" class="blob-num js-line-number" data-line-number="2813"></td>
        <td id="LC2813" class="blob-code js-file-line"><span class="cm"> * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L2814" class="blob-num js-line-number" data-line-number="2814"></td>
        <td id="LC2814" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2815" class="blob-num js-line-number" data-line-number="2815"></td>
        <td id="LC2815" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">IS_MOBILE</span> <span class="o">=</span> <span class="sr">/mobile|tablet|ip(ad|hone|od)|android|silk/i</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">navigator</span><span class="p">.</span><span class="nx">userAgent</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2816" class="blob-num js-line-number" data-line-number="2816"></td>
        <td id="LC2816" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2817" class="blob-num js-line-number" data-line-number="2817"></td>
        <td id="LC2817" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2818" class="blob-num js-line-number" data-line-number="2818"></td>
        <td id="LC2818" class="blob-code js-file-line"><span class="cm"> * detect if we want to support mouseevents at all</span></td>
      </tr>
      <tr>
        <td id="L2819" class="blob-num js-line-number" data-line-number="2819"></td>
        <td id="LC2819" class="blob-code js-file-line"><span class="cm"> * @property NO_MOUSEEVENTS</span></td>
      </tr>
      <tr>
        <td id="L2820" class="blob-num js-line-number" data-line-number="2820"></td>
        <td id="LC2820" class="blob-code js-file-line"><span class="cm"> * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L2821" class="blob-num js-line-number" data-line-number="2821"></td>
        <td id="LC2821" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2822" class="blob-num js-line-number" data-line-number="2822"></td>
        <td id="LC2822" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">NO_MOUSEEVENTS</span> <span class="o">=</span> <span class="p">(</span><span class="nx">Hammer</span><span class="p">.</span><span class="nx">HAS_TOUCHEVENTS</span> <span class="o">&amp;&amp;</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">IS_MOBILE</span><span class="p">)</span> <span class="o">||</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">HAS_POINTEREVENTS</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2823" class="blob-num js-line-number" data-line-number="2823"></td>
        <td id="LC2823" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2824" class="blob-num js-line-number" data-line-number="2824"></td>
        <td id="LC2824" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2825" class="blob-num js-line-number" data-line-number="2825"></td>
        <td id="LC2825" class="blob-code js-file-line"><span class="cm"> * interval in which Hammer recalculates current velocity/direction/angle in ms</span></td>
      </tr>
      <tr>
        <td id="L2826" class="blob-num js-line-number" data-line-number="2826"></td>
        <td id="LC2826" class="blob-code js-file-line"><span class="cm"> * @property CALCULATE_INTERVAL</span></td>
      </tr>
      <tr>
        <td id="L2827" class="blob-num js-line-number" data-line-number="2827"></td>
        <td id="LC2827" class="blob-code js-file-line"><span class="cm"> * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L2828" class="blob-num js-line-number" data-line-number="2828"></td>
        <td id="LC2828" class="blob-code js-file-line"><span class="cm"> * @default 25</span></td>
      </tr>
      <tr>
        <td id="L2829" class="blob-num js-line-number" data-line-number="2829"></td>
        <td id="LC2829" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2830" class="blob-num js-line-number" data-line-number="2830"></td>
        <td id="LC2830" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">CALCULATE_INTERVAL</span> <span class="o">=</span> <span class="mi">25</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2831" class="blob-num js-line-number" data-line-number="2831"></td>
        <td id="LC2831" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2832" class="blob-num js-line-number" data-line-number="2832"></td>
        <td id="LC2832" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2833" class="blob-num js-line-number" data-line-number="2833"></td>
        <td id="LC2833" class="blob-code js-file-line"><span class="cm"> * eventtypes per touchevent (start, move, end) are filled by `Event.determineEventTypes` on `setup`</span></td>
      </tr>
      <tr>
        <td id="L2834" class="blob-num js-line-number" data-line-number="2834"></td>
        <td id="LC2834" class="blob-code js-file-line"><span class="cm"> * the object contains the DOM event names per type (`EVENT_START`, `EVENT_MOVE`, `EVENT_END`)</span></td>
      </tr>
      <tr>
        <td id="L2835" class="blob-num js-line-number" data-line-number="2835"></td>
        <td id="LC2835" class="blob-code js-file-line"><span class="cm"> * @property EVENT_TYPES</span></td>
      </tr>
      <tr>
        <td id="L2836" class="blob-num js-line-number" data-line-number="2836"></td>
        <td id="LC2836" class="blob-code js-file-line"><span class="cm"> * @private</span></td>
      </tr>
      <tr>
        <td id="L2837" class="blob-num js-line-number" data-line-number="2837"></td>
        <td id="LC2837" class="blob-code js-file-line"><span class="cm"> * @writeOnce</span></td>
      </tr>
      <tr>
        <td id="L2838" class="blob-num js-line-number" data-line-number="2838"></td>
        <td id="LC2838" class="blob-code js-file-line"><span class="cm"> * @type {Object}</span></td>
      </tr>
      <tr>
        <td id="L2839" class="blob-num js-line-number" data-line-number="2839"></td>
        <td id="LC2839" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2840" class="blob-num js-line-number" data-line-number="2840"></td>
        <td id="LC2840" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">EVENT_TYPES</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L2841" class="blob-num js-line-number" data-line-number="2841"></td>
        <td id="LC2841" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2842" class="blob-num js-line-number" data-line-number="2842"></td>
        <td id="LC2842" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2843" class="blob-num js-line-number" data-line-number="2843"></td>
        <td id="LC2843" class="blob-code js-file-line"><span class="cm"> * direction strings, for safe comparisons</span></td>
      </tr>
      <tr>
        <td id="L2844" class="blob-num js-line-number" data-line-number="2844"></td>
        <td id="LC2844" class="blob-code js-file-line"><span class="cm"> * @property DIRECTION_DOWN|LEFT|UP|RIGHT</span></td>
      </tr>
      <tr>
        <td id="L2845" class="blob-num js-line-number" data-line-number="2845"></td>
        <td id="LC2845" class="blob-code js-file-line"><span class="cm"> * @final</span></td>
      </tr>
      <tr>
        <td id="L2846" class="blob-num js-line-number" data-line-number="2846"></td>
        <td id="LC2846" class="blob-code js-file-line"><span class="cm"> * @type {String}</span></td>
      </tr>
      <tr>
        <td id="L2847" class="blob-num js-line-number" data-line-number="2847"></td>
        <td id="LC2847" class="blob-code js-file-line"><span class="cm"> * @default &#39;down&#39; &#39;left&#39; &#39;up&#39; &#39;right&#39;</span></td>
      </tr>
      <tr>
        <td id="L2848" class="blob-num js-line-number" data-line-number="2848"></td>
        <td id="LC2848" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2849" class="blob-num js-line-number" data-line-number="2849"></td>
        <td id="LC2849" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">DIRECTION_DOWN</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">DIRECTION_DOWN</span> <span class="o">=</span> <span class="s1">&#39;down&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2850" class="blob-num js-line-number" data-line-number="2850"></td>
        <td id="LC2850" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">DIRECTION_LEFT</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">DIRECTION_LEFT</span> <span class="o">=</span> <span class="s1">&#39;left&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2851" class="blob-num js-line-number" data-line-number="2851"></td>
        <td id="LC2851" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">DIRECTION_UP</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">DIRECTION_UP</span> <span class="o">=</span> <span class="s1">&#39;up&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2852" class="blob-num js-line-number" data-line-number="2852"></td>
        <td id="LC2852" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">DIRECTION_RIGHT</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">DIRECTION_RIGHT</span> <span class="o">=</span> <span class="s1">&#39;right&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2853" class="blob-num js-line-number" data-line-number="2853"></td>
        <td id="LC2853" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2854" class="blob-num js-line-number" data-line-number="2854"></td>
        <td id="LC2854" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2855" class="blob-num js-line-number" data-line-number="2855"></td>
        <td id="LC2855" class="blob-code js-file-line"><span class="cm"> * pointertype strings, for safe comparisons</span></td>
      </tr>
      <tr>
        <td id="L2856" class="blob-num js-line-number" data-line-number="2856"></td>
        <td id="LC2856" class="blob-code js-file-line"><span class="cm"> * @property POINTER_MOUSE|TOUCH|PEN</span></td>
      </tr>
      <tr>
        <td id="L2857" class="blob-num js-line-number" data-line-number="2857"></td>
        <td id="LC2857" class="blob-code js-file-line"><span class="cm"> * @final</span></td>
      </tr>
      <tr>
        <td id="L2858" class="blob-num js-line-number" data-line-number="2858"></td>
        <td id="LC2858" class="blob-code js-file-line"><span class="cm"> * @type {String}</span></td>
      </tr>
      <tr>
        <td id="L2859" class="blob-num js-line-number" data-line-number="2859"></td>
        <td id="LC2859" class="blob-code js-file-line"><span class="cm"> * @default &#39;mouse&#39; &#39;touch&#39; &#39;pen&#39;</span></td>
      </tr>
      <tr>
        <td id="L2860" class="blob-num js-line-number" data-line-number="2860"></td>
        <td id="LC2860" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2861" class="blob-num js-line-number" data-line-number="2861"></td>
        <td id="LC2861" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">POINTER_MOUSE</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">POINTER_MOUSE</span> <span class="o">=</span> <span class="s1">&#39;mouse&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2862" class="blob-num js-line-number" data-line-number="2862"></td>
        <td id="LC2862" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">POINTER_TOUCH</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">POINTER_TOUCH</span> <span class="o">=</span> <span class="s1">&#39;touch&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2863" class="blob-num js-line-number" data-line-number="2863"></td>
        <td id="LC2863" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">POINTER_PEN</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">POINTER_PEN</span> <span class="o">=</span> <span class="s1">&#39;pen&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2864" class="blob-num js-line-number" data-line-number="2864"></td>
        <td id="LC2864" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2865" class="blob-num js-line-number" data-line-number="2865"></td>
        <td id="LC2865" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2866" class="blob-num js-line-number" data-line-number="2866"></td>
        <td id="LC2866" class="blob-code js-file-line"><span class="cm"> * eventtypes</span></td>
      </tr>
      <tr>
        <td id="L2867" class="blob-num js-line-number" data-line-number="2867"></td>
        <td id="LC2867" class="blob-code js-file-line"><span class="cm"> * @property EVENT_START|MOVE|END|RELEASE|TOUCH</span></td>
      </tr>
      <tr>
        <td id="L2868" class="blob-num js-line-number" data-line-number="2868"></td>
        <td id="LC2868" class="blob-code js-file-line"><span class="cm"> * @final</span></td>
      </tr>
      <tr>
        <td id="L2869" class="blob-num js-line-number" data-line-number="2869"></td>
        <td id="LC2869" class="blob-code js-file-line"><span class="cm"> * @type {String}</span></td>
      </tr>
      <tr>
        <td id="L2870" class="blob-num js-line-number" data-line-number="2870"></td>
        <td id="LC2870" class="blob-code js-file-line"><span class="cm"> * @default &#39;start&#39; &#39;change&#39; &#39;move&#39; &#39;end&#39; &#39;release&#39; &#39;touch&#39;</span></td>
      </tr>
      <tr>
        <td id="L2871" class="blob-num js-line-number" data-line-number="2871"></td>
        <td id="LC2871" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2872" class="blob-num js-line-number" data-line-number="2872"></td>
        <td id="LC2872" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">EVENT_START</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">EVENT_START</span> <span class="o">=</span> <span class="s1">&#39;start&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2873" class="blob-num js-line-number" data-line-number="2873"></td>
        <td id="LC2873" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">EVENT_MOVE</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">EVENT_MOVE</span> <span class="o">=</span> <span class="s1">&#39;move&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2874" class="blob-num js-line-number" data-line-number="2874"></td>
        <td id="LC2874" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">EVENT_END</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">EVENT_END</span> <span class="o">=</span> <span class="s1">&#39;end&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2875" class="blob-num js-line-number" data-line-number="2875"></td>
        <td id="LC2875" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">EVENT_RELEASE</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">EVENT_RELEASE</span> <span class="o">=</span> <span class="s1">&#39;release&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2876" class="blob-num js-line-number" data-line-number="2876"></td>
        <td id="LC2876" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">EVENT_TOUCH</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">EVENT_TOUCH</span> <span class="o">=</span> <span class="s1">&#39;touch&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2877" class="blob-num js-line-number" data-line-number="2877"></td>
        <td id="LC2877" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2878" class="blob-num js-line-number" data-line-number="2878"></td>
        <td id="LC2878" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2879" class="blob-num js-line-number" data-line-number="2879"></td>
        <td id="LC2879" class="blob-code js-file-line"><span class="cm"> * if the window events are set...</span></td>
      </tr>
      <tr>
        <td id="L2880" class="blob-num js-line-number" data-line-number="2880"></td>
        <td id="LC2880" class="blob-code js-file-line"><span class="cm"> * @property READY</span></td>
      </tr>
      <tr>
        <td id="L2881" class="blob-num js-line-number" data-line-number="2881"></td>
        <td id="LC2881" class="blob-code js-file-line"><span class="cm"> * @writeOnce</span></td>
      </tr>
      <tr>
        <td id="L2882" class="blob-num js-line-number" data-line-number="2882"></td>
        <td id="LC2882" class="blob-code js-file-line"><span class="cm"> * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L2883" class="blob-num js-line-number" data-line-number="2883"></td>
        <td id="LC2883" class="blob-code js-file-line"><span class="cm"> * @default false</span></td>
      </tr>
      <tr>
        <td id="L2884" class="blob-num js-line-number" data-line-number="2884"></td>
        <td id="LC2884" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2885" class="blob-num js-line-number" data-line-number="2885"></td>
        <td id="LC2885" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">READY</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2886" class="blob-num js-line-number" data-line-number="2886"></td>
        <td id="LC2886" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2887" class="blob-num js-line-number" data-line-number="2887"></td>
        <td id="LC2887" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2888" class="blob-num js-line-number" data-line-number="2888"></td>
        <td id="LC2888" class="blob-code js-file-line"><span class="cm"> * plugins namespace</span></td>
      </tr>
      <tr>
        <td id="L2889" class="blob-num js-line-number" data-line-number="2889"></td>
        <td id="LC2889" class="blob-code js-file-line"><span class="cm"> * @property plugins</span></td>
      </tr>
      <tr>
        <td id="L2890" class="blob-num js-line-number" data-line-number="2890"></td>
        <td id="LC2890" class="blob-code js-file-line"><span class="cm"> * @type {Object}</span></td>
      </tr>
      <tr>
        <td id="L2891" class="blob-num js-line-number" data-line-number="2891"></td>
        <td id="LC2891" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2892" class="blob-num js-line-number" data-line-number="2892"></td>
        <td id="LC2892" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">plugins</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">plugins</span> <span class="o">||</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L2893" class="blob-num js-line-number" data-line-number="2893"></td>
        <td id="LC2893" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2894" class="blob-num js-line-number" data-line-number="2894"></td>
        <td id="LC2894" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2895" class="blob-num js-line-number" data-line-number="2895"></td>
        <td id="LC2895" class="blob-code js-file-line"><span class="cm"> * gestures namespace</span></td>
      </tr>
      <tr>
        <td id="L2896" class="blob-num js-line-number" data-line-number="2896"></td>
        <td id="LC2896" class="blob-code js-file-line"><span class="cm"> * see `/gestures` for the definitions</span></td>
      </tr>
      <tr>
        <td id="L2897" class="blob-num js-line-number" data-line-number="2897"></td>
        <td id="LC2897" class="blob-code js-file-line"><span class="cm"> * @property gestures</span></td>
      </tr>
      <tr>
        <td id="L2898" class="blob-num js-line-number" data-line-number="2898"></td>
        <td id="LC2898" class="blob-code js-file-line"><span class="cm"> * @type {Object}</span></td>
      </tr>
      <tr>
        <td id="L2899" class="blob-num js-line-number" data-line-number="2899"></td>
        <td id="LC2899" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2900" class="blob-num js-line-number" data-line-number="2900"></td>
        <td id="LC2900" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span> <span class="o">||</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L2901" class="blob-num js-line-number" data-line-number="2901"></td>
        <td id="LC2901" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2902" class="blob-num js-line-number" data-line-number="2902"></td>
        <td id="LC2902" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2903" class="blob-num js-line-number" data-line-number="2903"></td>
        <td id="LC2903" class="blob-code js-file-line"><span class="cm"> * setup events to detect gestures on the document</span></td>
      </tr>
      <tr>
        <td id="L2904" class="blob-num js-line-number" data-line-number="2904"></td>
        <td id="LC2904" class="blob-code js-file-line"><span class="cm"> * this function is called when creating an new instance</span></td>
      </tr>
      <tr>
        <td id="L2905" class="blob-num js-line-number" data-line-number="2905"></td>
        <td id="LC2905" class="blob-code js-file-line"><span class="cm"> * @private</span></td>
      </tr>
      <tr>
        <td id="L2906" class="blob-num js-line-number" data-line-number="2906"></td>
        <td id="LC2906" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2907" class="blob-num js-line-number" data-line-number="2907"></td>
        <td id="LC2907" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">setup</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2908" class="blob-num js-line-number" data-line-number="2908"></td>
        <td id="LC2908" class="blob-code js-file-line">    <span class="k">if</span><span class="p">(</span><span class="nx">Hammer</span><span class="p">.</span><span class="nx">READY</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2909" class="blob-num js-line-number" data-line-number="2909"></td>
        <td id="LC2909" class="blob-code js-file-line">        <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2910" class="blob-num js-line-number" data-line-number="2910"></td>
        <td id="LC2910" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2911" class="blob-num js-line-number" data-line-number="2911"></td>
        <td id="LC2911" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2912" class="blob-num js-line-number" data-line-number="2912"></td>
        <td id="LC2912" class="blob-code js-file-line">    <span class="c1">// find what eventtypes we add listeners to</span></td>
      </tr>
      <tr>
        <td id="L2913" class="blob-num js-line-number" data-line-number="2913"></td>
        <td id="LC2913" class="blob-code js-file-line">    <span class="nx">Event</span><span class="p">.</span><span class="nx">determineEventTypes</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L2914" class="blob-num js-line-number" data-line-number="2914"></td>
        <td id="LC2914" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2915" class="blob-num js-line-number" data-line-number="2915"></td>
        <td id="LC2915" class="blob-code js-file-line">    <span class="c1">// Register all gestures inside Hammer.gestures</span></td>
      </tr>
      <tr>
        <td id="L2916" class="blob-num js-line-number" data-line-number="2916"></td>
        <td id="LC2916" class="blob-code js-file-line">    <span class="nx">Utils</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">gesture</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2917" class="blob-num js-line-number" data-line-number="2917"></td>
        <td id="LC2917" class="blob-code js-file-line">        <span class="nx">Detection</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="nx">gesture</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2918" class="blob-num js-line-number" data-line-number="2918"></td>
        <td id="LC2918" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L2919" class="blob-num js-line-number" data-line-number="2919"></td>
        <td id="LC2919" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2920" class="blob-num js-line-number" data-line-number="2920"></td>
        <td id="LC2920" class="blob-code js-file-line">    <span class="c1">// Add touch events on the document</span></td>
      </tr>
      <tr>
        <td id="L2921" class="blob-num js-line-number" data-line-number="2921"></td>
        <td id="LC2921" class="blob-code js-file-line">    <span class="nx">Event</span><span class="p">.</span><span class="nx">onTouch</span><span class="p">(</span><span class="nx">Hammer</span><span class="p">.</span><span class="nx">DOCUMENT</span><span class="p">,</span> <span class="nx">EVENT_MOVE</span><span class="p">,</span> <span class="nx">Detection</span><span class="p">.</span><span class="nx">detect</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2922" class="blob-num js-line-number" data-line-number="2922"></td>
        <td id="LC2922" class="blob-code js-file-line">    <span class="nx">Event</span><span class="p">.</span><span class="nx">onTouch</span><span class="p">(</span><span class="nx">Hammer</span><span class="p">.</span><span class="nx">DOCUMENT</span><span class="p">,</span> <span class="nx">EVENT_END</span><span class="p">,</span> <span class="nx">Detection</span><span class="p">.</span><span class="nx">detect</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2923" class="blob-num js-line-number" data-line-number="2923"></td>
        <td id="LC2923" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2924" class="blob-num js-line-number" data-line-number="2924"></td>
        <td id="LC2924" class="blob-code js-file-line">    <span class="c1">// Hammer is ready...!</span></td>
      </tr>
      <tr>
        <td id="L2925" class="blob-num js-line-number" data-line-number="2925"></td>
        <td id="LC2925" class="blob-code js-file-line">    <span class="nx">Hammer</span><span class="p">.</span><span class="nx">READY</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2926" class="blob-num js-line-number" data-line-number="2926"></td>
        <td id="LC2926" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2927" class="blob-num js-line-number" data-line-number="2927"></td>
        <td id="LC2927" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2928" class="blob-num js-line-number" data-line-number="2928"></td>
        <td id="LC2928" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2929" class="blob-num js-line-number" data-line-number="2929"></td>
        <td id="LC2929" class="blob-code js-file-line"><span class="cm"> * @module hammer</span></td>
      </tr>
      <tr>
        <td id="L2930" class="blob-num js-line-number" data-line-number="2930"></td>
        <td id="LC2930" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L2931" class="blob-num js-line-number" data-line-number="2931"></td>
        <td id="LC2931" class="blob-code js-file-line"><span class="cm"> * @class Utils</span></td>
      </tr>
      <tr>
        <td id="L2932" class="blob-num js-line-number" data-line-number="2932"></td>
        <td id="LC2932" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L2933" class="blob-num js-line-number" data-line-number="2933"></td>
        <td id="LC2933" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L2934" class="blob-num js-line-number" data-line-number="2934"></td>
        <td id="LC2934" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Utils</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">utils</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2935" class="blob-num js-line-number" data-line-number="2935"></td>
        <td id="LC2935" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2936" class="blob-num js-line-number" data-line-number="2936"></td>
        <td id="LC2936" class="blob-code js-file-line"><span class="cm">     * extend method, could also be used for cloning when `dest` is an empty object.</span></td>
      </tr>
      <tr>
        <td id="L2937" class="blob-num js-line-number" data-line-number="2937"></td>
        <td id="LC2937" class="blob-code js-file-line"><span class="cm">     * changes the dest object</span></td>
      </tr>
      <tr>
        <td id="L2938" class="blob-num js-line-number" data-line-number="2938"></td>
        <td id="LC2938" class="blob-code js-file-line"><span class="cm">     * @method extend</span></td>
      </tr>
      <tr>
        <td id="L2939" class="blob-num js-line-number" data-line-number="2939"></td>
        <td id="LC2939" class="blob-code js-file-line"><span class="cm">     * @param {Object} dest</span></td>
      </tr>
      <tr>
        <td id="L2940" class="blob-num js-line-number" data-line-number="2940"></td>
        <td id="LC2940" class="blob-code js-file-line"><span class="cm">     * @param {Object} src</span></td>
      </tr>
      <tr>
        <td id="L2941" class="blob-num js-line-number" data-line-number="2941"></td>
        <td id="LC2941" class="blob-code js-file-line"><span class="cm">     * @param {Boolean} [merge=false]  do a merge</span></td>
      </tr>
      <tr>
        <td id="L2942" class="blob-num js-line-number" data-line-number="2942"></td>
        <td id="LC2942" class="blob-code js-file-line"><span class="cm">     * @return {Object} dest</span></td>
      </tr>
      <tr>
        <td id="L2943" class="blob-num js-line-number" data-line-number="2943"></td>
        <td id="LC2943" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L2944" class="blob-num js-line-number" data-line-number="2944"></td>
        <td id="LC2944" class="blob-code js-file-line">    <span class="nx">extend</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">extend</span><span class="p">(</span><span class="nx">dest</span><span class="p">,</span> <span class="nx">src</span><span class="p">,</span> <span class="nx">merge</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2945" class="blob-num js-line-number" data-line-number="2945"></td>
        <td id="LC2945" class="blob-code js-file-line">        <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">src</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2946" class="blob-num js-line-number" data-line-number="2946"></td>
        <td id="LC2946" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">src</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span><span class="nx">dest</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">undefined</span> <span class="o">&amp;&amp;</span> <span class="nx">merge</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2947" class="blob-num js-line-number" data-line-number="2947"></td>
        <td id="LC2947" class="blob-code js-file-line">                <span class="k">continue</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2948" class="blob-num js-line-number" data-line-number="2948"></td>
        <td id="LC2948" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2949" class="blob-num js-line-number" data-line-number="2949"></td>
        <td id="LC2949" class="blob-code js-file-line">            <span class="nx">dest</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">=</span> <span class="nx">src</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L2950" class="blob-num js-line-number" data-line-number="2950"></td>
        <td id="LC2950" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2951" class="blob-num js-line-number" data-line-number="2951"></td>
        <td id="LC2951" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">dest</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2952" class="blob-num js-line-number" data-line-number="2952"></td>
        <td id="LC2952" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L2953" class="blob-num js-line-number" data-line-number="2953"></td>
        <td id="LC2953" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2954" class="blob-num js-line-number" data-line-number="2954"></td>
        <td id="LC2954" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2955" class="blob-num js-line-number" data-line-number="2955"></td>
        <td id="LC2955" class="blob-code js-file-line"><span class="cm">     * simple addEventListener wrapper</span></td>
      </tr>
      <tr>
        <td id="L2956" class="blob-num js-line-number" data-line-number="2956"></td>
        <td id="LC2956" class="blob-code js-file-line"><span class="cm">     * @method on</span></td>
      </tr>
      <tr>
        <td id="L2957" class="blob-num js-line-number" data-line-number="2957"></td>
        <td id="LC2957" class="blob-code js-file-line"><span class="cm">     * @param {HTMLElement} element</span></td>
      </tr>
      <tr>
        <td id="L2958" class="blob-num js-line-number" data-line-number="2958"></td>
        <td id="LC2958" class="blob-code js-file-line"><span class="cm">     * @param {String} type</span></td>
      </tr>
      <tr>
        <td id="L2959" class="blob-num js-line-number" data-line-number="2959"></td>
        <td id="LC2959" class="blob-code js-file-line"><span class="cm">     * @param {Function} handler</span></td>
      </tr>
      <tr>
        <td id="L2960" class="blob-num js-line-number" data-line-number="2960"></td>
        <td id="LC2960" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L2961" class="blob-num js-line-number" data-line-number="2961"></td>
        <td id="LC2961" class="blob-code js-file-line">    <span class="nx">on</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">on</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">handler</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2962" class="blob-num js-line-number" data-line-number="2962"></td>
        <td id="LC2962" class="blob-code js-file-line">        <span class="nx">element</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">handler</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2963" class="blob-num js-line-number" data-line-number="2963"></td>
        <td id="LC2963" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L2964" class="blob-num js-line-number" data-line-number="2964"></td>
        <td id="LC2964" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2965" class="blob-num js-line-number" data-line-number="2965"></td>
        <td id="LC2965" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2966" class="blob-num js-line-number" data-line-number="2966"></td>
        <td id="LC2966" class="blob-code js-file-line"><span class="cm">     * simple removeEventListener wrapper</span></td>
      </tr>
      <tr>
        <td id="L2967" class="blob-num js-line-number" data-line-number="2967"></td>
        <td id="LC2967" class="blob-code js-file-line"><span class="cm">     * @method off</span></td>
      </tr>
      <tr>
        <td id="L2968" class="blob-num js-line-number" data-line-number="2968"></td>
        <td id="LC2968" class="blob-code js-file-line"><span class="cm">     * @param {HTMLElement} element</span></td>
      </tr>
      <tr>
        <td id="L2969" class="blob-num js-line-number" data-line-number="2969"></td>
        <td id="LC2969" class="blob-code js-file-line"><span class="cm">     * @param {String} type</span></td>
      </tr>
      <tr>
        <td id="L2970" class="blob-num js-line-number" data-line-number="2970"></td>
        <td id="LC2970" class="blob-code js-file-line"><span class="cm">     * @param {Function} handler</span></td>
      </tr>
      <tr>
        <td id="L2971" class="blob-num js-line-number" data-line-number="2971"></td>
        <td id="LC2971" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L2972" class="blob-num js-line-number" data-line-number="2972"></td>
        <td id="LC2972" class="blob-code js-file-line">    <span class="nx">off</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">off</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">handler</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2973" class="blob-num js-line-number" data-line-number="2973"></td>
        <td id="LC2973" class="blob-code js-file-line">        <span class="nx">element</span><span class="p">.</span><span class="nx">removeEventListener</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">handler</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2974" class="blob-num js-line-number" data-line-number="2974"></td>
        <td id="LC2974" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L2975" class="blob-num js-line-number" data-line-number="2975"></td>
        <td id="LC2975" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2976" class="blob-num js-line-number" data-line-number="2976"></td>
        <td id="LC2976" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L2977" class="blob-num js-line-number" data-line-number="2977"></td>
        <td id="LC2977" class="blob-code js-file-line"><span class="cm">     * forEach over arrays and objects</span></td>
      </tr>
      <tr>
        <td id="L2978" class="blob-num js-line-number" data-line-number="2978"></td>
        <td id="LC2978" class="blob-code js-file-line"><span class="cm">     * @method each</span></td>
      </tr>
      <tr>
        <td id="L2979" class="blob-num js-line-number" data-line-number="2979"></td>
        <td id="LC2979" class="blob-code js-file-line"><span class="cm">     * @param {Object|Array} obj</span></td>
      </tr>
      <tr>
        <td id="L2980" class="blob-num js-line-number" data-line-number="2980"></td>
        <td id="LC2980" class="blob-code js-file-line"><span class="cm">     * @param {Function} iterator</span></td>
      </tr>
      <tr>
        <td id="L2981" class="blob-num js-line-number" data-line-number="2981"></td>
        <td id="LC2981" class="blob-code js-file-line"><span class="cm">     * @param {any} iterator.item</span></td>
      </tr>
      <tr>
        <td id="L2982" class="blob-num js-line-number" data-line-number="2982"></td>
        <td id="LC2982" class="blob-code js-file-line"><span class="cm">     * @param {Number} iterator.index</span></td>
      </tr>
      <tr>
        <td id="L2983" class="blob-num js-line-number" data-line-number="2983"></td>
        <td id="LC2983" class="blob-code js-file-line"><span class="cm">     * @param {Object|Array} iterator.obj the source object</span></td>
      </tr>
      <tr>
        <td id="L2984" class="blob-num js-line-number" data-line-number="2984"></td>
        <td id="LC2984" class="blob-code js-file-line"><span class="cm">     * @param {Object} context value to use as `this` in the iterator</span></td>
      </tr>
      <tr>
        <td id="L2985" class="blob-num js-line-number" data-line-number="2985"></td>
        <td id="LC2985" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L2986" class="blob-num js-line-number" data-line-number="2986"></td>
        <td id="LC2986" class="blob-code js-file-line">    <span class="nx">each</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">each</span><span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">iterator</span><span class="p">,</span> <span class="nx">context</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2987" class="blob-num js-line-number" data-line-number="2987"></td>
        <td id="LC2987" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">len</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2988" class="blob-num js-line-number" data-line-number="2988"></td>
        <td id="LC2988" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L2989" class="blob-num js-line-number" data-line-number="2989"></td>
        <td id="LC2989" class="blob-code js-file-line">        <span class="c1">// native forEach on arrays</span></td>
      </tr>
      <tr>
        <td id="L2990" class="blob-num js-line-number" data-line-number="2990"></td>
        <td id="LC2990" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="s1">&#39;forEach&#39;</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2991" class="blob-num js-line-number" data-line-number="2991"></td>
        <td id="LC2991" class="blob-code js-file-line">            <span class="nx">obj</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="nx">iterator</span><span class="p">,</span> <span class="nx">context</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L2992" class="blob-num js-line-number" data-line-number="2992"></td>
        <td id="LC2992" class="blob-code js-file-line">        <span class="c1">// arrays</span></td>
      </tr>
      <tr>
        <td id="L2993" class="blob-num js-line-number" data-line-number="2993"></td>
        <td id="LC2993" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">length</span> <span class="o">!==</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2994" class="blob-num js-line-number" data-line-number="2994"></td>
        <td id="LC2994" class="blob-code js-file-line">            <span class="k">for</span><span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">obj</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">len</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2995" class="blob-num js-line-number" data-line-number="2995"></td>
        <td id="LC2995" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">iterator</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">context</span><span class="p">,</span> <span class="nx">obj</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L2996" class="blob-num js-line-number" data-line-number="2996"></td>
        <td id="LC2996" class="blob-code js-file-line">                    <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L2997" class="blob-num js-line-number" data-line-number="2997"></td>
        <td id="LC2997" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2998" class="blob-num js-line-number" data-line-number="2998"></td>
        <td id="LC2998" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L2999" class="blob-num js-line-number" data-line-number="2999"></td>
        <td id="LC2999" class="blob-code js-file-line">        <span class="c1">// objects</span></td>
      </tr>
      <tr>
        <td id="L3000" class="blob-num js-line-number" data-line-number="3000"></td>
        <td id="LC3000" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3001" class="blob-num js-line-number" data-line-number="3001"></td>
        <td id="LC3001" class="blob-code js-file-line">            <span class="k">for</span><span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3002" class="blob-num js-line-number" data-line-number="3002"></td>
        <td id="LC3002" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L3003" class="blob-num js-line-number" data-line-number="3003"></td>
        <td id="LC3003" class="blob-code js-file-line">                    <span class="nx">iterator</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">context</span><span class="p">,</span> <span class="nx">obj</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3004" class="blob-num js-line-number" data-line-number="3004"></td>
        <td id="LC3004" class="blob-code js-file-line">                    <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3005" class="blob-num js-line-number" data-line-number="3005"></td>
        <td id="LC3005" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3006" class="blob-num js-line-number" data-line-number="3006"></td>
        <td id="LC3006" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3007" class="blob-num js-line-number" data-line-number="3007"></td>
        <td id="LC3007" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3008" class="blob-num js-line-number" data-line-number="3008"></td>
        <td id="LC3008" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3009" class="blob-num js-line-number" data-line-number="3009"></td>
        <td id="LC3009" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3010" class="blob-num js-line-number" data-line-number="3010"></td>
        <td id="LC3010" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3011" class="blob-num js-line-number" data-line-number="3011"></td>
        <td id="LC3011" class="blob-code js-file-line"><span class="cm">     * find if a string contains the string using indexOf</span></td>
      </tr>
      <tr>
        <td id="L3012" class="blob-num js-line-number" data-line-number="3012"></td>
        <td id="LC3012" class="blob-code js-file-line"><span class="cm">     * @method inStr</span></td>
      </tr>
      <tr>
        <td id="L3013" class="blob-num js-line-number" data-line-number="3013"></td>
        <td id="LC3013" class="blob-code js-file-line"><span class="cm">     * @param {String} src</span></td>
      </tr>
      <tr>
        <td id="L3014" class="blob-num js-line-number" data-line-number="3014"></td>
        <td id="LC3014" class="blob-code js-file-line"><span class="cm">     * @param {String} find</span></td>
      </tr>
      <tr>
        <td id="L3015" class="blob-num js-line-number" data-line-number="3015"></td>
        <td id="LC3015" class="blob-code js-file-line"><span class="cm">     * @return {Boolean} found</span></td>
      </tr>
      <tr>
        <td id="L3016" class="blob-num js-line-number" data-line-number="3016"></td>
        <td id="LC3016" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3017" class="blob-num js-line-number" data-line-number="3017"></td>
        <td id="LC3017" class="blob-code js-file-line">    <span class="nx">inStr</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">inStr</span><span class="p">(</span><span class="nx">src</span><span class="p">,</span> <span class="nx">find</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3018" class="blob-num js-line-number" data-line-number="3018"></td>
        <td id="LC3018" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">src</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">find</span><span class="p">)</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3019" class="blob-num js-line-number" data-line-number="3019"></td>
        <td id="LC3019" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3020" class="blob-num js-line-number" data-line-number="3020"></td>
        <td id="LC3020" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3021" class="blob-num js-line-number" data-line-number="3021"></td>
        <td id="LC3021" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3022" class="blob-num js-line-number" data-line-number="3022"></td>
        <td id="LC3022" class="blob-code js-file-line"><span class="cm">     * find if a array contains the object using indexOf or a simple polyfill</span></td>
      </tr>
      <tr>
        <td id="L3023" class="blob-num js-line-number" data-line-number="3023"></td>
        <td id="LC3023" class="blob-code js-file-line"><span class="cm">     * @method inArray</span></td>
      </tr>
      <tr>
        <td id="L3024" class="blob-num js-line-number" data-line-number="3024"></td>
        <td id="LC3024" class="blob-code js-file-line"><span class="cm">     * @param {String} src</span></td>
      </tr>
      <tr>
        <td id="L3025" class="blob-num js-line-number" data-line-number="3025"></td>
        <td id="LC3025" class="blob-code js-file-line"><span class="cm">     * @param {String} find</span></td>
      </tr>
      <tr>
        <td id="L3026" class="blob-num js-line-number" data-line-number="3026"></td>
        <td id="LC3026" class="blob-code js-file-line"><span class="cm">     * @return {Boolean|Number} false when not found, or the index</span></td>
      </tr>
      <tr>
        <td id="L3027" class="blob-num js-line-number" data-line-number="3027"></td>
        <td id="LC3027" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3028" class="blob-num js-line-number" data-line-number="3028"></td>
        <td id="LC3028" class="blob-code js-file-line">    <span class="nx">inArray</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">inArray</span><span class="p">(</span><span class="nx">src</span><span class="p">,</span> <span class="nx">find</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3029" class="blob-num js-line-number" data-line-number="3029"></td>
        <td id="LC3029" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">src</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3030" class="blob-num js-line-number" data-line-number="3030"></td>
        <td id="LC3030" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">index</span> <span class="o">=</span> <span class="nx">src</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">find</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3031" class="blob-num js-line-number" data-line-number="3031"></td>
        <td id="LC3031" class="blob-code js-file-line">            <span class="k">return</span> <span class="p">(</span><span class="nx">index</span> <span class="o">===</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">?</span> <span class="kc">false</span> <span class="o">:</span> <span class="nx">index</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3032" class="blob-num js-line-number" data-line-number="3032"></td>
        <td id="LC3032" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3033" class="blob-num js-line-number" data-line-number="3033"></td>
        <td id="LC3033" class="blob-code js-file-line">            <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">len</span> <span class="o">=</span> <span class="nx">src</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">len</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3034" class="blob-num js-line-number" data-line-number="3034"></td>
        <td id="LC3034" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">src</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">===</span> <span class="nx">find</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3035" class="blob-num js-line-number" data-line-number="3035"></td>
        <td id="LC3035" class="blob-code js-file-line">                    <span class="k">return</span> <span class="nx">i</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3036" class="blob-num js-line-number" data-line-number="3036"></td>
        <td id="LC3036" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3037" class="blob-num js-line-number" data-line-number="3037"></td>
        <td id="LC3037" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3038" class="blob-num js-line-number" data-line-number="3038"></td>
        <td id="LC3038" class="blob-code js-file-line">            <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3039" class="blob-num js-line-number" data-line-number="3039"></td>
        <td id="LC3039" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3040" class="blob-num js-line-number" data-line-number="3040"></td>
        <td id="LC3040" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3041" class="blob-num js-line-number" data-line-number="3041"></td>
        <td id="LC3041" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3042" class="blob-num js-line-number" data-line-number="3042"></td>
        <td id="LC3042" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3043" class="blob-num js-line-number" data-line-number="3043"></td>
        <td id="LC3043" class="blob-code js-file-line"><span class="cm">     * convert an array-like object (`arguments`, `touchlist`) to an array</span></td>
      </tr>
      <tr>
        <td id="L3044" class="blob-num js-line-number" data-line-number="3044"></td>
        <td id="LC3044" class="blob-code js-file-line"><span class="cm">     * @method toArray</span></td>
      </tr>
      <tr>
        <td id="L3045" class="blob-num js-line-number" data-line-number="3045"></td>
        <td id="LC3045" class="blob-code js-file-line"><span class="cm">     * @param {Object} obj</span></td>
      </tr>
      <tr>
        <td id="L3046" class="blob-num js-line-number" data-line-number="3046"></td>
        <td id="LC3046" class="blob-code js-file-line"><span class="cm">     * @return {Array}</span></td>
      </tr>
      <tr>
        <td id="L3047" class="blob-num js-line-number" data-line-number="3047"></td>
        <td id="LC3047" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3048" class="blob-num js-line-number" data-line-number="3048"></td>
        <td id="LC3048" class="blob-code js-file-line">    <span class="nx">toArray</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">toArray</span><span class="p">(</span><span class="nx">obj</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3049" class="blob-num js-line-number" data-line-number="3049"></td>
        <td id="LC3049" class="blob-code js-file-line">        <span class="k">return</span> <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">slice</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3050" class="blob-num js-line-number" data-line-number="3050"></td>
        <td id="LC3050" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3051" class="blob-num js-line-number" data-line-number="3051"></td>
        <td id="LC3051" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3052" class="blob-num js-line-number" data-line-number="3052"></td>
        <td id="LC3052" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3053" class="blob-num js-line-number" data-line-number="3053"></td>
        <td id="LC3053" class="blob-code js-file-line"><span class="cm">     * find if a node is in the given parent</span></td>
      </tr>
      <tr>
        <td id="L3054" class="blob-num js-line-number" data-line-number="3054"></td>
        <td id="LC3054" class="blob-code js-file-line"><span class="cm">     * @method hasParent</span></td>
      </tr>
      <tr>
        <td id="L3055" class="blob-num js-line-number" data-line-number="3055"></td>
        <td id="LC3055" class="blob-code js-file-line"><span class="cm">     * @param {HTMLElement} node</span></td>
      </tr>
      <tr>
        <td id="L3056" class="blob-num js-line-number" data-line-number="3056"></td>
        <td id="LC3056" class="blob-code js-file-line"><span class="cm">     * @param {HTMLElement} parent</span></td>
      </tr>
      <tr>
        <td id="L3057" class="blob-num js-line-number" data-line-number="3057"></td>
        <td id="LC3057" class="blob-code js-file-line"><span class="cm">     * @return {Boolean} found</span></td>
      </tr>
      <tr>
        <td id="L3058" class="blob-num js-line-number" data-line-number="3058"></td>
        <td id="LC3058" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3059" class="blob-num js-line-number" data-line-number="3059"></td>
        <td id="LC3059" class="blob-code js-file-line">    <span class="nx">hasParent</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">hasParent</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3060" class="blob-num js-line-number" data-line-number="3060"></td>
        <td id="LC3060" class="blob-code js-file-line">        <span class="k">while</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3061" class="blob-num js-line-number" data-line-number="3061"></td>
        <td id="LC3061" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">node</span> <span class="o">==</span> <span class="nx">parent</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3062" class="blob-num js-line-number" data-line-number="3062"></td>
        <td id="LC3062" class="blob-code js-file-line">                <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3063" class="blob-num js-line-number" data-line-number="3063"></td>
        <td id="LC3063" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3064" class="blob-num js-line-number" data-line-number="3064"></td>
        <td id="LC3064" class="blob-code js-file-line">            <span class="nx">node</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3065" class="blob-num js-line-number" data-line-number="3065"></td>
        <td id="LC3065" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3066" class="blob-num js-line-number" data-line-number="3066"></td>
        <td id="LC3066" class="blob-code js-file-line">        <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3067" class="blob-num js-line-number" data-line-number="3067"></td>
        <td id="LC3067" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3068" class="blob-num js-line-number" data-line-number="3068"></td>
        <td id="LC3068" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3069" class="blob-num js-line-number" data-line-number="3069"></td>
        <td id="LC3069" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3070" class="blob-num js-line-number" data-line-number="3070"></td>
        <td id="LC3070" class="blob-code js-file-line"><span class="cm">     * get the center of all the touches</span></td>
      </tr>
      <tr>
        <td id="L3071" class="blob-num js-line-number" data-line-number="3071"></td>
        <td id="LC3071" class="blob-code js-file-line"><span class="cm">     * @method getCenter</span></td>
      </tr>
      <tr>
        <td id="L3072" class="blob-num js-line-number" data-line-number="3072"></td>
        <td id="LC3072" class="blob-code js-file-line"><span class="cm">     * @param {Array} touches</span></td>
      </tr>
      <tr>
        <td id="L3073" class="blob-num js-line-number" data-line-number="3073"></td>
        <td id="LC3073" class="blob-code js-file-line"><span class="cm">     * @return {Object} center contains `pageX`, `pageY`, `clientX` and `clientY` properties</span></td>
      </tr>
      <tr>
        <td id="L3074" class="blob-num js-line-number" data-line-number="3074"></td>
        <td id="LC3074" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3075" class="blob-num js-line-number" data-line-number="3075"></td>
        <td id="LC3075" class="blob-code js-file-line">    <span class="nx">getCenter</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getCenter</span><span class="p">(</span><span class="nx">touches</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3076" class="blob-num js-line-number" data-line-number="3076"></td>
        <td id="LC3076" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">pageX</span> <span class="o">=</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L3077" class="blob-num js-line-number" data-line-number="3077"></td>
        <td id="LC3077" class="blob-code js-file-line">            <span class="nx">pageY</span> <span class="o">=</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L3078" class="blob-num js-line-number" data-line-number="3078"></td>
        <td id="LC3078" class="blob-code js-file-line">            <span class="nx">clientX</span> <span class="o">=</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L3079" class="blob-num js-line-number" data-line-number="3079"></td>
        <td id="LC3079" class="blob-code js-file-line">            <span class="nx">clientY</span> <span class="o">=</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L3080" class="blob-num js-line-number" data-line-number="3080"></td>
        <td id="LC3080" class="blob-code js-file-line">            <span class="nx">min</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3081" class="blob-num js-line-number" data-line-number="3081"></td>
        <td id="LC3081" class="blob-code js-file-line">            <span class="nx">max</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3082" class="blob-num js-line-number" data-line-number="3082"></td>
        <td id="LC3082" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3083" class="blob-num js-line-number" data-line-number="3083"></td>
        <td id="LC3083" class="blob-code js-file-line">        <span class="c1">// no need to loop when only one touch</span></td>
      </tr>
      <tr>
        <td id="L3084" class="blob-num js-line-number" data-line-number="3084"></td>
        <td id="LC3084" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">touches</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3085" class="blob-num js-line-number" data-line-number="3085"></td>
        <td id="LC3085" class="blob-code js-file-line">            <span class="k">return</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3086" class="blob-num js-line-number" data-line-number="3086"></td>
        <td id="LC3086" class="blob-code js-file-line">                <span class="nx">pageX</span><span class="o">:</span> <span class="nx">touches</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">pageX</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3087" class="blob-num js-line-number" data-line-number="3087"></td>
        <td id="LC3087" class="blob-code js-file-line">                <span class="nx">pageY</span><span class="o">:</span> <span class="nx">touches</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">pageY</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3088" class="blob-num js-line-number" data-line-number="3088"></td>
        <td id="LC3088" class="blob-code js-file-line">                <span class="nx">clientX</span><span class="o">:</span> <span class="nx">touches</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">clientX</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3089" class="blob-num js-line-number" data-line-number="3089"></td>
        <td id="LC3089" class="blob-code js-file-line">                <span class="nx">clientY</span><span class="o">:</span> <span class="nx">touches</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">clientY</span></td>
      </tr>
      <tr>
        <td id="L3090" class="blob-num js-line-number" data-line-number="3090"></td>
        <td id="LC3090" class="blob-code js-file-line">            <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3091" class="blob-num js-line-number" data-line-number="3091"></td>
        <td id="LC3091" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3092" class="blob-num js-line-number" data-line-number="3092"></td>
        <td id="LC3092" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3093" class="blob-num js-line-number" data-line-number="3093"></td>
        <td id="LC3093" class="blob-code js-file-line">        <span class="nx">Utils</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">touches</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">touch</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3094" class="blob-num js-line-number" data-line-number="3094"></td>
        <td id="LC3094" class="blob-code js-file-line">            <span class="nx">pageX</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">touch</span><span class="p">.</span><span class="nx">pageX</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3095" class="blob-num js-line-number" data-line-number="3095"></td>
        <td id="LC3095" class="blob-code js-file-line">            <span class="nx">pageY</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">touch</span><span class="p">.</span><span class="nx">pageY</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3096" class="blob-num js-line-number" data-line-number="3096"></td>
        <td id="LC3096" class="blob-code js-file-line">            <span class="nx">clientX</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">touch</span><span class="p">.</span><span class="nx">clientX</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3097" class="blob-num js-line-number" data-line-number="3097"></td>
        <td id="LC3097" class="blob-code js-file-line">            <span class="nx">clientY</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">touch</span><span class="p">.</span><span class="nx">clientY</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3098" class="blob-num js-line-number" data-line-number="3098"></td>
        <td id="LC3098" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3099" class="blob-num js-line-number" data-line-number="3099"></td>
        <td id="LC3099" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3100" class="blob-num js-line-number" data-line-number="3100"></td>
        <td id="LC3100" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3101" class="blob-num js-line-number" data-line-number="3101"></td>
        <td id="LC3101" class="blob-code js-file-line">            <span class="nx">pageX</span><span class="o">:</span> <span class="p">(</span><span class="nx">min</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">Math</span><span class="p">,</span> <span class="nx">pageX</span><span class="p">)</span> <span class="o">+</span> <span class="nx">max</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">Math</span><span class="p">,</span> <span class="nx">pageX</span><span class="p">))</span> <span class="o">/</span> <span class="mi">2</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3102" class="blob-num js-line-number" data-line-number="3102"></td>
        <td id="LC3102" class="blob-code js-file-line">            <span class="nx">pageY</span><span class="o">:</span> <span class="p">(</span><span class="nx">min</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">Math</span><span class="p">,</span> <span class="nx">pageY</span><span class="p">)</span> <span class="o">+</span> <span class="nx">max</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">Math</span><span class="p">,</span> <span class="nx">pageY</span><span class="p">))</span> <span class="o">/</span> <span class="mi">2</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3103" class="blob-num js-line-number" data-line-number="3103"></td>
        <td id="LC3103" class="blob-code js-file-line">            <span class="nx">clientX</span><span class="o">:</span> <span class="p">(</span><span class="nx">min</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">Math</span><span class="p">,</span> <span class="nx">clientX</span><span class="p">)</span> <span class="o">+</span> <span class="nx">max</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">Math</span><span class="p">,</span> <span class="nx">clientX</span><span class="p">))</span> <span class="o">/</span> <span class="mi">2</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3104" class="blob-num js-line-number" data-line-number="3104"></td>
        <td id="LC3104" class="blob-code js-file-line">            <span class="nx">clientY</span><span class="o">:</span> <span class="p">(</span><span class="nx">min</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">Math</span><span class="p">,</span> <span class="nx">clientY</span><span class="p">)</span> <span class="o">+</span> <span class="nx">max</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nb">Math</span><span class="p">,</span> <span class="nx">clientY</span><span class="p">))</span> <span class="o">/</span> <span class="mi">2</span></td>
      </tr>
      <tr>
        <td id="L3105" class="blob-num js-line-number" data-line-number="3105"></td>
        <td id="LC3105" class="blob-code js-file-line">        <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3106" class="blob-num js-line-number" data-line-number="3106"></td>
        <td id="LC3106" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3107" class="blob-num js-line-number" data-line-number="3107"></td>
        <td id="LC3107" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3108" class="blob-num js-line-number" data-line-number="3108"></td>
        <td id="LC3108" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3109" class="blob-num js-line-number" data-line-number="3109"></td>
        <td id="LC3109" class="blob-code js-file-line"><span class="cm">     * calculate the velocity between two points. unit is in px per ms.</span></td>
      </tr>
      <tr>
        <td id="L3110" class="blob-num js-line-number" data-line-number="3110"></td>
        <td id="LC3110" class="blob-code js-file-line"><span class="cm">     * @method getVelocity</span></td>
      </tr>
      <tr>
        <td id="L3111" class="blob-num js-line-number" data-line-number="3111"></td>
        <td id="LC3111" class="blob-code js-file-line"><span class="cm">     * @param {Number} deltaTime</span></td>
      </tr>
      <tr>
        <td id="L3112" class="blob-num js-line-number" data-line-number="3112"></td>
        <td id="LC3112" class="blob-code js-file-line"><span class="cm">     * @param {Number} deltaX</span></td>
      </tr>
      <tr>
        <td id="L3113" class="blob-num js-line-number" data-line-number="3113"></td>
        <td id="LC3113" class="blob-code js-file-line"><span class="cm">     * @param {Number} deltaY</span></td>
      </tr>
      <tr>
        <td id="L3114" class="blob-num js-line-number" data-line-number="3114"></td>
        <td id="LC3114" class="blob-code js-file-line"><span class="cm">     * @return {Object} velocity `x` and `y`</span></td>
      </tr>
      <tr>
        <td id="L3115" class="blob-num js-line-number" data-line-number="3115"></td>
        <td id="LC3115" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3116" class="blob-num js-line-number" data-line-number="3116"></td>
        <td id="LC3116" class="blob-code js-file-line">    <span class="nx">getVelocity</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getVelocity</span><span class="p">(</span><span class="nx">deltaTime</span><span class="p">,</span> <span class="nx">deltaX</span><span class="p">,</span> <span class="nx">deltaY</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3117" class="blob-num js-line-number" data-line-number="3117"></td>
        <td id="LC3117" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3118" class="blob-num js-line-number" data-line-number="3118"></td>
        <td id="LC3118" class="blob-code js-file-line">            <span class="nx">x</span><span class="o">:</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">deltaX</span> <span class="o">/</span> <span class="nx">deltaTime</span><span class="p">)</span> <span class="o">||</span> <span class="mi">0</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3119" class="blob-num js-line-number" data-line-number="3119"></td>
        <td id="LC3119" class="blob-code js-file-line">            <span class="nx">y</span><span class="o">:</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">deltaY</span> <span class="o">/</span> <span class="nx">deltaTime</span><span class="p">)</span> <span class="o">||</span> <span class="mi">0</span></td>
      </tr>
      <tr>
        <td id="L3120" class="blob-num js-line-number" data-line-number="3120"></td>
        <td id="LC3120" class="blob-code js-file-line">        <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3121" class="blob-num js-line-number" data-line-number="3121"></td>
        <td id="LC3121" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3122" class="blob-num js-line-number" data-line-number="3122"></td>
        <td id="LC3122" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3123" class="blob-num js-line-number" data-line-number="3123"></td>
        <td id="LC3123" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3124" class="blob-num js-line-number" data-line-number="3124"></td>
        <td id="LC3124" class="blob-code js-file-line"><span class="cm">     * calculate the angle between two coordinates</span></td>
      </tr>
      <tr>
        <td id="L3125" class="blob-num js-line-number" data-line-number="3125"></td>
        <td id="LC3125" class="blob-code js-file-line"><span class="cm">     * @method getAngle</span></td>
      </tr>
      <tr>
        <td id="L3126" class="blob-num js-line-number" data-line-number="3126"></td>
        <td id="LC3126" class="blob-code js-file-line"><span class="cm">     * @param {Touch} touch1</span></td>
      </tr>
      <tr>
        <td id="L3127" class="blob-num js-line-number" data-line-number="3127"></td>
        <td id="LC3127" class="blob-code js-file-line"><span class="cm">     * @param {Touch} touch2</span></td>
      </tr>
      <tr>
        <td id="L3128" class="blob-num js-line-number" data-line-number="3128"></td>
        <td id="LC3128" class="blob-code js-file-line"><span class="cm">     * @return {Number} angle</span></td>
      </tr>
      <tr>
        <td id="L3129" class="blob-num js-line-number" data-line-number="3129"></td>
        <td id="LC3129" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3130" class="blob-num js-line-number" data-line-number="3130"></td>
        <td id="LC3130" class="blob-code js-file-line">    <span class="nx">getAngle</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getAngle</span><span class="p">(</span><span class="nx">touch1</span><span class="p">,</span> <span class="nx">touch2</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3131" class="blob-num js-line-number" data-line-number="3131"></td>
        <td id="LC3131" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="nx">touch2</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">-</span> <span class="nx">touch1</span><span class="p">.</span><span class="nx">clientX</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3132" class="blob-num js-line-number" data-line-number="3132"></td>
        <td id="LC3132" class="blob-code js-file-line">            <span class="nx">y</span> <span class="o">=</span> <span class="nx">touch2</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">-</span> <span class="nx">touch1</span><span class="p">.</span><span class="nx">clientY</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3133" class="blob-num js-line-number" data-line-number="3133"></td>
        <td id="LC3133" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3134" class="blob-num js-line-number" data-line-number="3134"></td>
        <td id="LC3134" class="blob-code js-file-line">        <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">atan2</span><span class="p">(</span><span class="nx">y</span><span class="p">,</span> <span class="nx">x</span><span class="p">)</span> <span class="o">*</span> <span class="mi">180</span> <span class="o">/</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3135" class="blob-num js-line-number" data-line-number="3135"></td>
        <td id="LC3135" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3136" class="blob-num js-line-number" data-line-number="3136"></td>
        <td id="LC3136" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3137" class="blob-num js-line-number" data-line-number="3137"></td>
        <td id="LC3137" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3138" class="blob-num js-line-number" data-line-number="3138"></td>
        <td id="LC3138" class="blob-code js-file-line"><span class="cm">     * do a small comparision to get the direction between two touches.</span></td>
      </tr>
      <tr>
        <td id="L3139" class="blob-num js-line-number" data-line-number="3139"></td>
        <td id="LC3139" class="blob-code js-file-line"><span class="cm">     * @method getDirection</span></td>
      </tr>
      <tr>
        <td id="L3140" class="blob-num js-line-number" data-line-number="3140"></td>
        <td id="LC3140" class="blob-code js-file-line"><span class="cm">     * @param {Touch} touch1</span></td>
      </tr>
      <tr>
        <td id="L3141" class="blob-num js-line-number" data-line-number="3141"></td>
        <td id="LC3141" class="blob-code js-file-line"><span class="cm">     * @param {Touch} touch2</span></td>
      </tr>
      <tr>
        <td id="L3142" class="blob-num js-line-number" data-line-number="3142"></td>
        <td id="LC3142" class="blob-code js-file-line"><span class="cm">     * @return {String} direction matches `DIRECTION_LEFT|RIGHT|UP|DOWN`</span></td>
      </tr>
      <tr>
        <td id="L3143" class="blob-num js-line-number" data-line-number="3143"></td>
        <td id="LC3143" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3144" class="blob-num js-line-number" data-line-number="3144"></td>
        <td id="LC3144" class="blob-code js-file-line">    <span class="nx">getDirection</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getDirection</span><span class="p">(</span><span class="nx">touch1</span><span class="p">,</span> <span class="nx">touch2</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3145" class="blob-num js-line-number" data-line-number="3145"></td>
        <td id="LC3145" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">touch1</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">-</span> <span class="nx">touch2</span><span class="p">.</span><span class="nx">clientX</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L3146" class="blob-num js-line-number" data-line-number="3146"></td>
        <td id="LC3146" class="blob-code js-file-line">            <span class="nx">y</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">touch1</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">-</span> <span class="nx">touch2</span><span class="p">.</span><span class="nx">clientY</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3147" class="blob-num js-line-number" data-line-number="3147"></td>
        <td id="LC3147" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3148" class="blob-num js-line-number" data-line-number="3148"></td>
        <td id="LC3148" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">x</span> <span class="o">&gt;=</span> <span class="nx">y</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3149" class="blob-num js-line-number" data-line-number="3149"></td>
        <td id="LC3149" class="blob-code js-file-line">            <span class="k">return</span> <span class="nx">touch1</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">-</span> <span class="nx">touch2</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="o">?</span> <span class="nx">DIRECTION_LEFT</span> <span class="o">:</span> <span class="nx">DIRECTION_RIGHT</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3150" class="blob-num js-line-number" data-line-number="3150"></td>
        <td id="LC3150" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3151" class="blob-num js-line-number" data-line-number="3151"></td>
        <td id="LC3151" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">touch1</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">-</span> <span class="nx">touch2</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="o">?</span> <span class="nx">DIRECTION_UP</span> <span class="o">:</span> <span class="nx">DIRECTION_DOWN</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3152" class="blob-num js-line-number" data-line-number="3152"></td>
        <td id="LC3152" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3153" class="blob-num js-line-number" data-line-number="3153"></td>
        <td id="LC3153" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3154" class="blob-num js-line-number" data-line-number="3154"></td>
        <td id="LC3154" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3155" class="blob-num js-line-number" data-line-number="3155"></td>
        <td id="LC3155" class="blob-code js-file-line"><span class="cm">     * calculate the distance between two touches</span></td>
      </tr>
      <tr>
        <td id="L3156" class="blob-num js-line-number" data-line-number="3156"></td>
        <td id="LC3156" class="blob-code js-file-line"><span class="cm">     * @method getDistance</span></td>
      </tr>
      <tr>
        <td id="L3157" class="blob-num js-line-number" data-line-number="3157"></td>
        <td id="LC3157" class="blob-code js-file-line"><span class="cm">     * @param {Touch}touch1</span></td>
      </tr>
      <tr>
        <td id="L3158" class="blob-num js-line-number" data-line-number="3158"></td>
        <td id="LC3158" class="blob-code js-file-line"><span class="cm">     * @param {Touch} touch2</span></td>
      </tr>
      <tr>
        <td id="L3159" class="blob-num js-line-number" data-line-number="3159"></td>
        <td id="LC3159" class="blob-code js-file-line"><span class="cm">     * @return {Number} distance</span></td>
      </tr>
      <tr>
        <td id="L3160" class="blob-num js-line-number" data-line-number="3160"></td>
        <td id="LC3160" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3161" class="blob-num js-line-number" data-line-number="3161"></td>
        <td id="LC3161" class="blob-code js-file-line">    <span class="nx">getDistance</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getDistance</span><span class="p">(</span><span class="nx">touch1</span><span class="p">,</span> <span class="nx">touch2</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3162" class="blob-num js-line-number" data-line-number="3162"></td>
        <td id="LC3162" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="nx">touch2</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">-</span> <span class="nx">touch1</span><span class="p">.</span><span class="nx">clientX</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3163" class="blob-num js-line-number" data-line-number="3163"></td>
        <td id="LC3163" class="blob-code js-file-line">            <span class="nx">y</span> <span class="o">=</span> <span class="nx">touch2</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">-</span> <span class="nx">touch1</span><span class="p">.</span><span class="nx">clientY</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3164" class="blob-num js-line-number" data-line-number="3164"></td>
        <td id="LC3164" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3165" class="blob-num js-line-number" data-line-number="3165"></td>
        <td id="LC3165" class="blob-code js-file-line">        <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">sqrt</span><span class="p">((</span><span class="nx">x</span> <span class="o">*</span> <span class="nx">x</span><span class="p">)</span> <span class="o">+</span> <span class="p">(</span><span class="nx">y</span> <span class="o">*</span> <span class="nx">y</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L3166" class="blob-num js-line-number" data-line-number="3166"></td>
        <td id="LC3166" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3167" class="blob-num js-line-number" data-line-number="3167"></td>
        <td id="LC3167" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3168" class="blob-num js-line-number" data-line-number="3168"></td>
        <td id="LC3168" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3169" class="blob-num js-line-number" data-line-number="3169"></td>
        <td id="LC3169" class="blob-code js-file-line"><span class="cm">     * calculate the scale factor between two touchLists</span></td>
      </tr>
      <tr>
        <td id="L3170" class="blob-num js-line-number" data-line-number="3170"></td>
        <td id="LC3170" class="blob-code js-file-line"><span class="cm">     * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out</span></td>
      </tr>
      <tr>
        <td id="L3171" class="blob-num js-line-number" data-line-number="3171"></td>
        <td id="LC3171" class="blob-code js-file-line"><span class="cm">     * @method getScale</span></td>
      </tr>
      <tr>
        <td id="L3172" class="blob-num js-line-number" data-line-number="3172"></td>
        <td id="LC3172" class="blob-code js-file-line"><span class="cm">     * @param {Array} start array of touches</span></td>
      </tr>
      <tr>
        <td id="L3173" class="blob-num js-line-number" data-line-number="3173"></td>
        <td id="LC3173" class="blob-code js-file-line"><span class="cm">     * @param {Array} end array of touches</span></td>
      </tr>
      <tr>
        <td id="L3174" class="blob-num js-line-number" data-line-number="3174"></td>
        <td id="LC3174" class="blob-code js-file-line"><span class="cm">     * @return {Number} scale</span></td>
      </tr>
      <tr>
        <td id="L3175" class="blob-num js-line-number" data-line-number="3175"></td>
        <td id="LC3175" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3176" class="blob-num js-line-number" data-line-number="3176"></td>
        <td id="LC3176" class="blob-code js-file-line">    <span class="nx">getScale</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getScale</span><span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3177" class="blob-num js-line-number" data-line-number="3177"></td>
        <td id="LC3177" class="blob-code js-file-line">        <span class="c1">// need two fingers...</span></td>
      </tr>
      <tr>
        <td id="L3178" class="blob-num js-line-number" data-line-number="3178"></td>
        <td id="LC3178" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">start</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;=</span> <span class="mi">2</span> <span class="o">&amp;&amp;</span> <span class="nx">end</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;=</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3179" class="blob-num js-line-number" data-line-number="3179"></td>
        <td id="LC3179" class="blob-code js-file-line">            <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getDistance</span><span class="p">(</span><span class="nx">end</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">end</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">/</span> <span class="k">this</span><span class="p">.</span><span class="nx">getDistance</span><span class="p">(</span><span class="nx">start</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">start</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L3180" class="blob-num js-line-number" data-line-number="3180"></td>
        <td id="LC3180" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3181" class="blob-num js-line-number" data-line-number="3181"></td>
        <td id="LC3181" class="blob-code js-file-line">        <span class="k">return</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3182" class="blob-num js-line-number" data-line-number="3182"></td>
        <td id="LC3182" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3183" class="blob-num js-line-number" data-line-number="3183"></td>
        <td id="LC3183" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3184" class="blob-num js-line-number" data-line-number="3184"></td>
        <td id="LC3184" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3185" class="blob-num js-line-number" data-line-number="3185"></td>
        <td id="LC3185" class="blob-code js-file-line"><span class="cm">     * calculate the rotation degrees between two touchLists</span></td>
      </tr>
      <tr>
        <td id="L3186" class="blob-num js-line-number" data-line-number="3186"></td>
        <td id="LC3186" class="blob-code js-file-line"><span class="cm">     * @method getRotation</span></td>
      </tr>
      <tr>
        <td id="L3187" class="blob-num js-line-number" data-line-number="3187"></td>
        <td id="LC3187" class="blob-code js-file-line"><span class="cm">     * @param {Array} start array of touches</span></td>
      </tr>
      <tr>
        <td id="L3188" class="blob-num js-line-number" data-line-number="3188"></td>
        <td id="LC3188" class="blob-code js-file-line"><span class="cm">     * @param {Array} end array of touches</span></td>
      </tr>
      <tr>
        <td id="L3189" class="blob-num js-line-number" data-line-number="3189"></td>
        <td id="LC3189" class="blob-code js-file-line"><span class="cm">     * @return {Number} rotation</span></td>
      </tr>
      <tr>
        <td id="L3190" class="blob-num js-line-number" data-line-number="3190"></td>
        <td id="LC3190" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3191" class="blob-num js-line-number" data-line-number="3191"></td>
        <td id="LC3191" class="blob-code js-file-line">    <span class="nx">getRotation</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getRotation</span><span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3192" class="blob-num js-line-number" data-line-number="3192"></td>
        <td id="LC3192" class="blob-code js-file-line">        <span class="c1">// need two fingers</span></td>
      </tr>
      <tr>
        <td id="L3193" class="blob-num js-line-number" data-line-number="3193"></td>
        <td id="LC3193" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">start</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;=</span> <span class="mi">2</span> <span class="o">&amp;&amp;</span> <span class="nx">end</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;=</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3194" class="blob-num js-line-number" data-line-number="3194"></td>
        <td id="LC3194" class="blob-code js-file-line">            <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getAngle</span><span class="p">(</span><span class="nx">end</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="nx">end</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">getAngle</span><span class="p">(</span><span class="nx">start</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="nx">start</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L3195" class="blob-num js-line-number" data-line-number="3195"></td>
        <td id="LC3195" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3196" class="blob-num js-line-number" data-line-number="3196"></td>
        <td id="LC3196" class="blob-code js-file-line">        <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3197" class="blob-num js-line-number" data-line-number="3197"></td>
        <td id="LC3197" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3198" class="blob-num js-line-number" data-line-number="3198"></td>
        <td id="LC3198" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3199" class="blob-num js-line-number" data-line-number="3199"></td>
        <td id="LC3199" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3200" class="blob-num js-line-number" data-line-number="3200"></td>
        <td id="LC3200" class="blob-code js-file-line"><span class="cm">     * find out if the direction is vertical   *</span></td>
      </tr>
      <tr>
        <td id="L3201" class="blob-num js-line-number" data-line-number="3201"></td>
        <td id="LC3201" class="blob-code js-file-line"><span class="cm">     * @method isVertical</span></td>
      </tr>
      <tr>
        <td id="L3202" class="blob-num js-line-number" data-line-number="3202"></td>
        <td id="LC3202" class="blob-code js-file-line"><span class="cm">     * @param {String} direction matches `DIRECTION_UP|DOWN`</span></td>
      </tr>
      <tr>
        <td id="L3203" class="blob-num js-line-number" data-line-number="3203"></td>
        <td id="LC3203" class="blob-code js-file-line"><span class="cm">     * @return {Boolean} is_vertical</span></td>
      </tr>
      <tr>
        <td id="L3204" class="blob-num js-line-number" data-line-number="3204"></td>
        <td id="LC3204" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3205" class="blob-num js-line-number" data-line-number="3205"></td>
        <td id="LC3205" class="blob-code js-file-line">    <span class="nx">isVertical</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">isVertical</span><span class="p">(</span><span class="nx">direction</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3206" class="blob-num js-line-number" data-line-number="3206"></td>
        <td id="LC3206" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">direction</span> <span class="o">==</span> <span class="nx">DIRECTION_UP</span> <span class="o">||</span> <span class="nx">direction</span> <span class="o">==</span> <span class="nx">DIRECTION_DOWN</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3207" class="blob-num js-line-number" data-line-number="3207"></td>
        <td id="LC3207" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3208" class="blob-num js-line-number" data-line-number="3208"></td>
        <td id="LC3208" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3209" class="blob-num js-line-number" data-line-number="3209"></td>
        <td id="LC3209" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3210" class="blob-num js-line-number" data-line-number="3210"></td>
        <td id="LC3210" class="blob-code js-file-line"><span class="cm">     * set css properties with their prefixes</span></td>
      </tr>
      <tr>
        <td id="L3211" class="blob-num js-line-number" data-line-number="3211"></td>
        <td id="LC3211" class="blob-code js-file-line"><span class="cm">     * @param {HTMLElement} element</span></td>
      </tr>
      <tr>
        <td id="L3212" class="blob-num js-line-number" data-line-number="3212"></td>
        <td id="LC3212" class="blob-code js-file-line"><span class="cm">     * @param {String} prop</span></td>
      </tr>
      <tr>
        <td id="L3213" class="blob-num js-line-number" data-line-number="3213"></td>
        <td id="LC3213" class="blob-code js-file-line"><span class="cm">     * @param {String} value</span></td>
      </tr>
      <tr>
        <td id="L3214" class="blob-num js-line-number" data-line-number="3214"></td>
        <td id="LC3214" class="blob-code js-file-line"><span class="cm">     * @param {Boolean} [toggle=true]</span></td>
      </tr>
      <tr>
        <td id="L3215" class="blob-num js-line-number" data-line-number="3215"></td>
        <td id="LC3215" class="blob-code js-file-line"><span class="cm">     * @return {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L3216" class="blob-num js-line-number" data-line-number="3216"></td>
        <td id="LC3216" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3217" class="blob-num js-line-number" data-line-number="3217"></td>
        <td id="LC3217" class="blob-code js-file-line">    <span class="nx">setPrefixedCss</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">setPrefixedCss</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">toggle</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3218" class="blob-num js-line-number" data-line-number="3218"></td>
        <td id="LC3218" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">prefixes</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;Webkit&#39;</span><span class="p">,</span> <span class="s1">&#39;Moz&#39;</span><span class="p">,</span> <span class="s1">&#39;O&#39;</span><span class="p">,</span> <span class="s1">&#39;ms&#39;</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3219" class="blob-num js-line-number" data-line-number="3219"></td>
        <td id="LC3219" class="blob-code js-file-line">        <span class="nx">prop</span> <span class="o">=</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">toCamelCase</span><span class="p">(</span><span class="nx">prop</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3220" class="blob-num js-line-number" data-line-number="3220"></td>
        <td id="LC3220" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3221" class="blob-num js-line-number" data-line-number="3221"></td>
        <td id="LC3221" class="blob-code js-file-line">        <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">prefixes</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3222" class="blob-num js-line-number" data-line-number="3222"></td>
        <td id="LC3222" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">p</span> <span class="o">=</span> <span class="nx">prop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3223" class="blob-num js-line-number" data-line-number="3223"></td>
        <td id="LC3223" class="blob-code js-file-line">            <span class="c1">// prefixes</span></td>
      </tr>
      <tr>
        <td id="L3224" class="blob-num js-line-number" data-line-number="3224"></td>
        <td id="LC3224" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">prefixes</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3225" class="blob-num js-line-number" data-line-number="3225"></td>
        <td id="LC3225" class="blob-code js-file-line">                <span class="nx">p</span> <span class="o">=</span> <span class="nx">prefixes</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">+</span> <span class="nx">p</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">).</span><span class="nx">toUpperCase</span><span class="p">()</span> <span class="o">+</span> <span class="nx">p</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3226" class="blob-num js-line-number" data-line-number="3226"></td>
        <td id="LC3226" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3227" class="blob-num js-line-number" data-line-number="3227"></td>
        <td id="LC3227" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3228" class="blob-num js-line-number" data-line-number="3228"></td>
        <td id="LC3228" class="blob-code js-file-line">            <span class="c1">// test the style</span></td>
      </tr>
      <tr>
        <td id="L3229" class="blob-num js-line-number" data-line-number="3229"></td>
        <td id="LC3229" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">p</span> <span class="k">in</span> <span class="nx">element</span><span class="p">.</span><span class="nx">style</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3230" class="blob-num js-line-number" data-line-number="3230"></td>
        <td id="LC3230" class="blob-code js-file-line">                <span class="nx">element</span><span class="p">.</span><span class="nx">style</span><span class="p">[</span><span class="nx">p</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="nx">toggle</span> <span class="o">==</span> <span class="kc">null</span> <span class="o">||</span> <span class="nx">toggle</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="nx">value</span> <span class="o">||</span> <span class="s1">&#39;&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3231" class="blob-num js-line-number" data-line-number="3231"></td>
        <td id="LC3231" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3232" class="blob-num js-line-number" data-line-number="3232"></td>
        <td id="LC3232" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3233" class="blob-num js-line-number" data-line-number="3233"></td>
        <td id="LC3233" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3234" class="blob-num js-line-number" data-line-number="3234"></td>
        <td id="LC3234" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3235" class="blob-num js-line-number" data-line-number="3235"></td>
        <td id="LC3235" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3236" class="blob-num js-line-number" data-line-number="3236"></td>
        <td id="LC3236" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3237" class="blob-num js-line-number" data-line-number="3237"></td>
        <td id="LC3237" class="blob-code js-file-line"><span class="cm">     * toggle browser default behavior by setting css properties.</span></td>
      </tr>
      <tr>
        <td id="L3238" class="blob-num js-line-number" data-line-number="3238"></td>
        <td id="LC3238" class="blob-code js-file-line"><span class="cm">     * `userSelect=&#39;none&#39;` also sets `element.onselectstart` to false</span></td>
      </tr>
      <tr>
        <td id="L3239" class="blob-num js-line-number" data-line-number="3239"></td>
        <td id="LC3239" class="blob-code js-file-line"><span class="cm">     * `userDrag=&#39;none&#39;` also sets `element.ondragstart` to false</span></td>
      </tr>
      <tr>
        <td id="L3240" class="blob-num js-line-number" data-line-number="3240"></td>
        <td id="LC3240" class="blob-code js-file-line"><span class="cm">     *</span></td>
      </tr>
      <tr>
        <td id="L3241" class="blob-num js-line-number" data-line-number="3241"></td>
        <td id="LC3241" class="blob-code js-file-line"><span class="cm">     * @method toggleBehavior</span></td>
      </tr>
      <tr>
        <td id="L3242" class="blob-num js-line-number" data-line-number="3242"></td>
        <td id="LC3242" class="blob-code js-file-line"><span class="cm">     * @param {HtmlElement} element</span></td>
      </tr>
      <tr>
        <td id="L3243" class="blob-num js-line-number" data-line-number="3243"></td>
        <td id="LC3243" class="blob-code js-file-line"><span class="cm">     * @param {Object} props</span></td>
      </tr>
      <tr>
        <td id="L3244" class="blob-num js-line-number" data-line-number="3244"></td>
        <td id="LC3244" class="blob-code js-file-line"><span class="cm">     * @param {Boolean} [toggle=true]</span></td>
      </tr>
      <tr>
        <td id="L3245" class="blob-num js-line-number" data-line-number="3245"></td>
        <td id="LC3245" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3246" class="blob-num js-line-number" data-line-number="3246"></td>
        <td id="LC3246" class="blob-code js-file-line">    <span class="nx">toggleBehavior</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">toggleBehavior</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">props</span><span class="p">,</span> <span class="nx">toggle</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3247" class="blob-num js-line-number" data-line-number="3247"></td>
        <td id="LC3247" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">props</span> <span class="o">||</span> <span class="o">!</span><span class="nx">element</span> <span class="o">||</span> <span class="o">!</span><span class="nx">element</span><span class="p">.</span><span class="nx">style</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3248" class="blob-num js-line-number" data-line-number="3248"></td>
        <td id="LC3248" class="blob-code js-file-line">            <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3249" class="blob-num js-line-number" data-line-number="3249"></td>
        <td id="LC3249" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3250" class="blob-num js-line-number" data-line-number="3250"></td>
        <td id="LC3250" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3251" class="blob-num js-line-number" data-line-number="3251"></td>
        <td id="LC3251" class="blob-code js-file-line">        <span class="c1">// set the css properties</span></td>
      </tr>
      <tr>
        <td id="L3252" class="blob-num js-line-number" data-line-number="3252"></td>
        <td id="LC3252" class="blob-code js-file-line">        <span class="nx">Utils</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">props</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">prop</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3253" class="blob-num js-line-number" data-line-number="3253"></td>
        <td id="LC3253" class="blob-code js-file-line">            <span class="nx">Utils</span><span class="p">.</span><span class="nx">setPrefixedCss</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">prop</span><span class="p">,</span> <span class="nx">value</span><span class="p">,</span> <span class="nx">toggle</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3254" class="blob-num js-line-number" data-line-number="3254"></td>
        <td id="LC3254" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3255" class="blob-num js-line-number" data-line-number="3255"></td>
        <td id="LC3255" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3256" class="blob-num js-line-number" data-line-number="3256"></td>
        <td id="LC3256" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">falseFn</span> <span class="o">=</span> <span class="nx">toggle</span> <span class="o">&amp;&amp;</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3257" class="blob-num js-line-number" data-line-number="3257"></td>
        <td id="LC3257" class="blob-code js-file-line">            <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3258" class="blob-num js-line-number" data-line-number="3258"></td>
        <td id="LC3258" class="blob-code js-file-line">        <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3259" class="blob-num js-line-number" data-line-number="3259"></td>
        <td id="LC3259" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3260" class="blob-num js-line-number" data-line-number="3260"></td>
        <td id="LC3260" class="blob-code js-file-line">        <span class="c1">// also the disable onselectstart</span></td>
      </tr>
      <tr>
        <td id="L3261" class="blob-num js-line-number" data-line-number="3261"></td>
        <td id="LC3261" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">props</span><span class="p">.</span><span class="nx">userSelect</span> <span class="o">==</span> <span class="s1">&#39;none&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3262" class="blob-num js-line-number" data-line-number="3262"></td>
        <td id="LC3262" class="blob-code js-file-line">            <span class="nx">element</span><span class="p">.</span><span class="nx">onselectstart</span> <span class="o">=</span> <span class="nx">falseFn</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3263" class="blob-num js-line-number" data-line-number="3263"></td>
        <td id="LC3263" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3264" class="blob-num js-line-number" data-line-number="3264"></td>
        <td id="LC3264" class="blob-code js-file-line">        <span class="c1">// and disable ondragstart</span></td>
      </tr>
      <tr>
        <td id="L3265" class="blob-num js-line-number" data-line-number="3265"></td>
        <td id="LC3265" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">props</span><span class="p">.</span><span class="nx">userDrag</span> <span class="o">==</span> <span class="s1">&#39;none&#39;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3266" class="blob-num js-line-number" data-line-number="3266"></td>
        <td id="LC3266" class="blob-code js-file-line">            <span class="nx">element</span><span class="p">.</span><span class="nx">ondragstart</span> <span class="o">=</span> <span class="nx">falseFn</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3267" class="blob-num js-line-number" data-line-number="3267"></td>
        <td id="LC3267" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3268" class="blob-num js-line-number" data-line-number="3268"></td>
        <td id="LC3268" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3269" class="blob-num js-line-number" data-line-number="3269"></td>
        <td id="LC3269" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3270" class="blob-num js-line-number" data-line-number="3270"></td>
        <td id="LC3270" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3271" class="blob-num js-line-number" data-line-number="3271"></td>
        <td id="LC3271" class="blob-code js-file-line"><span class="cm">     * convert a string with underscores to camelCase</span></td>
      </tr>
      <tr>
        <td id="L3272" class="blob-num js-line-number" data-line-number="3272"></td>
        <td id="LC3272" class="blob-code js-file-line"><span class="cm">     * so prevent_default becomes preventDefault</span></td>
      </tr>
      <tr>
        <td id="L3273" class="blob-num js-line-number" data-line-number="3273"></td>
        <td id="LC3273" class="blob-code js-file-line"><span class="cm">     * @param {String} str</span></td>
      </tr>
      <tr>
        <td id="L3274" class="blob-num js-line-number" data-line-number="3274"></td>
        <td id="LC3274" class="blob-code js-file-line"><span class="cm">     * @return {String} camelCaseStr</span></td>
      </tr>
      <tr>
        <td id="L3275" class="blob-num js-line-number" data-line-number="3275"></td>
        <td id="LC3275" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3276" class="blob-num js-line-number" data-line-number="3276"></td>
        <td id="LC3276" class="blob-code js-file-line">    <span class="nx">toCamelCase</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">toCamelCase</span><span class="p">(</span><span class="nx">str</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3277" class="blob-num js-line-number" data-line-number="3277"></td>
        <td id="LC3277" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">str</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/[_-]([a-z])/g</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3278" class="blob-num js-line-number" data-line-number="3278"></td>
        <td id="LC3278" class="blob-code js-file-line">            <span class="k">return</span> <span class="nx">s</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">toUpperCase</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L3279" class="blob-num js-line-number" data-line-number="3279"></td>
        <td id="LC3279" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3280" class="blob-num js-line-number" data-line-number="3280"></td>
        <td id="LC3280" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3281" class="blob-num js-line-number" data-line-number="3281"></td>
        <td id="LC3281" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3282" class="blob-num js-line-number" data-line-number="3282"></td>
        <td id="LC3282" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3283" class="blob-num js-line-number" data-line-number="3283"></td>
        <td id="LC3283" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3284" class="blob-num js-line-number" data-line-number="3284"></td>
        <td id="LC3284" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3285" class="blob-num js-line-number" data-line-number="3285"></td>
        <td id="LC3285" class="blob-code js-file-line"><span class="cm"> * @module hammer</span></td>
      </tr>
      <tr>
        <td id="L3286" class="blob-num js-line-number" data-line-number="3286"></td>
        <td id="LC3286" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L3287" class="blob-num js-line-number" data-line-number="3287"></td>
        <td id="LC3287" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3288" class="blob-num js-line-number" data-line-number="3288"></td>
        <td id="LC3288" class="blob-code js-file-line"><span class="cm"> * @class Event</span></td>
      </tr>
      <tr>
        <td id="L3289" class="blob-num js-line-number" data-line-number="3289"></td>
        <td id="LC3289" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L3290" class="blob-num js-line-number" data-line-number="3290"></td>
        <td id="LC3290" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L3291" class="blob-num js-line-number" data-line-number="3291"></td>
        <td id="LC3291" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Event</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">event</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3292" class="blob-num js-line-number" data-line-number="3292"></td>
        <td id="LC3292" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3293" class="blob-num js-line-number" data-line-number="3293"></td>
        <td id="LC3293" class="blob-code js-file-line"><span class="cm">     * when touch events have been fired, this is true</span></td>
      </tr>
      <tr>
        <td id="L3294" class="blob-num js-line-number" data-line-number="3294"></td>
        <td id="LC3294" class="blob-code js-file-line"><span class="cm">     * this is used to stop mouse events</span></td>
      </tr>
      <tr>
        <td id="L3295" class="blob-num js-line-number" data-line-number="3295"></td>
        <td id="LC3295" class="blob-code js-file-line"><span class="cm">     * @property prevent_mouseevents</span></td>
      </tr>
      <tr>
        <td id="L3296" class="blob-num js-line-number" data-line-number="3296"></td>
        <td id="LC3296" class="blob-code js-file-line"><span class="cm">     * @private</span></td>
      </tr>
      <tr>
        <td id="L3297" class="blob-num js-line-number" data-line-number="3297"></td>
        <td id="LC3297" class="blob-code js-file-line"><span class="cm">     * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L3298" class="blob-num js-line-number" data-line-number="3298"></td>
        <td id="LC3298" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3299" class="blob-num js-line-number" data-line-number="3299"></td>
        <td id="LC3299" class="blob-code js-file-line">    <span class="nx">preventMouseEvents</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3300" class="blob-num js-line-number" data-line-number="3300"></td>
        <td id="LC3300" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3301" class="blob-num js-line-number" data-line-number="3301"></td>
        <td id="LC3301" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3302" class="blob-num js-line-number" data-line-number="3302"></td>
        <td id="LC3302" class="blob-code js-file-line"><span class="cm">     * if EVENT_START has been fired</span></td>
      </tr>
      <tr>
        <td id="L3303" class="blob-num js-line-number" data-line-number="3303"></td>
        <td id="LC3303" class="blob-code js-file-line"><span class="cm">     * @property started</span></td>
      </tr>
      <tr>
        <td id="L3304" class="blob-num js-line-number" data-line-number="3304"></td>
        <td id="LC3304" class="blob-code js-file-line"><span class="cm">     * @private</span></td>
      </tr>
      <tr>
        <td id="L3305" class="blob-num js-line-number" data-line-number="3305"></td>
        <td id="LC3305" class="blob-code js-file-line"><span class="cm">     * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L3306" class="blob-num js-line-number" data-line-number="3306"></td>
        <td id="LC3306" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3307" class="blob-num js-line-number" data-line-number="3307"></td>
        <td id="LC3307" class="blob-code js-file-line">    <span class="nx">started</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3308" class="blob-num js-line-number" data-line-number="3308"></td>
        <td id="LC3308" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3309" class="blob-num js-line-number" data-line-number="3309"></td>
        <td id="LC3309" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3310" class="blob-num js-line-number" data-line-number="3310"></td>
        <td id="LC3310" class="blob-code js-file-line"><span class="cm">     * when the mouse is hold down, this is true</span></td>
      </tr>
      <tr>
        <td id="L3311" class="blob-num js-line-number" data-line-number="3311"></td>
        <td id="LC3311" class="blob-code js-file-line"><span class="cm">     * @property should_detect</span></td>
      </tr>
      <tr>
        <td id="L3312" class="blob-num js-line-number" data-line-number="3312"></td>
        <td id="LC3312" class="blob-code js-file-line"><span class="cm">     * @private</span></td>
      </tr>
      <tr>
        <td id="L3313" class="blob-num js-line-number" data-line-number="3313"></td>
        <td id="LC3313" class="blob-code js-file-line"><span class="cm">     * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L3314" class="blob-num js-line-number" data-line-number="3314"></td>
        <td id="LC3314" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3315" class="blob-num js-line-number" data-line-number="3315"></td>
        <td id="LC3315" class="blob-code js-file-line">    <span class="nx">shouldDetect</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3316" class="blob-num js-line-number" data-line-number="3316"></td>
        <td id="LC3316" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3317" class="blob-num js-line-number" data-line-number="3317"></td>
        <td id="LC3317" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3318" class="blob-num js-line-number" data-line-number="3318"></td>
        <td id="LC3318" class="blob-code js-file-line"><span class="cm">     * simple event binder with a hook and support for multiple types</span></td>
      </tr>
      <tr>
        <td id="L3319" class="blob-num js-line-number" data-line-number="3319"></td>
        <td id="LC3319" class="blob-code js-file-line"><span class="cm">     * @method on</span></td>
      </tr>
      <tr>
        <td id="L3320" class="blob-num js-line-number" data-line-number="3320"></td>
        <td id="LC3320" class="blob-code js-file-line"><span class="cm">     * @param {HTMLElement} element</span></td>
      </tr>
      <tr>
        <td id="L3321" class="blob-num js-line-number" data-line-number="3321"></td>
        <td id="LC3321" class="blob-code js-file-line"><span class="cm">     * @param {String} type</span></td>
      </tr>
      <tr>
        <td id="L3322" class="blob-num js-line-number" data-line-number="3322"></td>
        <td id="LC3322" class="blob-code js-file-line"><span class="cm">     * @param {Function} handler</span></td>
      </tr>
      <tr>
        <td id="L3323" class="blob-num js-line-number" data-line-number="3323"></td>
        <td id="LC3323" class="blob-code js-file-line"><span class="cm">     * @param {Function} [hook]</span></td>
      </tr>
      <tr>
        <td id="L3324" class="blob-num js-line-number" data-line-number="3324"></td>
        <td id="LC3324" class="blob-code js-file-line"><span class="cm">     * @param {Object} hook.type</span></td>
      </tr>
      <tr>
        <td id="L3325" class="blob-num js-line-number" data-line-number="3325"></td>
        <td id="LC3325" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3326" class="blob-num js-line-number" data-line-number="3326"></td>
        <td id="LC3326" class="blob-code js-file-line">    <span class="nx">on</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">on</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">handler</span><span class="p">,</span> <span class="nx">hook</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3327" class="blob-num js-line-number" data-line-number="3327"></td>
        <td id="LC3327" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">types</span> <span class="o">=</span> <span class="nx">type</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3328" class="blob-num js-line-number" data-line-number="3328"></td>
        <td id="LC3328" class="blob-code js-file-line">        <span class="nx">Utils</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">types</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3329" class="blob-num js-line-number" data-line-number="3329"></td>
        <td id="LC3329" class="blob-code js-file-line">            <span class="nx">Utils</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">handler</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3330" class="blob-num js-line-number" data-line-number="3330"></td>
        <td id="LC3330" class="blob-code js-file-line">            <span class="nx">hook</span> <span class="o">&amp;&amp;</span> <span class="nx">hook</span><span class="p">(</span><span class="nx">type</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3331" class="blob-num js-line-number" data-line-number="3331"></td>
        <td id="LC3331" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3332" class="blob-num js-line-number" data-line-number="3332"></td>
        <td id="LC3332" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3333" class="blob-num js-line-number" data-line-number="3333"></td>
        <td id="LC3333" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3334" class="blob-num js-line-number" data-line-number="3334"></td>
        <td id="LC3334" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3335" class="blob-num js-line-number" data-line-number="3335"></td>
        <td id="LC3335" class="blob-code js-file-line"><span class="cm">     * simple event unbinder with a hook and support for multiple types</span></td>
      </tr>
      <tr>
        <td id="L3336" class="blob-num js-line-number" data-line-number="3336"></td>
        <td id="LC3336" class="blob-code js-file-line"><span class="cm">     * @method off</span></td>
      </tr>
      <tr>
        <td id="L3337" class="blob-num js-line-number" data-line-number="3337"></td>
        <td id="LC3337" class="blob-code js-file-line"><span class="cm">     * @param {HTMLElement} element</span></td>
      </tr>
      <tr>
        <td id="L3338" class="blob-num js-line-number" data-line-number="3338"></td>
        <td id="LC3338" class="blob-code js-file-line"><span class="cm">     * @param {String} type</span></td>
      </tr>
      <tr>
        <td id="L3339" class="blob-num js-line-number" data-line-number="3339"></td>
        <td id="LC3339" class="blob-code js-file-line"><span class="cm">     * @param {Function} handler</span></td>
      </tr>
      <tr>
        <td id="L3340" class="blob-num js-line-number" data-line-number="3340"></td>
        <td id="LC3340" class="blob-code js-file-line"><span class="cm">     * @param {Function} [hook]</span></td>
      </tr>
      <tr>
        <td id="L3341" class="blob-num js-line-number" data-line-number="3341"></td>
        <td id="LC3341" class="blob-code js-file-line"><span class="cm">     * @param {Object} hook.type</span></td>
      </tr>
      <tr>
        <td id="L3342" class="blob-num js-line-number" data-line-number="3342"></td>
        <td id="LC3342" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3343" class="blob-num js-line-number" data-line-number="3343"></td>
        <td id="LC3343" class="blob-code js-file-line">    <span class="nx">off</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">off</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">handler</span><span class="p">,</span> <span class="nx">hook</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3344" class="blob-num js-line-number" data-line-number="3344"></td>
        <td id="LC3344" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">types</span> <span class="o">=</span> <span class="nx">type</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3345" class="blob-num js-line-number" data-line-number="3345"></td>
        <td id="LC3345" class="blob-code js-file-line">        <span class="nx">Utils</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">types</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3346" class="blob-num js-line-number" data-line-number="3346"></td>
        <td id="LC3346" class="blob-code js-file-line">            <span class="nx">Utils</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">handler</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3347" class="blob-num js-line-number" data-line-number="3347"></td>
        <td id="LC3347" class="blob-code js-file-line">            <span class="nx">hook</span> <span class="o">&amp;&amp;</span> <span class="nx">hook</span><span class="p">(</span><span class="nx">type</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3348" class="blob-num js-line-number" data-line-number="3348"></td>
        <td id="LC3348" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3349" class="blob-num js-line-number" data-line-number="3349"></td>
        <td id="LC3349" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3350" class="blob-num js-line-number" data-line-number="3350"></td>
        <td id="LC3350" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3351" class="blob-num js-line-number" data-line-number="3351"></td>
        <td id="LC3351" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3352" class="blob-num js-line-number" data-line-number="3352"></td>
        <td id="LC3352" class="blob-code js-file-line"><span class="cm">     * the core touch event handler.</span></td>
      </tr>
      <tr>
        <td id="L3353" class="blob-num js-line-number" data-line-number="3353"></td>
        <td id="LC3353" class="blob-code js-file-line"><span class="cm">     * this finds out if we should to detect gestures</span></td>
      </tr>
      <tr>
        <td id="L3354" class="blob-num js-line-number" data-line-number="3354"></td>
        <td id="LC3354" class="blob-code js-file-line"><span class="cm">     * @method onTouch</span></td>
      </tr>
      <tr>
        <td id="L3355" class="blob-num js-line-number" data-line-number="3355"></td>
        <td id="LC3355" class="blob-code js-file-line"><span class="cm">     * @param {HTMLElement} element</span></td>
      </tr>
      <tr>
        <td id="L3356" class="blob-num js-line-number" data-line-number="3356"></td>
        <td id="LC3356" class="blob-code js-file-line"><span class="cm">     * @param {String} eventType matches `EVENT_START|MOVE|END`</span></td>
      </tr>
      <tr>
        <td id="L3357" class="blob-num js-line-number" data-line-number="3357"></td>
        <td id="LC3357" class="blob-code js-file-line"><span class="cm">     * @param {Function} handler</span></td>
      </tr>
      <tr>
        <td id="L3358" class="blob-num js-line-number" data-line-number="3358"></td>
        <td id="LC3358" class="blob-code js-file-line"><span class="cm">     * @return onTouchHandler {Function} the core event handler</span></td>
      </tr>
      <tr>
        <td id="L3359" class="blob-num js-line-number" data-line-number="3359"></td>
        <td id="LC3359" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3360" class="blob-num js-line-number" data-line-number="3360"></td>
        <td id="LC3360" class="blob-code js-file-line">    <span class="nx">onTouch</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">onTouch</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">eventType</span><span class="p">,</span> <span class="nx">handler</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3361" class="blob-num js-line-number" data-line-number="3361"></td>
        <td id="LC3361" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3362" class="blob-num js-line-number" data-line-number="3362"></td>
        <td id="LC3362" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3363" class="blob-num js-line-number" data-line-number="3363"></td>
        <td id="LC3363" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">onTouchHandler</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">onTouchHandler</span><span class="p">(</span><span class="nx">ev</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3364" class="blob-num js-line-number" data-line-number="3364"></td>
        <td id="LC3364" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">srcType</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">type</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">(),</span></td>
      </tr>
      <tr>
        <td id="L3365" class="blob-num js-line-number" data-line-number="3365"></td>
        <td id="LC3365" class="blob-code js-file-line">                <span class="nx">isPointer</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">HAS_POINTEREVENTS</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3366" class="blob-num js-line-number" data-line-number="3366"></td>
        <td id="LC3366" class="blob-code js-file-line">                <span class="nx">isMouse</span> <span class="o">=</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">inStr</span><span class="p">(</span><span class="nx">srcType</span><span class="p">,</span> <span class="s1">&#39;mouse&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L3367" class="blob-num js-line-number" data-line-number="3367"></td>
        <td id="LC3367" class="blob-code js-file-line">                <span class="nx">triggerType</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3368" class="blob-num js-line-number" data-line-number="3368"></td>
        <td id="LC3368" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3369" class="blob-num js-line-number" data-line-number="3369"></td>
        <td id="LC3369" class="blob-code js-file-line">            <span class="c1">// if we are in a mouseevent, but there has been a touchevent triggered in this session</span></td>
      </tr>
      <tr>
        <td id="L3370" class="blob-num js-line-number" data-line-number="3370"></td>
        <td id="LC3370" class="blob-code js-file-line">            <span class="c1">// we want to do nothing. simply break out of the event.</span></td>
      </tr>
      <tr>
        <td id="L3371" class="blob-num js-line-number" data-line-number="3371"></td>
        <td id="LC3371" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">isMouse</span> <span class="o">&amp;&amp;</span> <span class="nx">self</span><span class="p">.</span><span class="nx">preventMouseEvents</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3372" class="blob-num js-line-number" data-line-number="3372"></td>
        <td id="LC3372" class="blob-code js-file-line">                <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3373" class="blob-num js-line-number" data-line-number="3373"></td>
        <td id="LC3373" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3374" class="blob-num js-line-number" data-line-number="3374"></td>
        <td id="LC3374" class="blob-code js-file-line">            <span class="c1">// mousebutton must be down</span></td>
      </tr>
      <tr>
        <td id="L3375" class="blob-num js-line-number" data-line-number="3375"></td>
        <td id="LC3375" class="blob-code js-file-line">            <span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">isMouse</span> <span class="o">&amp;&amp;</span> <span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_START</span> <span class="o">&amp;&amp;</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">button</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3376" class="blob-num js-line-number" data-line-number="3376"></td>
        <td id="LC3376" class="blob-code js-file-line">                <span class="nx">self</span><span class="p">.</span><span class="nx">preventMouseEvents</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3377" class="blob-num js-line-number" data-line-number="3377"></td>
        <td id="LC3377" class="blob-code js-file-line">                <span class="nx">self</span><span class="p">.</span><span class="nx">shouldDetect</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3378" class="blob-num js-line-number" data-line-number="3378"></td>
        <td id="LC3378" class="blob-code js-file-line">            <span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">isPointer</span> <span class="o">&amp;&amp;</span> <span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_START</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3379" class="blob-num js-line-number" data-line-number="3379"></td>
        <td id="LC3379" class="blob-code js-file-line">                <span class="nx">self</span><span class="p">.</span><span class="nx">shouldDetect</span> <span class="o">=</span> <span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">buttons</span> <span class="o">===</span> <span class="mi">1</span> <span class="o">||</span> <span class="nx">PointerEvent</span><span class="p">.</span><span class="nx">matchType</span><span class="p">(</span><span class="nx">POINTER_TOUCH</span><span class="p">,</span> <span class="nx">ev</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L3380" class="blob-num js-line-number" data-line-number="3380"></td>
        <td id="LC3380" class="blob-code js-file-line">            <span class="c1">// just a valid start event, but no mouse</span></td>
      </tr>
      <tr>
        <td id="L3381" class="blob-num js-line-number" data-line-number="3381"></td>
        <td id="LC3381" class="blob-code js-file-line">            <span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">isMouse</span> <span class="o">&amp;&amp;</span> <span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_START</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3382" class="blob-num js-line-number" data-line-number="3382"></td>
        <td id="LC3382" class="blob-code js-file-line">                <span class="nx">self</span><span class="p">.</span><span class="nx">preventMouseEvents</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3383" class="blob-num js-line-number" data-line-number="3383"></td>
        <td id="LC3383" class="blob-code js-file-line">                <span class="nx">self</span><span class="p">.</span><span class="nx">shouldDetect</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3384" class="blob-num js-line-number" data-line-number="3384"></td>
        <td id="LC3384" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3385" class="blob-num js-line-number" data-line-number="3385"></td>
        <td id="LC3385" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3386" class="blob-num js-line-number" data-line-number="3386"></td>
        <td id="LC3386" class="blob-code js-file-line">            <span class="c1">// update the pointer event before entering the detection</span></td>
      </tr>
      <tr>
        <td id="L3387" class="blob-num js-line-number" data-line-number="3387"></td>
        <td id="LC3387" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">isPointer</span> <span class="o">&amp;&amp;</span> <span class="nx">eventType</span> <span class="o">!=</span> <span class="nx">EVENT_END</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3388" class="blob-num js-line-number" data-line-number="3388"></td>
        <td id="LC3388" class="blob-code js-file-line">                <span class="nx">PointerEvent</span><span class="p">.</span><span class="nx">updatePointer</span><span class="p">(</span><span class="nx">eventType</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3389" class="blob-num js-line-number" data-line-number="3389"></td>
        <td id="LC3389" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3390" class="blob-num js-line-number" data-line-number="3390"></td>
        <td id="LC3390" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3391" class="blob-num js-line-number" data-line-number="3391"></td>
        <td id="LC3391" class="blob-code js-file-line">            <span class="c1">// we are in a touch/down state, so allowed detection of gestures</span></td>
      </tr>
      <tr>
        <td id="L3392" class="blob-num js-line-number" data-line-number="3392"></td>
        <td id="LC3392" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">self</span><span class="p">.</span><span class="nx">shouldDetect</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3393" class="blob-num js-line-number" data-line-number="3393"></td>
        <td id="LC3393" class="blob-code js-file-line">                <span class="nx">triggerType</span> <span class="o">=</span> <span class="nx">self</span><span class="p">.</span><span class="nx">doDetect</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">self</span><span class="p">,</span> <span class="nx">ev</span><span class="p">,</span> <span class="nx">eventType</span><span class="p">,</span> <span class="nx">element</span><span class="p">,</span> <span class="nx">handler</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3394" class="blob-num js-line-number" data-line-number="3394"></td>
        <td id="LC3394" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3395" class="blob-num js-line-number" data-line-number="3395"></td>
        <td id="LC3395" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3396" class="blob-num js-line-number" data-line-number="3396"></td>
        <td id="LC3396" class="blob-code js-file-line">            <span class="c1">// ...and we are done with the detection</span></td>
      </tr>
      <tr>
        <td id="L3397" class="blob-num js-line-number" data-line-number="3397"></td>
        <td id="LC3397" class="blob-code js-file-line">            <span class="c1">// so reset everything to start each detection totally fresh</span></td>
      </tr>
      <tr>
        <td id="L3398" class="blob-num js-line-number" data-line-number="3398"></td>
        <td id="LC3398" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">triggerType</span> <span class="o">==</span> <span class="nx">EVENT_END</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3399" class="blob-num js-line-number" data-line-number="3399"></td>
        <td id="LC3399" class="blob-code js-file-line">                <span class="nx">self</span><span class="p">.</span><span class="nx">preventMouseEvents</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3400" class="blob-num js-line-number" data-line-number="3400"></td>
        <td id="LC3400" class="blob-code js-file-line">                <span class="nx">self</span><span class="p">.</span><span class="nx">shouldDetect</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3401" class="blob-num js-line-number" data-line-number="3401"></td>
        <td id="LC3401" class="blob-code js-file-line">                <span class="nx">PointerEvent</span><span class="p">.</span><span class="nx">reset</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L3402" class="blob-num js-line-number" data-line-number="3402"></td>
        <td id="LC3402" class="blob-code js-file-line">            <span class="c1">// update the pointerevent object after the detection</span></td>
      </tr>
      <tr>
        <td id="L3403" class="blob-num js-line-number" data-line-number="3403"></td>
        <td id="LC3403" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3404" class="blob-num js-line-number" data-line-number="3404"></td>
        <td id="LC3404" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3405" class="blob-num js-line-number" data-line-number="3405"></td>
        <td id="LC3405" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">isPointer</span> <span class="o">&amp;&amp;</span> <span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_END</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3406" class="blob-num js-line-number" data-line-number="3406"></td>
        <td id="LC3406" class="blob-code js-file-line">                <span class="nx">PointerEvent</span><span class="p">.</span><span class="nx">updatePointer</span><span class="p">(</span><span class="nx">eventType</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3407" class="blob-num js-line-number" data-line-number="3407"></td>
        <td id="LC3407" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3408" class="blob-num js-line-number" data-line-number="3408"></td>
        <td id="LC3408" class="blob-code js-file-line">        <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3409" class="blob-num js-line-number" data-line-number="3409"></td>
        <td id="LC3409" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3410" class="blob-num js-line-number" data-line-number="3410"></td>
        <td id="LC3410" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">EVENT_TYPES</span><span class="p">[</span><span class="nx">eventType</span><span class="p">],</span> <span class="nx">onTouchHandler</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3411" class="blob-num js-line-number" data-line-number="3411"></td>
        <td id="LC3411" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">onTouchHandler</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3412" class="blob-num js-line-number" data-line-number="3412"></td>
        <td id="LC3412" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3413" class="blob-num js-line-number" data-line-number="3413"></td>
        <td id="LC3413" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3414" class="blob-num js-line-number" data-line-number="3414"></td>
        <td id="LC3414" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3415" class="blob-num js-line-number" data-line-number="3415"></td>
        <td id="LC3415" class="blob-code js-file-line"><span class="cm">     * the core detection method</span></td>
      </tr>
      <tr>
        <td id="L3416" class="blob-num js-line-number" data-line-number="3416"></td>
        <td id="LC3416" class="blob-code js-file-line"><span class="cm">     * this finds out what hammer-touch-events to trigger</span></td>
      </tr>
      <tr>
        <td id="L3417" class="blob-num js-line-number" data-line-number="3417"></td>
        <td id="LC3417" class="blob-code js-file-line"><span class="cm">     * @method doDetect</span></td>
      </tr>
      <tr>
        <td id="L3418" class="blob-num js-line-number" data-line-number="3418"></td>
        <td id="LC3418" class="blob-code js-file-line"><span class="cm">     * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L3419" class="blob-num js-line-number" data-line-number="3419"></td>
        <td id="LC3419" class="blob-code js-file-line"><span class="cm">     * @param {String} eventType matches `EVENT_START|MOVE|END`</span></td>
      </tr>
      <tr>
        <td id="L3420" class="blob-num js-line-number" data-line-number="3420"></td>
        <td id="LC3420" class="blob-code js-file-line"><span class="cm">     * @param {HTMLElement} element</span></td>
      </tr>
      <tr>
        <td id="L3421" class="blob-num js-line-number" data-line-number="3421"></td>
        <td id="LC3421" class="blob-code js-file-line"><span class="cm">     * @param {Function} handler</span></td>
      </tr>
      <tr>
        <td id="L3422" class="blob-num js-line-number" data-line-number="3422"></td>
        <td id="LC3422" class="blob-code js-file-line"><span class="cm">     * @return {String} triggerType matches `EVENT_START|MOVE|END`</span></td>
      </tr>
      <tr>
        <td id="L3423" class="blob-num js-line-number" data-line-number="3423"></td>
        <td id="LC3423" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3424" class="blob-num js-line-number" data-line-number="3424"></td>
        <td id="LC3424" class="blob-code js-file-line">    <span class="nx">doDetect</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">doDetect</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">eventType</span><span class="p">,</span> <span class="nx">element</span><span class="p">,</span> <span class="nx">handler</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3425" class="blob-num js-line-number" data-line-number="3425"></td>
        <td id="LC3425" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">touchList</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getTouchList</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">eventType</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3426" class="blob-num js-line-number" data-line-number="3426"></td>
        <td id="LC3426" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">touchListLength</span> <span class="o">=</span> <span class="nx">touchList</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3427" class="blob-num js-line-number" data-line-number="3427"></td>
        <td id="LC3427" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">triggerType</span> <span class="o">=</span> <span class="nx">eventType</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3428" class="blob-num js-line-number" data-line-number="3428"></td>
        <td id="LC3428" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">triggerChange</span> <span class="o">=</span> <span class="nx">touchList</span><span class="p">.</span><span class="nx">trigger</span><span class="p">;</span> <span class="c1">// used by fakeMultitouch plugin</span></td>
      </tr>
      <tr>
        <td id="L3429" class="blob-num js-line-number" data-line-number="3429"></td>
        <td id="LC3429" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">changedLength</span> <span class="o">=</span> <span class="nx">touchListLength</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3430" class="blob-num js-line-number" data-line-number="3430"></td>
        <td id="LC3430" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3431" class="blob-num js-line-number" data-line-number="3431"></td>
        <td id="LC3431" class="blob-code js-file-line">        <span class="c1">// at each touchstart-like event we want also want to trigger a TOUCH event...</span></td>
      </tr>
      <tr>
        <td id="L3432" class="blob-num js-line-number" data-line-number="3432"></td>
        <td id="LC3432" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_START</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3433" class="blob-num js-line-number" data-line-number="3433"></td>
        <td id="LC3433" class="blob-code js-file-line">            <span class="nx">triggerChange</span> <span class="o">=</span> <span class="nx">EVENT_TOUCH</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3434" class="blob-num js-line-number" data-line-number="3434"></td>
        <td id="LC3434" class="blob-code js-file-line">        <span class="c1">// ...the same for a touchend-like event</span></td>
      </tr>
      <tr>
        <td id="L3435" class="blob-num js-line-number" data-line-number="3435"></td>
        <td id="LC3435" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_END</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3436" class="blob-num js-line-number" data-line-number="3436"></td>
        <td id="LC3436" class="blob-code js-file-line">            <span class="nx">triggerChange</span> <span class="o">=</span> <span class="nx">EVENT_RELEASE</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3437" class="blob-num js-line-number" data-line-number="3437"></td>
        <td id="LC3437" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3438" class="blob-num js-line-number" data-line-number="3438"></td>
        <td id="LC3438" class="blob-code js-file-line">            <span class="c1">// keep track of how many touches have been removed</span></td>
      </tr>
      <tr>
        <td id="L3439" class="blob-num js-line-number" data-line-number="3439"></td>
        <td id="LC3439" class="blob-code js-file-line">            <span class="nx">changedLength</span> <span class="o">=</span> <span class="nx">touchList</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="p">((</span><span class="nx">ev</span><span class="p">.</span><span class="nx">changedTouches</span><span class="p">)</span> <span class="o">?</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">changedTouches</span><span class="p">.</span><span class="nx">length</span> <span class="o">:</span> <span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3440" class="blob-num js-line-number" data-line-number="3440"></td>
        <td id="LC3440" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3441" class="blob-num js-line-number" data-line-number="3441"></td>
        <td id="LC3441" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3442" class="blob-num js-line-number" data-line-number="3442"></td>
        <td id="LC3442" class="blob-code js-file-line">        <span class="c1">// after there are still touches on the screen,</span></td>
      </tr>
      <tr>
        <td id="L3443" class="blob-num js-line-number" data-line-number="3443"></td>
        <td id="LC3443" class="blob-code js-file-line">        <span class="c1">// we just want to trigger a MOVE event. so change the START or END to a MOVE</span></td>
      </tr>
      <tr>
        <td id="L3444" class="blob-num js-line-number" data-line-number="3444"></td>
        <td id="LC3444" class="blob-code js-file-line">        <span class="c1">// but only after detection has been started, the first time we actualy want a START</span></td>
      </tr>
      <tr>
        <td id="L3445" class="blob-num js-line-number" data-line-number="3445"></td>
        <td id="LC3445" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">changedLength</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="p">.</span><span class="nx">started</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3446" class="blob-num js-line-number" data-line-number="3446"></td>
        <td id="LC3446" class="blob-code js-file-line">            <span class="nx">triggerType</span> <span class="o">=</span> <span class="nx">EVENT_MOVE</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3447" class="blob-num js-line-number" data-line-number="3447"></td>
        <td id="LC3447" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3448" class="blob-num js-line-number" data-line-number="3448"></td>
        <td id="LC3448" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3449" class="blob-num js-line-number" data-line-number="3449"></td>
        <td id="LC3449" class="blob-code js-file-line">        <span class="c1">// detection has been started, we keep track of this, see above</span></td>
      </tr>
      <tr>
        <td id="L3450" class="blob-num js-line-number" data-line-number="3450"></td>
        <td id="LC3450" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">started</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3451" class="blob-num js-line-number" data-line-number="3451"></td>
        <td id="LC3451" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3452" class="blob-num js-line-number" data-line-number="3452"></td>
        <td id="LC3452" class="blob-code js-file-line">        <span class="c1">// generate some event data, some basic information</span></td>
      </tr>
      <tr>
        <td id="L3453" class="blob-num js-line-number" data-line-number="3453"></td>
        <td id="LC3453" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">evData</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">collectEventData</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">triggerType</span><span class="p">,</span> <span class="nx">touchList</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3454" class="blob-num js-line-number" data-line-number="3454"></td>
        <td id="LC3454" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3455" class="blob-num js-line-number" data-line-number="3455"></td>
        <td id="LC3455" class="blob-code js-file-line">        <span class="c1">// trigger the triggerType event before the change (TOUCH, RELEASE) events</span></td>
      </tr>
      <tr>
        <td id="L3456" class="blob-num js-line-number" data-line-number="3456"></td>
        <td id="LC3456" class="blob-code js-file-line">        <span class="c1">// but the END event should be at last</span></td>
      </tr>
      <tr>
        <td id="L3457" class="blob-num js-line-number" data-line-number="3457"></td>
        <td id="LC3457" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">eventType</span> <span class="o">!=</span> <span class="nx">EVENT_END</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3458" class="blob-num js-line-number" data-line-number="3458"></td>
        <td id="LC3458" class="blob-code js-file-line">            <span class="nx">handler</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">Detection</span><span class="p">,</span> <span class="nx">evData</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3459" class="blob-num js-line-number" data-line-number="3459"></td>
        <td id="LC3459" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3460" class="blob-num js-line-number" data-line-number="3460"></td>
        <td id="LC3460" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3461" class="blob-num js-line-number" data-line-number="3461"></td>
        <td id="LC3461" class="blob-code js-file-line">        <span class="c1">// trigger a change (TOUCH, RELEASE) event, this means the length of the touches changed</span></td>
      </tr>
      <tr>
        <td id="L3462" class="blob-num js-line-number" data-line-number="3462"></td>
        <td id="LC3462" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">triggerChange</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3463" class="blob-num js-line-number" data-line-number="3463"></td>
        <td id="LC3463" class="blob-code js-file-line">            <span class="nx">evData</span><span class="p">.</span><span class="nx">changedLength</span> <span class="o">=</span> <span class="nx">changedLength</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3464" class="blob-num js-line-number" data-line-number="3464"></td>
        <td id="LC3464" class="blob-code js-file-line">            <span class="nx">evData</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">=</span> <span class="nx">triggerChange</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3465" class="blob-num js-line-number" data-line-number="3465"></td>
        <td id="LC3465" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3466" class="blob-num js-line-number" data-line-number="3466"></td>
        <td id="LC3466" class="blob-code js-file-line">            <span class="nx">handler</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">Detection</span><span class="p">,</span> <span class="nx">evData</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3467" class="blob-num js-line-number" data-line-number="3467"></td>
        <td id="LC3467" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3468" class="blob-num js-line-number" data-line-number="3468"></td>
        <td id="LC3468" class="blob-code js-file-line">            <span class="nx">evData</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">=</span> <span class="nx">triggerType</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3469" class="blob-num js-line-number" data-line-number="3469"></td>
        <td id="LC3469" class="blob-code js-file-line">            <span class="k">delete</span> <span class="nx">evData</span><span class="p">.</span><span class="nx">changedLength</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3470" class="blob-num js-line-number" data-line-number="3470"></td>
        <td id="LC3470" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3471" class="blob-num js-line-number" data-line-number="3471"></td>
        <td id="LC3471" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3472" class="blob-num js-line-number" data-line-number="3472"></td>
        <td id="LC3472" class="blob-code js-file-line">        <span class="c1">// trigger the END event</span></td>
      </tr>
      <tr>
        <td id="L3473" class="blob-num js-line-number" data-line-number="3473"></td>
        <td id="LC3473" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">triggerType</span> <span class="o">==</span> <span class="nx">EVENT_END</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3474" class="blob-num js-line-number" data-line-number="3474"></td>
        <td id="LC3474" class="blob-code js-file-line">            <span class="nx">handler</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">Detection</span><span class="p">,</span> <span class="nx">evData</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3475" class="blob-num js-line-number" data-line-number="3475"></td>
        <td id="LC3475" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3476" class="blob-num js-line-number" data-line-number="3476"></td>
        <td id="LC3476" class="blob-code js-file-line">            <span class="c1">// ...and we are done with the detection</span></td>
      </tr>
      <tr>
        <td id="L3477" class="blob-num js-line-number" data-line-number="3477"></td>
        <td id="LC3477" class="blob-code js-file-line">            <span class="c1">// so reset everything to start each detection totally fresh</span></td>
      </tr>
      <tr>
        <td id="L3478" class="blob-num js-line-number" data-line-number="3478"></td>
        <td id="LC3478" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">started</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3479" class="blob-num js-line-number" data-line-number="3479"></td>
        <td id="LC3479" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3480" class="blob-num js-line-number" data-line-number="3480"></td>
        <td id="LC3480" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3481" class="blob-num js-line-number" data-line-number="3481"></td>
        <td id="LC3481" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">triggerType</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3482" class="blob-num js-line-number" data-line-number="3482"></td>
        <td id="LC3482" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3483" class="blob-num js-line-number" data-line-number="3483"></td>
        <td id="LC3483" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3484" class="blob-num js-line-number" data-line-number="3484"></td>
        <td id="LC3484" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3485" class="blob-num js-line-number" data-line-number="3485"></td>
        <td id="LC3485" class="blob-code js-file-line"><span class="cm">     * we have different events for each device/browser</span></td>
      </tr>
      <tr>
        <td id="L3486" class="blob-num js-line-number" data-line-number="3486"></td>
        <td id="LC3486" class="blob-code js-file-line"><span class="cm">     * determine what we need and set them in the EVENT_TYPES constant</span></td>
      </tr>
      <tr>
        <td id="L3487" class="blob-num js-line-number" data-line-number="3487"></td>
        <td id="LC3487" class="blob-code js-file-line"><span class="cm">     * the `onTouch` method is bind to these properties.</span></td>
      </tr>
      <tr>
        <td id="L3488" class="blob-num js-line-number" data-line-number="3488"></td>
        <td id="LC3488" class="blob-code js-file-line"><span class="cm">     * @method determineEventTypes</span></td>
      </tr>
      <tr>
        <td id="L3489" class="blob-num js-line-number" data-line-number="3489"></td>
        <td id="LC3489" class="blob-code js-file-line"><span class="cm">     * @return {Object} events</span></td>
      </tr>
      <tr>
        <td id="L3490" class="blob-num js-line-number" data-line-number="3490"></td>
        <td id="LC3490" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3491" class="blob-num js-line-number" data-line-number="3491"></td>
        <td id="LC3491" class="blob-code js-file-line">    <span class="nx">determineEventTypes</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">determineEventTypes</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3492" class="blob-num js-line-number" data-line-number="3492"></td>
        <td id="LC3492" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">types</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3493" class="blob-num js-line-number" data-line-number="3493"></td>
        <td id="LC3493" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">Hammer</span><span class="p">.</span><span class="nx">HAS_POINTEREVENTS</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3494" class="blob-num js-line-number" data-line-number="3494"></td>
        <td id="LC3494" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">PointerEvent</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3495" class="blob-num js-line-number" data-line-number="3495"></td>
        <td id="LC3495" class="blob-code js-file-line">                <span class="nx">types</span> <span class="o">=</span> <span class="p">[</span></td>
      </tr>
      <tr>
        <td id="L3496" class="blob-num js-line-number" data-line-number="3496"></td>
        <td id="LC3496" class="blob-code js-file-line">                    <span class="s1">&#39;pointerdown&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3497" class="blob-num js-line-number" data-line-number="3497"></td>
        <td id="LC3497" class="blob-code js-file-line">                    <span class="s1">&#39;pointermove&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3498" class="blob-num js-line-number" data-line-number="3498"></td>
        <td id="LC3498" class="blob-code js-file-line">                    <span class="s1">&#39;pointerup pointercancel lostpointercapture&#39;</span></td>
      </tr>
      <tr>
        <td id="L3499" class="blob-num js-line-number" data-line-number="3499"></td>
        <td id="LC3499" class="blob-code js-file-line">                <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3500" class="blob-num js-line-number" data-line-number="3500"></td>
        <td id="LC3500" class="blob-code js-file-line">            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3501" class="blob-num js-line-number" data-line-number="3501"></td>
        <td id="LC3501" class="blob-code js-file-line">                <span class="nx">types</span> <span class="o">=</span> <span class="p">[</span></td>
      </tr>
      <tr>
        <td id="L3502" class="blob-num js-line-number" data-line-number="3502"></td>
        <td id="LC3502" class="blob-code js-file-line">                    <span class="s1">&#39;MSPointerDown&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3503" class="blob-num js-line-number" data-line-number="3503"></td>
        <td id="LC3503" class="blob-code js-file-line">                    <span class="s1">&#39;MSPointerMove&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3504" class="blob-num js-line-number" data-line-number="3504"></td>
        <td id="LC3504" class="blob-code js-file-line">                    <span class="s1">&#39;MSPointerUp MSPointerCancel MSLostPointerCapture&#39;</span></td>
      </tr>
      <tr>
        <td id="L3505" class="blob-num js-line-number" data-line-number="3505"></td>
        <td id="LC3505" class="blob-code js-file-line">                <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3506" class="blob-num js-line-number" data-line-number="3506"></td>
        <td id="LC3506" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3507" class="blob-num js-line-number" data-line-number="3507"></td>
        <td id="LC3507" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">Hammer</span><span class="p">.</span><span class="nx">NO_MOUSEEVENTS</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3508" class="blob-num js-line-number" data-line-number="3508"></td>
        <td id="LC3508" class="blob-code js-file-line">            <span class="nx">types</span> <span class="o">=</span> <span class="p">[</span></td>
      </tr>
      <tr>
        <td id="L3509" class="blob-num js-line-number" data-line-number="3509"></td>
        <td id="LC3509" class="blob-code js-file-line">                <span class="s1">&#39;touchstart&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3510" class="blob-num js-line-number" data-line-number="3510"></td>
        <td id="LC3510" class="blob-code js-file-line">                <span class="s1">&#39;touchmove&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3511" class="blob-num js-line-number" data-line-number="3511"></td>
        <td id="LC3511" class="blob-code js-file-line">                <span class="s1">&#39;touchend touchcancel&#39;</span></td>
      </tr>
      <tr>
        <td id="L3512" class="blob-num js-line-number" data-line-number="3512"></td>
        <td id="LC3512" class="blob-code js-file-line">            <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3513" class="blob-num js-line-number" data-line-number="3513"></td>
        <td id="LC3513" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3514" class="blob-num js-line-number" data-line-number="3514"></td>
        <td id="LC3514" class="blob-code js-file-line">            <span class="nx">types</span> <span class="o">=</span> <span class="p">[</span></td>
      </tr>
      <tr>
        <td id="L3515" class="blob-num js-line-number" data-line-number="3515"></td>
        <td id="LC3515" class="blob-code js-file-line">                <span class="s1">&#39;touchstart mousedown&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3516" class="blob-num js-line-number" data-line-number="3516"></td>
        <td id="LC3516" class="blob-code js-file-line">                <span class="s1">&#39;touchmove mousemove&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3517" class="blob-num js-line-number" data-line-number="3517"></td>
        <td id="LC3517" class="blob-code js-file-line">                <span class="s1">&#39;touchend touchcancel mouseup&#39;</span></td>
      </tr>
      <tr>
        <td id="L3518" class="blob-num js-line-number" data-line-number="3518"></td>
        <td id="LC3518" class="blob-code js-file-line">            <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3519" class="blob-num js-line-number" data-line-number="3519"></td>
        <td id="LC3519" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3520" class="blob-num js-line-number" data-line-number="3520"></td>
        <td id="LC3520" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3521" class="blob-num js-line-number" data-line-number="3521"></td>
        <td id="LC3521" class="blob-code js-file-line">        <span class="nx">EVENT_TYPES</span><span class="p">[</span><span class="nx">EVENT_START</span><span class="p">]</span> <span class="o">=</span> <span class="nx">types</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3522" class="blob-num js-line-number" data-line-number="3522"></td>
        <td id="LC3522" class="blob-code js-file-line">        <span class="nx">EVENT_TYPES</span><span class="p">[</span><span class="nx">EVENT_MOVE</span><span class="p">]</span> <span class="o">=</span> <span class="nx">types</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3523" class="blob-num js-line-number" data-line-number="3523"></td>
        <td id="LC3523" class="blob-code js-file-line">        <span class="nx">EVENT_TYPES</span><span class="p">[</span><span class="nx">EVENT_END</span><span class="p">]</span> <span class="o">=</span> <span class="nx">types</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3524" class="blob-num js-line-number" data-line-number="3524"></td>
        <td id="LC3524" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">EVENT_TYPES</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3525" class="blob-num js-line-number" data-line-number="3525"></td>
        <td id="LC3525" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3526" class="blob-num js-line-number" data-line-number="3526"></td>
        <td id="LC3526" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3527" class="blob-num js-line-number" data-line-number="3527"></td>
        <td id="LC3527" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3528" class="blob-num js-line-number" data-line-number="3528"></td>
        <td id="LC3528" class="blob-code js-file-line"><span class="cm">     * create touchList depending on the event</span></td>
      </tr>
      <tr>
        <td id="L3529" class="blob-num js-line-number" data-line-number="3529"></td>
        <td id="LC3529" class="blob-code js-file-line"><span class="cm">     * @method getTouchList</span></td>
      </tr>
      <tr>
        <td id="L3530" class="blob-num js-line-number" data-line-number="3530"></td>
        <td id="LC3530" class="blob-code js-file-line"><span class="cm">     * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L3531" class="blob-num js-line-number" data-line-number="3531"></td>
        <td id="LC3531" class="blob-code js-file-line"><span class="cm">     * @param {String} eventType</span></td>
      </tr>
      <tr>
        <td id="L3532" class="blob-num js-line-number" data-line-number="3532"></td>
        <td id="LC3532" class="blob-code js-file-line"><span class="cm">     * @return {Array} touches</span></td>
      </tr>
      <tr>
        <td id="L3533" class="blob-num js-line-number" data-line-number="3533"></td>
        <td id="LC3533" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3534" class="blob-num js-line-number" data-line-number="3534"></td>
        <td id="LC3534" class="blob-code js-file-line">    <span class="nx">getTouchList</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getTouchList</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">eventType</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3535" class="blob-num js-line-number" data-line-number="3535"></td>
        <td id="LC3535" class="blob-code js-file-line">        <span class="c1">// get the fake pointerEvent touchlist</span></td>
      </tr>
      <tr>
        <td id="L3536" class="blob-num js-line-number" data-line-number="3536"></td>
        <td id="LC3536" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">Hammer</span><span class="p">.</span><span class="nx">HAS_POINTEREVENTS</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3537" class="blob-num js-line-number" data-line-number="3537"></td>
        <td id="LC3537" class="blob-code js-file-line">            <span class="k">return</span> <span class="nx">PointerEvent</span><span class="p">.</span><span class="nx">getTouchList</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L3538" class="blob-num js-line-number" data-line-number="3538"></td>
        <td id="LC3538" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3539" class="blob-num js-line-number" data-line-number="3539"></td>
        <td id="LC3539" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3540" class="blob-num js-line-number" data-line-number="3540"></td>
        <td id="LC3540" class="blob-code js-file-line">        <span class="c1">// get the touchlist</span></td>
      </tr>
      <tr>
        <td id="L3541" class="blob-num js-line-number" data-line-number="3541"></td>
        <td id="LC3541" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">touches</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3542" class="blob-num js-line-number" data-line-number="3542"></td>
        <td id="LC3542" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_MOVE</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3543" class="blob-num js-line-number" data-line-number="3543"></td>
        <td id="LC3543" class="blob-code js-file-line">                <span class="k">return</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">touches</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3544" class="blob-num js-line-number" data-line-number="3544"></td>
        <td id="LC3544" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3545" class="blob-num js-line-number" data-line-number="3545"></td>
        <td id="LC3545" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3546" class="blob-num js-line-number" data-line-number="3546"></td>
        <td id="LC3546" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">identifiers</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L3547" class="blob-num js-line-number" data-line-number="3547"></td>
        <td id="LC3547" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">concat</span> <span class="o">=</span> <span class="p">[].</span><span class="nx">concat</span><span class="p">(</span><span class="nx">Utils</span><span class="p">.</span><span class="nx">toArray</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">touches</span><span class="p">),</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">toArray</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">changedTouches</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L3548" class="blob-num js-line-number" data-line-number="3548"></td>
        <td id="LC3548" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">touchList</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L3549" class="blob-num js-line-number" data-line-number="3549"></td>
        <td id="LC3549" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3550" class="blob-num js-line-number" data-line-number="3550"></td>
        <td id="LC3550" class="blob-code js-file-line">            <span class="nx">Utils</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">concat</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">touch</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3551" class="blob-num js-line-number" data-line-number="3551"></td>
        <td id="LC3551" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">Utils</span><span class="p">.</span><span class="nx">inArray</span><span class="p">(</span><span class="nx">identifiers</span><span class="p">,</span> <span class="nx">touch</span><span class="p">.</span><span class="nx">identifier</span><span class="p">)</span> <span class="o">===</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3552" class="blob-num js-line-number" data-line-number="3552"></td>
        <td id="LC3552" class="blob-code js-file-line">                    <span class="nx">touchList</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">touch</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3553" class="blob-num js-line-number" data-line-number="3553"></td>
        <td id="LC3553" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3554" class="blob-num js-line-number" data-line-number="3554"></td>
        <td id="LC3554" class="blob-code js-file-line">                <span class="nx">identifiers</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">touch</span><span class="p">.</span><span class="nx">identifier</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3555" class="blob-num js-line-number" data-line-number="3555"></td>
        <td id="LC3555" class="blob-code js-file-line">            <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3556" class="blob-num js-line-number" data-line-number="3556"></td>
        <td id="LC3556" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3557" class="blob-num js-line-number" data-line-number="3557"></td>
        <td id="LC3557" class="blob-code js-file-line">            <span class="k">return</span> <span class="nx">touchList</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3558" class="blob-num js-line-number" data-line-number="3558"></td>
        <td id="LC3558" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3559" class="blob-num js-line-number" data-line-number="3559"></td>
        <td id="LC3559" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3560" class="blob-num js-line-number" data-line-number="3560"></td>
        <td id="LC3560" class="blob-code js-file-line">        <span class="c1">// make fake touchList from mouse position</span></td>
      </tr>
      <tr>
        <td id="L3561" class="blob-num js-line-number" data-line-number="3561"></td>
        <td id="LC3561" class="blob-code js-file-line">        <span class="nx">ev</span><span class="p">.</span><span class="nx">identifier</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3562" class="blob-num js-line-number" data-line-number="3562"></td>
        <td id="LC3562" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[</span><span class="nx">ev</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3563" class="blob-num js-line-number" data-line-number="3563"></td>
        <td id="LC3563" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3564" class="blob-num js-line-number" data-line-number="3564"></td>
        <td id="LC3564" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3565" class="blob-num js-line-number" data-line-number="3565"></td>
        <td id="LC3565" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3566" class="blob-num js-line-number" data-line-number="3566"></td>
        <td id="LC3566" class="blob-code js-file-line"><span class="cm">     * collect basic event data</span></td>
      </tr>
      <tr>
        <td id="L3567" class="blob-num js-line-number" data-line-number="3567"></td>
        <td id="LC3567" class="blob-code js-file-line"><span class="cm">     * @method collectEventData</span></td>
      </tr>
      <tr>
        <td id="L3568" class="blob-num js-line-number" data-line-number="3568"></td>
        <td id="LC3568" class="blob-code js-file-line"><span class="cm">     * @param {HTMLElement} element</span></td>
      </tr>
      <tr>
        <td id="L3569" class="blob-num js-line-number" data-line-number="3569"></td>
        <td id="LC3569" class="blob-code js-file-line"><span class="cm">     * @param {String} eventType matches `EVENT_START|MOVE|END`</span></td>
      </tr>
      <tr>
        <td id="L3570" class="blob-num js-line-number" data-line-number="3570"></td>
        <td id="LC3570" class="blob-code js-file-line"><span class="cm">     * @param {Array} touches</span></td>
      </tr>
      <tr>
        <td id="L3571" class="blob-num js-line-number" data-line-number="3571"></td>
        <td id="LC3571" class="blob-code js-file-line"><span class="cm">     * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L3572" class="blob-num js-line-number" data-line-number="3572"></td>
        <td id="LC3572" class="blob-code js-file-line"><span class="cm">     * @return {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L3573" class="blob-num js-line-number" data-line-number="3573"></td>
        <td id="LC3573" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3574" class="blob-num js-line-number" data-line-number="3574"></td>
        <td id="LC3574" class="blob-code js-file-line">    <span class="nx">collectEventData</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">collectEventData</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">eventType</span><span class="p">,</span> <span class="nx">touches</span><span class="p">,</span> <span class="nx">ev</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3575" class="blob-num js-line-number" data-line-number="3575"></td>
        <td id="LC3575" class="blob-code js-file-line">        <span class="c1">// find out pointerType</span></td>
      </tr>
      <tr>
        <td id="L3576" class="blob-num js-line-number" data-line-number="3576"></td>
        <td id="LC3576" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">pointerType</span> <span class="o">=</span> <span class="nx">POINTER_TOUCH</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3577" class="blob-num js-line-number" data-line-number="3577"></td>
        <td id="LC3577" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">Utils</span><span class="p">.</span><span class="nx">inStr</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">type</span><span class="p">,</span> <span class="s1">&#39;mouse&#39;</span><span class="p">)</span> <span class="o">||</span> <span class="nx">PointerEvent</span><span class="p">.</span><span class="nx">matchType</span><span class="p">(</span><span class="nx">POINTER_MOUSE</span><span class="p">,</span> <span class="nx">ev</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3578" class="blob-num js-line-number" data-line-number="3578"></td>
        <td id="LC3578" class="blob-code js-file-line">            <span class="nx">pointerType</span> <span class="o">=</span> <span class="nx">POINTER_MOUSE</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3579" class="blob-num js-line-number" data-line-number="3579"></td>
        <td id="LC3579" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">PointerEvent</span><span class="p">.</span><span class="nx">matchType</span><span class="p">(</span><span class="nx">POINTER_PEN</span><span class="p">,</span> <span class="nx">ev</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3580" class="blob-num js-line-number" data-line-number="3580"></td>
        <td id="LC3580" class="blob-code js-file-line">            <span class="nx">pointerType</span> <span class="o">=</span> <span class="nx">POINTER_PEN</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3581" class="blob-num js-line-number" data-line-number="3581"></td>
        <td id="LC3581" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3582" class="blob-num js-line-number" data-line-number="3582"></td>
        <td id="LC3582" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3583" class="blob-num js-line-number" data-line-number="3583"></td>
        <td id="LC3583" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3584" class="blob-num js-line-number" data-line-number="3584"></td>
        <td id="LC3584" class="blob-code js-file-line">            <span class="nx">center</span><span class="o">:</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">getCenter</span><span class="p">(</span><span class="nx">touches</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L3585" class="blob-num js-line-number" data-line-number="3585"></td>
        <td id="LC3585" class="blob-code js-file-line">            <span class="nx">timeStamp</span><span class="o">:</span> <span class="nb">Date</span><span class="p">.</span><span class="nx">now</span><span class="p">(),</span></td>
      </tr>
      <tr>
        <td id="L3586" class="blob-num js-line-number" data-line-number="3586"></td>
        <td id="LC3586" class="blob-code js-file-line">            <span class="nx">target</span><span class="o">:</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">target</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3587" class="blob-num js-line-number" data-line-number="3587"></td>
        <td id="LC3587" class="blob-code js-file-line">            <span class="nx">touches</span><span class="o">:</span> <span class="nx">touches</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3588" class="blob-num js-line-number" data-line-number="3588"></td>
        <td id="LC3588" class="blob-code js-file-line">            <span class="nx">eventType</span><span class="o">:</span> <span class="nx">eventType</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3589" class="blob-num js-line-number" data-line-number="3589"></td>
        <td id="LC3589" class="blob-code js-file-line">            <span class="nx">pointerType</span><span class="o">:</span> <span class="nx">pointerType</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3590" class="blob-num js-line-number" data-line-number="3590"></td>
        <td id="LC3590" class="blob-code js-file-line">            <span class="nx">srcEvent</span><span class="o">:</span> <span class="nx">ev</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3591" class="blob-num js-line-number" data-line-number="3591"></td>
        <td id="LC3591" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3592" class="blob-num js-line-number" data-line-number="3592"></td>
        <td id="LC3592" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3593" class="blob-num js-line-number" data-line-number="3593"></td>
        <td id="LC3593" class="blob-code js-file-line"><span class="cm">             * prevent the browser default actions</span></td>
      </tr>
      <tr>
        <td id="L3594" class="blob-num js-line-number" data-line-number="3594"></td>
        <td id="LC3594" class="blob-code js-file-line"><span class="cm">             * mostly used to disable scrolling of the browser</span></td>
      </tr>
      <tr>
        <td id="L3595" class="blob-num js-line-number" data-line-number="3595"></td>
        <td id="LC3595" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L3596" class="blob-num js-line-number" data-line-number="3596"></td>
        <td id="LC3596" class="blob-code js-file-line">            <span class="nx">preventDefault</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3597" class="blob-num js-line-number" data-line-number="3597"></td>
        <td id="LC3597" class="blob-code js-file-line">                <span class="kd">var</span> <span class="nx">srcEvent</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">srcEvent</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3598" class="blob-num js-line-number" data-line-number="3598"></td>
        <td id="LC3598" class="blob-code js-file-line">                <span class="nx">srcEvent</span><span class="p">.</span><span class="nx">preventManipulation</span> <span class="o">&amp;&amp;</span> <span class="nx">srcEvent</span><span class="p">.</span><span class="nx">preventManipulation</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L3599" class="blob-num js-line-number" data-line-number="3599"></td>
        <td id="LC3599" class="blob-code js-file-line">                <span class="nx">srcEvent</span><span class="p">.</span><span class="nx">preventDefault</span> <span class="o">&amp;&amp;</span> <span class="nx">srcEvent</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L3600" class="blob-num js-line-number" data-line-number="3600"></td>
        <td id="LC3600" class="blob-code js-file-line">            <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3601" class="blob-num js-line-number" data-line-number="3601"></td>
        <td id="LC3601" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3602" class="blob-num js-line-number" data-line-number="3602"></td>
        <td id="LC3602" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3603" class="blob-num js-line-number" data-line-number="3603"></td>
        <td id="LC3603" class="blob-code js-file-line"><span class="cm">             * stop bubbling the event up to its parents</span></td>
      </tr>
      <tr>
        <td id="L3604" class="blob-num js-line-number" data-line-number="3604"></td>
        <td id="LC3604" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L3605" class="blob-num js-line-number" data-line-number="3605"></td>
        <td id="LC3605" class="blob-code js-file-line">            <span class="nx">stopPropagation</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3606" class="blob-num js-line-number" data-line-number="3606"></td>
        <td id="LC3606" class="blob-code js-file-line">                <span class="k">this</span><span class="p">.</span><span class="nx">srcEvent</span><span class="p">.</span><span class="nx">stopPropagation</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L3607" class="blob-num js-line-number" data-line-number="3607"></td>
        <td id="LC3607" class="blob-code js-file-line">            <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3608" class="blob-num js-line-number" data-line-number="3608"></td>
        <td id="LC3608" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3609" class="blob-num js-line-number" data-line-number="3609"></td>
        <td id="LC3609" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3610" class="blob-num js-line-number" data-line-number="3610"></td>
        <td id="LC3610" class="blob-code js-file-line"><span class="cm">             * immediately stop gesture detection</span></td>
      </tr>
      <tr>
        <td id="L3611" class="blob-num js-line-number" data-line-number="3611"></td>
        <td id="LC3611" class="blob-code js-file-line"><span class="cm">             * might be useful after a swipe was detected</span></td>
      </tr>
      <tr>
        <td id="L3612" class="blob-num js-line-number" data-line-number="3612"></td>
        <td id="LC3612" class="blob-code js-file-line"><span class="cm">             * @return {*}</span></td>
      </tr>
      <tr>
        <td id="L3613" class="blob-num js-line-number" data-line-number="3613"></td>
        <td id="LC3613" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L3614" class="blob-num js-line-number" data-line-number="3614"></td>
        <td id="LC3614" class="blob-code js-file-line">            <span class="nx">stopDetect</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3615" class="blob-num js-line-number" data-line-number="3615"></td>
        <td id="LC3615" class="blob-code js-file-line">                <span class="k">return</span> <span class="nx">Detection</span><span class="p">.</span><span class="nx">stopDetect</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L3616" class="blob-num js-line-number" data-line-number="3616"></td>
        <td id="LC3616" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3617" class="blob-num js-line-number" data-line-number="3617"></td>
        <td id="LC3617" class="blob-code js-file-line">        <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3618" class="blob-num js-line-number" data-line-number="3618"></td>
        <td id="LC3618" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3619" class="blob-num js-line-number" data-line-number="3619"></td>
        <td id="LC3619" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3620" class="blob-num js-line-number" data-line-number="3620"></td>
        <td id="LC3620" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3621" class="blob-num js-line-number" data-line-number="3621"></td>
        <td id="LC3621" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3622" class="blob-num js-line-number" data-line-number="3622"></td>
        <td id="LC3622" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3623" class="blob-num js-line-number" data-line-number="3623"></td>
        <td id="LC3623" class="blob-code js-file-line"><span class="cm"> * @module hammer</span></td>
      </tr>
      <tr>
        <td id="L3624" class="blob-num js-line-number" data-line-number="3624"></td>
        <td id="LC3624" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L3625" class="blob-num js-line-number" data-line-number="3625"></td>
        <td id="LC3625" class="blob-code js-file-line"><span class="cm"> * @class PointerEvent</span></td>
      </tr>
      <tr>
        <td id="L3626" class="blob-num js-line-number" data-line-number="3626"></td>
        <td id="LC3626" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L3627" class="blob-num js-line-number" data-line-number="3627"></td>
        <td id="LC3627" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L3628" class="blob-num js-line-number" data-line-number="3628"></td>
        <td id="LC3628" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">PointerEvent</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">PointerEvent</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3629" class="blob-num js-line-number" data-line-number="3629"></td>
        <td id="LC3629" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3630" class="blob-num js-line-number" data-line-number="3630"></td>
        <td id="LC3630" class="blob-code js-file-line"><span class="cm">     * holds all pointers, by `identifier`</span></td>
      </tr>
      <tr>
        <td id="L3631" class="blob-num js-line-number" data-line-number="3631"></td>
        <td id="LC3631" class="blob-code js-file-line"><span class="cm">     * @property pointers</span></td>
      </tr>
      <tr>
        <td id="L3632" class="blob-num js-line-number" data-line-number="3632"></td>
        <td id="LC3632" class="blob-code js-file-line"><span class="cm">     * @type {Object}</span></td>
      </tr>
      <tr>
        <td id="L3633" class="blob-num js-line-number" data-line-number="3633"></td>
        <td id="LC3633" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3634" class="blob-num js-line-number" data-line-number="3634"></td>
        <td id="LC3634" class="blob-code js-file-line">    <span class="nx">pointers</span><span class="o">:</span> <span class="p">{},</span></td>
      </tr>
      <tr>
        <td id="L3635" class="blob-num js-line-number" data-line-number="3635"></td>
        <td id="LC3635" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3636" class="blob-num js-line-number" data-line-number="3636"></td>
        <td id="LC3636" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3637" class="blob-num js-line-number" data-line-number="3637"></td>
        <td id="LC3637" class="blob-code js-file-line"><span class="cm">     * get the pointers as an array</span></td>
      </tr>
      <tr>
        <td id="L3638" class="blob-num js-line-number" data-line-number="3638"></td>
        <td id="LC3638" class="blob-code js-file-line"><span class="cm">     * @method getTouchList</span></td>
      </tr>
      <tr>
        <td id="L3639" class="blob-num js-line-number" data-line-number="3639"></td>
        <td id="LC3639" class="blob-code js-file-line"><span class="cm">     * @return {Array} touchlist</span></td>
      </tr>
      <tr>
        <td id="L3640" class="blob-num js-line-number" data-line-number="3640"></td>
        <td id="LC3640" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3641" class="blob-num js-line-number" data-line-number="3641"></td>
        <td id="LC3641" class="blob-code js-file-line">    <span class="nx">getTouchList</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getTouchList</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3642" class="blob-num js-line-number" data-line-number="3642"></td>
        <td id="LC3642" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">touchlist</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L3643" class="blob-num js-line-number" data-line-number="3643"></td>
        <td id="LC3643" class="blob-code js-file-line">        <span class="c1">// we can use forEach since pointerEvents only is in IE10</span></td>
      </tr>
      <tr>
        <td id="L3644" class="blob-num js-line-number" data-line-number="3644"></td>
        <td id="LC3644" class="blob-code js-file-line">        <span class="nx">Utils</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">pointers</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">pointer</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3645" class="blob-num js-line-number" data-line-number="3645"></td>
        <td id="LC3645" class="blob-code js-file-line">            <span class="nx">touchlist</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">pointer</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3646" class="blob-num js-line-number" data-line-number="3646"></td>
        <td id="LC3646" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3647" class="blob-num js-line-number" data-line-number="3647"></td>
        <td id="LC3647" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">touchlist</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3648" class="blob-num js-line-number" data-line-number="3648"></td>
        <td id="LC3648" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3649" class="blob-num js-line-number" data-line-number="3649"></td>
        <td id="LC3649" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3650" class="blob-num js-line-number" data-line-number="3650"></td>
        <td id="LC3650" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3651" class="blob-num js-line-number" data-line-number="3651"></td>
        <td id="LC3651" class="blob-code js-file-line"><span class="cm">     * update the position of a pointer</span></td>
      </tr>
      <tr>
        <td id="L3652" class="blob-num js-line-number" data-line-number="3652"></td>
        <td id="LC3652" class="blob-code js-file-line"><span class="cm">     * @method updatePointer</span></td>
      </tr>
      <tr>
        <td id="L3653" class="blob-num js-line-number" data-line-number="3653"></td>
        <td id="LC3653" class="blob-code js-file-line"><span class="cm">     * @param {String} eventType matches `EVENT_START|MOVE|END`</span></td>
      </tr>
      <tr>
        <td id="L3654" class="blob-num js-line-number" data-line-number="3654"></td>
        <td id="LC3654" class="blob-code js-file-line"><span class="cm">     * @param {Object} pointerEvent</span></td>
      </tr>
      <tr>
        <td id="L3655" class="blob-num js-line-number" data-line-number="3655"></td>
        <td id="LC3655" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3656" class="blob-num js-line-number" data-line-number="3656"></td>
        <td id="LC3656" class="blob-code js-file-line">    <span class="nx">updatePointer</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">updatePointer</span><span class="p">(</span><span class="nx">eventType</span><span class="p">,</span> <span class="nx">pointerEvent</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3657" class="blob-num js-line-number" data-line-number="3657"></td>
        <td id="LC3657" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_END</span> <span class="o">||</span> <span class="p">(</span><span class="nx">eventType</span> <span class="o">!=</span> <span class="nx">EVENT_END</span> <span class="o">&amp;&amp;</span> <span class="nx">pointerEvent</span><span class="p">.</span><span class="nx">buttons</span> <span class="o">!==</span> <span class="mi">1</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3658" class="blob-num js-line-number" data-line-number="3658"></td>
        <td id="LC3658" class="blob-code js-file-line">            <span class="k">delete</span> <span class="k">this</span><span class="p">.</span><span class="nx">pointers</span><span class="p">[</span><span class="nx">pointerEvent</span><span class="p">.</span><span class="nx">pointerId</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3659" class="blob-num js-line-number" data-line-number="3659"></td>
        <td id="LC3659" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3660" class="blob-num js-line-number" data-line-number="3660"></td>
        <td id="LC3660" class="blob-code js-file-line">            <span class="nx">pointerEvent</span><span class="p">.</span><span class="nx">identifier</span> <span class="o">=</span> <span class="nx">pointerEvent</span><span class="p">.</span><span class="nx">pointerId</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3661" class="blob-num js-line-number" data-line-number="3661"></td>
        <td id="LC3661" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">pointers</span><span class="p">[</span><span class="nx">pointerEvent</span><span class="p">.</span><span class="nx">pointerId</span><span class="p">]</span> <span class="o">=</span> <span class="nx">pointerEvent</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3662" class="blob-num js-line-number" data-line-number="3662"></td>
        <td id="LC3662" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3663" class="blob-num js-line-number" data-line-number="3663"></td>
        <td id="LC3663" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3664" class="blob-num js-line-number" data-line-number="3664"></td>
        <td id="LC3664" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3665" class="blob-num js-line-number" data-line-number="3665"></td>
        <td id="LC3665" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3666" class="blob-num js-line-number" data-line-number="3666"></td>
        <td id="LC3666" class="blob-code js-file-line"><span class="cm">     * check if ev matches pointertype</span></td>
      </tr>
      <tr>
        <td id="L3667" class="blob-num js-line-number" data-line-number="3667"></td>
        <td id="LC3667" class="blob-code js-file-line"><span class="cm">     * @method matchType</span></td>
      </tr>
      <tr>
        <td id="L3668" class="blob-num js-line-number" data-line-number="3668"></td>
        <td id="LC3668" class="blob-code js-file-line"><span class="cm">     * @param {String} pointerType matches `POINTER_MOUSE|TOUCH|PEN`</span></td>
      </tr>
      <tr>
        <td id="L3669" class="blob-num js-line-number" data-line-number="3669"></td>
        <td id="LC3669" class="blob-code js-file-line"><span class="cm">     * @param {PointerEvent} ev</span></td>
      </tr>
      <tr>
        <td id="L3670" class="blob-num js-line-number" data-line-number="3670"></td>
        <td id="LC3670" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3671" class="blob-num js-line-number" data-line-number="3671"></td>
        <td id="LC3671" class="blob-code js-file-line">    <span class="nx">matchType</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">matchType</span><span class="p">(</span><span class="nx">pointerType</span><span class="p">,</span> <span class="nx">ev</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3672" class="blob-num js-line-number" data-line-number="3672"></td>
        <td id="LC3672" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">ev</span><span class="p">.</span><span class="nx">pointerType</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3673" class="blob-num js-line-number" data-line-number="3673"></td>
        <td id="LC3673" class="blob-code js-file-line">            <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3674" class="blob-num js-line-number" data-line-number="3674"></td>
        <td id="LC3674" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3675" class="blob-num js-line-number" data-line-number="3675"></td>
        <td id="LC3675" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3676" class="blob-num js-line-number" data-line-number="3676"></td>
        <td id="LC3676" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">pt</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">pointerType</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3677" class="blob-num js-line-number" data-line-number="3677"></td>
        <td id="LC3677" class="blob-code js-file-line">            <span class="nx">types</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L3678" class="blob-num js-line-number" data-line-number="3678"></td>
        <td id="LC3678" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3679" class="blob-num js-line-number" data-line-number="3679"></td>
        <td id="LC3679" class="blob-code js-file-line">        <span class="nx">types</span><span class="p">[</span><span class="nx">POINTER_MOUSE</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="nx">pt</span> <span class="o">===</span> <span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">MSPOINTER_TYPE_MOUSE</span> <span class="o">||</span> <span class="nx">POINTER_MOUSE</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L3680" class="blob-num js-line-number" data-line-number="3680"></td>
        <td id="LC3680" class="blob-code js-file-line">        <span class="nx">types</span><span class="p">[</span><span class="nx">POINTER_TOUCH</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="nx">pt</span> <span class="o">===</span> <span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">MSPOINTER_TYPE_TOUCH</span> <span class="o">||</span> <span class="nx">POINTER_TOUCH</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L3681" class="blob-num js-line-number" data-line-number="3681"></td>
        <td id="LC3681" class="blob-code js-file-line">        <span class="nx">types</span><span class="p">[</span><span class="nx">POINTER_PEN</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="nx">pt</span> <span class="o">===</span> <span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">MSPOINTER_TYPE_PEN</span> <span class="o">||</span> <span class="nx">POINTER_PEN</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L3682" class="blob-num js-line-number" data-line-number="3682"></td>
        <td id="LC3682" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">types</span><span class="p">[</span><span class="nx">pointerType</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3683" class="blob-num js-line-number" data-line-number="3683"></td>
        <td id="LC3683" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3684" class="blob-num js-line-number" data-line-number="3684"></td>
        <td id="LC3684" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3685" class="blob-num js-line-number" data-line-number="3685"></td>
        <td id="LC3685" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3686" class="blob-num js-line-number" data-line-number="3686"></td>
        <td id="LC3686" class="blob-code js-file-line"><span class="cm">     * reset the stored pointers</span></td>
      </tr>
      <tr>
        <td id="L3687" class="blob-num js-line-number" data-line-number="3687"></td>
        <td id="LC3687" class="blob-code js-file-line"><span class="cm">     * @method reset</span></td>
      </tr>
      <tr>
        <td id="L3688" class="blob-num js-line-number" data-line-number="3688"></td>
        <td id="LC3688" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3689" class="blob-num js-line-number" data-line-number="3689"></td>
        <td id="LC3689" class="blob-code js-file-line">    <span class="nx">reset</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">resetList</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3690" class="blob-num js-line-number" data-line-number="3690"></td>
        <td id="LC3690" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">pointers</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L3691" class="blob-num js-line-number" data-line-number="3691"></td>
        <td id="LC3691" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3692" class="blob-num js-line-number" data-line-number="3692"></td>
        <td id="LC3692" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3693" class="blob-num js-line-number" data-line-number="3693"></td>
        <td id="LC3693" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3694" class="blob-num js-line-number" data-line-number="3694"></td>
        <td id="LC3694" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3695" class="blob-num js-line-number" data-line-number="3695"></td>
        <td id="LC3695" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3696" class="blob-num js-line-number" data-line-number="3696"></td>
        <td id="LC3696" class="blob-code js-file-line"><span class="cm"> * @module hammer</span></td>
      </tr>
      <tr>
        <td id="L3697" class="blob-num js-line-number" data-line-number="3697"></td>
        <td id="LC3697" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L3698" class="blob-num js-line-number" data-line-number="3698"></td>
        <td id="LC3698" class="blob-code js-file-line"><span class="cm"> * @class Detection</span></td>
      </tr>
      <tr>
        <td id="L3699" class="blob-num js-line-number" data-line-number="3699"></td>
        <td id="LC3699" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L3700" class="blob-num js-line-number" data-line-number="3700"></td>
        <td id="LC3700" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L3701" class="blob-num js-line-number" data-line-number="3701"></td>
        <td id="LC3701" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">Detection</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">detection</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3702" class="blob-num js-line-number" data-line-number="3702"></td>
        <td id="LC3702" class="blob-code js-file-line">    <span class="c1">// contains all registred Hammer.gestures in the correct order</span></td>
      </tr>
      <tr>
        <td id="L3703" class="blob-num js-line-number" data-line-number="3703"></td>
        <td id="LC3703" class="blob-code js-file-line">    <span class="nx">gestures</span><span class="o">:</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L3704" class="blob-num js-line-number" data-line-number="3704"></td>
        <td id="LC3704" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3705" class="blob-num js-line-number" data-line-number="3705"></td>
        <td id="LC3705" class="blob-code js-file-line">    <span class="c1">// data of the current Hammer.gesture detection session</span></td>
      </tr>
      <tr>
        <td id="L3706" class="blob-num js-line-number" data-line-number="3706"></td>
        <td id="LC3706" class="blob-code js-file-line">    <span class="nx">current</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3707" class="blob-num js-line-number" data-line-number="3707"></td>
        <td id="LC3707" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3708" class="blob-num js-line-number" data-line-number="3708"></td>
        <td id="LC3708" class="blob-code js-file-line">    <span class="c1">// the previous Hammer.gesture session data</span></td>
      </tr>
      <tr>
        <td id="L3709" class="blob-num js-line-number" data-line-number="3709"></td>
        <td id="LC3709" class="blob-code js-file-line">    <span class="c1">// is a full clone of the previous gesture.current object</span></td>
      </tr>
      <tr>
        <td id="L3710" class="blob-num js-line-number" data-line-number="3710"></td>
        <td id="LC3710" class="blob-code js-file-line">    <span class="nx">previous</span><span class="o">:</span> <span class="kc">null</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3711" class="blob-num js-line-number" data-line-number="3711"></td>
        <td id="LC3711" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3712" class="blob-num js-line-number" data-line-number="3712"></td>
        <td id="LC3712" class="blob-code js-file-line">    <span class="c1">// when this becomes true, no gestures are fired</span></td>
      </tr>
      <tr>
        <td id="L3713" class="blob-num js-line-number" data-line-number="3713"></td>
        <td id="LC3713" class="blob-code js-file-line">    <span class="nx">stopped</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3714" class="blob-num js-line-number" data-line-number="3714"></td>
        <td id="LC3714" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3715" class="blob-num js-line-number" data-line-number="3715"></td>
        <td id="LC3715" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3716" class="blob-num js-line-number" data-line-number="3716"></td>
        <td id="LC3716" class="blob-code js-file-line"><span class="cm">     * start Hammer.gesture detection</span></td>
      </tr>
      <tr>
        <td id="L3717" class="blob-num js-line-number" data-line-number="3717"></td>
        <td id="LC3717" class="blob-code js-file-line"><span class="cm">     * @method startDetect</span></td>
      </tr>
      <tr>
        <td id="L3718" class="blob-num js-line-number" data-line-number="3718"></td>
        <td id="LC3718" class="blob-code js-file-line"><span class="cm">     * @param {Hammer.Instance} inst</span></td>
      </tr>
      <tr>
        <td id="L3719" class="blob-num js-line-number" data-line-number="3719"></td>
        <td id="LC3719" class="blob-code js-file-line"><span class="cm">     * @param {Object} eventData</span></td>
      </tr>
      <tr>
        <td id="L3720" class="blob-num js-line-number" data-line-number="3720"></td>
        <td id="LC3720" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3721" class="blob-num js-line-number" data-line-number="3721"></td>
        <td id="LC3721" class="blob-code js-file-line">    <span class="nx">startDetect</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">startDetect</span><span class="p">(</span><span class="nx">inst</span><span class="p">,</span> <span class="nx">eventData</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3722" class="blob-num js-line-number" data-line-number="3722"></td>
        <td id="LC3722" class="blob-code js-file-line">        <span class="c1">// already busy with a Hammer.gesture detection on an element</span></td>
      </tr>
      <tr>
        <td id="L3723" class="blob-num js-line-number" data-line-number="3723"></td>
        <td id="LC3723" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">current</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3724" class="blob-num js-line-number" data-line-number="3724"></td>
        <td id="LC3724" class="blob-code js-file-line">            <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3725" class="blob-num js-line-number" data-line-number="3725"></td>
        <td id="LC3725" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3726" class="blob-num js-line-number" data-line-number="3726"></td>
        <td id="LC3726" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3727" class="blob-num js-line-number" data-line-number="3727"></td>
        <td id="LC3727" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">stopped</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3728" class="blob-num js-line-number" data-line-number="3728"></td>
        <td id="LC3728" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3729" class="blob-num js-line-number" data-line-number="3729"></td>
        <td id="LC3729" class="blob-code js-file-line">        <span class="c1">// holds current session</span></td>
      </tr>
      <tr>
        <td id="L3730" class="blob-num js-line-number" data-line-number="3730"></td>
        <td id="LC3730" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">current</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3731" class="blob-num js-line-number" data-line-number="3731"></td>
        <td id="LC3731" class="blob-code js-file-line">            <span class="nx">inst</span><span class="o">:</span> <span class="nx">inst</span><span class="p">,</span> <span class="c1">// reference to HammerInstance we&#39;re working for</span></td>
      </tr>
      <tr>
        <td id="L3732" class="blob-num js-line-number" data-line-number="3732"></td>
        <td id="LC3732" class="blob-code js-file-line">            <span class="nx">startEvent</span><span class="o">:</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">extend</span><span class="p">({},</span> <span class="nx">eventData</span><span class="p">),</span> <span class="c1">// start eventData for distances, timing etc</span></td>
      </tr>
      <tr>
        <td id="L3733" class="blob-num js-line-number" data-line-number="3733"></td>
        <td id="LC3733" class="blob-code js-file-line">            <span class="nx">lastEvent</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span> <span class="c1">// last eventData</span></td>
      </tr>
      <tr>
        <td id="L3734" class="blob-num js-line-number" data-line-number="3734"></td>
        <td id="LC3734" class="blob-code js-file-line">            <span class="nx">lastCalcEvent</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span> <span class="c1">// last eventData for calculations.</span></td>
      </tr>
      <tr>
        <td id="L3735" class="blob-num js-line-number" data-line-number="3735"></td>
        <td id="LC3735" class="blob-code js-file-line">            <span class="nx">futureCalcEvent</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span> <span class="c1">// last eventData for calculations.</span></td>
      </tr>
      <tr>
        <td id="L3736" class="blob-num js-line-number" data-line-number="3736"></td>
        <td id="LC3736" class="blob-code js-file-line">            <span class="nx">lastCalcData</span><span class="o">:</span> <span class="p">{},</span> <span class="c1">// last lastCalcData</span></td>
      </tr>
      <tr>
        <td id="L3737" class="blob-num js-line-number" data-line-number="3737"></td>
        <td id="LC3737" class="blob-code js-file-line">            <span class="nx">name</span><span class="o">:</span> <span class="s1">&#39;&#39;</span> <span class="c1">// current gesture we&#39;re in/detected, can be &#39;tap&#39;, &#39;hold&#39; etc</span></td>
      </tr>
      <tr>
        <td id="L3738" class="blob-num js-line-number" data-line-number="3738"></td>
        <td id="LC3738" class="blob-code js-file-line">        <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3739" class="blob-num js-line-number" data-line-number="3739"></td>
        <td id="LC3739" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3740" class="blob-num js-line-number" data-line-number="3740"></td>
        <td id="LC3740" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">detect</span><span class="p">(</span><span class="nx">eventData</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3741" class="blob-num js-line-number" data-line-number="3741"></td>
        <td id="LC3741" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3742" class="blob-num js-line-number" data-line-number="3742"></td>
        <td id="LC3742" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3743" class="blob-num js-line-number" data-line-number="3743"></td>
        <td id="LC3743" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3744" class="blob-num js-line-number" data-line-number="3744"></td>
        <td id="LC3744" class="blob-code js-file-line"><span class="cm">     * Hammer.gesture detection</span></td>
      </tr>
      <tr>
        <td id="L3745" class="blob-num js-line-number" data-line-number="3745"></td>
        <td id="LC3745" class="blob-code js-file-line"><span class="cm">     * @method detect</span></td>
      </tr>
      <tr>
        <td id="L3746" class="blob-num js-line-number" data-line-number="3746"></td>
        <td id="LC3746" class="blob-code js-file-line"><span class="cm">     * @param {Object} eventData</span></td>
      </tr>
      <tr>
        <td id="L3747" class="blob-num js-line-number" data-line-number="3747"></td>
        <td id="LC3747" class="blob-code js-file-line"><span class="cm">     * @return {any}</span></td>
      </tr>
      <tr>
        <td id="L3748" class="blob-num js-line-number" data-line-number="3748"></td>
        <td id="LC3748" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3749" class="blob-num js-line-number" data-line-number="3749"></td>
        <td id="LC3749" class="blob-code js-file-line">    <span class="nx">detect</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">detect</span><span class="p">(</span><span class="nx">eventData</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3750" class="blob-num js-line-number" data-line-number="3750"></td>
        <td id="LC3750" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">current</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">stopped</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3751" class="blob-num js-line-number" data-line-number="3751"></td>
        <td id="LC3751" class="blob-code js-file-line">            <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3752" class="blob-num js-line-number" data-line-number="3752"></td>
        <td id="LC3752" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3753" class="blob-num js-line-number" data-line-number="3753"></td>
        <td id="LC3753" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3754" class="blob-num js-line-number" data-line-number="3754"></td>
        <td id="LC3754" class="blob-code js-file-line">        <span class="c1">// extend event data with calculations about scale, distance etc</span></td>
      </tr>
      <tr>
        <td id="L3755" class="blob-num js-line-number" data-line-number="3755"></td>
        <td id="LC3755" class="blob-code js-file-line">        <span class="nx">eventData</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">extendEventData</span><span class="p">(</span><span class="nx">eventData</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3756" class="blob-num js-line-number" data-line-number="3756"></td>
        <td id="LC3756" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3757" class="blob-num js-line-number" data-line-number="3757"></td>
        <td id="LC3757" class="blob-code js-file-line">        <span class="c1">// hammer instance and instance options</span></td>
      </tr>
      <tr>
        <td id="L3758" class="blob-num js-line-number" data-line-number="3758"></td>
        <td id="LC3758" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">inst</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">current</span><span class="p">.</span><span class="nx">inst</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3759" class="blob-num js-line-number" data-line-number="3759"></td>
        <td id="LC3759" class="blob-code js-file-line">            <span class="nx">instOptions</span> <span class="o">=</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3760" class="blob-num js-line-number" data-line-number="3760"></td>
        <td id="LC3760" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3761" class="blob-num js-line-number" data-line-number="3761"></td>
        <td id="LC3761" class="blob-code js-file-line">        <span class="c1">// call Hammer.gesture handlers</span></td>
      </tr>
      <tr>
        <td id="L3762" class="blob-num js-line-number" data-line-number="3762"></td>
        <td id="LC3762" class="blob-code js-file-line">        <span class="nx">Utils</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">gestures</span><span class="p">,</span> <span class="kd">function</span> <span class="nx">triggerGesture</span><span class="p">(</span><span class="nx">gesture</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3763" class="blob-num js-line-number" data-line-number="3763"></td>
        <td id="LC3763" class="blob-code js-file-line">            <span class="c1">// only when the instance options have enabled this gesture</span></td>
      </tr>
      <tr>
        <td id="L3764" class="blob-num js-line-number" data-line-number="3764"></td>
        <td id="LC3764" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">stopped</span> <span class="o">&amp;&amp;</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">enabled</span> <span class="o">&amp;&amp;</span> <span class="nx">instOptions</span><span class="p">[</span><span class="nx">gesture</span><span class="p">.</span><span class="nx">name</span><span class="p">])</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3765" class="blob-num js-line-number" data-line-number="3765"></td>
        <td id="LC3765" class="blob-code js-file-line">                <span class="nx">gesture</span><span class="p">.</span><span class="nx">handler</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">gesture</span><span class="p">,</span> <span class="nx">eventData</span><span class="p">,</span> <span class="nx">inst</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3766" class="blob-num js-line-number" data-line-number="3766"></td>
        <td id="LC3766" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3767" class="blob-num js-line-number" data-line-number="3767"></td>
        <td id="LC3767" class="blob-code js-file-line">        <span class="p">},</span> <span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3768" class="blob-num js-line-number" data-line-number="3768"></td>
        <td id="LC3768" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3769" class="blob-num js-line-number" data-line-number="3769"></td>
        <td id="LC3769" class="blob-code js-file-line">        <span class="c1">// store as previous event event</span></td>
      </tr>
      <tr>
        <td id="L3770" class="blob-num js-line-number" data-line-number="3770"></td>
        <td id="LC3770" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">current</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3771" class="blob-num js-line-number" data-line-number="3771"></td>
        <td id="LC3771" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">current</span><span class="p">.</span><span class="nx">lastEvent</span> <span class="o">=</span> <span class="nx">eventData</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3772" class="blob-num js-line-number" data-line-number="3772"></td>
        <td id="LC3772" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3773" class="blob-num js-line-number" data-line-number="3773"></td>
        <td id="LC3773" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3774" class="blob-num js-line-number" data-line-number="3774"></td>
        <td id="LC3774" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">eventData</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_END</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3775" class="blob-num js-line-number" data-line-number="3775"></td>
        <td id="LC3775" class="blob-code js-file-line">            <span class="k">this</span><span class="p">.</span><span class="nx">stopDetect</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L3776" class="blob-num js-line-number" data-line-number="3776"></td>
        <td id="LC3776" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3777" class="blob-num js-line-number" data-line-number="3777"></td>
        <td id="LC3777" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3778" class="blob-num js-line-number" data-line-number="3778"></td>
        <td id="LC3778" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">eventData</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3779" class="blob-num js-line-number" data-line-number="3779"></td>
        <td id="LC3779" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3780" class="blob-num js-line-number" data-line-number="3780"></td>
        <td id="LC3780" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3781" class="blob-num js-line-number" data-line-number="3781"></td>
        <td id="LC3781" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3782" class="blob-num js-line-number" data-line-number="3782"></td>
        <td id="LC3782" class="blob-code js-file-line"><span class="cm">     * clear the Hammer.gesture vars</span></td>
      </tr>
      <tr>
        <td id="L3783" class="blob-num js-line-number" data-line-number="3783"></td>
        <td id="LC3783" class="blob-code js-file-line"><span class="cm">     * this is called on endDetect, but can also be used when a final Hammer.gesture has been detected</span></td>
      </tr>
      <tr>
        <td id="L3784" class="blob-num js-line-number" data-line-number="3784"></td>
        <td id="LC3784" class="blob-code js-file-line"><span class="cm">     * to stop other Hammer.gestures from being fired</span></td>
      </tr>
      <tr>
        <td id="L3785" class="blob-num js-line-number" data-line-number="3785"></td>
        <td id="LC3785" class="blob-code js-file-line"><span class="cm">     * @method stopDetect</span></td>
      </tr>
      <tr>
        <td id="L3786" class="blob-num js-line-number" data-line-number="3786"></td>
        <td id="LC3786" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3787" class="blob-num js-line-number" data-line-number="3787"></td>
        <td id="LC3787" class="blob-code js-file-line">    <span class="nx">stopDetect</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">stopDetect</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3788" class="blob-num js-line-number" data-line-number="3788"></td>
        <td id="LC3788" class="blob-code js-file-line">        <span class="c1">// clone current data to the store as the previous gesture</span></td>
      </tr>
      <tr>
        <td id="L3789" class="blob-num js-line-number" data-line-number="3789"></td>
        <td id="LC3789" class="blob-code js-file-line">        <span class="c1">// used for the double tap gesture, since this is an other gesture detect session</span></td>
      </tr>
      <tr>
        <td id="L3790" class="blob-num js-line-number" data-line-number="3790"></td>
        <td id="LC3790" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">previous</span> <span class="o">=</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">extend</span><span class="p">({},</span> <span class="k">this</span><span class="p">.</span><span class="nx">current</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3791" class="blob-num js-line-number" data-line-number="3791"></td>
        <td id="LC3791" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3792" class="blob-num js-line-number" data-line-number="3792"></td>
        <td id="LC3792" class="blob-code js-file-line">        <span class="c1">// reset the current</span></td>
      </tr>
      <tr>
        <td id="L3793" class="blob-num js-line-number" data-line-number="3793"></td>
        <td id="LC3793" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">current</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3794" class="blob-num js-line-number" data-line-number="3794"></td>
        <td id="LC3794" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">stopped</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3795" class="blob-num js-line-number" data-line-number="3795"></td>
        <td id="LC3795" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3796" class="blob-num js-line-number" data-line-number="3796"></td>
        <td id="LC3796" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3797" class="blob-num js-line-number" data-line-number="3797"></td>
        <td id="LC3797" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3798" class="blob-num js-line-number" data-line-number="3798"></td>
        <td id="LC3798" class="blob-code js-file-line"><span class="cm">     * calculate velocity, angle and direction</span></td>
      </tr>
      <tr>
        <td id="L3799" class="blob-num js-line-number" data-line-number="3799"></td>
        <td id="LC3799" class="blob-code js-file-line"><span class="cm">     * @method getVelocityData</span></td>
      </tr>
      <tr>
        <td id="L3800" class="blob-num js-line-number" data-line-number="3800"></td>
        <td id="LC3800" class="blob-code js-file-line"><span class="cm">     * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L3801" class="blob-num js-line-number" data-line-number="3801"></td>
        <td id="LC3801" class="blob-code js-file-line"><span class="cm">     * @param {Object} center</span></td>
      </tr>
      <tr>
        <td id="L3802" class="blob-num js-line-number" data-line-number="3802"></td>
        <td id="LC3802" class="blob-code js-file-line"><span class="cm">     * @param {Number} deltaTime</span></td>
      </tr>
      <tr>
        <td id="L3803" class="blob-num js-line-number" data-line-number="3803"></td>
        <td id="LC3803" class="blob-code js-file-line"><span class="cm">     * @param {Number} deltaX</span></td>
      </tr>
      <tr>
        <td id="L3804" class="blob-num js-line-number" data-line-number="3804"></td>
        <td id="LC3804" class="blob-code js-file-line"><span class="cm">     * @param {Number} deltaY</span></td>
      </tr>
      <tr>
        <td id="L3805" class="blob-num js-line-number" data-line-number="3805"></td>
        <td id="LC3805" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3806" class="blob-num js-line-number" data-line-number="3806"></td>
        <td id="LC3806" class="blob-code js-file-line">    <span class="nx">getCalculatedData</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">getCalculatedData</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">center</span><span class="p">,</span> <span class="nx">deltaTime</span><span class="p">,</span> <span class="nx">deltaX</span><span class="p">,</span> <span class="nx">deltaY</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3807" class="blob-num js-line-number" data-line-number="3807"></td>
        <td id="LC3807" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">cur</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">current</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3808" class="blob-num js-line-number" data-line-number="3808"></td>
        <td id="LC3808" class="blob-code js-file-line">            <span class="nx">recalc</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3809" class="blob-num js-line-number" data-line-number="3809"></td>
        <td id="LC3809" class="blob-code js-file-line">            <span class="nx">calcEv</span> <span class="o">=</span> <span class="nx">cur</span><span class="p">.</span><span class="nx">lastCalcEvent</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3810" class="blob-num js-line-number" data-line-number="3810"></td>
        <td id="LC3810" class="blob-code js-file-line">            <span class="nx">calcData</span> <span class="o">=</span> <span class="nx">cur</span><span class="p">.</span><span class="nx">lastCalcData</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3811" class="blob-num js-line-number" data-line-number="3811"></td>
        <td id="LC3811" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3812" class="blob-num js-line-number" data-line-number="3812"></td>
        <td id="LC3812" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">calcEv</span> <span class="o">&amp;&amp;</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">timeStamp</span> <span class="o">-</span> <span class="nx">calcEv</span><span class="p">.</span><span class="nx">timeStamp</span> <span class="o">&gt;</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">CALCULATE_INTERVAL</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3813" class="blob-num js-line-number" data-line-number="3813"></td>
        <td id="LC3813" class="blob-code js-file-line">            <span class="nx">center</span> <span class="o">=</span> <span class="nx">calcEv</span><span class="p">.</span><span class="nx">center</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3814" class="blob-num js-line-number" data-line-number="3814"></td>
        <td id="LC3814" class="blob-code js-file-line">            <span class="nx">deltaTime</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">timeStamp</span> <span class="o">-</span> <span class="nx">calcEv</span><span class="p">.</span><span class="nx">timeStamp</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3815" class="blob-num js-line-number" data-line-number="3815"></td>
        <td id="LC3815" class="blob-code js-file-line">            <span class="nx">deltaX</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">center</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">-</span> <span class="nx">calcEv</span><span class="p">.</span><span class="nx">center</span><span class="p">.</span><span class="nx">clientX</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3816" class="blob-num js-line-number" data-line-number="3816"></td>
        <td id="LC3816" class="blob-code js-file-line">            <span class="nx">deltaY</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">center</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">-</span> <span class="nx">calcEv</span><span class="p">.</span><span class="nx">center</span><span class="p">.</span><span class="nx">clientY</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3817" class="blob-num js-line-number" data-line-number="3817"></td>
        <td id="LC3817" class="blob-code js-file-line">            <span class="nx">recalc</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3818" class="blob-num js-line-number" data-line-number="3818"></td>
        <td id="LC3818" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3819" class="blob-num js-line-number" data-line-number="3819"></td>
        <td id="LC3819" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3820" class="blob-num js-line-number" data-line-number="3820"></td>
        <td id="LC3820" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_TOUCH</span> <span class="o">||</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_RELEASE</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3821" class="blob-num js-line-number" data-line-number="3821"></td>
        <td id="LC3821" class="blob-code js-file-line">            <span class="nx">cur</span><span class="p">.</span><span class="nx">futureCalcEvent</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3822" class="blob-num js-line-number" data-line-number="3822"></td>
        <td id="LC3822" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3823" class="blob-num js-line-number" data-line-number="3823"></td>
        <td id="LC3823" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3824" class="blob-num js-line-number" data-line-number="3824"></td>
        <td id="LC3824" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">cur</span><span class="p">.</span><span class="nx">lastCalcEvent</span> <span class="o">||</span> <span class="nx">recalc</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3825" class="blob-num js-line-number" data-line-number="3825"></td>
        <td id="LC3825" class="blob-code js-file-line">            <span class="nx">calcData</span><span class="p">.</span><span class="nx">velocity</span> <span class="o">=</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">getVelocity</span><span class="p">(</span><span class="nx">deltaTime</span><span class="p">,</span> <span class="nx">deltaX</span><span class="p">,</span> <span class="nx">deltaY</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3826" class="blob-num js-line-number" data-line-number="3826"></td>
        <td id="LC3826" class="blob-code js-file-line">            <span class="nx">calcData</span><span class="p">.</span><span class="nx">angle</span> <span class="o">=</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">getAngle</span><span class="p">(</span><span class="nx">center</span><span class="p">,</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">center</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3827" class="blob-num js-line-number" data-line-number="3827"></td>
        <td id="LC3827" class="blob-code js-file-line">            <span class="nx">calcData</span><span class="p">.</span><span class="nx">direction</span> <span class="o">=</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">getDirection</span><span class="p">(</span><span class="nx">center</span><span class="p">,</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">center</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3828" class="blob-num js-line-number" data-line-number="3828"></td>
        <td id="LC3828" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3829" class="blob-num js-line-number" data-line-number="3829"></td>
        <td id="LC3829" class="blob-code js-file-line">            <span class="nx">cur</span><span class="p">.</span><span class="nx">lastCalcEvent</span> <span class="o">=</span> <span class="nx">cur</span><span class="p">.</span><span class="nx">futureCalcEvent</span> <span class="o">||</span> <span class="nx">ev</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3830" class="blob-num js-line-number" data-line-number="3830"></td>
        <td id="LC3830" class="blob-code js-file-line">            <span class="nx">cur</span><span class="p">.</span><span class="nx">futureCalcEvent</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3831" class="blob-num js-line-number" data-line-number="3831"></td>
        <td id="LC3831" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3832" class="blob-num js-line-number" data-line-number="3832"></td>
        <td id="LC3832" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3833" class="blob-num js-line-number" data-line-number="3833"></td>
        <td id="LC3833" class="blob-code js-file-line">        <span class="nx">ev</span><span class="p">.</span><span class="nx">velocityX</span> <span class="o">=</span> <span class="nx">calcData</span><span class="p">.</span><span class="nx">velocity</span><span class="p">.</span><span class="nx">x</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3834" class="blob-num js-line-number" data-line-number="3834"></td>
        <td id="LC3834" class="blob-code js-file-line">        <span class="nx">ev</span><span class="p">.</span><span class="nx">velocityY</span> <span class="o">=</span> <span class="nx">calcData</span><span class="p">.</span><span class="nx">velocity</span><span class="p">.</span><span class="nx">y</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3835" class="blob-num js-line-number" data-line-number="3835"></td>
        <td id="LC3835" class="blob-code js-file-line">        <span class="nx">ev</span><span class="p">.</span><span class="nx">interimAngle</span> <span class="o">=</span> <span class="nx">calcData</span><span class="p">.</span><span class="nx">angle</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3836" class="blob-num js-line-number" data-line-number="3836"></td>
        <td id="LC3836" class="blob-code js-file-line">        <span class="nx">ev</span><span class="p">.</span><span class="nx">interimDirection</span> <span class="o">=</span> <span class="nx">calcData</span><span class="p">.</span><span class="nx">direction</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3837" class="blob-num js-line-number" data-line-number="3837"></td>
        <td id="LC3837" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3838" class="blob-num js-line-number" data-line-number="3838"></td>
        <td id="LC3838" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3839" class="blob-num js-line-number" data-line-number="3839"></td>
        <td id="LC3839" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3840" class="blob-num js-line-number" data-line-number="3840"></td>
        <td id="LC3840" class="blob-code js-file-line"><span class="cm">     * extend eventData for Hammer.gestures</span></td>
      </tr>
      <tr>
        <td id="L3841" class="blob-num js-line-number" data-line-number="3841"></td>
        <td id="LC3841" class="blob-code js-file-line"><span class="cm">     * @method extendEventData</span></td>
      </tr>
      <tr>
        <td id="L3842" class="blob-num js-line-number" data-line-number="3842"></td>
        <td id="LC3842" class="blob-code js-file-line"><span class="cm">     * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L3843" class="blob-num js-line-number" data-line-number="3843"></td>
        <td id="LC3843" class="blob-code js-file-line"><span class="cm">     * @return {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L3844" class="blob-num js-line-number" data-line-number="3844"></td>
        <td id="LC3844" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3845" class="blob-num js-line-number" data-line-number="3845"></td>
        <td id="LC3845" class="blob-code js-file-line">    <span class="nx">extendEventData</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">extendEventData</span><span class="p">(</span><span class="nx">ev</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3846" class="blob-num js-line-number" data-line-number="3846"></td>
        <td id="LC3846" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">cur</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">current</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3847" class="blob-num js-line-number" data-line-number="3847"></td>
        <td id="LC3847" class="blob-code js-file-line">            <span class="nx">startEv</span> <span class="o">=</span> <span class="nx">cur</span><span class="p">.</span><span class="nx">startEvent</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3848" class="blob-num js-line-number" data-line-number="3848"></td>
        <td id="LC3848" class="blob-code js-file-line">            <span class="nx">lastEv</span> <span class="o">=</span> <span class="nx">cur</span><span class="p">.</span><span class="nx">lastEvent</span> <span class="o">||</span> <span class="nx">startEv</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3849" class="blob-num js-line-number" data-line-number="3849"></td>
        <td id="LC3849" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3850" class="blob-num js-line-number" data-line-number="3850"></td>
        <td id="LC3850" class="blob-code js-file-line">        <span class="c1">// update the start touchlist to calculate the scale/rotation</span></td>
      </tr>
      <tr>
        <td id="L3851" class="blob-num js-line-number" data-line-number="3851"></td>
        <td id="LC3851" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_TOUCH</span> <span class="o">||</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_RELEASE</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3852" class="blob-num js-line-number" data-line-number="3852"></td>
        <td id="LC3852" class="blob-code js-file-line">            <span class="nx">startEv</span><span class="p">.</span><span class="nx">touches</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L3853" class="blob-num js-line-number" data-line-number="3853"></td>
        <td id="LC3853" class="blob-code js-file-line">            <span class="nx">Utils</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">touches</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">touch</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3854" class="blob-num js-line-number" data-line-number="3854"></td>
        <td id="LC3854" class="blob-code js-file-line">                <span class="nx">startEv</span><span class="p">.</span><span class="nx">touches</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span></td>
      </tr>
      <tr>
        <td id="L3855" class="blob-num js-line-number" data-line-number="3855"></td>
        <td id="LC3855" class="blob-code js-file-line">                    <span class="nx">clientX</span><span class="o">:</span> <span class="nx">touch</span><span class="p">.</span><span class="nx">clientX</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3856" class="blob-num js-line-number" data-line-number="3856"></td>
        <td id="LC3856" class="blob-code js-file-line">                    <span class="nx">clientY</span><span class="o">:</span> <span class="nx">touch</span><span class="p">.</span><span class="nx">clientY</span></td>
      </tr>
      <tr>
        <td id="L3857" class="blob-num js-line-number" data-line-number="3857"></td>
        <td id="LC3857" class="blob-code js-file-line">                <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3858" class="blob-num js-line-number" data-line-number="3858"></td>
        <td id="LC3858" class="blob-code js-file-line">            <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3859" class="blob-num js-line-number" data-line-number="3859"></td>
        <td id="LC3859" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3860" class="blob-num js-line-number" data-line-number="3860"></td>
        <td id="LC3860" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3861" class="blob-num js-line-number" data-line-number="3861"></td>
        <td id="LC3861" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">deltaTime</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">timeStamp</span> <span class="o">-</span> <span class="nx">startEv</span><span class="p">.</span><span class="nx">timeStamp</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3862" class="blob-num js-line-number" data-line-number="3862"></td>
        <td id="LC3862" class="blob-code js-file-line">            <span class="nx">deltaX</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">center</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">-</span> <span class="nx">startEv</span><span class="p">.</span><span class="nx">center</span><span class="p">.</span><span class="nx">clientX</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3863" class="blob-num js-line-number" data-line-number="3863"></td>
        <td id="LC3863" class="blob-code js-file-line">            <span class="nx">deltaY</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">center</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">-</span> <span class="nx">startEv</span><span class="p">.</span><span class="nx">center</span><span class="p">.</span><span class="nx">clientY</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3864" class="blob-num js-line-number" data-line-number="3864"></td>
        <td id="LC3864" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3865" class="blob-num js-line-number" data-line-number="3865"></td>
        <td id="LC3865" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">getCalculatedData</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">lastEv</span><span class="p">.</span><span class="nx">center</span><span class="p">,</span> <span class="nx">deltaTime</span><span class="p">,</span> <span class="nx">deltaX</span><span class="p">,</span> <span class="nx">deltaY</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3866" class="blob-num js-line-number" data-line-number="3866"></td>
        <td id="LC3866" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3867" class="blob-num js-line-number" data-line-number="3867"></td>
        <td id="LC3867" class="blob-code js-file-line">        <span class="nx">Utils</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3868" class="blob-num js-line-number" data-line-number="3868"></td>
        <td id="LC3868" class="blob-code js-file-line">            <span class="nx">startEvent</span><span class="o">:</span> <span class="nx">startEv</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3869" class="blob-num js-line-number" data-line-number="3869"></td>
        <td id="LC3869" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3870" class="blob-num js-line-number" data-line-number="3870"></td>
        <td id="LC3870" class="blob-code js-file-line">            <span class="nx">deltaTime</span><span class="o">:</span> <span class="nx">deltaTime</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3871" class="blob-num js-line-number" data-line-number="3871"></td>
        <td id="LC3871" class="blob-code js-file-line">            <span class="nx">deltaX</span><span class="o">:</span> <span class="nx">deltaX</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3872" class="blob-num js-line-number" data-line-number="3872"></td>
        <td id="LC3872" class="blob-code js-file-line">            <span class="nx">deltaY</span><span class="o">:</span> <span class="nx">deltaY</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L3873" class="blob-num js-line-number" data-line-number="3873"></td>
        <td id="LC3873" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3874" class="blob-num js-line-number" data-line-number="3874"></td>
        <td id="LC3874" class="blob-code js-file-line">            <span class="nx">distance</span><span class="o">:</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">getDistance</span><span class="p">(</span><span class="nx">startEv</span><span class="p">.</span><span class="nx">center</span><span class="p">,</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">center</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L3875" class="blob-num js-line-number" data-line-number="3875"></td>
        <td id="LC3875" class="blob-code js-file-line">            <span class="nx">angle</span><span class="o">:</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">getAngle</span><span class="p">(</span><span class="nx">startEv</span><span class="p">.</span><span class="nx">center</span><span class="p">,</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">center</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L3876" class="blob-num js-line-number" data-line-number="3876"></td>
        <td id="LC3876" class="blob-code js-file-line">            <span class="nx">direction</span><span class="o">:</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">getDirection</span><span class="p">(</span><span class="nx">startEv</span><span class="p">.</span><span class="nx">center</span><span class="p">,</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">center</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L3877" class="blob-num js-line-number" data-line-number="3877"></td>
        <td id="LC3877" class="blob-code js-file-line">            <span class="nx">scale</span><span class="o">:</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">getScale</span><span class="p">(</span><span class="nx">startEv</span><span class="p">.</span><span class="nx">touches</span><span class="p">,</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">touches</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L3878" class="blob-num js-line-number" data-line-number="3878"></td>
        <td id="LC3878" class="blob-code js-file-line">            <span class="nx">rotation</span><span class="o">:</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">getRotation</span><span class="p">(</span><span class="nx">startEv</span><span class="p">.</span><span class="nx">touches</span><span class="p">,</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">touches</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L3879" class="blob-num js-line-number" data-line-number="3879"></td>
        <td id="LC3879" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3880" class="blob-num js-line-number" data-line-number="3880"></td>
        <td id="LC3880" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3881" class="blob-num js-line-number" data-line-number="3881"></td>
        <td id="LC3881" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">ev</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3882" class="blob-num js-line-number" data-line-number="3882"></td>
        <td id="LC3882" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L3883" class="blob-num js-line-number" data-line-number="3883"></td>
        <td id="LC3883" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3884" class="blob-num js-line-number" data-line-number="3884"></td>
        <td id="LC3884" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3885" class="blob-num js-line-number" data-line-number="3885"></td>
        <td id="LC3885" class="blob-code js-file-line"><span class="cm">     * register new gesture</span></td>
      </tr>
      <tr>
        <td id="L3886" class="blob-num js-line-number" data-line-number="3886"></td>
        <td id="LC3886" class="blob-code js-file-line"><span class="cm">     * @method register</span></td>
      </tr>
      <tr>
        <td id="L3887" class="blob-num js-line-number" data-line-number="3887"></td>
        <td id="LC3887" class="blob-code js-file-line"><span class="cm">     * @param {Object} gesture object, see `gestures/` for documentation</span></td>
      </tr>
      <tr>
        <td id="L3888" class="blob-num js-line-number" data-line-number="3888"></td>
        <td id="LC3888" class="blob-code js-file-line"><span class="cm">     * @return {Array} gestures</span></td>
      </tr>
      <tr>
        <td id="L3889" class="blob-num js-line-number" data-line-number="3889"></td>
        <td id="LC3889" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3890" class="blob-num js-line-number" data-line-number="3890"></td>
        <td id="LC3890" class="blob-code js-file-line">    <span class="nx">register</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">register</span><span class="p">(</span><span class="nx">gesture</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3891" class="blob-num js-line-number" data-line-number="3891"></td>
        <td id="LC3891" class="blob-code js-file-line">        <span class="c1">// add an enable gesture options if there is no given</span></td>
      </tr>
      <tr>
        <td id="L3892" class="blob-num js-line-number" data-line-number="3892"></td>
        <td id="LC3892" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">options</span> <span class="o">=</span> <span class="nx">gesture</span><span class="p">.</span><span class="nx">defaults</span> <span class="o">||</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L3893" class="blob-num js-line-number" data-line-number="3893"></td>
        <td id="LC3893" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">options</span><span class="p">[</span><span class="nx">gesture</span><span class="p">.</span><span class="nx">name</span><span class="p">]</span> <span class="o">===</span> <span class="kc">undefined</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3894" class="blob-num js-line-number" data-line-number="3894"></td>
        <td id="LC3894" class="blob-code js-file-line">            <span class="nx">options</span><span class="p">[</span><span class="nx">gesture</span><span class="p">.</span><span class="nx">name</span><span class="p">]</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3895" class="blob-num js-line-number" data-line-number="3895"></td>
        <td id="LC3895" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3896" class="blob-num js-line-number" data-line-number="3896"></td>
        <td id="LC3896" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3897" class="blob-num js-line-number" data-line-number="3897"></td>
        <td id="LC3897" class="blob-code js-file-line">        <span class="c1">// extend Hammer default options with the Hammer.gesture options</span></td>
      </tr>
      <tr>
        <td id="L3898" class="blob-num js-line-number" data-line-number="3898"></td>
        <td id="LC3898" class="blob-code js-file-line">        <span class="nx">Utils</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">Hammer</span><span class="p">.</span><span class="nx">defaults</span><span class="p">,</span> <span class="nx">options</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3899" class="blob-num js-line-number" data-line-number="3899"></td>
        <td id="LC3899" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3900" class="blob-num js-line-number" data-line-number="3900"></td>
        <td id="LC3900" class="blob-code js-file-line">        <span class="c1">// set its index</span></td>
      </tr>
      <tr>
        <td id="L3901" class="blob-num js-line-number" data-line-number="3901"></td>
        <td id="LC3901" class="blob-code js-file-line">        <span class="nx">gesture</span><span class="p">.</span><span class="nx">index</span> <span class="o">=</span> <span class="nx">gesture</span><span class="p">.</span><span class="nx">index</span> <span class="o">||</span> <span class="mi">1000</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3902" class="blob-num js-line-number" data-line-number="3902"></td>
        <td id="LC3902" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3903" class="blob-num js-line-number" data-line-number="3903"></td>
        <td id="LC3903" class="blob-code js-file-line">        <span class="c1">// add Hammer.gesture to the list</span></td>
      </tr>
      <tr>
        <td id="L3904" class="blob-num js-line-number" data-line-number="3904"></td>
        <td id="LC3904" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">gestures</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">gesture</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3905" class="blob-num js-line-number" data-line-number="3905"></td>
        <td id="LC3905" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3906" class="blob-num js-line-number" data-line-number="3906"></td>
        <td id="LC3906" class="blob-code js-file-line">        <span class="c1">// sort the list by index</span></td>
      </tr>
      <tr>
        <td id="L3907" class="blob-num js-line-number" data-line-number="3907"></td>
        <td id="LC3907" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">gestures</span><span class="p">.</span><span class="nx">sort</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3908" class="blob-num js-line-number" data-line-number="3908"></td>
        <td id="LC3908" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">index</span> <span class="o">&lt;</span> <span class="nx">b</span><span class="p">.</span><span class="nx">index</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3909" class="blob-num js-line-number" data-line-number="3909"></td>
        <td id="LC3909" class="blob-code js-file-line">                <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3910" class="blob-num js-line-number" data-line-number="3910"></td>
        <td id="LC3910" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3911" class="blob-num js-line-number" data-line-number="3911"></td>
        <td id="LC3911" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">index</span> <span class="o">&gt;</span> <span class="nx">b</span><span class="p">.</span><span class="nx">index</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3912" class="blob-num js-line-number" data-line-number="3912"></td>
        <td id="LC3912" class="blob-code js-file-line">                <span class="k">return</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3913" class="blob-num js-line-number" data-line-number="3913"></td>
        <td id="LC3913" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3914" class="blob-num js-line-number" data-line-number="3914"></td>
        <td id="LC3914" class="blob-code js-file-line">            <span class="k">return</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3915" class="blob-num js-line-number" data-line-number="3915"></td>
        <td id="LC3915" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3916" class="blob-num js-line-number" data-line-number="3916"></td>
        <td id="LC3916" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3917" class="blob-num js-line-number" data-line-number="3917"></td>
        <td id="LC3917" class="blob-code js-file-line">        <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">gestures</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3918" class="blob-num js-line-number" data-line-number="3918"></td>
        <td id="LC3918" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3919" class="blob-num js-line-number" data-line-number="3919"></td>
        <td id="LC3919" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3920" class="blob-num js-line-number" data-line-number="3920"></td>
        <td id="LC3920" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3921" class="blob-num js-line-number" data-line-number="3921"></td>
        <td id="LC3921" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3922" class="blob-num js-line-number" data-line-number="3922"></td>
        <td id="LC3922" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3923" class="blob-num js-line-number" data-line-number="3923"></td>
        <td id="LC3923" class="blob-code js-file-line"><span class="cm"> * @module hammer</span></td>
      </tr>
      <tr>
        <td id="L3924" class="blob-num js-line-number" data-line-number="3924"></td>
        <td id="LC3924" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L3925" class="blob-num js-line-number" data-line-number="3925"></td>
        <td id="LC3925" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3926" class="blob-num js-line-number" data-line-number="3926"></td>
        <td id="LC3926" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3927" class="blob-num js-line-number" data-line-number="3927"></td>
        <td id="LC3927" class="blob-code js-file-line"><span class="cm"> * create new hammer instance</span></td>
      </tr>
      <tr>
        <td id="L3928" class="blob-num js-line-number" data-line-number="3928"></td>
        <td id="LC3928" class="blob-code js-file-line"><span class="cm"> * all methods should return the instance itself, so it is chainable.</span></td>
      </tr>
      <tr>
        <td id="L3929" class="blob-num js-line-number" data-line-number="3929"></td>
        <td id="LC3929" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L3930" class="blob-num js-line-number" data-line-number="3930"></td>
        <td id="LC3930" class="blob-code js-file-line"><span class="cm"> * @class Instance</span></td>
      </tr>
      <tr>
        <td id="L3931" class="blob-num js-line-number" data-line-number="3931"></td>
        <td id="LC3931" class="blob-code js-file-line"><span class="cm"> * @constructor</span></td>
      </tr>
      <tr>
        <td id="L3932" class="blob-num js-line-number" data-line-number="3932"></td>
        <td id="LC3932" class="blob-code js-file-line"><span class="cm"> * @param {HTMLElement} element</span></td>
      </tr>
      <tr>
        <td id="L3933" class="blob-num js-line-number" data-line-number="3933"></td>
        <td id="LC3933" class="blob-code js-file-line"><span class="cm"> * @param {Object} [options={}] options are merged with `Hammer.defaults`</span></td>
      </tr>
      <tr>
        <td id="L3934" class="blob-num js-line-number" data-line-number="3934"></td>
        <td id="LC3934" class="blob-code js-file-line"><span class="cm"> * @return {Hammer.Instance}</span></td>
      </tr>
      <tr>
        <td id="L3935" class="blob-num js-line-number" data-line-number="3935"></td>
        <td id="LC3935" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L3936" class="blob-num js-line-number" data-line-number="3936"></td>
        <td id="LC3936" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">Instance</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">options</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3937" class="blob-num js-line-number" data-line-number="3937"></td>
        <td id="LC3937" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3938" class="blob-num js-line-number" data-line-number="3938"></td>
        <td id="LC3938" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3939" class="blob-num js-line-number" data-line-number="3939"></td>
        <td id="LC3939" class="blob-code js-file-line">    <span class="c1">// setup HammerJS window events and register all gestures</span></td>
      </tr>
      <tr>
        <td id="L3940" class="blob-num js-line-number" data-line-number="3940"></td>
        <td id="LC3940" class="blob-code js-file-line">    <span class="c1">// this also sets up the default options</span></td>
      </tr>
      <tr>
        <td id="L3941" class="blob-num js-line-number" data-line-number="3941"></td>
        <td id="LC3941" class="blob-code js-file-line">    <span class="nx">setup</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L3942" class="blob-num js-line-number" data-line-number="3942"></td>
        <td id="LC3942" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3943" class="blob-num js-line-number" data-line-number="3943"></td>
        <td id="LC3943" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3944" class="blob-num js-line-number" data-line-number="3944"></td>
        <td id="LC3944" class="blob-code js-file-line"><span class="cm">     * @property element</span></td>
      </tr>
      <tr>
        <td id="L3945" class="blob-num js-line-number" data-line-number="3945"></td>
        <td id="LC3945" class="blob-code js-file-line"><span class="cm">     * @type {HTMLElement}</span></td>
      </tr>
      <tr>
        <td id="L3946" class="blob-num js-line-number" data-line-number="3946"></td>
        <td id="LC3946" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3947" class="blob-num js-line-number" data-line-number="3947"></td>
        <td id="LC3947" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">element</span> <span class="o">=</span> <span class="nx">element</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3948" class="blob-num js-line-number" data-line-number="3948"></td>
        <td id="LC3948" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3949" class="blob-num js-line-number" data-line-number="3949"></td>
        <td id="LC3949" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3950" class="blob-num js-line-number" data-line-number="3950"></td>
        <td id="LC3950" class="blob-code js-file-line"><span class="cm">     * @property enabled</span></td>
      </tr>
      <tr>
        <td id="L3951" class="blob-num js-line-number" data-line-number="3951"></td>
        <td id="LC3951" class="blob-code js-file-line"><span class="cm">     * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L3952" class="blob-num js-line-number" data-line-number="3952"></td>
        <td id="LC3952" class="blob-code js-file-line"><span class="cm">     * @protected</span></td>
      </tr>
      <tr>
        <td id="L3953" class="blob-num js-line-number" data-line-number="3953"></td>
        <td id="LC3953" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3954" class="blob-num js-line-number" data-line-number="3954"></td>
        <td id="LC3954" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">enabled</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3955" class="blob-num js-line-number" data-line-number="3955"></td>
        <td id="LC3955" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3956" class="blob-num js-line-number" data-line-number="3956"></td>
        <td id="LC3956" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3957" class="blob-num js-line-number" data-line-number="3957"></td>
        <td id="LC3957" class="blob-code js-file-line"><span class="cm">     * options, merged with the defaults</span></td>
      </tr>
      <tr>
        <td id="L3958" class="blob-num js-line-number" data-line-number="3958"></td>
        <td id="LC3958" class="blob-code js-file-line"><span class="cm">     * options with an _ are converted to camelCase</span></td>
      </tr>
      <tr>
        <td id="L3959" class="blob-num js-line-number" data-line-number="3959"></td>
        <td id="LC3959" class="blob-code js-file-line"><span class="cm">     * @property options</span></td>
      </tr>
      <tr>
        <td id="L3960" class="blob-num js-line-number" data-line-number="3960"></td>
        <td id="LC3960" class="blob-code js-file-line"><span class="cm">     * @type {Object}</span></td>
      </tr>
      <tr>
        <td id="L3961" class="blob-num js-line-number" data-line-number="3961"></td>
        <td id="LC3961" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3962" class="blob-num js-line-number" data-line-number="3962"></td>
        <td id="LC3962" class="blob-code js-file-line">    <span class="nx">Utils</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="nx">options</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">value</span><span class="p">,</span> <span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3963" class="blob-num js-line-number" data-line-number="3963"></td>
        <td id="LC3963" class="blob-code js-file-line">        <span class="k">delete</span> <span class="nx">options</span><span class="p">[</span><span class="nx">name</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L3964" class="blob-num js-line-number" data-line-number="3964"></td>
        <td id="LC3964" class="blob-code js-file-line">        <span class="nx">options</span><span class="p">[</span><span class="nx">Utils</span><span class="p">.</span><span class="nx">toCamelCase</span><span class="p">(</span><span class="nx">name</span><span class="p">)]</span> <span class="o">=</span> <span class="nx">value</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L3965" class="blob-num js-line-number" data-line-number="3965"></td>
        <td id="LC3965" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3966" class="blob-num js-line-number" data-line-number="3966"></td>
        <td id="LC3966" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3967" class="blob-num js-line-number" data-line-number="3967"></td>
        <td id="LC3967" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">options</span> <span class="o">=</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">Utils</span><span class="p">.</span><span class="nx">extend</span><span class="p">({},</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">defaults</span><span class="p">),</span> <span class="nx">options</span> <span class="o">||</span> <span class="p">{});</span></td>
      </tr>
      <tr>
        <td id="L3968" class="blob-num js-line-number" data-line-number="3968"></td>
        <td id="LC3968" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3969" class="blob-num js-line-number" data-line-number="3969"></td>
        <td id="LC3969" class="blob-code js-file-line">    <span class="c1">// add some css to the element to prevent the browser from doing its native behavoir</span></td>
      </tr>
      <tr>
        <td id="L3970" class="blob-num js-line-number" data-line-number="3970"></td>
        <td id="LC3970" class="blob-code js-file-line">    <span class="k">if</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">behavior</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3971" class="blob-num js-line-number" data-line-number="3971"></td>
        <td id="LC3971" class="blob-code js-file-line">        <span class="nx">Utils</span><span class="p">.</span><span class="nx">toggleBehavior</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">behavior</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3972" class="blob-num js-line-number" data-line-number="3972"></td>
        <td id="LC3972" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3973" class="blob-num js-line-number" data-line-number="3973"></td>
        <td id="LC3973" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3974" class="blob-num js-line-number" data-line-number="3974"></td>
        <td id="LC3974" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3975" class="blob-num js-line-number" data-line-number="3975"></td>
        <td id="LC3975" class="blob-code js-file-line"><span class="cm">     * event start handler on the element to start the detection</span></td>
      </tr>
      <tr>
        <td id="L3976" class="blob-num js-line-number" data-line-number="3976"></td>
        <td id="LC3976" class="blob-code js-file-line"><span class="cm">     * @property eventStartHandler</span></td>
      </tr>
      <tr>
        <td id="L3977" class="blob-num js-line-number" data-line-number="3977"></td>
        <td id="LC3977" class="blob-code js-file-line"><span class="cm">     * @type {Object}</span></td>
      </tr>
      <tr>
        <td id="L3978" class="blob-num js-line-number" data-line-number="3978"></td>
        <td id="LC3978" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3979" class="blob-num js-line-number" data-line-number="3979"></td>
        <td id="LC3979" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">eventStartHandler</span> <span class="o">=</span> <span class="nx">Event</span><span class="p">.</span><span class="nx">onTouch</span><span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">EVENT_START</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">ev</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3980" class="blob-num js-line-number" data-line-number="3980"></td>
        <td id="LC3980" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">self</span><span class="p">.</span><span class="nx">enabled</span> <span class="o">&amp;&amp;</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_START</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3981" class="blob-num js-line-number" data-line-number="3981"></td>
        <td id="LC3981" class="blob-code js-file-line">            <span class="nx">Detection</span><span class="p">.</span><span class="nx">startDetect</span><span class="p">(</span><span class="nx">self</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3982" class="blob-num js-line-number" data-line-number="3982"></td>
        <td id="LC3982" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_TOUCH</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3983" class="blob-num js-line-number" data-line-number="3983"></td>
        <td id="LC3983" class="blob-code js-file-line">            <span class="nx">Detection</span><span class="p">.</span><span class="nx">detect</span><span class="p">(</span><span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L3984" class="blob-num js-line-number" data-line-number="3984"></td>
        <td id="LC3984" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L3985" class="blob-num js-line-number" data-line-number="3985"></td>
        <td id="LC3985" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L3986" class="blob-num js-line-number" data-line-number="3986"></td>
        <td id="LC3986" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3987" class="blob-num js-line-number" data-line-number="3987"></td>
        <td id="LC3987" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3988" class="blob-num js-line-number" data-line-number="3988"></td>
        <td id="LC3988" class="blob-code js-file-line"><span class="cm">     * keep a list of user event handlers which needs to be removed when calling &#39;dispose&#39;</span></td>
      </tr>
      <tr>
        <td id="L3989" class="blob-num js-line-number" data-line-number="3989"></td>
        <td id="LC3989" class="blob-code js-file-line"><span class="cm">     * @property eventHandlers</span></td>
      </tr>
      <tr>
        <td id="L3990" class="blob-num js-line-number" data-line-number="3990"></td>
        <td id="LC3990" class="blob-code js-file-line"><span class="cm">     * @type {Array}</span></td>
      </tr>
      <tr>
        <td id="L3991" class="blob-num js-line-number" data-line-number="3991"></td>
        <td id="LC3991" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L3992" class="blob-num js-line-number" data-line-number="3992"></td>
        <td id="LC3992" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">eventHandlers</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L3993" class="blob-num js-line-number" data-line-number="3993"></td>
        <td id="LC3993" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L3994" class="blob-num js-line-number" data-line-number="3994"></td>
        <td id="LC3994" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L3995" class="blob-num js-line-number" data-line-number="3995"></td>
        <td id="LC3995" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">Instance</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L3996" class="blob-num js-line-number" data-line-number="3996"></td>
        <td id="LC3996" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L3997" class="blob-num js-line-number" data-line-number="3997"></td>
        <td id="LC3997" class="blob-code js-file-line"><span class="cm">     * bind events to the instance</span></td>
      </tr>
      <tr>
        <td id="L3998" class="blob-num js-line-number" data-line-number="3998"></td>
        <td id="LC3998" class="blob-code js-file-line"><span class="cm">     * @method on</span></td>
      </tr>
      <tr>
        <td id="L3999" class="blob-num js-line-number" data-line-number="3999"></td>
        <td id="LC3999" class="blob-code js-file-line"><span class="cm">     * @chainable</span></td>
      </tr>
      <tr>
        <td id="L4000" class="blob-num js-line-number" data-line-number="4000"></td>
        <td id="LC4000" class="blob-code js-file-line"><span class="cm">     * @param {String} gestures multiple gestures by splitting with a space</span></td>
      </tr>
      <tr>
        <td id="L4001" class="blob-num js-line-number" data-line-number="4001"></td>
        <td id="LC4001" class="blob-code js-file-line"><span class="cm">     * @param {Function} handler</span></td>
      </tr>
      <tr>
        <td id="L4002" class="blob-num js-line-number" data-line-number="4002"></td>
        <td id="LC4002" class="blob-code js-file-line"><span class="cm">     * @param {Object} handler.ev event object</span></td>
      </tr>
      <tr>
        <td id="L4003" class="blob-num js-line-number" data-line-number="4003"></td>
        <td id="LC4003" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L4004" class="blob-num js-line-number" data-line-number="4004"></td>
        <td id="LC4004" class="blob-code js-file-line">    <span class="nx">on</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">onEvent</span><span class="p">(</span><span class="nx">gestures</span><span class="p">,</span> <span class="nx">handler</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4005" class="blob-num js-line-number" data-line-number="4005"></td>
        <td id="LC4005" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4006" class="blob-num js-line-number" data-line-number="4006"></td>
        <td id="LC4006" class="blob-code js-file-line">        <span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nx">self</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="nx">gestures</span><span class="p">,</span> <span class="nx">handler</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4007" class="blob-num js-line-number" data-line-number="4007"></td>
        <td id="LC4007" class="blob-code js-file-line">            <span class="nx">self</span><span class="p">.</span><span class="nx">eventHandlers</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span> <span class="nx">gesture</span><span class="o">:</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span> <span class="nx">handler</span> <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4008" class="blob-num js-line-number" data-line-number="4008"></td>
        <td id="LC4008" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4009" class="blob-num js-line-number" data-line-number="4009"></td>
        <td id="LC4009" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">self</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4010" class="blob-num js-line-number" data-line-number="4010"></td>
        <td id="LC4010" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4011" class="blob-num js-line-number" data-line-number="4011"></td>
        <td id="LC4011" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4012" class="blob-num js-line-number" data-line-number="4012"></td>
        <td id="LC4012" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4013" class="blob-num js-line-number" data-line-number="4013"></td>
        <td id="LC4013" class="blob-code js-file-line"><span class="cm">     * unbind events to the instance</span></td>
      </tr>
      <tr>
        <td id="L4014" class="blob-num js-line-number" data-line-number="4014"></td>
        <td id="LC4014" class="blob-code js-file-line"><span class="cm">     * @method off</span></td>
      </tr>
      <tr>
        <td id="L4015" class="blob-num js-line-number" data-line-number="4015"></td>
        <td id="LC4015" class="blob-code js-file-line"><span class="cm">     * @chainable</span></td>
      </tr>
      <tr>
        <td id="L4016" class="blob-num js-line-number" data-line-number="4016"></td>
        <td id="LC4016" class="blob-code js-file-line"><span class="cm">     * @param {String} gestures</span></td>
      </tr>
      <tr>
        <td id="L4017" class="blob-num js-line-number" data-line-number="4017"></td>
        <td id="LC4017" class="blob-code js-file-line"><span class="cm">     * @param {Function} handler</span></td>
      </tr>
      <tr>
        <td id="L4018" class="blob-num js-line-number" data-line-number="4018"></td>
        <td id="LC4018" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L4019" class="blob-num js-line-number" data-line-number="4019"></td>
        <td id="LC4019" class="blob-code js-file-line">    <span class="nx">off</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">offEvent</span><span class="p">(</span><span class="nx">gestures</span><span class="p">,</span> <span class="nx">handler</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4020" class="blob-num js-line-number" data-line-number="4020"></td>
        <td id="LC4020" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4021" class="blob-num js-line-number" data-line-number="4021"></td>
        <td id="LC4021" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4022" class="blob-num js-line-number" data-line-number="4022"></td>
        <td id="LC4022" class="blob-code js-file-line">        <span class="nx">Event</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="nx">self</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="nx">gestures</span><span class="p">,</span> <span class="nx">handler</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4023" class="blob-num js-line-number" data-line-number="4023"></td>
        <td id="LC4023" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">index</span> <span class="o">=</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">inArray</span><span class="p">({</span> <span class="nx">gesture</span><span class="o">:</span> <span class="nx">type</span><span class="p">,</span> <span class="nx">handler</span><span class="o">:</span> <span class="nx">handler</span> <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4024" class="blob-num js-line-number" data-line-number="4024"></td>
        <td id="LC4024" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">index</span> <span class="o">!==</span> <span class="kc">false</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4025" class="blob-num js-line-number" data-line-number="4025"></td>
        <td id="LC4025" class="blob-code js-file-line">                <span class="nx">self</span><span class="p">.</span><span class="nx">eventHandlers</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">index</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4026" class="blob-num js-line-number" data-line-number="4026"></td>
        <td id="LC4026" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4027" class="blob-num js-line-number" data-line-number="4027"></td>
        <td id="LC4027" class="blob-code js-file-line">        <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4028" class="blob-num js-line-number" data-line-number="4028"></td>
        <td id="LC4028" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">self</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4029" class="blob-num js-line-number" data-line-number="4029"></td>
        <td id="LC4029" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4030" class="blob-num js-line-number" data-line-number="4030"></td>
        <td id="LC4030" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4031" class="blob-num js-line-number" data-line-number="4031"></td>
        <td id="LC4031" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4032" class="blob-num js-line-number" data-line-number="4032"></td>
        <td id="LC4032" class="blob-code js-file-line"><span class="cm">     * trigger gesture event</span></td>
      </tr>
      <tr>
        <td id="L4033" class="blob-num js-line-number" data-line-number="4033"></td>
        <td id="LC4033" class="blob-code js-file-line"><span class="cm">     * @method trigger</span></td>
      </tr>
      <tr>
        <td id="L4034" class="blob-num js-line-number" data-line-number="4034"></td>
        <td id="LC4034" class="blob-code js-file-line"><span class="cm">     * @chainable</span></td>
      </tr>
      <tr>
        <td id="L4035" class="blob-num js-line-number" data-line-number="4035"></td>
        <td id="LC4035" class="blob-code js-file-line"><span class="cm">     * @param {String} gesture</span></td>
      </tr>
      <tr>
        <td id="L4036" class="blob-num js-line-number" data-line-number="4036"></td>
        <td id="LC4036" class="blob-code js-file-line"><span class="cm">     * @param {Object} [eventData]</span></td>
      </tr>
      <tr>
        <td id="L4037" class="blob-num js-line-number" data-line-number="4037"></td>
        <td id="LC4037" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L4038" class="blob-num js-line-number" data-line-number="4038"></td>
        <td id="LC4038" class="blob-code js-file-line">    <span class="nx">trigger</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">triggerEvent</span><span class="p">(</span><span class="nx">gesture</span><span class="p">,</span> <span class="nx">eventData</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4039" class="blob-num js-line-number" data-line-number="4039"></td>
        <td id="LC4039" class="blob-code js-file-line">        <span class="c1">// optional</span></td>
      </tr>
      <tr>
        <td id="L4040" class="blob-num js-line-number" data-line-number="4040"></td>
        <td id="LC4040" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">eventData</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4041" class="blob-num js-line-number" data-line-number="4041"></td>
        <td id="LC4041" class="blob-code js-file-line">            <span class="nx">eventData</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L4042" class="blob-num js-line-number" data-line-number="4042"></td>
        <td id="LC4042" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4043" class="blob-num js-line-number" data-line-number="4043"></td>
        <td id="LC4043" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4044" class="blob-num js-line-number" data-line-number="4044"></td>
        <td id="LC4044" class="blob-code js-file-line">        <span class="c1">// create DOM event</span></td>
      </tr>
      <tr>
        <td id="L4045" class="blob-num js-line-number" data-line-number="4045"></td>
        <td id="LC4045" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">event</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">.</span><span class="nx">DOCUMENT</span><span class="p">.</span><span class="nx">createEvent</span><span class="p">(</span><span class="s1">&#39;Event&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4046" class="blob-num js-line-number" data-line-number="4046"></td>
        <td id="LC4046" class="blob-code js-file-line">        <span class="nx">event</span><span class="p">.</span><span class="nx">initEvent</span><span class="p">(</span><span class="nx">gesture</span><span class="p">,</span> <span class="kc">true</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4047" class="blob-num js-line-number" data-line-number="4047"></td>
        <td id="LC4047" class="blob-code js-file-line">        <span class="nx">event</span><span class="p">.</span><span class="nx">gesture</span> <span class="o">=</span> <span class="nx">eventData</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4048" class="blob-num js-line-number" data-line-number="4048"></td>
        <td id="LC4048" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4049" class="blob-num js-line-number" data-line-number="4049"></td>
        <td id="LC4049" class="blob-code js-file-line">        <span class="c1">// trigger on the target if it is in the instance element,</span></td>
      </tr>
      <tr>
        <td id="L4050" class="blob-num js-line-number" data-line-number="4050"></td>
        <td id="LC4050" class="blob-code js-file-line">        <span class="c1">// this is for event delegation tricks</span></td>
      </tr>
      <tr>
        <td id="L4051" class="blob-num js-line-number" data-line-number="4051"></td>
        <td id="LC4051" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">element</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4052" class="blob-num js-line-number" data-line-number="4052"></td>
        <td id="LC4052" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">Utils</span><span class="p">.</span><span class="nx">hasParent</span><span class="p">(</span><span class="nx">eventData</span><span class="p">.</span><span class="nx">target</span><span class="p">,</span> <span class="nx">element</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4053" class="blob-num js-line-number" data-line-number="4053"></td>
        <td id="LC4053" class="blob-code js-file-line">            <span class="nx">element</span> <span class="o">=</span> <span class="nx">eventData</span><span class="p">.</span><span class="nx">target</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4054" class="blob-num js-line-number" data-line-number="4054"></td>
        <td id="LC4054" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4055" class="blob-num js-line-number" data-line-number="4055"></td>
        <td id="LC4055" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4056" class="blob-num js-line-number" data-line-number="4056"></td>
        <td id="LC4056" class="blob-code js-file-line">        <span class="nx">element</span><span class="p">.</span><span class="nx">dispatchEvent</span><span class="p">(</span><span class="nx">event</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4057" class="blob-num js-line-number" data-line-number="4057"></td>
        <td id="LC4057" class="blob-code js-file-line">        <span class="k">return</span> <span class="k">this</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4058" class="blob-num js-line-number" data-line-number="4058"></td>
        <td id="LC4058" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4059" class="blob-num js-line-number" data-line-number="4059"></td>
        <td id="LC4059" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4060" class="blob-num js-line-number" data-line-number="4060"></td>
        <td id="LC4060" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4061" class="blob-num js-line-number" data-line-number="4061"></td>
        <td id="LC4061" class="blob-code js-file-line"><span class="cm">     * enable of disable hammer.js detection</span></td>
      </tr>
      <tr>
        <td id="L4062" class="blob-num js-line-number" data-line-number="4062"></td>
        <td id="LC4062" class="blob-code js-file-line"><span class="cm">     * @method enable</span></td>
      </tr>
      <tr>
        <td id="L4063" class="blob-num js-line-number" data-line-number="4063"></td>
        <td id="LC4063" class="blob-code js-file-line"><span class="cm">     * @chainable</span></td>
      </tr>
      <tr>
        <td id="L4064" class="blob-num js-line-number" data-line-number="4064"></td>
        <td id="LC4064" class="blob-code js-file-line"><span class="cm">     * @param {Boolean} state</span></td>
      </tr>
      <tr>
        <td id="L4065" class="blob-num js-line-number" data-line-number="4065"></td>
        <td id="LC4065" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L4066" class="blob-num js-line-number" data-line-number="4066"></td>
        <td id="LC4066" class="blob-code js-file-line">    <span class="nx">enable</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">enable</span><span class="p">(</span><span class="nx">state</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4067" class="blob-num js-line-number" data-line-number="4067"></td>
        <td id="LC4067" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">enabled</span> <span class="o">=</span> <span class="nx">state</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4068" class="blob-num js-line-number" data-line-number="4068"></td>
        <td id="LC4068" class="blob-code js-file-line">        <span class="k">return</span> <span class="k">this</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4069" class="blob-num js-line-number" data-line-number="4069"></td>
        <td id="LC4069" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4070" class="blob-num js-line-number" data-line-number="4070"></td>
        <td id="LC4070" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4071" class="blob-num js-line-number" data-line-number="4071"></td>
        <td id="LC4071" class="blob-code js-file-line">    <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4072" class="blob-num js-line-number" data-line-number="4072"></td>
        <td id="LC4072" class="blob-code js-file-line"><span class="cm">     * dispose this hammer instance</span></td>
      </tr>
      <tr>
        <td id="L4073" class="blob-num js-line-number" data-line-number="4073"></td>
        <td id="LC4073" class="blob-code js-file-line"><span class="cm">     * @method dispose</span></td>
      </tr>
      <tr>
        <td id="L4074" class="blob-num js-line-number" data-line-number="4074"></td>
        <td id="LC4074" class="blob-code js-file-line"><span class="cm">     * @return {Null}</span></td>
      </tr>
      <tr>
        <td id="L4075" class="blob-num js-line-number" data-line-number="4075"></td>
        <td id="LC4075" class="blob-code js-file-line"><span class="cm">     */</span></td>
      </tr>
      <tr>
        <td id="L4076" class="blob-num js-line-number" data-line-number="4076"></td>
        <td id="LC4076" class="blob-code js-file-line">    <span class="nx">dispose</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">dispose</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4077" class="blob-num js-line-number" data-line-number="4077"></td>
        <td id="LC4077" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">eh</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4078" class="blob-num js-line-number" data-line-number="4078"></td>
        <td id="LC4078" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4079" class="blob-num js-line-number" data-line-number="4079"></td>
        <td id="LC4079" class="blob-code js-file-line">        <span class="c1">// undo all changes made by stop_browser_behavior</span></td>
      </tr>
      <tr>
        <td id="L4080" class="blob-num js-line-number" data-line-number="4080"></td>
        <td id="LC4080" class="blob-code js-file-line">        <span class="nx">Utils</span><span class="p">.</span><span class="nx">toggleBehavior</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">behavior</span><span class="p">,</span> <span class="kc">false</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4081" class="blob-num js-line-number" data-line-number="4081"></td>
        <td id="LC4081" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4082" class="blob-num js-line-number" data-line-number="4082"></td>
        <td id="LC4082" class="blob-code js-file-line">        <span class="c1">// unbind all custom event handlers</span></td>
      </tr>
      <tr>
        <td id="L4083" class="blob-num js-line-number" data-line-number="4083"></td>
        <td id="LC4083" class="blob-code js-file-line">        <span class="k">for</span><span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span> <span class="p">(</span><span class="nx">eh</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">eventHandlers</span><span class="p">[</span><span class="o">++</span><span class="nx">i</span><span class="p">]);)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4084" class="blob-num js-line-number" data-line-number="4084"></td>
        <td id="LC4084" class="blob-code js-file-line">            <span class="nx">Utils</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="nx">eh</span><span class="p">.</span><span class="nx">gesture</span><span class="p">,</span> <span class="nx">eh</span><span class="p">.</span><span class="nx">handler</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4085" class="blob-num js-line-number" data-line-number="4085"></td>
        <td id="LC4085" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4086" class="blob-num js-line-number" data-line-number="4086"></td>
        <td id="LC4086" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4087" class="blob-num js-line-number" data-line-number="4087"></td>
        <td id="LC4087" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">eventHandlers</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L4088" class="blob-num js-line-number" data-line-number="4088"></td>
        <td id="LC4088" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4089" class="blob-num js-line-number" data-line-number="4089"></td>
        <td id="LC4089" class="blob-code js-file-line">        <span class="c1">// unbind the start event listener</span></td>
      </tr>
      <tr>
        <td id="L4090" class="blob-num js-line-number" data-line-number="4090"></td>
        <td id="LC4090" class="blob-code js-file-line">        <span class="nx">Event</span><span class="p">.</span><span class="nx">off</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="nx">EVENT_TYPES</span><span class="p">[</span><span class="nx">EVENT_START</span><span class="p">],</span> <span class="k">this</span><span class="p">.</span><span class="nx">eventStartHandler</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4091" class="blob-num js-line-number" data-line-number="4091"></td>
        <td id="LC4091" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4092" class="blob-num js-line-number" data-line-number="4092"></td>
        <td id="LC4092" class="blob-code js-file-line">        <span class="k">return</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4093" class="blob-num js-line-number" data-line-number="4093"></td>
        <td id="LC4093" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4094" class="blob-num js-line-number" data-line-number="4094"></td>
        <td id="LC4094" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4095" class="blob-num js-line-number" data-line-number="4095"></td>
        <td id="LC4095" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4096" class="blob-num js-line-number" data-line-number="4096"></td>
        <td id="LC4096" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4097" class="blob-num js-line-number" data-line-number="4097"></td>
        <td id="LC4097" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4098" class="blob-num js-line-number" data-line-number="4098"></td>
        <td id="LC4098" class="blob-code js-file-line"><span class="cm"> * @module gestures</span></td>
      </tr>
      <tr>
        <td id="L4099" class="blob-num js-line-number" data-line-number="4099"></td>
        <td id="LC4099" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4100" class="blob-num js-line-number" data-line-number="4100"></td>
        <td id="LC4100" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4101" class="blob-num js-line-number" data-line-number="4101"></td>
        <td id="LC4101" class="blob-code js-file-line"><span class="cm"> * Move with x fingers (default 1) around on the page.</span></td>
      </tr>
      <tr>
        <td id="L4102" class="blob-num js-line-number" data-line-number="4102"></td>
        <td id="LC4102" class="blob-code js-file-line"><span class="cm"> * Preventing the default browser behavior is a good way to improve feel and working.</span></td>
      </tr>
      <tr>
        <td id="L4103" class="blob-num js-line-number" data-line-number="4103"></td>
        <td id="LC4103" class="blob-code js-file-line"><span class="cm"> * ````</span></td>
      </tr>
      <tr>
        <td id="L4104" class="blob-num js-line-number" data-line-number="4104"></td>
        <td id="LC4104" class="blob-code js-file-line"><span class="cm"> *  hammertime.on(&quot;drag&quot;, function(ev) {</span></td>
      </tr>
      <tr>
        <td id="L4105" class="blob-num js-line-number" data-line-number="4105"></td>
        <td id="LC4105" class="blob-code js-file-line"><span class="cm"> *    console.log(ev);</span></td>
      </tr>
      <tr>
        <td id="L4106" class="blob-num js-line-number" data-line-number="4106"></td>
        <td id="LC4106" class="blob-code js-file-line"><span class="cm"> *    ev.gesture.preventDefault();</span></td>
      </tr>
      <tr>
        <td id="L4107" class="blob-num js-line-number" data-line-number="4107"></td>
        <td id="LC4107" class="blob-code js-file-line"><span class="cm"> *  });</span></td>
      </tr>
      <tr>
        <td id="L4108" class="blob-num js-line-number" data-line-number="4108"></td>
        <td id="LC4108" class="blob-code js-file-line"><span class="cm"> * ````</span></td>
      </tr>
      <tr>
        <td id="L4109" class="blob-num js-line-number" data-line-number="4109"></td>
        <td id="LC4109" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L4110" class="blob-num js-line-number" data-line-number="4110"></td>
        <td id="LC4110" class="blob-code js-file-line"><span class="cm"> * @class Drag</span></td>
      </tr>
      <tr>
        <td id="L4111" class="blob-num js-line-number" data-line-number="4111"></td>
        <td id="LC4111" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L4112" class="blob-num js-line-number" data-line-number="4112"></td>
        <td id="LC4112" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4113" class="blob-num js-line-number" data-line-number="4113"></td>
        <td id="LC4113" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4114" class="blob-num js-line-number" data-line-number="4114"></td>
        <td id="LC4114" class="blob-code js-file-line"><span class="cm"> * @event drag</span></td>
      </tr>
      <tr>
        <td id="L4115" class="blob-num js-line-number" data-line-number="4115"></td>
        <td id="LC4115" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4116" class="blob-num js-line-number" data-line-number="4116"></td>
        <td id="LC4116" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4117" class="blob-num js-line-number" data-line-number="4117"></td>
        <td id="LC4117" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4118" class="blob-num js-line-number" data-line-number="4118"></td>
        <td id="LC4118" class="blob-code js-file-line"><span class="cm"> * @event dragstart</span></td>
      </tr>
      <tr>
        <td id="L4119" class="blob-num js-line-number" data-line-number="4119"></td>
        <td id="LC4119" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4120" class="blob-num js-line-number" data-line-number="4120"></td>
        <td id="LC4120" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4121" class="blob-num js-line-number" data-line-number="4121"></td>
        <td id="LC4121" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4122" class="blob-num js-line-number" data-line-number="4122"></td>
        <td id="LC4122" class="blob-code js-file-line"><span class="cm"> * @event dragend</span></td>
      </tr>
      <tr>
        <td id="L4123" class="blob-num js-line-number" data-line-number="4123"></td>
        <td id="LC4123" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4124" class="blob-num js-line-number" data-line-number="4124"></td>
        <td id="LC4124" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4125" class="blob-num js-line-number" data-line-number="4125"></td>
        <td id="LC4125" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4126" class="blob-num js-line-number" data-line-number="4126"></td>
        <td id="LC4126" class="blob-code js-file-line"><span class="cm"> * @event drapleft</span></td>
      </tr>
      <tr>
        <td id="L4127" class="blob-num js-line-number" data-line-number="4127"></td>
        <td id="LC4127" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4128" class="blob-num js-line-number" data-line-number="4128"></td>
        <td id="LC4128" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4129" class="blob-num js-line-number" data-line-number="4129"></td>
        <td id="LC4129" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4130" class="blob-num js-line-number" data-line-number="4130"></td>
        <td id="LC4130" class="blob-code js-file-line"><span class="cm"> * @event dragright</span></td>
      </tr>
      <tr>
        <td id="L4131" class="blob-num js-line-number" data-line-number="4131"></td>
        <td id="LC4131" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4132" class="blob-num js-line-number" data-line-number="4132"></td>
        <td id="LC4132" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4133" class="blob-num js-line-number" data-line-number="4133"></td>
        <td id="LC4133" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4134" class="blob-num js-line-number" data-line-number="4134"></td>
        <td id="LC4134" class="blob-code js-file-line"><span class="cm"> * @event dragup</span></td>
      </tr>
      <tr>
        <td id="L4135" class="blob-num js-line-number" data-line-number="4135"></td>
        <td id="LC4135" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4136" class="blob-num js-line-number" data-line-number="4136"></td>
        <td id="LC4136" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4137" class="blob-num js-line-number" data-line-number="4137"></td>
        <td id="LC4137" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4138" class="blob-num js-line-number" data-line-number="4138"></td>
        <td id="LC4138" class="blob-code js-file-line"><span class="cm"> * @event dragdown</span></td>
      </tr>
      <tr>
        <td id="L4139" class="blob-num js-line-number" data-line-number="4139"></td>
        <td id="LC4139" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4140" class="blob-num js-line-number" data-line-number="4140"></td>
        <td id="LC4140" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4141" class="blob-num js-line-number" data-line-number="4141"></td>
        <td id="LC4141" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4142" class="blob-num js-line-number" data-line-number="4142"></td>
        <td id="LC4142" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4143" class="blob-num js-line-number" data-line-number="4143"></td>
        <td id="LC4143" class="blob-code js-file-line"><span class="cm"> * @param {String} name</span></td>
      </tr>
      <tr>
        <td id="L4144" class="blob-num js-line-number" data-line-number="4144"></td>
        <td id="LC4144" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4145" class="blob-num js-line-number" data-line-number="4145"></td>
        <td id="LC4145" class="blob-code js-file-line"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4146" class="blob-num js-line-number" data-line-number="4146"></td>
        <td id="LC4146" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">triggered</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4147" class="blob-num js-line-number" data-line-number="4147"></td>
        <td id="LC4147" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4148" class="blob-num js-line-number" data-line-number="4148"></td>
        <td id="LC4148" class="blob-code js-file-line">    <span class="kd">function</span> <span class="nx">dragGesture</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">inst</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4149" class="blob-num js-line-number" data-line-number="4149"></td>
        <td id="LC4149" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">cur</span> <span class="o">=</span> <span class="nx">Detection</span><span class="p">.</span><span class="nx">current</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4150" class="blob-num js-line-number" data-line-number="4150"></td>
        <td id="LC4150" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4151" class="blob-num js-line-number" data-line-number="4151"></td>
        <td id="LC4151" class="blob-code js-file-line">        <span class="c1">// max touches</span></td>
      </tr>
      <tr>
        <td id="L4152" class="blob-num js-line-number" data-line-number="4152"></td>
        <td id="LC4152" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dragMaxTouches</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L4153" class="blob-num js-line-number" data-line-number="4153"></td>
        <td id="LC4153" class="blob-code js-file-line">            <span class="nx">ev</span><span class="p">.</span><span class="nx">touches</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dragMaxTouches</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4154" class="blob-num js-line-number" data-line-number="4154"></td>
        <td id="LC4154" class="blob-code js-file-line">            <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4155" class="blob-num js-line-number" data-line-number="4155"></td>
        <td id="LC4155" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4156" class="blob-num js-line-number" data-line-number="4156"></td>
        <td id="LC4156" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4157" class="blob-num js-line-number" data-line-number="4157"></td>
        <td id="LC4157" class="blob-code js-file-line">        <span class="k">switch</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4158" class="blob-num js-line-number" data-line-number="4158"></td>
        <td id="LC4158" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_START</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4159" class="blob-num js-line-number" data-line-number="4159"></td>
        <td id="LC4159" class="blob-code js-file-line">                <span class="nx">triggered</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4160" class="blob-num js-line-number" data-line-number="4160"></td>
        <td id="LC4160" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4161" class="blob-num js-line-number" data-line-number="4161"></td>
        <td id="LC4161" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4162" class="blob-num js-line-number" data-line-number="4162"></td>
        <td id="LC4162" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_MOVE</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4163" class="blob-num js-line-number" data-line-number="4163"></td>
        <td id="LC4163" class="blob-code js-file-line">                <span class="c1">// when the distance we moved is too small we skip this gesture</span></td>
      </tr>
      <tr>
        <td id="L4164" class="blob-num js-line-number" data-line-number="4164"></td>
        <td id="LC4164" class="blob-code js-file-line">                <span class="c1">// or we can be already in dragging</span></td>
      </tr>
      <tr>
        <td id="L4165" class="blob-num js-line-number" data-line-number="4165"></td>
        <td id="LC4165" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">distance</span> <span class="o">&lt;</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dragMinDistance</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L4166" class="blob-num js-line-number" data-line-number="4166"></td>
        <td id="LC4166" class="blob-code js-file-line">                    <span class="nx">cur</span><span class="p">.</span><span class="nx">name</span> <span class="o">!=</span> <span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4167" class="blob-num js-line-number" data-line-number="4167"></td>
        <td id="LC4167" class="blob-code js-file-line">                    <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4168" class="blob-num js-line-number" data-line-number="4168"></td>
        <td id="LC4168" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4169" class="blob-num js-line-number" data-line-number="4169"></td>
        <td id="LC4169" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4170" class="blob-num js-line-number" data-line-number="4170"></td>
        <td id="LC4170" class="blob-code js-file-line">                <span class="kd">var</span> <span class="nx">startCenter</span> <span class="o">=</span> <span class="nx">cur</span><span class="p">.</span><span class="nx">startEvent</span><span class="p">.</span><span class="nx">center</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4171" class="blob-num js-line-number" data-line-number="4171"></td>
        <td id="LC4171" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4172" class="blob-num js-line-number" data-line-number="4172"></td>
        <td id="LC4172" class="blob-code js-file-line">                <span class="c1">// we are dragging!</span></td>
      </tr>
      <tr>
        <td id="L4173" class="blob-num js-line-number" data-line-number="4173"></td>
        <td id="LC4173" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">cur</span><span class="p">.</span><span class="nx">name</span> <span class="o">!=</span> <span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4174" class="blob-num js-line-number" data-line-number="4174"></td>
        <td id="LC4174" class="blob-code js-file-line">                    <span class="nx">cur</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">name</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4175" class="blob-num js-line-number" data-line-number="4175"></td>
        <td id="LC4175" class="blob-code js-file-line">                    <span class="k">if</span><span class="p">(</span><span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dragDistanceCorrection</span> <span class="o">&amp;&amp;</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">distance</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4176" class="blob-num js-line-number" data-line-number="4176"></td>
        <td id="LC4176" class="blob-code js-file-line">                        <span class="c1">// When a drag is triggered, set the event center to dragMinDistance pixels from the original event center.</span></td>
      </tr>
      <tr>
        <td id="L4177" class="blob-num js-line-number" data-line-number="4177"></td>
        <td id="LC4177" class="blob-code js-file-line">                        <span class="c1">// Without this correction, the dragged distance would jumpstart at dragMinDistance pixels instead of at 0.</span></td>
      </tr>
      <tr>
        <td id="L4178" class="blob-num js-line-number" data-line-number="4178"></td>
        <td id="LC4178" class="blob-code js-file-line">                        <span class="c1">// It might be useful to save the original start point somewhere</span></td>
      </tr>
      <tr>
        <td id="L4179" class="blob-num js-line-number" data-line-number="4179"></td>
        <td id="LC4179" class="blob-code js-file-line">                        <span class="kd">var</span> <span class="nx">factor</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dragMinDistance</span> <span class="o">/</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">distance</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4180" class="blob-num js-line-number" data-line-number="4180"></td>
        <td id="LC4180" class="blob-code js-file-line">                        <span class="nx">startCenter</span><span class="p">.</span><span class="nx">pageX</span> <span class="o">+=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">deltaX</span> <span class="o">*</span> <span class="nx">factor</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4181" class="blob-num js-line-number" data-line-number="4181"></td>
        <td id="LC4181" class="blob-code js-file-line">                        <span class="nx">startCenter</span><span class="p">.</span><span class="nx">pageY</span> <span class="o">+=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">deltaY</span> <span class="o">*</span> <span class="nx">factor</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4182" class="blob-num js-line-number" data-line-number="4182"></td>
        <td id="LC4182" class="blob-code js-file-line">                        <span class="nx">startCenter</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">+=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">deltaX</span> <span class="o">*</span> <span class="nx">factor</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4183" class="blob-num js-line-number" data-line-number="4183"></td>
        <td id="LC4183" class="blob-code js-file-line">                        <span class="nx">startCenter</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">+=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">deltaY</span> <span class="o">*</span> <span class="nx">factor</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4184" class="blob-num js-line-number" data-line-number="4184"></td>
        <td id="LC4184" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4185" class="blob-num js-line-number" data-line-number="4185"></td>
        <td id="LC4185" class="blob-code js-file-line">                        <span class="c1">// recalculate event data using new start point</span></td>
      </tr>
      <tr>
        <td id="L4186" class="blob-num js-line-number" data-line-number="4186"></td>
        <td id="LC4186" class="blob-code js-file-line">                        <span class="nx">ev</span> <span class="o">=</span> <span class="nx">Detection</span><span class="p">.</span><span class="nx">extendEventData</span><span class="p">(</span><span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4187" class="blob-num js-line-number" data-line-number="4187"></td>
        <td id="LC4187" class="blob-code js-file-line">                    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4188" class="blob-num js-line-number" data-line-number="4188"></td>
        <td id="LC4188" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4189" class="blob-num js-line-number" data-line-number="4189"></td>
        <td id="LC4189" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4190" class="blob-num js-line-number" data-line-number="4190"></td>
        <td id="LC4190" class="blob-code js-file-line">                <span class="c1">// lock drag to axis?</span></td>
      </tr>
      <tr>
        <td id="L4191" class="blob-num js-line-number" data-line-number="4191"></td>
        <td id="LC4191" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">cur</span><span class="p">.</span><span class="nx">lastEvent</span><span class="p">.</span><span class="nx">dragLockToAxis</span> <span class="o">||</span></td>
      </tr>
      <tr>
        <td id="L4192" class="blob-num js-line-number" data-line-number="4192"></td>
        <td id="LC4192" class="blob-code js-file-line">                    <span class="p">(</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dragLockToAxis</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L4193" class="blob-num js-line-number" data-line-number="4193"></td>
        <td id="LC4193" class="blob-code js-file-line">                        <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dragLockMinDistance</span> <span class="o">&lt;=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">distance</span></td>
      </tr>
      <tr>
        <td id="L4194" class="blob-num js-line-number" data-line-number="4194"></td>
        <td id="LC4194" class="blob-code js-file-line">                        <span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4195" class="blob-num js-line-number" data-line-number="4195"></td>
        <td id="LC4195" class="blob-code js-file-line">                    <span class="nx">ev</span><span class="p">.</span><span class="nx">dragLockToAxis</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4196" class="blob-num js-line-number" data-line-number="4196"></td>
        <td id="LC4196" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4197" class="blob-num js-line-number" data-line-number="4197"></td>
        <td id="LC4197" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4198" class="blob-num js-line-number" data-line-number="4198"></td>
        <td id="LC4198" class="blob-code js-file-line">                <span class="c1">// keep direction on the axis that the drag gesture started on</span></td>
      </tr>
      <tr>
        <td id="L4199" class="blob-num js-line-number" data-line-number="4199"></td>
        <td id="LC4199" class="blob-code js-file-line">                <span class="kd">var</span> <span class="nx">lastDirection</span> <span class="o">=</span> <span class="nx">cur</span><span class="p">.</span><span class="nx">lastEvent</span><span class="p">.</span><span class="nx">direction</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4200" class="blob-num js-line-number" data-line-number="4200"></td>
        <td id="LC4200" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">dragLockToAxis</span> <span class="o">&amp;&amp;</span> <span class="nx">lastDirection</span> <span class="o">!==</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">direction</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4201" class="blob-num js-line-number" data-line-number="4201"></td>
        <td id="LC4201" class="blob-code js-file-line">                    <span class="k">if</span><span class="p">(</span><span class="nx">Utils</span><span class="p">.</span><span class="nx">isVertical</span><span class="p">(</span><span class="nx">lastDirection</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4202" class="blob-num js-line-number" data-line-number="4202"></td>
        <td id="LC4202" class="blob-code js-file-line">                        <span class="nx">ev</span><span class="p">.</span><span class="nx">direction</span> <span class="o">=</span> <span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">deltaY</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="o">?</span> <span class="nx">DIRECTION_UP</span> <span class="o">:</span> <span class="nx">DIRECTION_DOWN</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4203" class="blob-num js-line-number" data-line-number="4203"></td>
        <td id="LC4203" class="blob-code js-file-line">                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4204" class="blob-num js-line-number" data-line-number="4204"></td>
        <td id="LC4204" class="blob-code js-file-line">                        <span class="nx">ev</span><span class="p">.</span><span class="nx">direction</span> <span class="o">=</span> <span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">deltaX</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">)</span> <span class="o">?</span> <span class="nx">DIRECTION_LEFT</span> <span class="o">:</span> <span class="nx">DIRECTION_RIGHT</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4205" class="blob-num js-line-number" data-line-number="4205"></td>
        <td id="LC4205" class="blob-code js-file-line">                    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4206" class="blob-num js-line-number" data-line-number="4206"></td>
        <td id="LC4206" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4207" class="blob-num js-line-number" data-line-number="4207"></td>
        <td id="LC4207" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4208" class="blob-num js-line-number" data-line-number="4208"></td>
        <td id="LC4208" class="blob-code js-file-line">                <span class="c1">// first time, trigger dragstart event</span></td>
      </tr>
      <tr>
        <td id="L4209" class="blob-num js-line-number" data-line-number="4209"></td>
        <td id="LC4209" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">triggered</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4210" class="blob-num js-line-number" data-line-number="4210"></td>
        <td id="LC4210" class="blob-code js-file-line">                    <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">name</span> <span class="o">+</span> <span class="s1">&#39;start&#39;</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4211" class="blob-num js-line-number" data-line-number="4211"></td>
        <td id="LC4211" class="blob-code js-file-line">                    <span class="nx">triggered</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4212" class="blob-num js-line-number" data-line-number="4212"></td>
        <td id="LC4212" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4213" class="blob-num js-line-number" data-line-number="4213"></td>
        <td id="LC4213" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4214" class="blob-num js-line-number" data-line-number="4214"></td>
        <td id="LC4214" class="blob-code js-file-line">                <span class="c1">// trigger events</span></td>
      </tr>
      <tr>
        <td id="L4215" class="blob-num js-line-number" data-line-number="4215"></td>
        <td id="LC4215" class="blob-code js-file-line">                <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4216" class="blob-num js-line-number" data-line-number="4216"></td>
        <td id="LC4216" class="blob-code js-file-line">                <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">name</span> <span class="o">+</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">direction</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4217" class="blob-num js-line-number" data-line-number="4217"></td>
        <td id="LC4217" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4218" class="blob-num js-line-number" data-line-number="4218"></td>
        <td id="LC4218" class="blob-code js-file-line">                <span class="kd">var</span> <span class="nx">isVertical</span> <span class="o">=</span> <span class="nx">Utils</span><span class="p">.</span><span class="nx">isVertical</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">direction</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4219" class="blob-num js-line-number" data-line-number="4219"></td>
        <td id="LC4219" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4220" class="blob-num js-line-number" data-line-number="4220"></td>
        <td id="LC4220" class="blob-code js-file-line">                <span class="c1">// block the browser events</span></td>
      </tr>
      <tr>
        <td id="L4221" class="blob-num js-line-number" data-line-number="4221"></td>
        <td id="LC4221" class="blob-code js-file-line">                <span class="k">if</span><span class="p">((</span><span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dragBlockVertical</span> <span class="o">&amp;&amp;</span> <span class="nx">isVertical</span><span class="p">)</span> <span class="o">||</span></td>
      </tr>
      <tr>
        <td id="L4222" class="blob-num js-line-number" data-line-number="4222"></td>
        <td id="LC4222" class="blob-code js-file-line">                    <span class="p">(</span><span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dragBlockHorizontal</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">isVertical</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4223" class="blob-num js-line-number" data-line-number="4223"></td>
        <td id="LC4223" class="blob-code js-file-line">                    <span class="nx">ev</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L4224" class="blob-num js-line-number" data-line-number="4224"></td>
        <td id="LC4224" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4225" class="blob-num js-line-number" data-line-number="4225"></td>
        <td id="LC4225" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4226" class="blob-num js-line-number" data-line-number="4226"></td>
        <td id="LC4226" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4227" class="blob-num js-line-number" data-line-number="4227"></td>
        <td id="LC4227" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_RELEASE</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4228" class="blob-num js-line-number" data-line-number="4228"></td>
        <td id="LC4228" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">triggered</span> <span class="o">&amp;&amp;</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">changedLength</span> <span class="o">&lt;=</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">dragMaxTouches</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4229" class="blob-num js-line-number" data-line-number="4229"></td>
        <td id="LC4229" class="blob-code js-file-line">                    <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">name</span> <span class="o">+</span> <span class="s1">&#39;end&#39;</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4230" class="blob-num js-line-number" data-line-number="4230"></td>
        <td id="LC4230" class="blob-code js-file-line">                    <span class="nx">triggered</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4231" class="blob-num js-line-number" data-line-number="4231"></td>
        <td id="LC4231" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4232" class="blob-num js-line-number" data-line-number="4232"></td>
        <td id="LC4232" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4233" class="blob-num js-line-number" data-line-number="4233"></td>
        <td id="LC4233" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4234" class="blob-num js-line-number" data-line-number="4234"></td>
        <td id="LC4234" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_END</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4235" class="blob-num js-line-number" data-line-number="4235"></td>
        <td id="LC4235" class="blob-code js-file-line">                <span class="nx">triggered</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4236" class="blob-num js-line-number" data-line-number="4236"></td>
        <td id="LC4236" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4237" class="blob-num js-line-number" data-line-number="4237"></td>
        <td id="LC4237" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4238" class="blob-num js-line-number" data-line-number="4238"></td>
        <td id="LC4238" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4239" class="blob-num js-line-number" data-line-number="4239"></td>
        <td id="LC4239" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4240" class="blob-num js-line-number" data-line-number="4240"></td>
        <td id="LC4240" class="blob-code js-file-line">    <span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span><span class="p">.</span><span class="nx">Drag</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4241" class="blob-num js-line-number" data-line-number="4241"></td>
        <td id="LC4241" class="blob-code js-file-line">        <span class="nx">name</span><span class="o">:</span> <span class="nx">name</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4242" class="blob-num js-line-number" data-line-number="4242"></td>
        <td id="LC4242" class="blob-code js-file-line">        <span class="nx">index</span><span class="o">:</span> <span class="mi">50</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4243" class="blob-num js-line-number" data-line-number="4243"></td>
        <td id="LC4243" class="blob-code js-file-line">        <span class="nx">handler</span><span class="o">:</span> <span class="nx">dragGesture</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4244" class="blob-num js-line-number" data-line-number="4244"></td>
        <td id="LC4244" class="blob-code js-file-line">        <span class="nx">defaults</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4245" class="blob-num js-line-number" data-line-number="4245"></td>
        <td id="LC4245" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4246" class="blob-num js-line-number" data-line-number="4246"></td>
        <td id="LC4246" class="blob-code js-file-line"><span class="cm">             * minimal movement that have to be made before the drag event gets triggered</span></td>
      </tr>
      <tr>
        <td id="L4247" class="blob-num js-line-number" data-line-number="4247"></td>
        <td id="LC4247" class="blob-code js-file-line"><span class="cm">             * @property dragMinDistance</span></td>
      </tr>
      <tr>
        <td id="L4248" class="blob-num js-line-number" data-line-number="4248"></td>
        <td id="LC4248" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4249" class="blob-num js-line-number" data-line-number="4249"></td>
        <td id="LC4249" class="blob-code js-file-line"><span class="cm">             * @default 10</span></td>
      </tr>
      <tr>
        <td id="L4250" class="blob-num js-line-number" data-line-number="4250"></td>
        <td id="LC4250" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4251" class="blob-num js-line-number" data-line-number="4251"></td>
        <td id="LC4251" class="blob-code js-file-line">            <span class="nx">dragMinDistance</span><span class="o">:</span> <span class="mi">10</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4252" class="blob-num js-line-number" data-line-number="4252"></td>
        <td id="LC4252" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4253" class="blob-num js-line-number" data-line-number="4253"></td>
        <td id="LC4253" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4254" class="blob-num js-line-number" data-line-number="4254"></td>
        <td id="LC4254" class="blob-code js-file-line"><span class="cm">             * Set dragDistanceCorrection to true to make the starting point of the drag</span></td>
      </tr>
      <tr>
        <td id="L4255" class="blob-num js-line-number" data-line-number="4255"></td>
        <td id="LC4255" class="blob-code js-file-line"><span class="cm">             * be calculated from where the drag was triggered, not from where the touch started.</span></td>
      </tr>
      <tr>
        <td id="L4256" class="blob-num js-line-number" data-line-number="4256"></td>
        <td id="LC4256" class="blob-code js-file-line"><span class="cm">             * Useful to avoid a jerk-starting drag, which can make fine-adjustments</span></td>
      </tr>
      <tr>
        <td id="L4257" class="blob-num js-line-number" data-line-number="4257"></td>
        <td id="LC4257" class="blob-code js-file-line"><span class="cm">             * through dragging difficult, and be visually unappealing.</span></td>
      </tr>
      <tr>
        <td id="L4258" class="blob-num js-line-number" data-line-number="4258"></td>
        <td id="LC4258" class="blob-code js-file-line"><span class="cm">             * @property dragDistanceCorrection</span></td>
      </tr>
      <tr>
        <td id="L4259" class="blob-num js-line-number" data-line-number="4259"></td>
        <td id="LC4259" class="blob-code js-file-line"><span class="cm">             * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L4260" class="blob-num js-line-number" data-line-number="4260"></td>
        <td id="LC4260" class="blob-code js-file-line"><span class="cm">             * @default true</span></td>
      </tr>
      <tr>
        <td id="L4261" class="blob-num js-line-number" data-line-number="4261"></td>
        <td id="LC4261" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4262" class="blob-num js-line-number" data-line-number="4262"></td>
        <td id="LC4262" class="blob-code js-file-line">            <span class="nx">dragDistanceCorrection</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4263" class="blob-num js-line-number" data-line-number="4263"></td>
        <td id="LC4263" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4264" class="blob-num js-line-number" data-line-number="4264"></td>
        <td id="LC4264" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4265" class="blob-num js-line-number" data-line-number="4265"></td>
        <td id="LC4265" class="blob-code js-file-line"><span class="cm">             * set 0 for unlimited, but this can conflict with transform</span></td>
      </tr>
      <tr>
        <td id="L4266" class="blob-num js-line-number" data-line-number="4266"></td>
        <td id="LC4266" class="blob-code js-file-line"><span class="cm">             * @property dragMaxTouches</span></td>
      </tr>
      <tr>
        <td id="L4267" class="blob-num js-line-number" data-line-number="4267"></td>
        <td id="LC4267" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4268" class="blob-num js-line-number" data-line-number="4268"></td>
        <td id="LC4268" class="blob-code js-file-line"><span class="cm">             * @default 1</span></td>
      </tr>
      <tr>
        <td id="L4269" class="blob-num js-line-number" data-line-number="4269"></td>
        <td id="LC4269" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4270" class="blob-num js-line-number" data-line-number="4270"></td>
        <td id="LC4270" class="blob-code js-file-line">            <span class="nx">dragMaxTouches</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4271" class="blob-num js-line-number" data-line-number="4271"></td>
        <td id="LC4271" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4272" class="blob-num js-line-number" data-line-number="4272"></td>
        <td id="LC4272" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4273" class="blob-num js-line-number" data-line-number="4273"></td>
        <td id="LC4273" class="blob-code js-file-line"><span class="cm">             * prevent default browser behavior when dragging occurs</span></td>
      </tr>
      <tr>
        <td id="L4274" class="blob-num js-line-number" data-line-number="4274"></td>
        <td id="LC4274" class="blob-code js-file-line"><span class="cm">             * be careful with it, it makes the element a blocking element</span></td>
      </tr>
      <tr>
        <td id="L4275" class="blob-num js-line-number" data-line-number="4275"></td>
        <td id="LC4275" class="blob-code js-file-line"><span class="cm">             * when you are using the drag gesture, it is a good practice to set this true</span></td>
      </tr>
      <tr>
        <td id="L4276" class="blob-num js-line-number" data-line-number="4276"></td>
        <td id="LC4276" class="blob-code js-file-line"><span class="cm">             * @property dragBlockHorizontal</span></td>
      </tr>
      <tr>
        <td id="L4277" class="blob-num js-line-number" data-line-number="4277"></td>
        <td id="LC4277" class="blob-code js-file-line"><span class="cm">             * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L4278" class="blob-num js-line-number" data-line-number="4278"></td>
        <td id="LC4278" class="blob-code js-file-line"><span class="cm">             * @default false</span></td>
      </tr>
      <tr>
        <td id="L4279" class="blob-num js-line-number" data-line-number="4279"></td>
        <td id="LC4279" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4280" class="blob-num js-line-number" data-line-number="4280"></td>
        <td id="LC4280" class="blob-code js-file-line">            <span class="nx">dragBlockHorizontal</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4281" class="blob-num js-line-number" data-line-number="4281"></td>
        <td id="LC4281" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4282" class="blob-num js-line-number" data-line-number="4282"></td>
        <td id="LC4282" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4283" class="blob-num js-line-number" data-line-number="4283"></td>
        <td id="LC4283" class="blob-code js-file-line"><span class="cm">             * same as `dragBlockHorizontal`, but for vertical movement</span></td>
      </tr>
      <tr>
        <td id="L4284" class="blob-num js-line-number" data-line-number="4284"></td>
        <td id="LC4284" class="blob-code js-file-line"><span class="cm">             * @property dragBlockVertical</span></td>
      </tr>
      <tr>
        <td id="L4285" class="blob-num js-line-number" data-line-number="4285"></td>
        <td id="LC4285" class="blob-code js-file-line"><span class="cm">             * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L4286" class="blob-num js-line-number" data-line-number="4286"></td>
        <td id="LC4286" class="blob-code js-file-line"><span class="cm">             * @default false</span></td>
      </tr>
      <tr>
        <td id="L4287" class="blob-num js-line-number" data-line-number="4287"></td>
        <td id="LC4287" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4288" class="blob-num js-line-number" data-line-number="4288"></td>
        <td id="LC4288" class="blob-code js-file-line">            <span class="nx">dragBlockVertical</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4289" class="blob-num js-line-number" data-line-number="4289"></td>
        <td id="LC4289" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4290" class="blob-num js-line-number" data-line-number="4290"></td>
        <td id="LC4290" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4291" class="blob-num js-line-number" data-line-number="4291"></td>
        <td id="LC4291" class="blob-code js-file-line"><span class="cm">             * dragLockToAxis keeps the drag gesture on the axis that it started on,</span></td>
      </tr>
      <tr>
        <td id="L4292" class="blob-num js-line-number" data-line-number="4292"></td>
        <td id="LC4292" class="blob-code js-file-line"><span class="cm">             * It disallows vertical directions if the initial direction was horizontal, and vice versa.</span></td>
      </tr>
      <tr>
        <td id="L4293" class="blob-num js-line-number" data-line-number="4293"></td>
        <td id="LC4293" class="blob-code js-file-line"><span class="cm">             * @property dragLockToAxis</span></td>
      </tr>
      <tr>
        <td id="L4294" class="blob-num js-line-number" data-line-number="4294"></td>
        <td id="LC4294" class="blob-code js-file-line"><span class="cm">             * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L4295" class="blob-num js-line-number" data-line-number="4295"></td>
        <td id="LC4295" class="blob-code js-file-line"><span class="cm">             * @default false</span></td>
      </tr>
      <tr>
        <td id="L4296" class="blob-num js-line-number" data-line-number="4296"></td>
        <td id="LC4296" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4297" class="blob-num js-line-number" data-line-number="4297"></td>
        <td id="LC4297" class="blob-code js-file-line">            <span class="nx">dragLockToAxis</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4298" class="blob-num js-line-number" data-line-number="4298"></td>
        <td id="LC4298" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4299" class="blob-num js-line-number" data-line-number="4299"></td>
        <td id="LC4299" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4300" class="blob-num js-line-number" data-line-number="4300"></td>
        <td id="LC4300" class="blob-code js-file-line"><span class="cm">             * drag lock only kicks in when distance &gt; dragLockMinDistance</span></td>
      </tr>
      <tr>
        <td id="L4301" class="blob-num js-line-number" data-line-number="4301"></td>
        <td id="LC4301" class="blob-code js-file-line"><span class="cm">             * This way, locking occurs only when the distance has become large enough to reliably determine the direction</span></td>
      </tr>
      <tr>
        <td id="L4302" class="blob-num js-line-number" data-line-number="4302"></td>
        <td id="LC4302" class="blob-code js-file-line"><span class="cm">             * @property dragLockMinDistance</span></td>
      </tr>
      <tr>
        <td id="L4303" class="blob-num js-line-number" data-line-number="4303"></td>
        <td id="LC4303" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4304" class="blob-num js-line-number" data-line-number="4304"></td>
        <td id="LC4304" class="blob-code js-file-line"><span class="cm">             * @default 25</span></td>
      </tr>
      <tr>
        <td id="L4305" class="blob-num js-line-number" data-line-number="4305"></td>
        <td id="LC4305" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4306" class="blob-num js-line-number" data-line-number="4306"></td>
        <td id="LC4306" class="blob-code js-file-line">            <span class="nx">dragLockMinDistance</span><span class="o">:</span> <span class="mi">25</span></td>
      </tr>
      <tr>
        <td id="L4307" class="blob-num js-line-number" data-line-number="4307"></td>
        <td id="LC4307" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4308" class="blob-num js-line-number" data-line-number="4308"></td>
        <td id="LC4308" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4309" class="blob-num js-line-number" data-line-number="4309"></td>
        <td id="LC4309" class="blob-code js-file-line"><span class="p">})(</span><span class="s1">&#39;drag&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4310" class="blob-num js-line-number" data-line-number="4310"></td>
        <td id="LC4310" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4311" class="blob-num js-line-number" data-line-number="4311"></td>
        <td id="LC4311" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4312" class="blob-num js-line-number" data-line-number="4312"></td>
        <td id="LC4312" class="blob-code js-file-line"><span class="cm"> * @module gestures</span></td>
      </tr>
      <tr>
        <td id="L4313" class="blob-num js-line-number" data-line-number="4313"></td>
        <td id="LC4313" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4314" class="blob-num js-line-number" data-line-number="4314"></td>
        <td id="LC4314" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4315" class="blob-num js-line-number" data-line-number="4315"></td>
        <td id="LC4315" class="blob-code js-file-line"><span class="cm"> * trigger a simple gesture event, so you can do anything in your handler.</span></td>
      </tr>
      <tr>
        <td id="L4316" class="blob-num js-line-number" data-line-number="4316"></td>
        <td id="LC4316" class="blob-code js-file-line"><span class="cm"> * only usable if you know what your doing...</span></td>
      </tr>
      <tr>
        <td id="L4317" class="blob-num js-line-number" data-line-number="4317"></td>
        <td id="LC4317" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L4318" class="blob-num js-line-number" data-line-number="4318"></td>
        <td id="LC4318" class="blob-code js-file-line"><span class="cm"> * @class Gesture</span></td>
      </tr>
      <tr>
        <td id="L4319" class="blob-num js-line-number" data-line-number="4319"></td>
        <td id="LC4319" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L4320" class="blob-num js-line-number" data-line-number="4320"></td>
        <td id="LC4320" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4321" class="blob-num js-line-number" data-line-number="4321"></td>
        <td id="LC4321" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4322" class="blob-num js-line-number" data-line-number="4322"></td>
        <td id="LC4322" class="blob-code js-file-line"><span class="cm"> * @event gesture</span></td>
      </tr>
      <tr>
        <td id="L4323" class="blob-num js-line-number" data-line-number="4323"></td>
        <td id="LC4323" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4324" class="blob-num js-line-number" data-line-number="4324"></td>
        <td id="LC4324" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4325" class="blob-num js-line-number" data-line-number="4325"></td>
        <td id="LC4325" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span><span class="p">.</span><span class="nx">Gesture</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4326" class="blob-num js-line-number" data-line-number="4326"></td>
        <td id="LC4326" class="blob-code js-file-line">    <span class="nx">name</span><span class="o">:</span> <span class="s1">&#39;gesture&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4327" class="blob-num js-line-number" data-line-number="4327"></td>
        <td id="LC4327" class="blob-code js-file-line">    <span class="nx">index</span><span class="o">:</span> <span class="mi">1337</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4328" class="blob-num js-line-number" data-line-number="4328"></td>
        <td id="LC4328" class="blob-code js-file-line">    <span class="nx">handler</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">releaseGesture</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">inst</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4329" class="blob-num js-line-number" data-line-number="4329"></td>
        <td id="LC4329" class="blob-code js-file-line">        <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4330" class="blob-num js-line-number" data-line-number="4330"></td>
        <td id="LC4330" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4331" class="blob-num js-line-number" data-line-number="4331"></td>
        <td id="LC4331" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4332" class="blob-num js-line-number" data-line-number="4332"></td>
        <td id="LC4332" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4333" class="blob-num js-line-number" data-line-number="4333"></td>
        <td id="LC4333" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4334" class="blob-num js-line-number" data-line-number="4334"></td>
        <td id="LC4334" class="blob-code js-file-line"><span class="cm"> * @module gestures</span></td>
      </tr>
      <tr>
        <td id="L4335" class="blob-num js-line-number" data-line-number="4335"></td>
        <td id="LC4335" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4336" class="blob-num js-line-number" data-line-number="4336"></td>
        <td id="LC4336" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4337" class="blob-num js-line-number" data-line-number="4337"></td>
        <td id="LC4337" class="blob-code js-file-line"><span class="cm"> * Touch stays at the same place for x time</span></td>
      </tr>
      <tr>
        <td id="L4338" class="blob-num js-line-number" data-line-number="4338"></td>
        <td id="LC4338" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L4339" class="blob-num js-line-number" data-line-number="4339"></td>
        <td id="LC4339" class="blob-code js-file-line"><span class="cm"> * @class Hold</span></td>
      </tr>
      <tr>
        <td id="L4340" class="blob-num js-line-number" data-line-number="4340"></td>
        <td id="LC4340" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L4341" class="blob-num js-line-number" data-line-number="4341"></td>
        <td id="LC4341" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4342" class="blob-num js-line-number" data-line-number="4342"></td>
        <td id="LC4342" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4343" class="blob-num js-line-number" data-line-number="4343"></td>
        <td id="LC4343" class="blob-code js-file-line"><span class="cm"> * @event hold</span></td>
      </tr>
      <tr>
        <td id="L4344" class="blob-num js-line-number" data-line-number="4344"></td>
        <td id="LC4344" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4345" class="blob-num js-line-number" data-line-number="4345"></td>
        <td id="LC4345" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4346" class="blob-num js-line-number" data-line-number="4346"></td>
        <td id="LC4346" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4347" class="blob-num js-line-number" data-line-number="4347"></td>
        <td id="LC4347" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4348" class="blob-num js-line-number" data-line-number="4348"></td>
        <td id="LC4348" class="blob-code js-file-line"><span class="cm"> * @param {String} name</span></td>
      </tr>
      <tr>
        <td id="L4349" class="blob-num js-line-number" data-line-number="4349"></td>
        <td id="LC4349" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4350" class="blob-num js-line-number" data-line-number="4350"></td>
        <td id="LC4350" class="blob-code js-file-line"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4351" class="blob-num js-line-number" data-line-number="4351"></td>
        <td id="LC4351" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">timer</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4352" class="blob-num js-line-number" data-line-number="4352"></td>
        <td id="LC4352" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4353" class="blob-num js-line-number" data-line-number="4353"></td>
        <td id="LC4353" class="blob-code js-file-line">    <span class="kd">function</span> <span class="nx">holdGesture</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">inst</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4354" class="blob-num js-line-number" data-line-number="4354"></td>
        <td id="LC4354" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">options</span> <span class="o">=</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4355" class="blob-num js-line-number" data-line-number="4355"></td>
        <td id="LC4355" class="blob-code js-file-line">            <span class="nx">current</span> <span class="o">=</span> <span class="nx">Detection</span><span class="p">.</span><span class="nx">current</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4356" class="blob-num js-line-number" data-line-number="4356"></td>
        <td id="LC4356" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4357" class="blob-num js-line-number" data-line-number="4357"></td>
        <td id="LC4357" class="blob-code js-file-line">        <span class="k">switch</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4358" class="blob-num js-line-number" data-line-number="4358"></td>
        <td id="LC4358" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_START</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4359" class="blob-num js-line-number" data-line-number="4359"></td>
        <td id="LC4359" class="blob-code js-file-line">                <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">timer</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4360" class="blob-num js-line-number" data-line-number="4360"></td>
        <td id="LC4360" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4361" class="blob-num js-line-number" data-line-number="4361"></td>
        <td id="LC4361" class="blob-code js-file-line">                <span class="c1">// set the gesture so we can check in the timeout if it still is</span></td>
      </tr>
      <tr>
        <td id="L4362" class="blob-num js-line-number" data-line-number="4362"></td>
        <td id="LC4362" class="blob-code js-file-line">                <span class="nx">current</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">name</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4363" class="blob-num js-line-number" data-line-number="4363"></td>
        <td id="LC4363" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4364" class="blob-num js-line-number" data-line-number="4364"></td>
        <td id="LC4364" class="blob-code js-file-line">                <span class="c1">// set timer and if after the timeout it still is hold,</span></td>
      </tr>
      <tr>
        <td id="L4365" class="blob-num js-line-number" data-line-number="4365"></td>
        <td id="LC4365" class="blob-code js-file-line">                <span class="c1">// we trigger the hold event</span></td>
      </tr>
      <tr>
        <td id="L4366" class="blob-num js-line-number" data-line-number="4366"></td>
        <td id="LC4366" class="blob-code js-file-line">                <span class="nx">timer</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4367" class="blob-num js-line-number" data-line-number="4367"></td>
        <td id="LC4367" class="blob-code js-file-line">                    <span class="k">if</span><span class="p">(</span><span class="nx">current</span> <span class="o">&amp;&amp;</span> <span class="nx">current</span><span class="p">.</span><span class="nx">name</span> <span class="o">==</span> <span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4368" class="blob-num js-line-number" data-line-number="4368"></td>
        <td id="LC4368" class="blob-code js-file-line">                        <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4369" class="blob-num js-line-number" data-line-number="4369"></td>
        <td id="LC4369" class="blob-code js-file-line">                    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4370" class="blob-num js-line-number" data-line-number="4370"></td>
        <td id="LC4370" class="blob-code js-file-line">                <span class="p">},</span> <span class="nx">options</span><span class="p">.</span><span class="nx">holdTimeout</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4371" class="blob-num js-line-number" data-line-number="4371"></td>
        <td id="LC4371" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4372" class="blob-num js-line-number" data-line-number="4372"></td>
        <td id="LC4372" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4373" class="blob-num js-line-number" data-line-number="4373"></td>
        <td id="LC4373" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_MOVE</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4374" class="blob-num js-line-number" data-line-number="4374"></td>
        <td id="LC4374" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">distance</span> <span class="o">&gt;</span> <span class="nx">options</span><span class="p">.</span><span class="nx">holdThreshold</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4375" class="blob-num js-line-number" data-line-number="4375"></td>
        <td id="LC4375" class="blob-code js-file-line">                    <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">timer</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4376" class="blob-num js-line-number" data-line-number="4376"></td>
        <td id="LC4376" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4377" class="blob-num js-line-number" data-line-number="4377"></td>
        <td id="LC4377" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4378" class="blob-num js-line-number" data-line-number="4378"></td>
        <td id="LC4378" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4379" class="blob-num js-line-number" data-line-number="4379"></td>
        <td id="LC4379" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_RELEASE</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4380" class="blob-num js-line-number" data-line-number="4380"></td>
        <td id="LC4380" class="blob-code js-file-line">                <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">timer</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4381" class="blob-num js-line-number" data-line-number="4381"></td>
        <td id="LC4381" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4382" class="blob-num js-line-number" data-line-number="4382"></td>
        <td id="LC4382" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4383" class="blob-num js-line-number" data-line-number="4383"></td>
        <td id="LC4383" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4384" class="blob-num js-line-number" data-line-number="4384"></td>
        <td id="LC4384" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4385" class="blob-num js-line-number" data-line-number="4385"></td>
        <td id="LC4385" class="blob-code js-file-line">    <span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span><span class="p">.</span><span class="nx">Hold</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4386" class="blob-num js-line-number" data-line-number="4386"></td>
        <td id="LC4386" class="blob-code js-file-line">        <span class="nx">name</span><span class="o">:</span> <span class="nx">name</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4387" class="blob-num js-line-number" data-line-number="4387"></td>
        <td id="LC4387" class="blob-code js-file-line">        <span class="nx">index</span><span class="o">:</span> <span class="mi">10</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4388" class="blob-num js-line-number" data-line-number="4388"></td>
        <td id="LC4388" class="blob-code js-file-line">        <span class="nx">defaults</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4389" class="blob-num js-line-number" data-line-number="4389"></td>
        <td id="LC4389" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4390" class="blob-num js-line-number" data-line-number="4390"></td>
        <td id="LC4390" class="blob-code js-file-line"><span class="cm">             * @property holdTimeout</span></td>
      </tr>
      <tr>
        <td id="L4391" class="blob-num js-line-number" data-line-number="4391"></td>
        <td id="LC4391" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4392" class="blob-num js-line-number" data-line-number="4392"></td>
        <td id="LC4392" class="blob-code js-file-line"><span class="cm">             * @default 500</span></td>
      </tr>
      <tr>
        <td id="L4393" class="blob-num js-line-number" data-line-number="4393"></td>
        <td id="LC4393" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4394" class="blob-num js-line-number" data-line-number="4394"></td>
        <td id="LC4394" class="blob-code js-file-line">            <span class="nx">holdTimeout</span><span class="o">:</span> <span class="mi">500</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4395" class="blob-num js-line-number" data-line-number="4395"></td>
        <td id="LC4395" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4396" class="blob-num js-line-number" data-line-number="4396"></td>
        <td id="LC4396" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4397" class="blob-num js-line-number" data-line-number="4397"></td>
        <td id="LC4397" class="blob-code js-file-line"><span class="cm">             * movement allowed while holding</span></td>
      </tr>
      <tr>
        <td id="L4398" class="blob-num js-line-number" data-line-number="4398"></td>
        <td id="LC4398" class="blob-code js-file-line"><span class="cm">             * @property holdThreshold</span></td>
      </tr>
      <tr>
        <td id="L4399" class="blob-num js-line-number" data-line-number="4399"></td>
        <td id="LC4399" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4400" class="blob-num js-line-number" data-line-number="4400"></td>
        <td id="LC4400" class="blob-code js-file-line"><span class="cm">             * @default 2</span></td>
      </tr>
      <tr>
        <td id="L4401" class="blob-num js-line-number" data-line-number="4401"></td>
        <td id="LC4401" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4402" class="blob-num js-line-number" data-line-number="4402"></td>
        <td id="LC4402" class="blob-code js-file-line">            <span class="nx">holdThreshold</span><span class="o">:</span> <span class="mi">2</span></td>
      </tr>
      <tr>
        <td id="L4403" class="blob-num js-line-number" data-line-number="4403"></td>
        <td id="LC4403" class="blob-code js-file-line">        <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4404" class="blob-num js-line-number" data-line-number="4404"></td>
        <td id="LC4404" class="blob-code js-file-line">        <span class="nx">handler</span><span class="o">:</span> <span class="nx">holdGesture</span></td>
      </tr>
      <tr>
        <td id="L4405" class="blob-num js-line-number" data-line-number="4405"></td>
        <td id="LC4405" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4406" class="blob-num js-line-number" data-line-number="4406"></td>
        <td id="LC4406" class="blob-code js-file-line"><span class="p">})(</span><span class="s1">&#39;hold&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4407" class="blob-num js-line-number" data-line-number="4407"></td>
        <td id="LC4407" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4408" class="blob-num js-line-number" data-line-number="4408"></td>
        <td id="LC4408" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4409" class="blob-num js-line-number" data-line-number="4409"></td>
        <td id="LC4409" class="blob-code js-file-line"><span class="cm"> * @module gestures</span></td>
      </tr>
      <tr>
        <td id="L4410" class="blob-num js-line-number" data-line-number="4410"></td>
        <td id="LC4410" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4411" class="blob-num js-line-number" data-line-number="4411"></td>
        <td id="LC4411" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4412" class="blob-num js-line-number" data-line-number="4412"></td>
        <td id="LC4412" class="blob-code js-file-line"><span class="cm"> * when a touch is being released from the page</span></td>
      </tr>
      <tr>
        <td id="L4413" class="blob-num js-line-number" data-line-number="4413"></td>
        <td id="LC4413" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L4414" class="blob-num js-line-number" data-line-number="4414"></td>
        <td id="LC4414" class="blob-code js-file-line"><span class="cm"> * @class Release</span></td>
      </tr>
      <tr>
        <td id="L4415" class="blob-num js-line-number" data-line-number="4415"></td>
        <td id="LC4415" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L4416" class="blob-num js-line-number" data-line-number="4416"></td>
        <td id="LC4416" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4417" class="blob-num js-line-number" data-line-number="4417"></td>
        <td id="LC4417" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4418" class="blob-num js-line-number" data-line-number="4418"></td>
        <td id="LC4418" class="blob-code js-file-line"><span class="cm"> * @event release</span></td>
      </tr>
      <tr>
        <td id="L4419" class="blob-num js-line-number" data-line-number="4419"></td>
        <td id="LC4419" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4420" class="blob-num js-line-number" data-line-number="4420"></td>
        <td id="LC4420" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4421" class="blob-num js-line-number" data-line-number="4421"></td>
        <td id="LC4421" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span><span class="p">.</span><span class="nx">Release</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4422" class="blob-num js-line-number" data-line-number="4422"></td>
        <td id="LC4422" class="blob-code js-file-line">    <span class="nx">name</span><span class="o">:</span> <span class="s1">&#39;release&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4423" class="blob-num js-line-number" data-line-number="4423"></td>
        <td id="LC4423" class="blob-code js-file-line">    <span class="nx">index</span><span class="o">:</span> <span class="kc">Infinity</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4424" class="blob-num js-line-number" data-line-number="4424"></td>
        <td id="LC4424" class="blob-code js-file-line">    <span class="nx">handler</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">releaseGesture</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">inst</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4425" class="blob-num js-line-number" data-line-number="4425"></td>
        <td id="LC4425" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_RELEASE</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4426" class="blob-num js-line-number" data-line-number="4426"></td>
        <td id="LC4426" class="blob-code js-file-line">            <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4427" class="blob-num js-line-number" data-line-number="4427"></td>
        <td id="LC4427" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4428" class="blob-num js-line-number" data-line-number="4428"></td>
        <td id="LC4428" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4429" class="blob-num js-line-number" data-line-number="4429"></td>
        <td id="LC4429" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4430" class="blob-num js-line-number" data-line-number="4430"></td>
        <td id="LC4430" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4431" class="blob-num js-line-number" data-line-number="4431"></td>
        <td id="LC4431" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4432" class="blob-num js-line-number" data-line-number="4432"></td>
        <td id="LC4432" class="blob-code js-file-line"><span class="cm"> * @module gestures</span></td>
      </tr>
      <tr>
        <td id="L4433" class="blob-num js-line-number" data-line-number="4433"></td>
        <td id="LC4433" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4434" class="blob-num js-line-number" data-line-number="4434"></td>
        <td id="LC4434" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4435" class="blob-num js-line-number" data-line-number="4435"></td>
        <td id="LC4435" class="blob-code js-file-line"><span class="cm"> * triggers swipe events when the end velocity is above the threshold</span></td>
      </tr>
      <tr>
        <td id="L4436" class="blob-num js-line-number" data-line-number="4436"></td>
        <td id="LC4436" class="blob-code js-file-line"><span class="cm"> * for best usage, set `preventDefault` (on the drag gesture) to `true`</span></td>
      </tr>
      <tr>
        <td id="L4437" class="blob-num js-line-number" data-line-number="4437"></td>
        <td id="LC4437" class="blob-code js-file-line"><span class="cm"> * ````</span></td>
      </tr>
      <tr>
        <td id="L4438" class="blob-num js-line-number" data-line-number="4438"></td>
        <td id="LC4438" class="blob-code js-file-line"><span class="cm"> *  hammertime.on(&quot;dragleft swipeleft&quot;, function(ev) {</span></td>
      </tr>
      <tr>
        <td id="L4439" class="blob-num js-line-number" data-line-number="4439"></td>
        <td id="LC4439" class="blob-code js-file-line"><span class="cm"> *    console.log(ev);</span></td>
      </tr>
      <tr>
        <td id="L4440" class="blob-num js-line-number" data-line-number="4440"></td>
        <td id="LC4440" class="blob-code js-file-line"><span class="cm"> *    ev.gesture.preventDefault();</span></td>
      </tr>
      <tr>
        <td id="L4441" class="blob-num js-line-number" data-line-number="4441"></td>
        <td id="LC4441" class="blob-code js-file-line"><span class="cm"> *  });</span></td>
      </tr>
      <tr>
        <td id="L4442" class="blob-num js-line-number" data-line-number="4442"></td>
        <td id="LC4442" class="blob-code js-file-line"><span class="cm"> * ````</span></td>
      </tr>
      <tr>
        <td id="L4443" class="blob-num js-line-number" data-line-number="4443"></td>
        <td id="LC4443" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L4444" class="blob-num js-line-number" data-line-number="4444"></td>
        <td id="LC4444" class="blob-code js-file-line"><span class="cm"> * @class Swipe</span></td>
      </tr>
      <tr>
        <td id="L4445" class="blob-num js-line-number" data-line-number="4445"></td>
        <td id="LC4445" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L4446" class="blob-num js-line-number" data-line-number="4446"></td>
        <td id="LC4446" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4447" class="blob-num js-line-number" data-line-number="4447"></td>
        <td id="LC4447" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4448" class="blob-num js-line-number" data-line-number="4448"></td>
        <td id="LC4448" class="blob-code js-file-line"><span class="cm"> * @event swipe</span></td>
      </tr>
      <tr>
        <td id="L4449" class="blob-num js-line-number" data-line-number="4449"></td>
        <td id="LC4449" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4450" class="blob-num js-line-number" data-line-number="4450"></td>
        <td id="LC4450" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4451" class="blob-num js-line-number" data-line-number="4451"></td>
        <td id="LC4451" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4452" class="blob-num js-line-number" data-line-number="4452"></td>
        <td id="LC4452" class="blob-code js-file-line"><span class="cm"> * @event swipeleft</span></td>
      </tr>
      <tr>
        <td id="L4453" class="blob-num js-line-number" data-line-number="4453"></td>
        <td id="LC4453" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4454" class="blob-num js-line-number" data-line-number="4454"></td>
        <td id="LC4454" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4455" class="blob-num js-line-number" data-line-number="4455"></td>
        <td id="LC4455" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4456" class="blob-num js-line-number" data-line-number="4456"></td>
        <td id="LC4456" class="blob-code js-file-line"><span class="cm"> * @event swiperight</span></td>
      </tr>
      <tr>
        <td id="L4457" class="blob-num js-line-number" data-line-number="4457"></td>
        <td id="LC4457" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4458" class="blob-num js-line-number" data-line-number="4458"></td>
        <td id="LC4458" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4459" class="blob-num js-line-number" data-line-number="4459"></td>
        <td id="LC4459" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4460" class="blob-num js-line-number" data-line-number="4460"></td>
        <td id="LC4460" class="blob-code js-file-line"><span class="cm"> * @event swipeup</span></td>
      </tr>
      <tr>
        <td id="L4461" class="blob-num js-line-number" data-line-number="4461"></td>
        <td id="LC4461" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4462" class="blob-num js-line-number" data-line-number="4462"></td>
        <td id="LC4462" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4463" class="blob-num js-line-number" data-line-number="4463"></td>
        <td id="LC4463" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4464" class="blob-num js-line-number" data-line-number="4464"></td>
        <td id="LC4464" class="blob-code js-file-line"><span class="cm"> * @event swipedown</span></td>
      </tr>
      <tr>
        <td id="L4465" class="blob-num js-line-number" data-line-number="4465"></td>
        <td id="LC4465" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4466" class="blob-num js-line-number" data-line-number="4466"></td>
        <td id="LC4466" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4467" class="blob-num js-line-number" data-line-number="4467"></td>
        <td id="LC4467" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span><span class="p">.</span><span class="nx">Swipe</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4468" class="blob-num js-line-number" data-line-number="4468"></td>
        <td id="LC4468" class="blob-code js-file-line">    <span class="nx">name</span><span class="o">:</span> <span class="s1">&#39;swipe&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4469" class="blob-num js-line-number" data-line-number="4469"></td>
        <td id="LC4469" class="blob-code js-file-line">    <span class="nx">index</span><span class="o">:</span> <span class="mi">40</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4470" class="blob-num js-line-number" data-line-number="4470"></td>
        <td id="LC4470" class="blob-code js-file-line">    <span class="nx">defaults</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4471" class="blob-num js-line-number" data-line-number="4471"></td>
        <td id="LC4471" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4472" class="blob-num js-line-number" data-line-number="4472"></td>
        <td id="LC4472" class="blob-code js-file-line"><span class="cm">         * @property swipeMinTouches</span></td>
      </tr>
      <tr>
        <td id="L4473" class="blob-num js-line-number" data-line-number="4473"></td>
        <td id="LC4473" class="blob-code js-file-line"><span class="cm">         * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4474" class="blob-num js-line-number" data-line-number="4474"></td>
        <td id="LC4474" class="blob-code js-file-line"><span class="cm">         * @default 1</span></td>
      </tr>
      <tr>
        <td id="L4475" class="blob-num js-line-number" data-line-number="4475"></td>
        <td id="LC4475" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L4476" class="blob-num js-line-number" data-line-number="4476"></td>
        <td id="LC4476" class="blob-code js-file-line">        <span class="nx">swipeMinTouches</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4477" class="blob-num js-line-number" data-line-number="4477"></td>
        <td id="LC4477" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4478" class="blob-num js-line-number" data-line-number="4478"></td>
        <td id="LC4478" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4479" class="blob-num js-line-number" data-line-number="4479"></td>
        <td id="LC4479" class="blob-code js-file-line"><span class="cm">         * @property swipeMaxTouches</span></td>
      </tr>
      <tr>
        <td id="L4480" class="blob-num js-line-number" data-line-number="4480"></td>
        <td id="LC4480" class="blob-code js-file-line"><span class="cm">         * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4481" class="blob-num js-line-number" data-line-number="4481"></td>
        <td id="LC4481" class="blob-code js-file-line"><span class="cm">         * @default 1</span></td>
      </tr>
      <tr>
        <td id="L4482" class="blob-num js-line-number" data-line-number="4482"></td>
        <td id="LC4482" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L4483" class="blob-num js-line-number" data-line-number="4483"></td>
        <td id="LC4483" class="blob-code js-file-line">        <span class="nx">swipeMaxTouches</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4484" class="blob-num js-line-number" data-line-number="4484"></td>
        <td id="LC4484" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4485" class="blob-num js-line-number" data-line-number="4485"></td>
        <td id="LC4485" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4486" class="blob-num js-line-number" data-line-number="4486"></td>
        <td id="LC4486" class="blob-code js-file-line"><span class="cm">         * horizontal swipe velocity</span></td>
      </tr>
      <tr>
        <td id="L4487" class="blob-num js-line-number" data-line-number="4487"></td>
        <td id="LC4487" class="blob-code js-file-line"><span class="cm">         * @property swipeVelocityX</span></td>
      </tr>
      <tr>
        <td id="L4488" class="blob-num js-line-number" data-line-number="4488"></td>
        <td id="LC4488" class="blob-code js-file-line"><span class="cm">         * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4489" class="blob-num js-line-number" data-line-number="4489"></td>
        <td id="LC4489" class="blob-code js-file-line"><span class="cm">         * @default 0.6</span></td>
      </tr>
      <tr>
        <td id="L4490" class="blob-num js-line-number" data-line-number="4490"></td>
        <td id="LC4490" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L4491" class="blob-num js-line-number" data-line-number="4491"></td>
        <td id="LC4491" class="blob-code js-file-line">        <span class="nx">swipeVelocityX</span><span class="o">:</span> <span class="mf">0.6</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4492" class="blob-num js-line-number" data-line-number="4492"></td>
        <td id="LC4492" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4493" class="blob-num js-line-number" data-line-number="4493"></td>
        <td id="LC4493" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4494" class="blob-num js-line-number" data-line-number="4494"></td>
        <td id="LC4494" class="blob-code js-file-line"><span class="cm">         * vertical swipe velocity</span></td>
      </tr>
      <tr>
        <td id="L4495" class="blob-num js-line-number" data-line-number="4495"></td>
        <td id="LC4495" class="blob-code js-file-line"><span class="cm">         * @property swipeVelocityY</span></td>
      </tr>
      <tr>
        <td id="L4496" class="blob-num js-line-number" data-line-number="4496"></td>
        <td id="LC4496" class="blob-code js-file-line"><span class="cm">         * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4497" class="blob-num js-line-number" data-line-number="4497"></td>
        <td id="LC4497" class="blob-code js-file-line"><span class="cm">         * @default 0.6</span></td>
      </tr>
      <tr>
        <td id="L4498" class="blob-num js-line-number" data-line-number="4498"></td>
        <td id="LC4498" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L4499" class="blob-num js-line-number" data-line-number="4499"></td>
        <td id="LC4499" class="blob-code js-file-line">        <span class="nx">swipeVelocityY</span><span class="o">:</span> <span class="mf">0.6</span></td>
      </tr>
      <tr>
        <td id="L4500" class="blob-num js-line-number" data-line-number="4500"></td>
        <td id="LC4500" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4501" class="blob-num js-line-number" data-line-number="4501"></td>
        <td id="LC4501" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4502" class="blob-num js-line-number" data-line-number="4502"></td>
        <td id="LC4502" class="blob-code js-file-line">    <span class="nx">handler</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">swipeGesture</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">inst</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4503" class="blob-num js-line-number" data-line-number="4503"></td>
        <td id="LC4503" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_RELEASE</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4504" class="blob-num js-line-number" data-line-number="4504"></td>
        <td id="LC4504" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">touches</span> <span class="o">=</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">touches</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4505" class="blob-num js-line-number" data-line-number="4505"></td>
        <td id="LC4505" class="blob-code js-file-line">                <span class="nx">options</span> <span class="o">=</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4506" class="blob-num js-line-number" data-line-number="4506"></td>
        <td id="LC4506" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4507" class="blob-num js-line-number" data-line-number="4507"></td>
        <td id="LC4507" class="blob-code js-file-line">            <span class="c1">// max touches</span></td>
      </tr>
      <tr>
        <td id="L4508" class="blob-num js-line-number" data-line-number="4508"></td>
        <td id="LC4508" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">touches</span> <span class="o">&lt;</span> <span class="nx">options</span><span class="p">.</span><span class="nx">swipeMinTouches</span> <span class="o">||</span></td>
      </tr>
      <tr>
        <td id="L4509" class="blob-num js-line-number" data-line-number="4509"></td>
        <td id="LC4509" class="blob-code js-file-line">                <span class="nx">touches</span> <span class="o">&gt;</span> <span class="nx">options</span><span class="p">.</span><span class="nx">swipeMaxTouches</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4510" class="blob-num js-line-number" data-line-number="4510"></td>
        <td id="LC4510" class="blob-code js-file-line">                <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4511" class="blob-num js-line-number" data-line-number="4511"></td>
        <td id="LC4511" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4512" class="blob-num js-line-number" data-line-number="4512"></td>
        <td id="LC4512" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4513" class="blob-num js-line-number" data-line-number="4513"></td>
        <td id="LC4513" class="blob-code js-file-line">            <span class="c1">// when the distance we moved is too small we skip this gesture</span></td>
      </tr>
      <tr>
        <td id="L4514" class="blob-num js-line-number" data-line-number="4514"></td>
        <td id="LC4514" class="blob-code js-file-line">            <span class="c1">// or we can be already in dragging</span></td>
      </tr>
      <tr>
        <td id="L4515" class="blob-num js-line-number" data-line-number="4515"></td>
        <td id="LC4515" class="blob-code js-file-line">            <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">velocityX</span> <span class="o">&gt;</span> <span class="nx">options</span><span class="p">.</span><span class="nx">swipeVelocityX</span> <span class="o">||</span></td>
      </tr>
      <tr>
        <td id="L4516" class="blob-num js-line-number" data-line-number="4516"></td>
        <td id="LC4516" class="blob-code js-file-line">                <span class="nx">ev</span><span class="p">.</span><span class="nx">velocityY</span> <span class="o">&gt;</span> <span class="nx">options</span><span class="p">.</span><span class="nx">swipeVelocityY</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4517" class="blob-num js-line-number" data-line-number="4517"></td>
        <td id="LC4517" class="blob-code js-file-line">                <span class="c1">// trigger swipe events</span></td>
      </tr>
      <tr>
        <td id="L4518" class="blob-num js-line-number" data-line-number="4518"></td>
        <td id="LC4518" class="blob-code js-file-line">                <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">name</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4519" class="blob-num js-line-number" data-line-number="4519"></td>
        <td id="LC4519" class="blob-code js-file-line">                <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">name</span> <span class="o">+</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">direction</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4520" class="blob-num js-line-number" data-line-number="4520"></td>
        <td id="LC4520" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4521" class="blob-num js-line-number" data-line-number="4521"></td>
        <td id="LC4521" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4522" class="blob-num js-line-number" data-line-number="4522"></td>
        <td id="LC4522" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4523" class="blob-num js-line-number" data-line-number="4523"></td>
        <td id="LC4523" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4524" class="blob-num js-line-number" data-line-number="4524"></td>
        <td id="LC4524" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4525" class="blob-num js-line-number" data-line-number="4525"></td>
        <td id="LC4525" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4526" class="blob-num js-line-number" data-line-number="4526"></td>
        <td id="LC4526" class="blob-code js-file-line"><span class="cm"> * @module gestures</span></td>
      </tr>
      <tr>
        <td id="L4527" class="blob-num js-line-number" data-line-number="4527"></td>
        <td id="LC4527" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4528" class="blob-num js-line-number" data-line-number="4528"></td>
        <td id="LC4528" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4529" class="blob-num js-line-number" data-line-number="4529"></td>
        <td id="LC4529" class="blob-code js-file-line"><span class="cm"> * Single tap and a double tap on a place</span></td>
      </tr>
      <tr>
        <td id="L4530" class="blob-num js-line-number" data-line-number="4530"></td>
        <td id="LC4530" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L4531" class="blob-num js-line-number" data-line-number="4531"></td>
        <td id="LC4531" class="blob-code js-file-line"><span class="cm"> * @class Tap</span></td>
      </tr>
      <tr>
        <td id="L4532" class="blob-num js-line-number" data-line-number="4532"></td>
        <td id="LC4532" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L4533" class="blob-num js-line-number" data-line-number="4533"></td>
        <td id="LC4533" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4534" class="blob-num js-line-number" data-line-number="4534"></td>
        <td id="LC4534" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4535" class="blob-num js-line-number" data-line-number="4535"></td>
        <td id="LC4535" class="blob-code js-file-line"><span class="cm"> * @event tap</span></td>
      </tr>
      <tr>
        <td id="L4536" class="blob-num js-line-number" data-line-number="4536"></td>
        <td id="LC4536" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4537" class="blob-num js-line-number" data-line-number="4537"></td>
        <td id="LC4537" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4538" class="blob-num js-line-number" data-line-number="4538"></td>
        <td id="LC4538" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4539" class="blob-num js-line-number" data-line-number="4539"></td>
        <td id="LC4539" class="blob-code js-file-line"><span class="cm"> * @event doubletap</span></td>
      </tr>
      <tr>
        <td id="L4540" class="blob-num js-line-number" data-line-number="4540"></td>
        <td id="LC4540" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4541" class="blob-num js-line-number" data-line-number="4541"></td>
        <td id="LC4541" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4542" class="blob-num js-line-number" data-line-number="4542"></td>
        <td id="LC4542" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4543" class="blob-num js-line-number" data-line-number="4543"></td>
        <td id="LC4543" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4544" class="blob-num js-line-number" data-line-number="4544"></td>
        <td id="LC4544" class="blob-code js-file-line"><span class="cm"> * @param {String} name</span></td>
      </tr>
      <tr>
        <td id="L4545" class="blob-num js-line-number" data-line-number="4545"></td>
        <td id="LC4545" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4546" class="blob-num js-line-number" data-line-number="4546"></td>
        <td id="LC4546" class="blob-code js-file-line"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4547" class="blob-num js-line-number" data-line-number="4547"></td>
        <td id="LC4547" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">hasMoved</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4548" class="blob-num js-line-number" data-line-number="4548"></td>
        <td id="LC4548" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4549" class="blob-num js-line-number" data-line-number="4549"></td>
        <td id="LC4549" class="blob-code js-file-line">    <span class="kd">function</span> <span class="nx">tapGesture</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">inst</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4550" class="blob-num js-line-number" data-line-number="4550"></td>
        <td id="LC4550" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">options</span> <span class="o">=</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4551" class="blob-num js-line-number" data-line-number="4551"></td>
        <td id="LC4551" class="blob-code js-file-line">            <span class="nx">current</span> <span class="o">=</span> <span class="nx">Detection</span><span class="p">.</span><span class="nx">current</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4552" class="blob-num js-line-number" data-line-number="4552"></td>
        <td id="LC4552" class="blob-code js-file-line">            <span class="nx">prev</span> <span class="o">=</span> <span class="nx">Detection</span><span class="p">.</span><span class="nx">previous</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4553" class="blob-num js-line-number" data-line-number="4553"></td>
        <td id="LC4553" class="blob-code js-file-line">            <span class="nx">sincePrev</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4554" class="blob-num js-line-number" data-line-number="4554"></td>
        <td id="LC4554" class="blob-code js-file-line">            <span class="nx">didDoubleTap</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4555" class="blob-num js-line-number" data-line-number="4555"></td>
        <td id="LC4555" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4556" class="blob-num js-line-number" data-line-number="4556"></td>
        <td id="LC4556" class="blob-code js-file-line">        <span class="k">switch</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4557" class="blob-num js-line-number" data-line-number="4557"></td>
        <td id="LC4557" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_START</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4558" class="blob-num js-line-number" data-line-number="4558"></td>
        <td id="LC4558" class="blob-code js-file-line">                <span class="nx">hasMoved</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4559" class="blob-num js-line-number" data-line-number="4559"></td>
        <td id="LC4559" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4560" class="blob-num js-line-number" data-line-number="4560"></td>
        <td id="LC4560" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4561" class="blob-num js-line-number" data-line-number="4561"></td>
        <td id="LC4561" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_MOVE</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4562" class="blob-num js-line-number" data-line-number="4562"></td>
        <td id="LC4562" class="blob-code js-file-line">                <span class="nx">hasMoved</span> <span class="o">=</span> <span class="nx">hasMoved</span> <span class="o">||</span> <span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">distance</span> <span class="o">&gt;</span> <span class="nx">options</span><span class="p">.</span><span class="nx">tapMaxDistance</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4563" class="blob-num js-line-number" data-line-number="4563"></td>
        <td id="LC4563" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4564" class="blob-num js-line-number" data-line-number="4564"></td>
        <td id="LC4564" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4565" class="blob-num js-line-number" data-line-number="4565"></td>
        <td id="LC4565" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_END</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4566" class="blob-num js-line-number" data-line-number="4566"></td>
        <td id="LC4566" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">Utils</span><span class="p">.</span><span class="nx">inStr</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">srcEvent</span><span class="p">.</span><span class="nx">type</span><span class="p">,</span> <span class="s1">&#39;cancel&#39;</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">deltaTime</span> <span class="o">&lt;</span> <span class="nx">options</span><span class="p">.</span><span class="nx">tapMaxTime</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">hasMoved</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4567" class="blob-num js-line-number" data-line-number="4567"></td>
        <td id="LC4567" class="blob-code js-file-line">                    <span class="c1">// previous gesture, for the double tap since these are two different gesture detections</span></td>
      </tr>
      <tr>
        <td id="L4568" class="blob-num js-line-number" data-line-number="4568"></td>
        <td id="LC4568" class="blob-code js-file-line">                    <span class="nx">sincePrev</span> <span class="o">=</span> <span class="nx">prev</span> <span class="o">&amp;&amp;</span> <span class="nx">prev</span><span class="p">.</span><span class="nx">lastEvent</span> <span class="o">&amp;&amp;</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">timeStamp</span> <span class="o">-</span> <span class="nx">prev</span><span class="p">.</span><span class="nx">lastEvent</span><span class="p">.</span><span class="nx">timeStamp</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4569" class="blob-num js-line-number" data-line-number="4569"></td>
        <td id="LC4569" class="blob-code js-file-line">                    <span class="nx">didDoubleTap</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4570" class="blob-num js-line-number" data-line-number="4570"></td>
        <td id="LC4570" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4571" class="blob-num js-line-number" data-line-number="4571"></td>
        <td id="LC4571" class="blob-code js-file-line">                    <span class="c1">// check if double tap</span></td>
      </tr>
      <tr>
        <td id="L4572" class="blob-num js-line-number" data-line-number="4572"></td>
        <td id="LC4572" class="blob-code js-file-line">                    <span class="k">if</span><span class="p">(</span><span class="nx">prev</span> <span class="o">&amp;&amp;</span> <span class="nx">prev</span><span class="p">.</span><span class="nx">name</span> <span class="o">==</span> <span class="nx">name</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L4573" class="blob-num js-line-number" data-line-number="4573"></td>
        <td id="LC4573" class="blob-code js-file-line">                        <span class="p">(</span><span class="nx">sincePrev</span> <span class="o">&amp;&amp;</span> <span class="nx">sincePrev</span> <span class="o">&lt;</span> <span class="nx">options</span><span class="p">.</span><span class="nx">doubleTapInterval</span><span class="p">)</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L4574" class="blob-num js-line-number" data-line-number="4574"></td>
        <td id="LC4574" class="blob-code js-file-line">                        <span class="nx">ev</span><span class="p">.</span><span class="nx">distance</span> <span class="o">&lt;</span> <span class="nx">options</span><span class="p">.</span><span class="nx">doubleTapDistance</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4575" class="blob-num js-line-number" data-line-number="4575"></td>
        <td id="LC4575" class="blob-code js-file-line">                        <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="s1">&#39;doubletap&#39;</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4576" class="blob-num js-line-number" data-line-number="4576"></td>
        <td id="LC4576" class="blob-code js-file-line">                        <span class="nx">didDoubleTap</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4577" class="blob-num js-line-number" data-line-number="4577"></td>
        <td id="LC4577" class="blob-code js-file-line">                    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4578" class="blob-num js-line-number" data-line-number="4578"></td>
        <td id="LC4578" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4579" class="blob-num js-line-number" data-line-number="4579"></td>
        <td id="LC4579" class="blob-code js-file-line">                    <span class="c1">// do a single tap</span></td>
      </tr>
      <tr>
        <td id="L4580" class="blob-num js-line-number" data-line-number="4580"></td>
        <td id="LC4580" class="blob-code js-file-line">                    <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">didDoubleTap</span> <span class="o">||</span> <span class="nx">options</span><span class="p">.</span><span class="nx">tapAlways</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4581" class="blob-num js-line-number" data-line-number="4581"></td>
        <td id="LC4581" class="blob-code js-file-line">                        <span class="nx">current</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">name</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4582" class="blob-num js-line-number" data-line-number="4582"></td>
        <td id="LC4582" class="blob-code js-file-line">                        <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">current</span><span class="p">.</span><span class="nx">name</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4583" class="blob-num js-line-number" data-line-number="4583"></td>
        <td id="LC4583" class="blob-code js-file-line">                    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4584" class="blob-num js-line-number" data-line-number="4584"></td>
        <td id="LC4584" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4585" class="blob-num js-line-number" data-line-number="4585"></td>
        <td id="LC4585" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4586" class="blob-num js-line-number" data-line-number="4586"></td>
        <td id="LC4586" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4587" class="blob-num js-line-number" data-line-number="4587"></td>
        <td id="LC4587" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4588" class="blob-num js-line-number" data-line-number="4588"></td>
        <td id="LC4588" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4589" class="blob-num js-line-number" data-line-number="4589"></td>
        <td id="LC4589" class="blob-code js-file-line">    <span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span><span class="p">.</span><span class="nx">Tap</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4590" class="blob-num js-line-number" data-line-number="4590"></td>
        <td id="LC4590" class="blob-code js-file-line">        <span class="nx">name</span><span class="o">:</span> <span class="nx">name</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4591" class="blob-num js-line-number" data-line-number="4591"></td>
        <td id="LC4591" class="blob-code js-file-line">        <span class="nx">index</span><span class="o">:</span> <span class="mi">100</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4592" class="blob-num js-line-number" data-line-number="4592"></td>
        <td id="LC4592" class="blob-code js-file-line">        <span class="nx">handler</span><span class="o">:</span> <span class="nx">tapGesture</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4593" class="blob-num js-line-number" data-line-number="4593"></td>
        <td id="LC4593" class="blob-code js-file-line">        <span class="nx">defaults</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4594" class="blob-num js-line-number" data-line-number="4594"></td>
        <td id="LC4594" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4595" class="blob-num js-line-number" data-line-number="4595"></td>
        <td id="LC4595" class="blob-code js-file-line"><span class="cm">             * max time of a tap, this is for the slow tappers</span></td>
      </tr>
      <tr>
        <td id="L4596" class="blob-num js-line-number" data-line-number="4596"></td>
        <td id="LC4596" class="blob-code js-file-line"><span class="cm">             * @property tapMaxTime</span></td>
      </tr>
      <tr>
        <td id="L4597" class="blob-num js-line-number" data-line-number="4597"></td>
        <td id="LC4597" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4598" class="blob-num js-line-number" data-line-number="4598"></td>
        <td id="LC4598" class="blob-code js-file-line"><span class="cm">             * @default 250</span></td>
      </tr>
      <tr>
        <td id="L4599" class="blob-num js-line-number" data-line-number="4599"></td>
        <td id="LC4599" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4600" class="blob-num js-line-number" data-line-number="4600"></td>
        <td id="LC4600" class="blob-code js-file-line">            <span class="nx">tapMaxTime</span><span class="o">:</span> <span class="mi">250</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4601" class="blob-num js-line-number" data-line-number="4601"></td>
        <td id="LC4601" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4602" class="blob-num js-line-number" data-line-number="4602"></td>
        <td id="LC4602" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4603" class="blob-num js-line-number" data-line-number="4603"></td>
        <td id="LC4603" class="blob-code js-file-line"><span class="cm">             * max distance of movement of a tap, this is for the slow tappers</span></td>
      </tr>
      <tr>
        <td id="L4604" class="blob-num js-line-number" data-line-number="4604"></td>
        <td id="LC4604" class="blob-code js-file-line"><span class="cm">             * @property tapMaxDistance</span></td>
      </tr>
      <tr>
        <td id="L4605" class="blob-num js-line-number" data-line-number="4605"></td>
        <td id="LC4605" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4606" class="blob-num js-line-number" data-line-number="4606"></td>
        <td id="LC4606" class="blob-code js-file-line"><span class="cm">             * @default 10</span></td>
      </tr>
      <tr>
        <td id="L4607" class="blob-num js-line-number" data-line-number="4607"></td>
        <td id="LC4607" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4608" class="blob-num js-line-number" data-line-number="4608"></td>
        <td id="LC4608" class="blob-code js-file-line">            <span class="nx">tapMaxDistance</span><span class="o">:</span> <span class="mi">10</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4609" class="blob-num js-line-number" data-line-number="4609"></td>
        <td id="LC4609" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4610" class="blob-num js-line-number" data-line-number="4610"></td>
        <td id="LC4610" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4611" class="blob-num js-line-number" data-line-number="4611"></td>
        <td id="LC4611" class="blob-code js-file-line"><span class="cm">             * always trigger the `tap` event, even while double-tapping</span></td>
      </tr>
      <tr>
        <td id="L4612" class="blob-num js-line-number" data-line-number="4612"></td>
        <td id="LC4612" class="blob-code js-file-line"><span class="cm">             * @property tapAlways</span></td>
      </tr>
      <tr>
        <td id="L4613" class="blob-num js-line-number" data-line-number="4613"></td>
        <td id="LC4613" class="blob-code js-file-line"><span class="cm">             * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L4614" class="blob-num js-line-number" data-line-number="4614"></td>
        <td id="LC4614" class="blob-code js-file-line"><span class="cm">             * @default true</span></td>
      </tr>
      <tr>
        <td id="L4615" class="blob-num js-line-number" data-line-number="4615"></td>
        <td id="LC4615" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4616" class="blob-num js-line-number" data-line-number="4616"></td>
        <td id="LC4616" class="blob-code js-file-line">            <span class="nx">tapAlways</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4617" class="blob-num js-line-number" data-line-number="4617"></td>
        <td id="LC4617" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4618" class="blob-num js-line-number" data-line-number="4618"></td>
        <td id="LC4618" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4619" class="blob-num js-line-number" data-line-number="4619"></td>
        <td id="LC4619" class="blob-code js-file-line"><span class="cm">             * max distance between two taps</span></td>
      </tr>
      <tr>
        <td id="L4620" class="blob-num js-line-number" data-line-number="4620"></td>
        <td id="LC4620" class="blob-code js-file-line"><span class="cm">             * @property doubleTapDistance</span></td>
      </tr>
      <tr>
        <td id="L4621" class="blob-num js-line-number" data-line-number="4621"></td>
        <td id="LC4621" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4622" class="blob-num js-line-number" data-line-number="4622"></td>
        <td id="LC4622" class="blob-code js-file-line"><span class="cm">             * @default 20</span></td>
      </tr>
      <tr>
        <td id="L4623" class="blob-num js-line-number" data-line-number="4623"></td>
        <td id="LC4623" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4624" class="blob-num js-line-number" data-line-number="4624"></td>
        <td id="LC4624" class="blob-code js-file-line">            <span class="nx">doubleTapDistance</span><span class="o">:</span> <span class="mi">20</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4625" class="blob-num js-line-number" data-line-number="4625"></td>
        <td id="LC4625" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4626" class="blob-num js-line-number" data-line-number="4626"></td>
        <td id="LC4626" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4627" class="blob-num js-line-number" data-line-number="4627"></td>
        <td id="LC4627" class="blob-code js-file-line"><span class="cm">             * max time between two taps</span></td>
      </tr>
      <tr>
        <td id="L4628" class="blob-num js-line-number" data-line-number="4628"></td>
        <td id="LC4628" class="blob-code js-file-line"><span class="cm">             * @property doubleTapInterval</span></td>
      </tr>
      <tr>
        <td id="L4629" class="blob-num js-line-number" data-line-number="4629"></td>
        <td id="LC4629" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4630" class="blob-num js-line-number" data-line-number="4630"></td>
        <td id="LC4630" class="blob-code js-file-line"><span class="cm">             * @default 300</span></td>
      </tr>
      <tr>
        <td id="L4631" class="blob-num js-line-number" data-line-number="4631"></td>
        <td id="LC4631" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4632" class="blob-num js-line-number" data-line-number="4632"></td>
        <td id="LC4632" class="blob-code js-file-line">            <span class="nx">doubleTapInterval</span><span class="o">:</span> <span class="mi">300</span></td>
      </tr>
      <tr>
        <td id="L4633" class="blob-num js-line-number" data-line-number="4633"></td>
        <td id="LC4633" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4634" class="blob-num js-line-number" data-line-number="4634"></td>
        <td id="LC4634" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4635" class="blob-num js-line-number" data-line-number="4635"></td>
        <td id="LC4635" class="blob-code js-file-line"><span class="p">})(</span><span class="s1">&#39;tap&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4636" class="blob-num js-line-number" data-line-number="4636"></td>
        <td id="LC4636" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4637" class="blob-num js-line-number" data-line-number="4637"></td>
        <td id="LC4637" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4638" class="blob-num js-line-number" data-line-number="4638"></td>
        <td id="LC4638" class="blob-code js-file-line"><span class="cm"> * @module gestures</span></td>
      </tr>
      <tr>
        <td id="L4639" class="blob-num js-line-number" data-line-number="4639"></td>
        <td id="LC4639" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4640" class="blob-num js-line-number" data-line-number="4640"></td>
        <td id="LC4640" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4641" class="blob-num js-line-number" data-line-number="4641"></td>
        <td id="LC4641" class="blob-code js-file-line"><span class="cm"> * when a touch is being touched at the page</span></td>
      </tr>
      <tr>
        <td id="L4642" class="blob-num js-line-number" data-line-number="4642"></td>
        <td id="LC4642" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L4643" class="blob-num js-line-number" data-line-number="4643"></td>
        <td id="LC4643" class="blob-code js-file-line"><span class="cm"> * @class Touch</span></td>
      </tr>
      <tr>
        <td id="L4644" class="blob-num js-line-number" data-line-number="4644"></td>
        <td id="LC4644" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L4645" class="blob-num js-line-number" data-line-number="4645"></td>
        <td id="LC4645" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4646" class="blob-num js-line-number" data-line-number="4646"></td>
        <td id="LC4646" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4647" class="blob-num js-line-number" data-line-number="4647"></td>
        <td id="LC4647" class="blob-code js-file-line"><span class="cm"> * @event touch</span></td>
      </tr>
      <tr>
        <td id="L4648" class="blob-num js-line-number" data-line-number="4648"></td>
        <td id="LC4648" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4649" class="blob-num js-line-number" data-line-number="4649"></td>
        <td id="LC4649" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4650" class="blob-num js-line-number" data-line-number="4650"></td>
        <td id="LC4650" class="blob-code js-file-line"><span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span><span class="p">.</span><span class="nx">Touch</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4651" class="blob-num js-line-number" data-line-number="4651"></td>
        <td id="LC4651" class="blob-code js-file-line">    <span class="nx">name</span><span class="o">:</span> <span class="s1">&#39;touch&#39;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4652" class="blob-num js-line-number" data-line-number="4652"></td>
        <td id="LC4652" class="blob-code js-file-line">    <span class="nx">index</span><span class="o">:</span> <span class="o">-</span><span class="kc">Infinity</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4653" class="blob-num js-line-number" data-line-number="4653"></td>
        <td id="LC4653" class="blob-code js-file-line">    <span class="nx">defaults</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4654" class="blob-num js-line-number" data-line-number="4654"></td>
        <td id="LC4654" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4655" class="blob-num js-line-number" data-line-number="4655"></td>
        <td id="LC4655" class="blob-code js-file-line"><span class="cm">         * call preventDefault at touchstart, and makes the element blocking by disabling the scrolling of the page,</span></td>
      </tr>
      <tr>
        <td id="L4656" class="blob-num js-line-number" data-line-number="4656"></td>
        <td id="LC4656" class="blob-code js-file-line"><span class="cm">         * but it improves gestures like transforming and dragging.</span></td>
      </tr>
      <tr>
        <td id="L4657" class="blob-num js-line-number" data-line-number="4657"></td>
        <td id="LC4657" class="blob-code js-file-line"><span class="cm">         * be careful with using this, it can be very annoying for users to be stuck on the page</span></td>
      </tr>
      <tr>
        <td id="L4658" class="blob-num js-line-number" data-line-number="4658"></td>
        <td id="LC4658" class="blob-code js-file-line"><span class="cm">         * @property preventDefault</span></td>
      </tr>
      <tr>
        <td id="L4659" class="blob-num js-line-number" data-line-number="4659"></td>
        <td id="LC4659" class="blob-code js-file-line"><span class="cm">         * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L4660" class="blob-num js-line-number" data-line-number="4660"></td>
        <td id="LC4660" class="blob-code js-file-line"><span class="cm">         * @default false</span></td>
      </tr>
      <tr>
        <td id="L4661" class="blob-num js-line-number" data-line-number="4661"></td>
        <td id="LC4661" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L4662" class="blob-num js-line-number" data-line-number="4662"></td>
        <td id="LC4662" class="blob-code js-file-line">        <span class="nx">preventDefault</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4663" class="blob-num js-line-number" data-line-number="4663"></td>
        <td id="LC4663" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4664" class="blob-num js-line-number" data-line-number="4664"></td>
        <td id="LC4664" class="blob-code js-file-line">        <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4665" class="blob-num js-line-number" data-line-number="4665"></td>
        <td id="LC4665" class="blob-code js-file-line"><span class="cm">         * disable mouse events, so only touch (or pen!) input triggers events</span></td>
      </tr>
      <tr>
        <td id="L4666" class="blob-num js-line-number" data-line-number="4666"></td>
        <td id="LC4666" class="blob-code js-file-line"><span class="cm">         * @property preventMouse</span></td>
      </tr>
      <tr>
        <td id="L4667" class="blob-num js-line-number" data-line-number="4667"></td>
        <td id="LC4667" class="blob-code js-file-line"><span class="cm">         * @type {Boolean}</span></td>
      </tr>
      <tr>
        <td id="L4668" class="blob-num js-line-number" data-line-number="4668"></td>
        <td id="LC4668" class="blob-code js-file-line"><span class="cm">         * @default false</span></td>
      </tr>
      <tr>
        <td id="L4669" class="blob-num js-line-number" data-line-number="4669"></td>
        <td id="LC4669" class="blob-code js-file-line"><span class="cm">         */</span></td>
      </tr>
      <tr>
        <td id="L4670" class="blob-num js-line-number" data-line-number="4670"></td>
        <td id="LC4670" class="blob-code js-file-line">        <span class="nx">preventMouse</span><span class="o">:</span> <span class="kc">false</span></td>
      </tr>
      <tr>
        <td id="L4671" class="blob-num js-line-number" data-line-number="4671"></td>
        <td id="LC4671" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4672" class="blob-num js-line-number" data-line-number="4672"></td>
        <td id="LC4672" class="blob-code js-file-line">    <span class="nx">handler</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">touchGesture</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">inst</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4673" class="blob-num js-line-number" data-line-number="4673"></td>
        <td id="LC4673" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">preventMouse</span> <span class="o">&amp;&amp;</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">pointerType</span> <span class="o">==</span> <span class="nx">POINTER_MOUSE</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4674" class="blob-num js-line-number" data-line-number="4674"></td>
        <td id="LC4674" class="blob-code js-file-line">            <span class="nx">ev</span><span class="p">.</span><span class="nx">stopDetect</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L4675" class="blob-num js-line-number" data-line-number="4675"></td>
        <td id="LC4675" class="blob-code js-file-line">            <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4676" class="blob-num js-line-number" data-line-number="4676"></td>
        <td id="LC4676" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4677" class="blob-num js-line-number" data-line-number="4677"></td>
        <td id="LC4677" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4678" class="blob-num js-line-number" data-line-number="4678"></td>
        <td id="LC4678" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4679" class="blob-num js-line-number" data-line-number="4679"></td>
        <td id="LC4679" class="blob-code js-file-line">            <span class="nx">ev</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L4680" class="blob-num js-line-number" data-line-number="4680"></td>
        <td id="LC4680" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4681" class="blob-num js-line-number" data-line-number="4681"></td>
        <td id="LC4681" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4682" class="blob-num js-line-number" data-line-number="4682"></td>
        <td id="LC4682" class="blob-code js-file-line">        <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span> <span class="o">==</span> <span class="nx">EVENT_TOUCH</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4683" class="blob-num js-line-number" data-line-number="4683"></td>
        <td id="LC4683" class="blob-code js-file-line">            <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="s1">&#39;touch&#39;</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4684" class="blob-num js-line-number" data-line-number="4684"></td>
        <td id="LC4684" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4685" class="blob-num js-line-number" data-line-number="4685"></td>
        <td id="LC4685" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4686" class="blob-num js-line-number" data-line-number="4686"></td>
        <td id="LC4686" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4687" class="blob-num js-line-number" data-line-number="4687"></td>
        <td id="LC4687" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4688" class="blob-num js-line-number" data-line-number="4688"></td>
        <td id="LC4688" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4689" class="blob-num js-line-number" data-line-number="4689"></td>
        <td id="LC4689" class="blob-code js-file-line"><span class="cm"> * @module gestures</span></td>
      </tr>
      <tr>
        <td id="L4690" class="blob-num js-line-number" data-line-number="4690"></td>
        <td id="LC4690" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4691" class="blob-num js-line-number" data-line-number="4691"></td>
        <td id="LC4691" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4692" class="blob-num js-line-number" data-line-number="4692"></td>
        <td id="LC4692" class="blob-code js-file-line"><span class="cm"> * User want to scale or rotate with 2 fingers</span></td>
      </tr>
      <tr>
        <td id="L4693" class="blob-num js-line-number" data-line-number="4693"></td>
        <td id="LC4693" class="blob-code js-file-line"><span class="cm"> * Preventing the default browser behavior is a good way to improve feel and working. This can be done with the</span></td>
      </tr>
      <tr>
        <td id="L4694" class="blob-num js-line-number" data-line-number="4694"></td>
        <td id="LC4694" class="blob-code js-file-line"><span class="cm"> * `preventDefault` option.</span></td>
      </tr>
      <tr>
        <td id="L4695" class="blob-num js-line-number" data-line-number="4695"></td>
        <td id="LC4695" class="blob-code js-file-line"><span class="cm"> *</span></td>
      </tr>
      <tr>
        <td id="L4696" class="blob-num js-line-number" data-line-number="4696"></td>
        <td id="LC4696" class="blob-code js-file-line"><span class="cm"> * @class Transform</span></td>
      </tr>
      <tr>
        <td id="L4697" class="blob-num js-line-number" data-line-number="4697"></td>
        <td id="LC4697" class="blob-code js-file-line"><span class="cm"> * @static</span></td>
      </tr>
      <tr>
        <td id="L4698" class="blob-num js-line-number" data-line-number="4698"></td>
        <td id="LC4698" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4699" class="blob-num js-line-number" data-line-number="4699"></td>
        <td id="LC4699" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4700" class="blob-num js-line-number" data-line-number="4700"></td>
        <td id="LC4700" class="blob-code js-file-line"><span class="cm"> * @event transform</span></td>
      </tr>
      <tr>
        <td id="L4701" class="blob-num js-line-number" data-line-number="4701"></td>
        <td id="LC4701" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4702" class="blob-num js-line-number" data-line-number="4702"></td>
        <td id="LC4702" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4703" class="blob-num js-line-number" data-line-number="4703"></td>
        <td id="LC4703" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4704" class="blob-num js-line-number" data-line-number="4704"></td>
        <td id="LC4704" class="blob-code js-file-line"><span class="cm"> * @event transformstart</span></td>
      </tr>
      <tr>
        <td id="L4705" class="blob-num js-line-number" data-line-number="4705"></td>
        <td id="LC4705" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4706" class="blob-num js-line-number" data-line-number="4706"></td>
        <td id="LC4706" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4707" class="blob-num js-line-number" data-line-number="4707"></td>
        <td id="LC4707" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4708" class="blob-num js-line-number" data-line-number="4708"></td>
        <td id="LC4708" class="blob-code js-file-line"><span class="cm"> * @event transformend</span></td>
      </tr>
      <tr>
        <td id="L4709" class="blob-num js-line-number" data-line-number="4709"></td>
        <td id="LC4709" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4710" class="blob-num js-line-number" data-line-number="4710"></td>
        <td id="LC4710" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4711" class="blob-num js-line-number" data-line-number="4711"></td>
        <td id="LC4711" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4712" class="blob-num js-line-number" data-line-number="4712"></td>
        <td id="LC4712" class="blob-code js-file-line"><span class="cm"> * @event pinchin</span></td>
      </tr>
      <tr>
        <td id="L4713" class="blob-num js-line-number" data-line-number="4713"></td>
        <td id="LC4713" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4714" class="blob-num js-line-number" data-line-number="4714"></td>
        <td id="LC4714" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4715" class="blob-num js-line-number" data-line-number="4715"></td>
        <td id="LC4715" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4716" class="blob-num js-line-number" data-line-number="4716"></td>
        <td id="LC4716" class="blob-code js-file-line"><span class="cm"> * @event pinchout</span></td>
      </tr>
      <tr>
        <td id="L4717" class="blob-num js-line-number" data-line-number="4717"></td>
        <td id="LC4717" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4718" class="blob-num js-line-number" data-line-number="4718"></td>
        <td id="LC4718" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4719" class="blob-num js-line-number" data-line-number="4719"></td>
        <td id="LC4719" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4720" class="blob-num js-line-number" data-line-number="4720"></td>
        <td id="LC4720" class="blob-code js-file-line"><span class="cm"> * @event rotate</span></td>
      </tr>
      <tr>
        <td id="L4721" class="blob-num js-line-number" data-line-number="4721"></td>
        <td id="LC4721" class="blob-code js-file-line"><span class="cm"> * @param {Object} ev</span></td>
      </tr>
      <tr>
        <td id="L4722" class="blob-num js-line-number" data-line-number="4722"></td>
        <td id="LC4722" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4723" class="blob-num js-line-number" data-line-number="4723"></td>
        <td id="LC4723" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4724" class="blob-num js-line-number" data-line-number="4724"></td>
        <td id="LC4724" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4725" class="blob-num js-line-number" data-line-number="4725"></td>
        <td id="LC4725" class="blob-code js-file-line"><span class="cm"> * @param {String} name</span></td>
      </tr>
      <tr>
        <td id="L4726" class="blob-num js-line-number" data-line-number="4726"></td>
        <td id="LC4726" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4727" class="blob-num js-line-number" data-line-number="4727"></td>
        <td id="LC4727" class="blob-code js-file-line"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4728" class="blob-num js-line-number" data-line-number="4728"></td>
        <td id="LC4728" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">triggered</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4729" class="blob-num js-line-number" data-line-number="4729"></td>
        <td id="LC4729" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4730" class="blob-num js-line-number" data-line-number="4730"></td>
        <td id="LC4730" class="blob-code js-file-line">    <span class="kd">function</span> <span class="nx">transformGesture</span><span class="p">(</span><span class="nx">ev</span><span class="p">,</span> <span class="nx">inst</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4731" class="blob-num js-line-number" data-line-number="4731"></td>
        <td id="LC4731" class="blob-code js-file-line">        <span class="k">switch</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">eventType</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4732" class="blob-num js-line-number" data-line-number="4732"></td>
        <td id="LC4732" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_START</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4733" class="blob-num js-line-number" data-line-number="4733"></td>
        <td id="LC4733" class="blob-code js-file-line">                <span class="nx">triggered</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4734" class="blob-num js-line-number" data-line-number="4734"></td>
        <td id="LC4734" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4735" class="blob-num js-line-number" data-line-number="4735"></td>
        <td id="LC4735" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4736" class="blob-num js-line-number" data-line-number="4736"></td>
        <td id="LC4736" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_MOVE</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4737" class="blob-num js-line-number" data-line-number="4737"></td>
        <td id="LC4737" class="blob-code js-file-line">                <span class="c1">// at least multitouch</span></td>
      </tr>
      <tr>
        <td id="L4738" class="blob-num js-line-number" data-line-number="4738"></td>
        <td id="LC4738" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">touches</span><span class="p">.</span><span class="nx">length</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4739" class="blob-num js-line-number" data-line-number="4739"></td>
        <td id="LC4739" class="blob-code js-file-line">                    <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4740" class="blob-num js-line-number" data-line-number="4740"></td>
        <td id="LC4740" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4741" class="blob-num js-line-number" data-line-number="4741"></td>
        <td id="LC4741" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4742" class="blob-num js-line-number" data-line-number="4742"></td>
        <td id="LC4742" class="blob-code js-file-line">                <span class="kd">var</span> <span class="nx">scaleThreshold</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">scale</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4743" class="blob-num js-line-number" data-line-number="4743"></td>
        <td id="LC4743" class="blob-code js-file-line">                <span class="kd">var</span> <span class="nx">rotationThreshold</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">rotation</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4744" class="blob-num js-line-number" data-line-number="4744"></td>
        <td id="LC4744" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4745" class="blob-num js-line-number" data-line-number="4745"></td>
        <td id="LC4745" class="blob-code js-file-line">                <span class="c1">// when the distance we moved is too small we skip this gesture</span></td>
      </tr>
      <tr>
        <td id="L4746" class="blob-num js-line-number" data-line-number="4746"></td>
        <td id="LC4746" class="blob-code js-file-line">                <span class="c1">// or we can be already in dragging</span></td>
      </tr>
      <tr>
        <td id="L4747" class="blob-num js-line-number" data-line-number="4747"></td>
        <td id="LC4747" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">scaleThreshold</span> <span class="o">&lt;</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">transformMinScale</span> <span class="o">&amp;&amp;</span></td>
      </tr>
      <tr>
        <td id="L4748" class="blob-num js-line-number" data-line-number="4748"></td>
        <td id="LC4748" class="blob-code js-file-line">                    <span class="nx">rotationThreshold</span> <span class="o">&lt;</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">transformMinRotation</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4749" class="blob-num js-line-number" data-line-number="4749"></td>
        <td id="LC4749" class="blob-code js-file-line">                    <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4750" class="blob-num js-line-number" data-line-number="4750"></td>
        <td id="LC4750" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4751" class="blob-num js-line-number" data-line-number="4751"></td>
        <td id="LC4751" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4752" class="blob-num js-line-number" data-line-number="4752"></td>
        <td id="LC4752" class="blob-code js-file-line">                <span class="c1">// we are transforming!</span></td>
      </tr>
      <tr>
        <td id="L4753" class="blob-num js-line-number" data-line-number="4753"></td>
        <td id="LC4753" class="blob-code js-file-line">                <span class="nx">Detection</span><span class="p">.</span><span class="nx">current</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="nx">name</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4754" class="blob-num js-line-number" data-line-number="4754"></td>
        <td id="LC4754" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4755" class="blob-num js-line-number" data-line-number="4755"></td>
        <td id="LC4755" class="blob-code js-file-line">                <span class="c1">// first time, trigger dragstart event</span></td>
      </tr>
      <tr>
        <td id="L4756" class="blob-num js-line-number" data-line-number="4756"></td>
        <td id="LC4756" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="nx">triggered</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4757" class="blob-num js-line-number" data-line-number="4757"></td>
        <td id="LC4757" class="blob-code js-file-line">                    <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">name</span> <span class="o">+</span> <span class="s1">&#39;start&#39;</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4758" class="blob-num js-line-number" data-line-number="4758"></td>
        <td id="LC4758" class="blob-code js-file-line">                    <span class="nx">triggered</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4759" class="blob-num js-line-number" data-line-number="4759"></td>
        <td id="LC4759" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4760" class="blob-num js-line-number" data-line-number="4760"></td>
        <td id="LC4760" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4761" class="blob-num js-line-number" data-line-number="4761"></td>
        <td id="LC4761" class="blob-code js-file-line">                <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span> <span class="c1">// basic transform event</span></td>
      </tr>
      <tr>
        <td id="L4762" class="blob-num js-line-number" data-line-number="4762"></td>
        <td id="LC4762" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4763" class="blob-num js-line-number" data-line-number="4763"></td>
        <td id="LC4763" class="blob-code js-file-line">                <span class="c1">// trigger rotate event</span></td>
      </tr>
      <tr>
        <td id="L4764" class="blob-num js-line-number" data-line-number="4764"></td>
        <td id="LC4764" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">rotationThreshold</span> <span class="o">&gt;</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">transformMinRotation</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4765" class="blob-num js-line-number" data-line-number="4765"></td>
        <td id="LC4765" class="blob-code js-file-line">                    <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="s1">&#39;rotate&#39;</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4766" class="blob-num js-line-number" data-line-number="4766"></td>
        <td id="LC4766" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4767" class="blob-num js-line-number" data-line-number="4767"></td>
        <td id="LC4767" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4768" class="blob-num js-line-number" data-line-number="4768"></td>
        <td id="LC4768" class="blob-code js-file-line">                <span class="c1">// trigger pinch event</span></td>
      </tr>
      <tr>
        <td id="L4769" class="blob-num js-line-number" data-line-number="4769"></td>
        <td id="LC4769" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">scaleThreshold</span> <span class="o">&gt;</span> <span class="nx">inst</span><span class="p">.</span><span class="nx">options</span><span class="p">.</span><span class="nx">transformMinScale</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4770" class="blob-num js-line-number" data-line-number="4770"></td>
        <td id="LC4770" class="blob-code js-file-line">                    <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="s1">&#39;pinch&#39;</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4771" class="blob-num js-line-number" data-line-number="4771"></td>
        <td id="LC4771" class="blob-code js-file-line">                    <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="s1">&#39;pinch&#39;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">ev</span><span class="p">.</span><span class="nx">scale</span> <span class="o">&lt;</span> <span class="mi">1</span> <span class="o">?</span> <span class="s1">&#39;in&#39;</span> <span class="o">:</span> <span class="s1">&#39;out&#39;</span><span class="p">),</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4772" class="blob-num js-line-number" data-line-number="4772"></td>
        <td id="LC4772" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4773" class="blob-num js-line-number" data-line-number="4773"></td>
        <td id="LC4773" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4774" class="blob-num js-line-number" data-line-number="4774"></td>
        <td id="LC4774" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4775" class="blob-num js-line-number" data-line-number="4775"></td>
        <td id="LC4775" class="blob-code js-file-line">            <span class="k">case</span> <span class="nx">EVENT_RELEASE</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L4776" class="blob-num js-line-number" data-line-number="4776"></td>
        <td id="LC4776" class="blob-code js-file-line">                <span class="k">if</span><span class="p">(</span><span class="nx">triggered</span> <span class="o">&amp;&amp;</span> <span class="nx">ev</span><span class="p">.</span><span class="nx">changedLength</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4777" class="blob-num js-line-number" data-line-number="4777"></td>
        <td id="LC4777" class="blob-code js-file-line">                    <span class="nx">inst</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="nx">name</span> <span class="o">+</span> <span class="s1">&#39;end&#39;</span><span class="p">,</span> <span class="nx">ev</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4778" class="blob-num js-line-number" data-line-number="4778"></td>
        <td id="LC4778" class="blob-code js-file-line">                    <span class="nx">triggered</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4779" class="blob-num js-line-number" data-line-number="4779"></td>
        <td id="LC4779" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4780" class="blob-num js-line-number" data-line-number="4780"></td>
        <td id="LC4780" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4781" class="blob-num js-line-number" data-line-number="4781"></td>
        <td id="LC4781" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4782" class="blob-num js-line-number" data-line-number="4782"></td>
        <td id="LC4782" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4783" class="blob-num js-line-number" data-line-number="4783"></td>
        <td id="LC4783" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4784" class="blob-num js-line-number" data-line-number="4784"></td>
        <td id="LC4784" class="blob-code js-file-line">    <span class="nx">Hammer</span><span class="p">.</span><span class="nx">gestures</span><span class="p">.</span><span class="nx">Transform</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4785" class="blob-num js-line-number" data-line-number="4785"></td>
        <td id="LC4785" class="blob-code js-file-line">        <span class="nx">name</span><span class="o">:</span> <span class="nx">name</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4786" class="blob-num js-line-number" data-line-number="4786"></td>
        <td id="LC4786" class="blob-code js-file-line">        <span class="nx">index</span><span class="o">:</span> <span class="mi">45</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4787" class="blob-num js-line-number" data-line-number="4787"></td>
        <td id="LC4787" class="blob-code js-file-line">        <span class="nx">defaults</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4788" class="blob-num js-line-number" data-line-number="4788"></td>
        <td id="LC4788" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4789" class="blob-num js-line-number" data-line-number="4789"></td>
        <td id="LC4789" class="blob-code js-file-line"><span class="cm">             * minimal scale factor, no scale is 1, zoomin is to 0 and zoomout until higher then 1</span></td>
      </tr>
      <tr>
        <td id="L4790" class="blob-num js-line-number" data-line-number="4790"></td>
        <td id="LC4790" class="blob-code js-file-line"><span class="cm">             * @property transformMinScale</span></td>
      </tr>
      <tr>
        <td id="L4791" class="blob-num js-line-number" data-line-number="4791"></td>
        <td id="LC4791" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4792" class="blob-num js-line-number" data-line-number="4792"></td>
        <td id="LC4792" class="blob-code js-file-line"><span class="cm">             * @default 0.01</span></td>
      </tr>
      <tr>
        <td id="L4793" class="blob-num js-line-number" data-line-number="4793"></td>
        <td id="LC4793" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4794" class="blob-num js-line-number" data-line-number="4794"></td>
        <td id="LC4794" class="blob-code js-file-line">            <span class="nx">transformMinScale</span><span class="o">:</span> <span class="mf">0.01</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4795" class="blob-num js-line-number" data-line-number="4795"></td>
        <td id="LC4795" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4796" class="blob-num js-line-number" data-line-number="4796"></td>
        <td id="LC4796" class="blob-code js-file-line">            <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4797" class="blob-num js-line-number" data-line-number="4797"></td>
        <td id="LC4797" class="blob-code js-file-line"><span class="cm">             * rotation in degrees</span></td>
      </tr>
      <tr>
        <td id="L4798" class="blob-num js-line-number" data-line-number="4798"></td>
        <td id="LC4798" class="blob-code js-file-line"><span class="cm">             * @property transformMinRotation</span></td>
      </tr>
      <tr>
        <td id="L4799" class="blob-num js-line-number" data-line-number="4799"></td>
        <td id="LC4799" class="blob-code js-file-line"><span class="cm">             * @type {Number}</span></td>
      </tr>
      <tr>
        <td id="L4800" class="blob-num js-line-number" data-line-number="4800"></td>
        <td id="LC4800" class="blob-code js-file-line"><span class="cm">             * @default 1</span></td>
      </tr>
      <tr>
        <td id="L4801" class="blob-num js-line-number" data-line-number="4801"></td>
        <td id="LC4801" class="blob-code js-file-line"><span class="cm">             */</span></td>
      </tr>
      <tr>
        <td id="L4802" class="blob-num js-line-number" data-line-number="4802"></td>
        <td id="LC4802" class="blob-code js-file-line">            <span class="nx">transformMinRotation</span><span class="o">:</span> <span class="mi">1</span></td>
      </tr>
      <tr>
        <td id="L4803" class="blob-num js-line-number" data-line-number="4803"></td>
        <td id="LC4803" class="blob-code js-file-line">        <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4804" class="blob-num js-line-number" data-line-number="4804"></td>
        <td id="LC4804" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4805" class="blob-num js-line-number" data-line-number="4805"></td>
        <td id="LC4805" class="blob-code js-file-line">        <span class="nx">handler</span><span class="o">:</span> <span class="nx">transformGesture</span></td>
      </tr>
      <tr>
        <td id="L4806" class="blob-num js-line-number" data-line-number="4806"></td>
        <td id="LC4806" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4807" class="blob-num js-line-number" data-line-number="4807"></td>
        <td id="LC4807" class="blob-code js-file-line"><span class="p">})(</span><span class="s1">&#39;transform&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4808" class="blob-num js-line-number" data-line-number="4808"></td>
        <td id="LC4808" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4809" class="blob-num js-line-number" data-line-number="4809"></td>
        <td id="LC4809" class="blob-code js-file-line"><span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L4810" class="blob-num js-line-number" data-line-number="4810"></td>
        <td id="LC4810" class="blob-code js-file-line"><span class="cm"> * @module hammer</span></td>
      </tr>
      <tr>
        <td id="L4811" class="blob-num js-line-number" data-line-number="4811"></td>
        <td id="LC4811" class="blob-code js-file-line"><span class="cm"> */</span></td>
      </tr>
      <tr>
        <td id="L4812" class="blob-num js-line-number" data-line-number="4812"></td>
        <td id="LC4812" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4813" class="blob-num js-line-number" data-line-number="4813"></td>
        <td id="LC4813" class="blob-code js-file-line"><span class="c1">// AMD export</span></td>
      </tr>
      <tr>
        <td id="L4814" class="blob-num js-line-number" data-line-number="4814"></td>
        <td id="LC4814" class="blob-code js-file-line"><span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="nx">define</span> <span class="o">==</span> <span class="s1">&#39;function&#39;</span> <span class="o">&amp;&amp;</span> <span class="nx">define</span><span class="p">.</span><span class="nx">amd</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4815" class="blob-num js-line-number" data-line-number="4815"></td>
        <td id="LC4815" class="blob-code js-file-line">    <span class="nx">define</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4816" class="blob-num js-line-number" data-line-number="4816"></td>
        <td id="LC4816" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">Hammer</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4817" class="blob-num js-line-number" data-line-number="4817"></td>
        <td id="LC4817" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4818" class="blob-num js-line-number" data-line-number="4818"></td>
        <td id="LC4818" class="blob-code js-file-line"><span class="c1">// commonjs export</span></td>
      </tr>
      <tr>
        <td id="L4819" class="blob-num js-line-number" data-line-number="4819"></td>
        <td id="LC4819" class="blob-code js-file-line"><span class="p">}</span> <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="k">typeof</span> <span class="nx">module</span> <span class="o">!==</span> <span class="s1">&#39;undefined&#39;</span> <span class="o">&amp;&amp;</span> <span class="nx">module</span><span class="p">.</span><span class="nx">exports</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4820" class="blob-num js-line-number" data-line-number="4820"></td>
        <td id="LC4820" class="blob-code js-file-line">    <span class="nx">module</span><span class="p">.</span><span class="nx">exports</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4821" class="blob-num js-line-number" data-line-number="4821"></td>
        <td id="LC4821" class="blob-code js-file-line"><span class="c1">// browser export</span></td>
      </tr>
      <tr>
        <td id="L4822" class="blob-num js-line-number" data-line-number="4822"></td>
        <td id="LC4822" class="blob-code js-file-line"><span class="p">}</span> <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4823" class="blob-num js-line-number" data-line-number="4823"></td>
        <td id="LC4823" class="blob-code js-file-line">    <span class="nb">window</span><span class="p">.</span><span class="nx">Hammer</span> <span class="o">=</span> <span class="nx">Hammer</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4824" class="blob-num js-line-number" data-line-number="4824"></td>
        <td id="LC4824" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4825" class="blob-num js-line-number" data-line-number="4825"></td>
        <td id="LC4825" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4826" class="blob-num js-line-number" data-line-number="4826"></td>
        <td id="LC4826" class="blob-code js-file-line"><span class="p">})(</span><span class="nb">window</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4827" class="blob-num js-line-number" data-line-number="4827"></td>
        <td id="LC4827" class="blob-code js-file-line"><span class="p">},{}],</span><span class="mi">32</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L4828" class="blob-num js-line-number" data-line-number="4828"></td>
        <td id="LC4828" class="blob-code js-file-line"><span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="p">(</span><span class="s1">&#39;indexOf&#39;</span> <span class="k">in</span> <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">))</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4829" class="blob-num js-line-number" data-line-number="4829"></td>
        <td id="LC4829" class="blob-code js-file-line">    <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">indexOf</span><span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">find</span><span class="p">,</span> <span class="nx">i</span> <span class="cm">/*opt*/</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4830" class="blob-num js-line-number" data-line-number="4830"></td>
        <td id="LC4830" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">i</span><span class="o">===</span><span class="kc">undefined</span><span class="p">)</span> <span class="nx">i</span><span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4831" class="blob-num js-line-number" data-line-number="4831"></td>
        <td id="LC4831" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">i</span><span class="o">&lt;</span><span class="mi">0</span><span class="p">)</span> <span class="nx">i</span><span class="o">+=</span> <span class="k">this</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4832" class="blob-num js-line-number" data-line-number="4832"></td>
        <td id="LC4832" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="nx">i</span><span class="o">&lt;</span><span class="mi">0</span><span class="p">)</span> <span class="nx">i</span><span class="o">=</span> <span class="mi">0</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4833" class="blob-num js-line-number" data-line-number="4833"></td>
        <td id="LC4833" class="blob-code js-file-line">        <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">n</span><span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">&lt;</span><span class="nx">n</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L4834" class="blob-num js-line-number" data-line-number="4834"></td>
        <td id="LC4834" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="k">in</span> <span class="k">this</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span><span class="o">===</span><span class="nx">find</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L4835" class="blob-num js-line-number" data-line-number="4835"></td>
        <td id="LC4835" class="blob-code js-file-line">                <span class="k">return</span> <span class="nx">i</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4836" class="blob-num js-line-number" data-line-number="4836"></td>
        <td id="LC4836" class="blob-code js-file-line">        <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4837" class="blob-num js-line-number" data-line-number="4837"></td>
        <td id="LC4837" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4838" class="blob-num js-line-number" data-line-number="4838"></td>
        <td id="LC4838" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4839" class="blob-num js-line-number" data-line-number="4839"></td>
        <td id="LC4839" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4840" class="blob-num js-line-number" data-line-number="4840"></td>
        <td id="LC4840" class="blob-code js-file-line"><span class="nx">d3</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span><span class="p">(){</span></td>
      </tr>
      <tr>
        <td id="L4841" class="blob-num js-line-number" data-line-number="4841"></td>
        <td id="LC4841" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">d3</span> <span class="o">=</span> <span class="p">{</span><span class="nx">version</span><span class="o">:</span> <span class="s2">&quot;3.3.10&quot;</span><span class="p">};</span> <span class="c1">// semver</span></td>
      </tr>
      <tr>
        <td id="L4842" class="blob-num js-line-number" data-line-number="4842"></td>
        <td id="LC4842" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">d3_class</span><span class="p">(</span><span class="nx">ctor</span><span class="p">,</span> <span class="nx">properties</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4843" class="blob-num js-line-number" data-line-number="4843"></td>
        <td id="LC4843" class="blob-code js-file-line">  <span class="k">try</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4844" class="blob-num js-line-number" data-line-number="4844"></td>
        <td id="LC4844" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">properties</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4845" class="blob-num js-line-number" data-line-number="4845"></td>
        <td id="LC4845" class="blob-code js-file-line">      <span class="nb">Object</span><span class="p">.</span><span class="nx">defineProperty</span><span class="p">(</span><span class="nx">ctor</span><span class="p">.</span><span class="nx">prototype</span><span class="p">,</span> <span class="nx">key</span><span class="p">,</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4846" class="blob-num js-line-number" data-line-number="4846"></td>
        <td id="LC4846" class="blob-code js-file-line">        <span class="nx">value</span><span class="o">:</span> <span class="nx">properties</span><span class="p">[</span><span class="nx">key</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L4847" class="blob-num js-line-number" data-line-number="4847"></td>
        <td id="LC4847" class="blob-code js-file-line">        <span class="nx">enumerable</span><span class="o">:</span> <span class="kc">false</span></td>
      </tr>
      <tr>
        <td id="L4848" class="blob-num js-line-number" data-line-number="4848"></td>
        <td id="LC4848" class="blob-code js-file-line">      <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4849" class="blob-num js-line-number" data-line-number="4849"></td>
        <td id="LC4849" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4850" class="blob-num js-line-number" data-line-number="4850"></td>
        <td id="LC4850" class="blob-code js-file-line">  <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4851" class="blob-num js-line-number" data-line-number="4851"></td>
        <td id="LC4851" class="blob-code js-file-line">    <span class="nx">ctor</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="nx">properties</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4852" class="blob-num js-line-number" data-line-number="4852"></td>
        <td id="LC4852" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4853" class="blob-num js-line-number" data-line-number="4853"></td>
        <td id="LC4853" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4854" class="blob-num js-line-number" data-line-number="4854"></td>
        <td id="LC4854" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4855" class="blob-num js-line-number" data-line-number="4855"></td>
        <td id="LC4855" class="blob-code js-file-line"><span class="nx">d3</span><span class="p">.</span><span class="nx">map</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">object</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4856" class="blob-num js-line-number" data-line-number="4856"></td>
        <td id="LC4856" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">d3_Map</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4857" class="blob-num js-line-number" data-line-number="4857"></td>
        <td id="LC4857" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">object</span> <span class="k">instanceof</span> <span class="nx">d3_Map</span><span class="p">)</span> <span class="nx">object</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span> <span class="nx">map</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">value</span><span class="p">);</span> <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4858" class="blob-num js-line-number" data-line-number="4858"></td>
        <td id="LC4858" class="blob-code js-file-line">  <span class="k">else</span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">object</span><span class="p">)</span> <span class="nx">map</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">object</span><span class="p">[</span><span class="nx">key</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L4859" class="blob-num js-line-number" data-line-number="4859"></td>
        <td id="LC4859" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">map</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4860" class="blob-num js-line-number" data-line-number="4860"></td>
        <td id="LC4860" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4861" class="blob-num js-line-number" data-line-number="4861"></td>
        <td id="LC4861" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4862" class="blob-num js-line-number" data-line-number="4862"></td>
        <td id="LC4862" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">d3_Map</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L4863" class="blob-num js-line-number" data-line-number="4863"></td>
        <td id="LC4863" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4864" class="blob-num js-line-number" data-line-number="4864"></td>
        <td id="LC4864" class="blob-code js-file-line"><span class="nx">d3_class</span><span class="p">(</span><span class="nx">d3_Map</span><span class="p">,</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4865" class="blob-num js-line-number" data-line-number="4865"></td>
        <td id="LC4865" class="blob-code js-file-line">  <span class="nx">has</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4866" class="blob-num js-line-number" data-line-number="4866"></td>
        <td id="LC4866" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">d3_map_prefix</span> <span class="o">+</span> <span class="nx">key</span> <span class="k">in</span> <span class="k">this</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4867" class="blob-num js-line-number" data-line-number="4867"></td>
        <td id="LC4867" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4868" class="blob-num js-line-number" data-line-number="4868"></td>
        <td id="LC4868" class="blob-code js-file-line">  <span class="nx">get</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4869" class="blob-num js-line-number" data-line-number="4869"></td>
        <td id="LC4869" class="blob-code js-file-line">    <span class="k">return</span> <span class="k">this</span><span class="p">[</span><span class="nx">d3_map_prefix</span> <span class="o">+</span> <span class="nx">key</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L4870" class="blob-num js-line-number" data-line-number="4870"></td>
        <td id="LC4870" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4871" class="blob-num js-line-number" data-line-number="4871"></td>
        <td id="LC4871" class="blob-code js-file-line">  <span class="nx">set</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4872" class="blob-num js-line-number" data-line-number="4872"></td>
        <td id="LC4872" class="blob-code js-file-line">    <span class="k">return</span> <span class="k">this</span><span class="p">[</span><span class="nx">d3_map_prefix</span> <span class="o">+</span> <span class="nx">key</span><span class="p">]</span> <span class="o">=</span> <span class="nx">value</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4873" class="blob-num js-line-number" data-line-number="4873"></td>
        <td id="LC4873" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4874" class="blob-num js-line-number" data-line-number="4874"></td>
        <td id="LC4874" class="blob-code js-file-line">  <span class="nx">remove</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4875" class="blob-num js-line-number" data-line-number="4875"></td>
        <td id="LC4875" class="blob-code js-file-line">    <span class="nx">key</span> <span class="o">=</span> <span class="nx">d3_map_prefix</span> <span class="o">+</span> <span class="nx">key</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4876" class="blob-num js-line-number" data-line-number="4876"></td>
        <td id="LC4876" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">key</span> <span class="k">in</span> <span class="k">this</span> <span class="o">&amp;&amp;</span> <span class="k">delete</span> <span class="k">this</span><span class="p">[</span><span class="nx">key</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L4877" class="blob-num js-line-number" data-line-number="4877"></td>
        <td id="LC4877" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4878" class="blob-num js-line-number" data-line-number="4878"></td>
        <td id="LC4878" class="blob-code js-file-line">  <span class="nx">keys</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4879" class="blob-num js-line-number" data-line-number="4879"></td>
        <td id="LC4879" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">keys</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L4880" class="blob-num js-line-number" data-line-number="4880"></td>
        <td id="LC4880" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">{</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">key</span><span class="p">);</span> <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4881" class="blob-num js-line-number" data-line-number="4881"></td>
        <td id="LC4881" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">keys</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4882" class="blob-num js-line-number" data-line-number="4882"></td>
        <td id="LC4882" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4883" class="blob-num js-line-number" data-line-number="4883"></td>
        <td id="LC4883" class="blob-code js-file-line">  <span class="nx">values</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4884" class="blob-num js-line-number" data-line-number="4884"></td>
        <td id="LC4884" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">values</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L4885" class="blob-num js-line-number" data-line-number="4885"></td>
        <td id="LC4885" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span> <span class="nx">values</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">value</span><span class="p">);</span> <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4886" class="blob-num js-line-number" data-line-number="4886"></td>
        <td id="LC4886" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">values</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4887" class="blob-num js-line-number" data-line-number="4887"></td>
        <td id="LC4887" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4888" class="blob-num js-line-number" data-line-number="4888"></td>
        <td id="LC4888" class="blob-code js-file-line">  <span class="nx">entries</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4889" class="blob-num js-line-number" data-line-number="4889"></td>
        <td id="LC4889" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">entries</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L4890" class="blob-num js-line-number" data-line-number="4890"></td>
        <td id="LC4890" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span> <span class="p">{</span> <span class="nx">entries</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span><span class="nx">key</span><span class="o">:</span> <span class="nx">key</span><span class="p">,</span> <span class="nx">value</span><span class="o">:</span> <span class="nx">value</span><span class="p">});</span> <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4891" class="blob-num js-line-number" data-line-number="4891"></td>
        <td id="LC4891" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">entries</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4892" class="blob-num js-line-number" data-line-number="4892"></td>
        <td id="LC4892" class="blob-code js-file-line">  <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L4893" class="blob-num js-line-number" data-line-number="4893"></td>
        <td id="LC4893" class="blob-code js-file-line">  <span class="nx">forEach</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4894" class="blob-num js-line-number" data-line-number="4894"></td>
        <td id="LC4894" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="k">this</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4895" class="blob-num js-line-number" data-line-number="4895"></td>
        <td id="LC4895" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">key</span><span class="p">.</span><span class="nx">charCodeAt</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="o">===</span> <span class="nx">d3_map_prefixCode</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4896" class="blob-num js-line-number" data-line-number="4896"></td>
        <td id="LC4896" class="blob-code js-file-line">        <span class="nx">f</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">key</span><span class="p">.</span><span class="nx">substring</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="k">this</span><span class="p">[</span><span class="nx">key</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L4897" class="blob-num js-line-number" data-line-number="4897"></td>
        <td id="LC4897" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4898" class="blob-num js-line-number" data-line-number="4898"></td>
        <td id="LC4898" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4899" class="blob-num js-line-number" data-line-number="4899"></td>
        <td id="LC4899" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4900" class="blob-num js-line-number" data-line-number="4900"></td>
        <td id="LC4900" class="blob-code js-file-line"><span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L4901" class="blob-num js-line-number" data-line-number="4901"></td>
        <td id="LC4901" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4902" class="blob-num js-line-number" data-line-number="4902"></td>
        <td id="LC4902" class="blob-code js-file-line"><span class="kd">var</span> <span class="nx">d3_map_prefix</span> <span class="o">=</span> <span class="s2">&quot;\0&quot;</span><span class="p">,</span> <span class="c1">// prevent collision with built-ins</span></td>
      </tr>
      <tr>
        <td id="L4903" class="blob-num js-line-number" data-line-number="4903"></td>
        <td id="LC4903" class="blob-code js-file-line">    <span class="nx">d3_map_prefixCode</span> <span class="o">=</span> <span class="nx">d3_map_prefix</span><span class="p">.</span><span class="nx">charCodeAt</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4904" class="blob-num js-line-number" data-line-number="4904"></td>
        <td id="LC4904" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4905" class="blob-num js-line-number" data-line-number="4905"></td>
        <td id="LC4905" class="blob-code js-file-line"><span class="nx">d3</span><span class="p">.</span><span class="nx">dispatch</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4906" class="blob-num js-line-number" data-line-number="4906"></td>
        <td id="LC4906" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">dispatch</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">d3_dispatch</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4907" class="blob-num js-line-number" data-line-number="4907"></td>
        <td id="LC4907" class="blob-code js-file-line">      <span class="nx">i</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4908" class="blob-num js-line-number" data-line-number="4908"></td>
        <td id="LC4908" class="blob-code js-file-line">      <span class="nx">n</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4909" class="blob-num js-line-number" data-line-number="4909"></td>
        <td id="LC4909" class="blob-code js-file-line">  <span class="k">while</span> <span class="p">(</span><span class="o">++</span><span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">n</span><span class="p">)</span> <span class="nx">dispatch</span><span class="p">[</span><span class="nx">arguments</span><span class="p">[</span><span class="nx">i</span><span class="p">]]</span> <span class="o">=</span> <span class="nx">d3_dispatch_event</span><span class="p">(</span><span class="nx">dispatch</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4910" class="blob-num js-line-number" data-line-number="4910"></td>
        <td id="LC4910" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">dispatch</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4911" class="blob-num js-line-number" data-line-number="4911"></td>
        <td id="LC4911" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4912" class="blob-num js-line-number" data-line-number="4912"></td>
        <td id="LC4912" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4913" class="blob-num js-line-number" data-line-number="4913"></td>
        <td id="LC4913" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">d3_dispatch</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L4914" class="blob-num js-line-number" data-line-number="4914"></td>
        <td id="LC4914" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4915" class="blob-num js-line-number" data-line-number="4915"></td>
        <td id="LC4915" class="blob-code js-file-line"><span class="nx">d3_dispatch</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">on</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">listener</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4916" class="blob-num js-line-number" data-line-number="4916"></td>
        <td id="LC4916" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">type</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L4917" class="blob-num js-line-number" data-line-number="4917"></td>
        <td id="LC4917" class="blob-code js-file-line">      <span class="nx">name</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4918" class="blob-num js-line-number" data-line-number="4918"></td>
        <td id="LC4918" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4919" class="blob-num js-line-number" data-line-number="4919"></td>
        <td id="LC4919" class="blob-code js-file-line">  <span class="c1">// Extract optional namespace, e.g., &quot;click.foo&quot;</span></td>
      </tr>
      <tr>
        <td id="L4920" class="blob-num js-line-number" data-line-number="4920"></td>
        <td id="LC4920" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4921" class="blob-num js-line-number" data-line-number="4921"></td>
        <td id="LC4921" class="blob-code js-file-line">    <span class="nx">name</span> <span class="o">=</span> <span class="nx">type</span><span class="p">.</span><span class="nx">substring</span><span class="p">(</span><span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4922" class="blob-num js-line-number" data-line-number="4922"></td>
        <td id="LC4922" class="blob-code js-file-line">    <span class="nx">type</span> <span class="o">=</span> <span class="nx">type</span><span class="p">.</span><span class="nx">substring</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">i</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4923" class="blob-num js-line-number" data-line-number="4923"></td>
        <td id="LC4923" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4924" class="blob-num js-line-number" data-line-number="4924"></td>
        <td id="LC4924" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4925" class="blob-num js-line-number" data-line-number="4925"></td>
        <td id="LC4925" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">type</span><span class="p">)</span> <span class="k">return</span> <span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span> <span class="o">&lt;</span> <span class="mi">2</span></td>
      </tr>
      <tr>
        <td id="L4926" class="blob-num js-line-number" data-line-number="4926"></td>
        <td id="LC4926" class="blob-code js-file-line">      <span class="o">?</span> <span class="k">this</span><span class="p">[</span><span class="nx">type</span><span class="p">].</span><span class="nx">on</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L4927" class="blob-num js-line-number" data-line-number="4927"></td>
        <td id="LC4927" class="blob-code js-file-line">      <span class="o">:</span> <span class="k">this</span><span class="p">[</span><span class="nx">type</span><span class="p">].</span><span class="nx">on</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="nx">listener</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4928" class="blob-num js-line-number" data-line-number="4928"></td>
        <td id="LC4928" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4929" class="blob-num js-line-number" data-line-number="4929"></td>
        <td id="LC4929" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4930" class="blob-num js-line-number" data-line-number="4930"></td>
        <td id="LC4930" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">listener</span> <span class="o">==</span> <span class="kc">null</span><span class="p">)</span> <span class="k">for</span> <span class="p">(</span><span class="nx">type</span> <span class="k">in</span> <span class="k">this</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4931" class="blob-num js-line-number" data-line-number="4931"></td>
        <td id="LC4931" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">type</span><span class="p">))</span> <span class="k">this</span><span class="p">[</span><span class="nx">type</span><span class="p">].</span><span class="nx">on</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="kc">null</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4932" class="blob-num js-line-number" data-line-number="4932"></td>
        <td id="LC4932" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4933" class="blob-num js-line-number" data-line-number="4933"></td>
        <td id="LC4933" class="blob-code js-file-line">    <span class="k">return</span> <span class="k">this</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4934" class="blob-num js-line-number" data-line-number="4934"></td>
        <td id="LC4934" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4935" class="blob-num js-line-number" data-line-number="4935"></td>
        <td id="LC4935" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4936" class="blob-num js-line-number" data-line-number="4936"></td>
        <td id="LC4936" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4937" class="blob-num js-line-number" data-line-number="4937"></td>
        <td id="LC4937" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">d3_dispatch_event</span><span class="p">(</span><span class="nx">dispatch</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4938" class="blob-num js-line-number" data-line-number="4938"></td>
        <td id="LC4938" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">listeners</span> <span class="o">=</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L4939" class="blob-num js-line-number" data-line-number="4939"></td>
        <td id="LC4939" class="blob-code js-file-line">      <span class="nx">listenerByName</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">d3_Map</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4940" class="blob-num js-line-number" data-line-number="4940"></td>
        <td id="LC4940" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4941" class="blob-num js-line-number" data-line-number="4941"></td>
        <td id="LC4941" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">event</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4942" class="blob-num js-line-number" data-line-number="4942"></td>
        <td id="LC4942" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">z</span> <span class="o">=</span> <span class="nx">listeners</span><span class="p">,</span> <span class="c1">// defensive reference</span></td>
      </tr>
      <tr>
        <td id="L4943" class="blob-num js-line-number" data-line-number="4943"></td>
        <td id="LC4943" class="blob-code js-file-line">        <span class="nx">i</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4944" class="blob-num js-line-number" data-line-number="4944"></td>
        <td id="LC4944" class="blob-code js-file-line">        <span class="nx">n</span> <span class="o">=</span> <span class="nx">z</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L4945" class="blob-num js-line-number" data-line-number="4945"></td>
        <td id="LC4945" class="blob-code js-file-line">        <span class="nx">l</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4946" class="blob-num js-line-number" data-line-number="4946"></td>
        <td id="LC4946" class="blob-code js-file-line">    <span class="k">while</span> <span class="p">(</span><span class="o">++</span><span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">n</span><span class="p">)</span> <span class="k">if</span> <span class="p">(</span><span class="nx">l</span> <span class="o">=</span> <span class="nx">z</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">on</span><span class="p">)</span> <span class="nx">l</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4947" class="blob-num js-line-number" data-line-number="4947"></td>
        <td id="LC4947" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">dispatch</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4948" class="blob-num js-line-number" data-line-number="4948"></td>
        <td id="LC4948" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4949" class="blob-num js-line-number" data-line-number="4949"></td>
        <td id="LC4949" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4950" class="blob-num js-line-number" data-line-number="4950"></td>
        <td id="LC4950" class="blob-code js-file-line">  <span class="nx">event</span><span class="p">.</span><span class="nx">on</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="nx">listener</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4951" class="blob-num js-line-number" data-line-number="4951"></td>
        <td id="LC4951" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">listenerByName</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="nx">name</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L4952" class="blob-num js-line-number" data-line-number="4952"></td>
        <td id="LC4952" class="blob-code js-file-line">        <span class="nx">i</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4953" class="blob-num js-line-number" data-line-number="4953"></td>
        <td id="LC4953" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4954" class="blob-num js-line-number" data-line-number="4954"></td>
        <td id="LC4954" class="blob-code js-file-line">    <span class="c1">// return the current listener, if any</span></td>
      </tr>
      <tr>
        <td id="L4955" class="blob-num js-line-number" data-line-number="4955"></td>
        <td id="LC4955" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">)</span> <span class="k">return</span> <span class="nx">l</span> <span class="o">&amp;&amp;</span> <span class="nx">l</span><span class="p">.</span><span class="nx">on</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4956" class="blob-num js-line-number" data-line-number="4956"></td>
        <td id="LC4956" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4957" class="blob-num js-line-number" data-line-number="4957"></td>
        <td id="LC4957" class="blob-code js-file-line">    <span class="c1">// remove the old listener, if any (with copy-on-write)</span></td>
      </tr>
      <tr>
        <td id="L4958" class="blob-num js-line-number" data-line-number="4958"></td>
        <td id="LC4958" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">l</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4959" class="blob-num js-line-number" data-line-number="4959"></td>
        <td id="LC4959" class="blob-code js-file-line">      <span class="nx">l</span><span class="p">.</span><span class="nx">on</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4960" class="blob-num js-line-number" data-line-number="4960"></td>
        <td id="LC4960" class="blob-code js-file-line">      <span class="nx">listeners</span> <span class="o">=</span> <span class="nx">listeners</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">listeners</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="nx">l</span><span class="p">)).</span><span class="nx">concat</span><span class="p">(</span><span class="nx">listeners</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">));</span></td>
      </tr>
      <tr>
        <td id="L4961" class="blob-num js-line-number" data-line-number="4961"></td>
        <td id="LC4961" class="blob-code js-file-line">      <span class="nx">listenerByName</span><span class="p">.</span><span class="nx">remove</span><span class="p">(</span><span class="nx">name</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4962" class="blob-num js-line-number" data-line-number="4962"></td>
        <td id="LC4962" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4963" class="blob-num js-line-number" data-line-number="4963"></td>
        <td id="LC4963" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4964" class="blob-num js-line-number" data-line-number="4964"></td>
        <td id="LC4964" class="blob-code js-file-line">    <span class="c1">// add the new listener, if any</span></td>
      </tr>
      <tr>
        <td id="L4965" class="blob-num js-line-number" data-line-number="4965"></td>
        <td id="LC4965" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span><span class="nx">listener</span><span class="p">)</span> <span class="nx">listeners</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">listenerByName</span><span class="p">.</span><span class="nx">set</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="p">{</span><span class="nx">on</span><span class="o">:</span> <span class="nx">listener</span><span class="p">}));</span></td>
      </tr>
      <tr>
        <td id="L4966" class="blob-num js-line-number" data-line-number="4966"></td>
        <td id="LC4966" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4967" class="blob-num js-line-number" data-line-number="4967"></td>
        <td id="LC4967" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">dispatch</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4968" class="blob-num js-line-number" data-line-number="4968"></td>
        <td id="LC4968" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4969" class="blob-num js-line-number" data-line-number="4969"></td>
        <td id="LC4969" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4970" class="blob-num js-line-number" data-line-number="4970"></td>
        <td id="LC4970" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">event</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4971" class="blob-num js-line-number" data-line-number="4971"></td>
        <td id="LC4971" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4972" class="blob-num js-line-number" data-line-number="4972"></td>
        <td id="LC4972" class="blob-code js-file-line"><span class="c1">// Copies a variable number of methods from source to target.</span></td>
      </tr>
      <tr>
        <td id="L4973" class="blob-num js-line-number" data-line-number="4973"></td>
        <td id="LC4973" class="blob-code js-file-line"><span class="nx">d3</span><span class="p">.</span><span class="nx">rebind</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">source</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4974" class="blob-num js-line-number" data-line-number="4974"></td>
        <td id="LC4974" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">n</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span> <span class="nx">method</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4975" class="blob-num js-line-number" data-line-number="4975"></td>
        <td id="LC4975" class="blob-code js-file-line">  <span class="k">while</span> <span class="p">(</span><span class="o">++</span><span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">n</span><span class="p">)</span> <span class="nx">target</span><span class="p">[</span><span class="nx">method</span> <span class="o">=</span> <span class="nx">arguments</span><span class="p">[</span><span class="nx">i</span><span class="p">]]</span> <span class="o">=</span> <span class="nx">d3_rebind</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">source</span><span class="p">[</span><span class="nx">method</span><span class="p">]);</span></td>
      </tr>
      <tr>
        <td id="L4976" class="blob-num js-line-number" data-line-number="4976"></td>
        <td id="LC4976" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">target</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4977" class="blob-num js-line-number" data-line-number="4977"></td>
        <td id="LC4977" class="blob-code js-file-line"><span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4978" class="blob-num js-line-number" data-line-number="4978"></td>
        <td id="LC4978" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4979" class="blob-num js-line-number" data-line-number="4979"></td>
        <td id="LC4979" class="blob-code js-file-line"><span class="c1">// Method is assumed to be a standard D3 getter-setter:</span></td>
      </tr>
      <tr>
        <td id="L4980" class="blob-num js-line-number" data-line-number="4980"></td>
        <td id="LC4980" class="blob-code js-file-line"><span class="c1">// If passed with no arguments, gets the value.</span></td>
      </tr>
      <tr>
        <td id="L4981" class="blob-num js-line-number" data-line-number="4981"></td>
        <td id="LC4981" class="blob-code js-file-line"><span class="c1">// If passed with arguments, sets the value and returns the target.</span></td>
      </tr>
      <tr>
        <td id="L4982" class="blob-num js-line-number" data-line-number="4982"></td>
        <td id="LC4982" class="blob-code js-file-line"><span class="kd">function</span> <span class="nx">d3_rebind</span><span class="p">(</span><span class="nx">target</span><span class="p">,</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4983" class="blob-num js-line-number" data-line-number="4983"></td>
        <td id="LC4983" class="blob-code js-file-line">  <span class="k">return</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4984" class="blob-num js-line-number" data-line-number="4984"></td>
        <td id="LC4984" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">value</span> <span class="o">=</span> <span class="nx">method</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">source</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L4985" class="blob-num js-line-number" data-line-number="4985"></td>
        <td id="LC4985" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">value</span> <span class="o">===</span> <span class="nx">source</span> <span class="o">?</span> <span class="nx">target</span> <span class="o">:</span> <span class="nx">value</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4986" class="blob-num js-line-number" data-line-number="4986"></td>
        <td id="LC4986" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L4987" class="blob-num js-line-number" data-line-number="4987"></td>
        <td id="LC4987" class="blob-code js-file-line"><span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L4988" class="blob-num js-line-number" data-line-number="4988"></td>
        <td id="LC4988" class="blob-code js-file-line">  <span class="k">return</span> <span class="nx">d3</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L4989" class="blob-num js-line-number" data-line-number="4989"></td>
        <td id="LC4989" class="blob-code js-file-line"><span class="p">})();</span></td>
      </tr>
      <tr>
        <td id="L4990" class="blob-num js-line-number" data-line-number="4990"></td>
        <td id="LC4990" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4991" class="blob-num js-line-number" data-line-number="4991"></td>
        <td id="LC4991" class="blob-code js-file-line"><span class="p">},{}],</span><span class="mi">33</span><span class="o">:</span><span class="p">[</span><span class="kd">function</span><span class="p">(</span><span class="nx">_dereq_</span><span class="p">,</span><span class="nx">module</span><span class="p">,</span><span class="nx">exports</span><span class="p">){</span></td>
      </tr>
      <tr>
        <td id="L4992" class="blob-num js-line-number" data-line-number="4992"></td>
        <td id="LC4992" class="blob-code js-file-line"><span class="c1">// Released under MIT license</span></td>
      </tr>
      <tr>
        <td id="L4993" class="blob-num js-line-number" data-line-number="4993"></td>
        <td id="LC4993" class="blob-code js-file-line"><span class="c1">// Copyright (c) 2009-2010 Dominic Baggott</span></td>
      </tr>
      <tr>
        <td id="L4994" class="blob-num js-line-number" data-line-number="4994"></td>
        <td id="LC4994" class="blob-code js-file-line"><span class="c1">// Copyright (c) 2009-2010 Ash Berlin</span></td>
      </tr>
      <tr>
        <td id="L4995" class="blob-num js-line-number" data-line-number="4995"></td>
        <td id="LC4995" class="blob-code js-file-line"><span class="c1">// Copyright (c) 2011 Christoph Dorn &lt;christoph@christophdorn.com&gt; (http://www.christophdorn.com)</span></td>
      </tr>
      <tr>
        <td id="L4996" class="blob-num js-line-number" data-line-number="4996"></td>
        <td id="LC4996" class="blob-code js-file-line"><span class="c1">// Date: 2013-09-15T16:12Z</span></td>
      </tr>
      <tr>
        <td id="L4997" class="blob-num js-line-number" data-line-number="4997"></td>
        <td id="LC4997" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L4998" class="blob-num js-line-number" data-line-number="4998"></td>
        <td id="LC4998" class="blob-code js-file-line"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">expose</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L4999" class="blob-num js-line-number" data-line-number="4999"></td>
        <td id="LC4999" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5000" class="blob-num js-line-number" data-line-number="5000"></td>
        <td id="LC5000" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5001" class="blob-num js-line-number" data-line-number="5001"></td>
        <td id="LC5001" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5002" class="blob-num js-line-number" data-line-number="5002"></td>
        <td id="LC5002" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5003" class="blob-num js-line-number" data-line-number="5003"></td>
        <td id="LC5003" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">MarkdownHelpers</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L5004" class="blob-num js-line-number" data-line-number="5004"></td>
        <td id="LC5004" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5005" class="blob-num js-line-number" data-line-number="5005"></td>
        <td id="LC5005" class="blob-code js-file-line">  <span class="c1">// For Spidermonkey based engines</span></td>
      </tr>
      <tr>
        <td id="L5006" class="blob-num js-line-number" data-line-number="5006"></td>
        <td id="LC5006" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">mk_block_toSource</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5007" class="blob-num js-line-number" data-line-number="5007"></td>
        <td id="LC5007" class="blob-code js-file-line">    <span class="k">return</span> <span class="s2">&quot;Markdown.mk_block( &quot;</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5008" class="blob-num js-line-number" data-line-number="5008"></td>
        <td id="LC5008" class="blob-code js-file-line">            <span class="nx">uneval</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">toString</span><span class="p">())</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5009" class="blob-num js-line-number" data-line-number="5009"></td>
        <td id="LC5009" class="blob-code js-file-line">            <span class="s2">&quot;, &quot;</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5010" class="blob-num js-line-number" data-line-number="5010"></td>
        <td id="LC5010" class="blob-code js-file-line">            <span class="nx">uneval</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">trailing</span><span class="p">)</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5011" class="blob-num js-line-number" data-line-number="5011"></td>
        <td id="LC5011" class="blob-code js-file-line">            <span class="s2">&quot;, &quot;</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5012" class="blob-num js-line-number" data-line-number="5012"></td>
        <td id="LC5012" class="blob-code js-file-line">            <span class="nx">uneval</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">lineNumber</span><span class="p">)</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5013" class="blob-num js-line-number" data-line-number="5013"></td>
        <td id="LC5013" class="blob-code js-file-line">            <span class="s2">&quot; )&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5014" class="blob-num js-line-number" data-line-number="5014"></td>
        <td id="LC5014" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5015" class="blob-num js-line-number" data-line-number="5015"></td>
        <td id="LC5015" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5016" class="blob-num js-line-number" data-line-number="5016"></td>
        <td id="LC5016" class="blob-code js-file-line">  <span class="c1">// node</span></td>
      </tr>
      <tr>
        <td id="L5017" class="blob-num js-line-number" data-line-number="5017"></td>
        <td id="LC5017" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">mk_block_inspect</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5018" class="blob-num js-line-number" data-line-number="5018"></td>
        <td id="LC5018" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">util</span> <span class="o">=</span> <span class="nx">_dereq_</span><span class="p">(</span><span class="s2">&quot;util&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5019" class="blob-num js-line-number" data-line-number="5019"></td>
        <td id="LC5019" class="blob-code js-file-line">    <span class="k">return</span> <span class="s2">&quot;Markdown.mk_block( &quot;</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5020" class="blob-num js-line-number" data-line-number="5020"></td>
        <td id="LC5020" class="blob-code js-file-line">            <span class="nx">util</span><span class="p">.</span><span class="nx">inspect</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">toString</span><span class="p">())</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5021" class="blob-num js-line-number" data-line-number="5021"></td>
        <td id="LC5021" class="blob-code js-file-line">            <span class="s2">&quot;, &quot;</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5022" class="blob-num js-line-number" data-line-number="5022"></td>
        <td id="LC5022" class="blob-code js-file-line">            <span class="nx">util</span><span class="p">.</span><span class="nx">inspect</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">trailing</span><span class="p">)</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5023" class="blob-num js-line-number" data-line-number="5023"></td>
        <td id="LC5023" class="blob-code js-file-line">            <span class="s2">&quot;, &quot;</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5024" class="blob-num js-line-number" data-line-number="5024"></td>
        <td id="LC5024" class="blob-code js-file-line">            <span class="nx">util</span><span class="p">.</span><span class="nx">inspect</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">lineNumber</span><span class="p">)</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5025" class="blob-num js-line-number" data-line-number="5025"></td>
        <td id="LC5025" class="blob-code js-file-line">            <span class="s2">&quot; )&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5026" class="blob-num js-line-number" data-line-number="5026"></td>
        <td id="LC5026" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5027" class="blob-num js-line-number" data-line-number="5027"></td>
        <td id="LC5027" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5028" class="blob-num js-line-number" data-line-number="5028"></td>
        <td id="LC5028" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5029" class="blob-num js-line-number" data-line-number="5029"></td>
        <td id="LC5029" class="blob-code js-file-line">  <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">mk_block</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">block</span><span class="p">,</span> <span class="nx">trail</span><span class="p">,</span> <span class="nx">line</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5030" class="blob-num js-line-number" data-line-number="5030"></td>
        <td id="LC5030" class="blob-code js-file-line">    <span class="c1">// Be helpful for default case in tests.</span></td>
      </tr>
      <tr>
        <td id="L5031" class="blob-num js-line-number" data-line-number="5031"></td>
        <td id="LC5031" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="nx">arguments</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">1</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5032" class="blob-num js-line-number" data-line-number="5032"></td>
        <td id="LC5032" class="blob-code js-file-line">      <span class="nx">trail</span> <span class="o">=</span> <span class="s2">&quot;\n\n&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5033" class="blob-num js-line-number" data-line-number="5033"></td>
        <td id="LC5033" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5034" class="blob-num js-line-number" data-line-number="5034"></td>
        <td id="LC5034" class="blob-code js-file-line">    <span class="c1">// We actually need a String object, not a string primitive</span></td>
      </tr>
      <tr>
        <td id="L5035" class="blob-num js-line-number" data-line-number="5035"></td>
        <td id="LC5035" class="blob-code js-file-line">    <span class="cm">/* jshint -W053 */</span></td>
      </tr>
      <tr>
        <td id="L5036" class="blob-num js-line-number" data-line-number="5036"></td>
        <td id="LC5036" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">s</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">String</span><span class="p">(</span><span class="nx">block</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5037" class="blob-num js-line-number" data-line-number="5037"></td>
        <td id="LC5037" class="blob-code js-file-line">    <span class="nx">s</span><span class="p">.</span><span class="nx">trailing</span> <span class="o">=</span> <span class="nx">trail</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5038" class="blob-num js-line-number" data-line-number="5038"></td>
        <td id="LC5038" class="blob-code js-file-line">    <span class="c1">// To make it clear its not just a string</span></td>
      </tr>
      <tr>
        <td id="L5039" class="blob-num js-line-number" data-line-number="5039"></td>
        <td id="LC5039" class="blob-code js-file-line">    <span class="nx">s</span><span class="p">.</span><span class="nx">inspect</span> <span class="o">=</span> <span class="nx">mk_block_inspect</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5040" class="blob-num js-line-number" data-line-number="5040"></td>
        <td id="LC5040" class="blob-code js-file-line">    <span class="nx">s</span><span class="p">.</span><span class="nx">toSource</span> <span class="o">=</span> <span class="nx">mk_block_toSource</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5041" class="blob-num js-line-number" data-line-number="5041"></td>
        <td id="LC5041" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5042" class="blob-num js-line-number" data-line-number="5042"></td>
        <td id="LC5042" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="nx">line</span> <span class="o">!==</span> <span class="kc">undefined</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5043" class="blob-num js-line-number" data-line-number="5043"></td>
        <td id="LC5043" class="blob-code js-file-line">      <span class="nx">s</span><span class="p">.</span><span class="nx">lineNumber</span> <span class="o">=</span> <span class="nx">line</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5044" class="blob-num js-line-number" data-line-number="5044"></td>
        <td id="LC5044" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5045" class="blob-num js-line-number" data-line-number="5045"></td>
        <td id="LC5045" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">s</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5046" class="blob-num js-line-number" data-line-number="5046"></td>
        <td id="LC5046" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5047" class="blob-num js-line-number" data-line-number="5047"></td>
        <td id="LC5047" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5048" class="blob-num js-line-number" data-line-number="5048"></td>
        <td id="LC5048" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5049" class="blob-num js-line-number" data-line-number="5049"></td>
        <td id="LC5049" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">isArray</span> <span class="o">=</span> <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">isArray</span> <span class="o">=</span> <span class="nb">Array</span><span class="p">.</span><span class="nx">isArray</span> <span class="o">||</span> <span class="kd">function</span><span class="p">(</span><span class="nx">obj</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5050" class="blob-num js-line-number" data-line-number="5050"></td>
        <td id="LC5050" class="blob-code js-file-line">    <span class="k">return</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toString</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">obj</span><span class="p">)</span> <span class="o">===</span> <span class="s2">&quot;[object Array]&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5051" class="blob-num js-line-number" data-line-number="5051"></td>
        <td id="LC5051" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5052" class="blob-num js-line-number" data-line-number="5052"></td>
        <td id="LC5052" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5053" class="blob-num js-line-number" data-line-number="5053"></td>
        <td id="LC5053" class="blob-code js-file-line">  <span class="c1">// Don&#39;t mess with Array.prototype. Its not friendly</span></td>
      </tr>
      <tr>
        <td id="L5054" class="blob-num js-line-number" data-line-number="5054"></td>
        <td id="LC5054" class="blob-code js-file-line">  <span class="k">if</span> <span class="p">(</span> <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">forEach</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5055" class="blob-num js-line-number" data-line-number="5055"></td>
        <td id="LC5055" class="blob-code js-file-line">    <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">forEach</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">forEach</span><span class="p">(</span> <span class="nx">arr</span><span class="p">,</span> <span class="nx">cb</span><span class="p">,</span> <span class="nx">thisp</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5056" class="blob-num js-line-number" data-line-number="5056"></td>
        <td id="LC5056" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">arr</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span> <span class="nx">cb</span><span class="p">,</span> <span class="nx">thisp</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5057" class="blob-num js-line-number" data-line-number="5057"></td>
        <td id="LC5057" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5058" class="blob-num js-line-number" data-line-number="5058"></td>
        <td id="LC5058" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5059" class="blob-num js-line-number" data-line-number="5059"></td>
        <td id="LC5059" class="blob-code js-file-line">  <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5060" class="blob-num js-line-number" data-line-number="5060"></td>
        <td id="LC5060" class="blob-code js-file-line">    <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">forEach</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">forEach</span><span class="p">(</span><span class="nx">arr</span><span class="p">,</span> <span class="nx">cb</span><span class="p">,</span> <span class="nx">thisp</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5061" class="blob-num js-line-number" data-line-number="5061"></td>
        <td id="LC5061" class="blob-code js-file-line">      <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">arr</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5062" class="blob-num js-line-number" data-line-number="5062"></td>
        <td id="LC5062" class="blob-code js-file-line">        <span class="nx">cb</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">thisp</span> <span class="o">||</span> <span class="nx">arr</span><span class="p">,</span> <span class="nx">arr</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">arr</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5063" class="blob-num js-line-number" data-line-number="5063"></td>
        <td id="LC5063" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5064" class="blob-num js-line-number" data-line-number="5064"></td>
        <td id="LC5064" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5065" class="blob-num js-line-number" data-line-number="5065"></td>
        <td id="LC5065" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5066" class="blob-num js-line-number" data-line-number="5066"></td>
        <td id="LC5066" class="blob-code js-file-line">  <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">isEmpty</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">isEmpty</span><span class="p">(</span> <span class="nx">obj</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5067" class="blob-num js-line-number" data-line-number="5067"></td>
        <td id="LC5067" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">obj</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5068" class="blob-num js-line-number" data-line-number="5068"></td>
        <td id="LC5068" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">hasOwnProperty</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span> <span class="nx">obj</span><span class="p">,</span> <span class="nx">key</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5069" class="blob-num js-line-number" data-line-number="5069"></td>
        <td id="LC5069" class="blob-code js-file-line">        <span class="k">return</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5070" class="blob-num js-line-number" data-line-number="5070"></td>
        <td id="LC5070" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5071" class="blob-num js-line-number" data-line-number="5071"></td>
        <td id="LC5071" class="blob-code js-file-line">    <span class="k">return</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5072" class="blob-num js-line-number" data-line-number="5072"></td>
        <td id="LC5072" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5073" class="blob-num js-line-number" data-line-number="5073"></td>
        <td id="LC5073" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5074" class="blob-num js-line-number" data-line-number="5074"></td>
        <td id="LC5074" class="blob-code js-file-line">  <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">extract_attr</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">extract_attr</span><span class="p">(</span> <span class="nx">jsonml</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5075" class="blob-num js-line-number" data-line-number="5075"></td>
        <td id="LC5075" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">isArray</span><span class="p">(</span><span class="nx">jsonml</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5076" class="blob-num js-line-number" data-line-number="5076"></td>
        <td id="LC5076" class="blob-code js-file-line">        <span class="o">&amp;&amp;</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">1</span></td>
      </tr>
      <tr>
        <td id="L5077" class="blob-num js-line-number" data-line-number="5077"></td>
        <td id="LC5077" class="blob-code js-file-line">        <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;object&quot;</span></td>
      </tr>
      <tr>
        <td id="L5078" class="blob-num js-line-number" data-line-number="5078"></td>
        <td id="LC5078" class="blob-code js-file-line">        <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="p">(</span> <span class="nx">isArray</span><span class="p">(</span><span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">])</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5079" class="blob-num js-line-number" data-line-number="5079"></td>
        <td id="LC5079" class="blob-code js-file-line">        <span class="o">?</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">]</span></td>
      </tr>
      <tr>
        <td id="L5080" class="blob-num js-line-number" data-line-number="5080"></td>
        <td id="LC5080" class="blob-code js-file-line">        <span class="o">:</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5081" class="blob-num js-line-number" data-line-number="5081"></td>
        <td id="LC5081" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5082" class="blob-num js-line-number" data-line-number="5082"></td>
        <td id="LC5082" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5083" class="blob-num js-line-number" data-line-number="5083"></td>
        <td id="LC5083" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5084" class="blob-num js-line-number" data-line-number="5084"></td>
        <td id="LC5084" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5085" class="blob-num js-line-number" data-line-number="5085"></td>
        <td id="LC5085" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5086" class="blob-num js-line-number" data-line-number="5086"></td>
        <td id="LC5086" class="blob-code js-file-line"> <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L5087" class="blob-num js-line-number" data-line-number="5087"></td>
        <td id="LC5087" class="blob-code js-file-line"><span class="cm">   *  class Markdown</span></td>
      </tr>
      <tr>
        <td id="L5088" class="blob-num js-line-number" data-line-number="5088"></td>
        <td id="LC5088" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5089" class="blob-num js-line-number" data-line-number="5089"></td>
        <td id="LC5089" class="blob-code js-file-line"><span class="cm">   *  Markdown processing in Javascript done right. We have very particular views</span></td>
      </tr>
      <tr>
        <td id="L5090" class="blob-num js-line-number" data-line-number="5090"></td>
        <td id="LC5090" class="blob-code js-file-line"><span class="cm">   *  on what constitutes &#39;right&#39; which include:</span></td>
      </tr>
      <tr>
        <td id="L5091" class="blob-num js-line-number" data-line-number="5091"></td>
        <td id="LC5091" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5092" class="blob-num js-line-number" data-line-number="5092"></td>
        <td id="LC5092" class="blob-code js-file-line"><span class="cm">   *  - produces well-formed HTML (this means that em and strong nesting is</span></td>
      </tr>
      <tr>
        <td id="L5093" class="blob-num js-line-number" data-line-number="5093"></td>
        <td id="LC5093" class="blob-code js-file-line"><span class="cm">   *    important)</span></td>
      </tr>
      <tr>
        <td id="L5094" class="blob-num js-line-number" data-line-number="5094"></td>
        <td id="LC5094" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5095" class="blob-num js-line-number" data-line-number="5095"></td>
        <td id="LC5095" class="blob-code js-file-line"><span class="cm">   *  - has an intermediate representation to allow processing of parsed data (We</span></td>
      </tr>
      <tr>
        <td id="L5096" class="blob-num js-line-number" data-line-number="5096"></td>
        <td id="LC5096" class="blob-code js-file-line"><span class="cm">   *    in fact have two, both as [JsonML]: a markdown tree and an HTML tree).</span></td>
      </tr>
      <tr>
        <td id="L5097" class="blob-num js-line-number" data-line-number="5097"></td>
        <td id="LC5097" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5098" class="blob-num js-line-number" data-line-number="5098"></td>
        <td id="LC5098" class="blob-code js-file-line"><span class="cm">   *  - is easily extensible to add new dialects without having to rewrite the</span></td>
      </tr>
      <tr>
        <td id="L5099" class="blob-num js-line-number" data-line-number="5099"></td>
        <td id="LC5099" class="blob-code js-file-line"><span class="cm">   *    entire parsing mechanics</span></td>
      </tr>
      <tr>
        <td id="L5100" class="blob-num js-line-number" data-line-number="5100"></td>
        <td id="LC5100" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5101" class="blob-num js-line-number" data-line-number="5101"></td>
        <td id="LC5101" class="blob-code js-file-line"><span class="cm">   *  - has a good test suite</span></td>
      </tr>
      <tr>
        <td id="L5102" class="blob-num js-line-number" data-line-number="5102"></td>
        <td id="LC5102" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5103" class="blob-num js-line-number" data-line-number="5103"></td>
        <td id="LC5103" class="blob-code js-file-line"><span class="cm">   *  This implementation fulfills all of these (except that the test suite could</span></td>
      </tr>
      <tr>
        <td id="L5104" class="blob-num js-line-number" data-line-number="5104"></td>
        <td id="LC5104" class="blob-code js-file-line"><span class="cm">   *  do with expanding to automatically run all the fixtures from other Markdown</span></td>
      </tr>
      <tr>
        <td id="L5105" class="blob-num js-line-number" data-line-number="5105"></td>
        <td id="LC5105" class="blob-code js-file-line"><span class="cm">   *  implementations.)</span></td>
      </tr>
      <tr>
        <td id="L5106" class="blob-num js-line-number" data-line-number="5106"></td>
        <td id="LC5106" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5107" class="blob-num js-line-number" data-line-number="5107"></td>
        <td id="LC5107" class="blob-code js-file-line"><span class="cm">   *  ##### Intermediate Representation</span></td>
      </tr>
      <tr>
        <td id="L5108" class="blob-num js-line-number" data-line-number="5108"></td>
        <td id="LC5108" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5109" class="blob-num js-line-number" data-line-number="5109"></td>
        <td id="LC5109" class="blob-code js-file-line"><span class="cm">   *  *TODO* Talk about this :) Its JsonML, but document the node names we use.</span></td>
      </tr>
      <tr>
        <td id="L5110" class="blob-num js-line-number" data-line-number="5110"></td>
        <td id="LC5110" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5111" class="blob-num js-line-number" data-line-number="5111"></td>
        <td id="LC5111" class="blob-code js-file-line"><span class="cm">   *  [JsonML]: http://jsonml.org/ &quot;JSON Markup Language&quot;</span></td>
      </tr>
      <tr>
        <td id="L5112" class="blob-num js-line-number" data-line-number="5112"></td>
        <td id="LC5112" class="blob-code js-file-line"><span class="cm">   **/</span></td>
      </tr>
      <tr>
        <td id="L5113" class="blob-num js-line-number" data-line-number="5113"></td>
        <td id="LC5113" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">Markdown</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">dialect</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5114" class="blob-num js-line-number" data-line-number="5114"></td>
        <td id="LC5114" class="blob-code js-file-line">    <span class="k">switch</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">dialect</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5115" class="blob-num js-line-number" data-line-number="5115"></td>
        <td id="LC5115" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;undefined&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5116" class="blob-num js-line-number" data-line-number="5116"></td>
        <td id="LC5116" class="blob-code js-file-line">      <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span> <span class="o">=</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span><span class="p">.</span><span class="nx">Gruber</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5117" class="blob-num js-line-number" data-line-number="5117"></td>
        <td id="LC5117" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5118" class="blob-num js-line-number" data-line-number="5118"></td>
        <td id="LC5118" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;object&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5119" class="blob-num js-line-number" data-line-number="5119"></td>
        <td id="LC5119" class="blob-code js-file-line">      <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span> <span class="o">=</span> <span class="nx">dialect</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5120" class="blob-num js-line-number" data-line-number="5120"></td>
        <td id="LC5120" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5121" class="blob-num js-line-number" data-line-number="5121"></td>
        <td id="LC5121" class="blob-code js-file-line">    <span class="k">default</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5122" class="blob-num js-line-number" data-line-number="5122"></td>
        <td id="LC5122" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">dialect</span> <span class="k">in</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5123" class="blob-num js-line-number" data-line-number="5123"></td>
        <td id="LC5123" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span> <span class="o">=</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span><span class="p">[</span><span class="nx">dialect</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5124" class="blob-num js-line-number" data-line-number="5124"></td>
        <td id="LC5124" class="blob-code js-file-line">      <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L5125" class="blob-num js-line-number" data-line-number="5125"></td>
        <td id="LC5125" class="blob-code js-file-line">        <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s2">&quot;Unknown Markdown dialect &#39;&quot;</span> <span class="o">+</span> <span class="nb">String</span><span class="p">(</span><span class="nx">dialect</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;&#39;&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5126" class="blob-num js-line-number" data-line-number="5126"></td>
        <td id="LC5126" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5127" class="blob-num js-line-number" data-line-number="5127"></td>
        <td id="LC5127" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5128" class="blob-num js-line-number" data-line-number="5128"></td>
        <td id="LC5128" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">em_state</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L5129" class="blob-num js-line-number" data-line-number="5129"></td>
        <td id="LC5129" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">strong_state</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L5130" class="blob-num js-line-number" data-line-number="5130"></td>
        <td id="LC5130" class="blob-code js-file-line">    <span class="k">this</span><span class="p">.</span><span class="nx">debug_indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5131" class="blob-num js-line-number" data-line-number="5131"></td>
        <td id="LC5131" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5132" class="blob-num js-line-number" data-line-number="5132"></td>
        <td id="LC5132" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5133" class="blob-num js-line-number" data-line-number="5133"></td>
        <td id="LC5133" class="blob-code js-file-line">  <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L5134" class="blob-num js-line-number" data-line-number="5134"></td>
        <td id="LC5134" class="blob-code js-file-line"><span class="cm">   * Markdown.dialects</span></td>
      </tr>
      <tr>
        <td id="L5135" class="blob-num js-line-number" data-line-number="5135"></td>
        <td id="LC5135" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5136" class="blob-num js-line-number" data-line-number="5136"></td>
        <td id="LC5136" class="blob-code js-file-line"><span class="cm">   * Namespace of built-in dialects.</span></td>
      </tr>
      <tr>
        <td id="L5137" class="blob-num js-line-number" data-line-number="5137"></td>
        <td id="LC5137" class="blob-code js-file-line"><span class="cm">   **/</span></td>
      </tr>
      <tr>
        <td id="L5138" class="blob-num js-line-number" data-line-number="5138"></td>
        <td id="LC5138" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L5139" class="blob-num js-line-number" data-line-number="5139"></td>
        <td id="LC5139" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5140" class="blob-num js-line-number" data-line-number="5140"></td>
        <td id="LC5140" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5141" class="blob-num js-line-number" data-line-number="5141"></td>
        <td id="LC5141" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5142" class="blob-num js-line-number" data-line-number="5142"></td>
        <td id="LC5142" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5143" class="blob-num js-line-number" data-line-number="5143"></td>
        <td id="LC5143" class="blob-code js-file-line">  <span class="c1">// Imported functions</span></td>
      </tr>
      <tr>
        <td id="L5144" class="blob-num js-line-number" data-line-number="5144"></td>
        <td id="LC5144" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">mk_block</span> <span class="o">=</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">mk_block</span> <span class="o">=</span> <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">mk_block</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5145" class="blob-num js-line-number" data-line-number="5145"></td>
        <td id="LC5145" class="blob-code js-file-line">      <span class="nx">isArray</span> <span class="o">=</span> <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">isArray</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5146" class="blob-num js-line-number" data-line-number="5146"></td>
        <td id="LC5146" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5147" class="blob-num js-line-number" data-line-number="5147"></td>
        <td id="LC5147" class="blob-code js-file-line">  <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L5148" class="blob-num js-line-number" data-line-number="5148"></td>
        <td id="LC5148" class="blob-code js-file-line"><span class="cm">   *  parse( markdown, [dialect] ) -&gt; JsonML</span></td>
      </tr>
      <tr>
        <td id="L5149" class="blob-num js-line-number" data-line-number="5149"></td>
        <td id="LC5149" class="blob-code js-file-line"><span class="cm">   *  - markdown (String): markdown string to parse</span></td>
      </tr>
      <tr>
        <td id="L5150" class="blob-num js-line-number" data-line-number="5150"></td>
        <td id="LC5150" class="blob-code js-file-line"><span class="cm">   *  - dialect (String | Dialect): the dialect to use, defaults to gruber</span></td>
      </tr>
      <tr>
        <td id="L5151" class="blob-num js-line-number" data-line-number="5151"></td>
        <td id="LC5151" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5152" class="blob-num js-line-number" data-line-number="5152"></td>
        <td id="LC5152" class="blob-code js-file-line"><span class="cm">   *  Parse `markdown` and return a markdown document as a Markdown.JsonML tree.</span></td>
      </tr>
      <tr>
        <td id="L5153" class="blob-num js-line-number" data-line-number="5153"></td>
        <td id="LC5153" class="blob-code js-file-line"><span class="cm">   **/</span></td>
      </tr>
      <tr>
        <td id="L5154" class="blob-num js-line-number" data-line-number="5154"></td>
        <td id="LC5154" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">parse</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">dialect</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5155" class="blob-num js-line-number" data-line-number="5155"></td>
        <td id="LC5155" class="blob-code js-file-line">    <span class="c1">// dialect will default if undefined</span></td>
      </tr>
      <tr>
        <td id="L5156" class="blob-num js-line-number" data-line-number="5156"></td>
        <td id="LC5156" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">md</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Markdown</span><span class="p">(</span> <span class="nx">dialect</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5157" class="blob-num js-line-number" data-line-number="5157"></td>
        <td id="LC5157" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">md</span><span class="p">.</span><span class="nx">toTree</span><span class="p">(</span> <span class="nx">source</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5158" class="blob-num js-line-number" data-line-number="5158"></td>
        <td id="LC5158" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5159" class="blob-num js-line-number" data-line-number="5159"></td>
        <td id="LC5159" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5160" class="blob-num js-line-number" data-line-number="5160"></td>
        <td id="LC5160" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">count_lines</span><span class="p">(</span> <span class="nx">str</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5161" class="blob-num js-line-number" data-line-number="5161"></td>
        <td id="LC5161" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">n</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5162" class="blob-num js-line-number" data-line-number="5162"></td>
        <td id="LC5162" class="blob-code js-file-line">        <span class="nx">i</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5163" class="blob-num js-line-number" data-line-number="5163"></td>
        <td id="LC5163" class="blob-code js-file-line">    <span class="k">while</span> <span class="p">(</span> <span class="p">(</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">str</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s2">&quot;\n&quot;</span><span class="p">,</span> <span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="p">)</span> <span class="o">!==</span> <span class="o">-</span><span class="mi">1</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5164" class="blob-num js-line-number" data-line-number="5164"></td>
        <td id="LC5164" class="blob-code js-file-line">      <span class="nx">n</span><span class="o">++</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5165" class="blob-num js-line-number" data-line-number="5165"></td>
        <td id="LC5165" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">n</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5166" class="blob-num js-line-number" data-line-number="5166"></td>
        <td id="LC5166" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5167" class="blob-num js-line-number" data-line-number="5167"></td>
        <td id="LC5167" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5168" class="blob-num js-line-number" data-line-number="5168"></td>
        <td id="LC5168" class="blob-code js-file-line">  <span class="c1">// Internal - split source into rough blocks</span></td>
      </tr>
      <tr>
        <td id="L5169" class="blob-num js-line-number" data-line-number="5169"></td>
        <td id="LC5169" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">split_blocks</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">splitBlocks</span><span class="p">(</span> <span class="nx">input</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5170" class="blob-num js-line-number" data-line-number="5170"></td>
        <td id="LC5170" class="blob-code js-file-line">    <span class="nx">input</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/(\r\n|\n|\r)/g</span><span class="p">,</span> <span class="s2">&quot;\n&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5171" class="blob-num js-line-number" data-line-number="5171"></td>
        <td id="LC5171" class="blob-code js-file-line">    <span class="c1">// [\s\S] matches _anything_ (newline or space)</span></td>
      </tr>
      <tr>
        <td id="L5172" class="blob-num js-line-number" data-line-number="5172"></td>
        <td id="LC5172" class="blob-code js-file-line">    <span class="c1">// [^] is equivalent but doesn&#39;t work in IEs.</span></td>
      </tr>
      <tr>
        <td id="L5173" class="blob-num js-line-number" data-line-number="5173"></td>
        <td id="LC5173" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">re</span> <span class="o">=</span> <span class="sr">/([\s\S]+?)($|\n#|\n(?:\s*\n|$)+)/g</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5174" class="blob-num js-line-number" data-line-number="5174"></td>
        <td id="LC5174" class="blob-code js-file-line">        <span class="nx">blocks</span> <span class="o">=</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L5175" class="blob-num js-line-number" data-line-number="5175"></td>
        <td id="LC5175" class="blob-code js-file-line">        <span class="nx">m</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5176" class="blob-num js-line-number" data-line-number="5176"></td>
        <td id="LC5176" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5177" class="blob-num js-line-number" data-line-number="5177"></td>
        <td id="LC5177" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">line_no</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5178" class="blob-num js-line-number" data-line-number="5178"></td>
        <td id="LC5178" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5179" class="blob-num js-line-number" data-line-number="5179"></td>
        <td id="LC5179" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="p">(</span> <span class="nx">m</span> <span class="o">=</span> <span class="sr">/^(\s*\n)/</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">input</span><span class="p">)</span> <span class="p">)</span> <span class="o">!==</span> <span class="kc">null</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5180" class="blob-num js-line-number" data-line-number="5180"></td>
        <td id="LC5180" class="blob-code js-file-line">      <span class="c1">// skip (but count) leading blank lines</span></td>
      </tr>
      <tr>
        <td id="L5181" class="blob-num js-line-number" data-line-number="5181"></td>
        <td id="LC5181" class="blob-code js-file-line">      <span class="nx">line_no</span> <span class="o">+=</span> <span class="nx">count_lines</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5182" class="blob-num js-line-number" data-line-number="5182"></td>
        <td id="LC5182" class="blob-code js-file-line">      <span class="nx">re</span><span class="p">.</span><span class="nx">lastIndex</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5183" class="blob-num js-line-number" data-line-number="5183"></td>
        <td id="LC5183" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5184" class="blob-num js-line-number" data-line-number="5184"></td>
        <td id="LC5184" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5185" class="blob-num js-line-number" data-line-number="5185"></td>
        <td id="LC5185" class="blob-code js-file-line">    <span class="k">while</span> <span class="p">(</span> <span class="p">(</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">re</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">input</span><span class="p">)</span> <span class="p">)</span> <span class="o">!==</span> <span class="kc">null</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5186" class="blob-num js-line-number" data-line-number="5186"></td>
        <td id="LC5186" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;\n#&quot;</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5187" class="blob-num js-line-number" data-line-number="5187"></td>
        <td id="LC5187" class="blob-code js-file-line">        <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;\n&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5188" class="blob-num js-line-number" data-line-number="5188"></td>
        <td id="LC5188" class="blob-code js-file-line">        <span class="nx">re</span><span class="p">.</span><span class="nx">lastIndex</span><span class="o">--</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5189" class="blob-num js-line-number" data-line-number="5189"></td>
        <td id="LC5189" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5190" class="blob-num js-line-number" data-line-number="5190"></td>
        <td id="LC5190" class="blob-code js-file-line">      <span class="nx">blocks</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">mk_block</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="nx">line_no</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5191" class="blob-num js-line-number" data-line-number="5191"></td>
        <td id="LC5191" class="blob-code js-file-line">      <span class="nx">line_no</span> <span class="o">+=</span> <span class="nx">count_lines</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5192" class="blob-num js-line-number" data-line-number="5192"></td>
        <td id="LC5192" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5193" class="blob-num js-line-number" data-line-number="5193"></td>
        <td id="LC5193" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5194" class="blob-num js-line-number" data-line-number="5194"></td>
        <td id="LC5194" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">blocks</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5195" class="blob-num js-line-number" data-line-number="5195"></td>
        <td id="LC5195" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5196" class="blob-num js-line-number" data-line-number="5196"></td>
        <td id="LC5196" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5197" class="blob-num js-line-number" data-line-number="5197"></td>
        <td id="LC5197" class="blob-code js-file-line">  <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L5198" class="blob-num js-line-number" data-line-number="5198"></td>
        <td id="LC5198" class="blob-code js-file-line"><span class="cm">   *  Markdown#processBlock( block, next ) -&gt; undefined | [ JsonML, ... ]</span></td>
      </tr>
      <tr>
        <td id="L5199" class="blob-num js-line-number" data-line-number="5199"></td>
        <td id="LC5199" class="blob-code js-file-line"><span class="cm">   *  - block (String): the block to process</span></td>
      </tr>
      <tr>
        <td id="L5200" class="blob-num js-line-number" data-line-number="5200"></td>
        <td id="LC5200" class="blob-code js-file-line"><span class="cm">   *  - next (Array): the following blocks</span></td>
      </tr>
      <tr>
        <td id="L5201" class="blob-num js-line-number" data-line-number="5201"></td>
        <td id="LC5201" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5202" class="blob-num js-line-number" data-line-number="5202"></td>
        <td id="LC5202" class="blob-code js-file-line"><span class="cm">   * Process `block` and return an array of JsonML nodes representing `block`.</span></td>
      </tr>
      <tr>
        <td id="L5203" class="blob-num js-line-number" data-line-number="5203"></td>
        <td id="LC5203" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5204" class="blob-num js-line-number" data-line-number="5204"></td>
        <td id="LC5204" class="blob-code js-file-line"><span class="cm">   * It does this by asking each block level function in the dialect to process</span></td>
      </tr>
      <tr>
        <td id="L5205" class="blob-num js-line-number" data-line-number="5205"></td>
        <td id="LC5205" class="blob-code js-file-line"><span class="cm">   * the block until one can. Succesful handling is indicated by returning an</span></td>
      </tr>
      <tr>
        <td id="L5206" class="blob-num js-line-number" data-line-number="5206"></td>
        <td id="LC5206" class="blob-code js-file-line"><span class="cm">   * array (with zero or more JsonML nodes), failure by a false value.</span></td>
      </tr>
      <tr>
        <td id="L5207" class="blob-num js-line-number" data-line-number="5207"></td>
        <td id="LC5207" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5208" class="blob-num js-line-number" data-line-number="5208"></td>
        <td id="LC5208" class="blob-code js-file-line"><span class="cm">   * Blocks handlers are responsible for calling [[Markdown#processInline]]</span></td>
      </tr>
      <tr>
        <td id="L5209" class="blob-num js-line-number" data-line-number="5209"></td>
        <td id="LC5209" class="blob-code js-file-line"><span class="cm">   * themselves as appropriate.</span></td>
      </tr>
      <tr>
        <td id="L5210" class="blob-num js-line-number" data-line-number="5210"></td>
        <td id="LC5210" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5211" class="blob-num js-line-number" data-line-number="5211"></td>
        <td id="LC5211" class="blob-code js-file-line"><span class="cm">   * If the blocks were split incorrectly or adjacent blocks need collapsing you</span></td>
      </tr>
      <tr>
        <td id="L5212" class="blob-num js-line-number" data-line-number="5212"></td>
        <td id="LC5212" class="blob-code js-file-line"><span class="cm">   * can adjust `next` in place using shift/splice etc.</span></td>
      </tr>
      <tr>
        <td id="L5213" class="blob-num js-line-number" data-line-number="5213"></td>
        <td id="LC5213" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5214" class="blob-num js-line-number" data-line-number="5214"></td>
        <td id="LC5214" class="blob-code js-file-line"><span class="cm">   * If any of this default behaviour is not right for the dialect, you can</span></td>
      </tr>
      <tr>
        <td id="L5215" class="blob-num js-line-number" data-line-number="5215"></td>
        <td id="LC5215" class="blob-code js-file-line"><span class="cm">   * define a `__call__` method on the dialect that will get invoked to handle</span></td>
      </tr>
      <tr>
        <td id="L5216" class="blob-num js-line-number" data-line-number="5216"></td>
        <td id="LC5216" class="blob-code js-file-line"><span class="cm">   * the block processing.</span></td>
      </tr>
      <tr>
        <td id="L5217" class="blob-num js-line-number" data-line-number="5217"></td>
        <td id="LC5217" class="blob-code js-file-line"><span class="cm">   */</span></td>
      </tr>
      <tr>
        <td id="L5218" class="blob-num js-line-number" data-line-number="5218"></td>
        <td id="LC5218" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">processBlock</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">processBlock</span><span class="p">(</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5219" class="blob-num js-line-number" data-line-number="5219"></td>
        <td id="LC5219" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">cbs</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">block</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5220" class="blob-num js-line-number" data-line-number="5220"></td>
        <td id="LC5220" class="blob-code js-file-line">        <span class="nx">ord</span> <span class="o">=</span> <span class="nx">cbs</span><span class="p">.</span><span class="nx">__order__</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5221" class="blob-num js-line-number" data-line-number="5221"></td>
        <td id="LC5221" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5222" class="blob-num js-line-number" data-line-number="5222"></td>
        <td id="LC5222" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="s2">&quot;__call__&quot;</span> <span class="k">in</span> <span class="nx">cbs</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5223" class="blob-num js-line-number" data-line-number="5223"></td>
        <td id="LC5223" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">cbs</span><span class="p">.</span><span class="nx">__call__</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5224" class="blob-num js-line-number" data-line-number="5224"></td>
        <td id="LC5224" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5225" class="blob-num js-line-number" data-line-number="5225"></td>
        <td id="LC5225" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">ord</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5226" class="blob-num js-line-number" data-line-number="5226"></td>
        <td id="LC5226" class="blob-code js-file-line">      <span class="c1">//D:this.debug( &quot;Testing&quot;, ord[i] );</span></td>
      </tr>
      <tr>
        <td id="L5227" class="blob-num js-line-number" data-line-number="5227"></td>
        <td id="LC5227" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">cbs</span><span class="p">[</span> <span class="nx">ord</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="p">].</span><span class="nx">call</span><span class="p">(</span> <span class="k">this</span><span class="p">,</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5228" class="blob-num js-line-number" data-line-number="5228"></td>
        <td id="LC5228" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">res</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5229" class="blob-num js-line-number" data-line-number="5229"></td>
        <td id="LC5229" class="blob-code js-file-line">        <span class="c1">//D:this.debug(&quot;  matched&quot;);</span></td>
      </tr>
      <tr>
        <td id="L5230" class="blob-num js-line-number" data-line-number="5230"></td>
        <td id="LC5230" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">isArray</span><span class="p">(</span><span class="nx">res</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span> <span class="nx">res</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="p">(</span> <span class="nx">isArray</span><span class="p">(</span><span class="nx">res</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="p">)</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5231" class="blob-num js-line-number" data-line-number="5231"></td>
        <td id="LC5231" class="blob-code js-file-line">          <span class="k">this</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="nx">ord</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="s2">&quot;didn&#39;t return a proper array&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5232" class="blob-num js-line-number" data-line-number="5232"></td>
        <td id="LC5232" class="blob-code js-file-line">        <span class="c1">//D:this.debug( &quot;&quot; );</span></td>
      </tr>
      <tr>
        <td id="L5233" class="blob-num js-line-number" data-line-number="5233"></td>
        <td id="LC5233" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">res</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5234" class="blob-num js-line-number" data-line-number="5234"></td>
        <td id="LC5234" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5235" class="blob-num js-line-number" data-line-number="5235"></td>
        <td id="LC5235" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5236" class="blob-num js-line-number" data-line-number="5236"></td>
        <td id="LC5236" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5237" class="blob-num js-line-number" data-line-number="5237"></td>
        <td id="LC5237" class="blob-code js-file-line">    <span class="c1">// Uhoh! no match! Should we throw an error?</span></td>
      </tr>
      <tr>
        <td id="L5238" class="blob-num js-line-number" data-line-number="5238"></td>
        <td id="LC5238" class="blob-code js-file-line">    <span class="k">return</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L5239" class="blob-num js-line-number" data-line-number="5239"></td>
        <td id="LC5239" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5240" class="blob-num js-line-number" data-line-number="5240"></td>
        <td id="LC5240" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5241" class="blob-num js-line-number" data-line-number="5241"></td>
        <td id="LC5241" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">processInline</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">processInline</span><span class="p">(</span> <span class="nx">block</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5242" class="blob-num js-line-number" data-line-number="5242"></td>
        <td id="LC5242" class="blob-code js-file-line">    <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">inline</span><span class="p">.</span><span class="nx">__call__</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span> <span class="k">this</span><span class="p">,</span> <span class="nb">String</span><span class="p">(</span> <span class="nx">block</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5243" class="blob-num js-line-number" data-line-number="5243"></td>
        <td id="LC5243" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5244" class="blob-num js-line-number" data-line-number="5244"></td>
        <td id="LC5244" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5245" class="blob-num js-line-number" data-line-number="5245"></td>
        <td id="LC5245" class="blob-code js-file-line">  <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L5246" class="blob-num js-line-number" data-line-number="5246"></td>
        <td id="LC5246" class="blob-code js-file-line"><span class="cm">   *  Markdown#toTree( source ) -&gt; JsonML</span></td>
      </tr>
      <tr>
        <td id="L5247" class="blob-num js-line-number" data-line-number="5247"></td>
        <td id="LC5247" class="blob-code js-file-line"><span class="cm">   *  - source (String): markdown source to parse</span></td>
      </tr>
      <tr>
        <td id="L5248" class="blob-num js-line-number" data-line-number="5248"></td>
        <td id="LC5248" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5249" class="blob-num js-line-number" data-line-number="5249"></td>
        <td id="LC5249" class="blob-code js-file-line"><span class="cm">   *  Parse `source` into a JsonML tree representing the markdown document.</span></td>
      </tr>
      <tr>
        <td id="L5250" class="blob-num js-line-number" data-line-number="5250"></td>
        <td id="LC5250" class="blob-code js-file-line"><span class="cm">   **/</span></td>
      </tr>
      <tr>
        <td id="L5251" class="blob-num js-line-number" data-line-number="5251"></td>
        <td id="LC5251" class="blob-code js-file-line">  <span class="c1">// custom_tree means set this.tree to `custom_tree` and restore old value on return</span></td>
      </tr>
      <tr>
        <td id="L5252" class="blob-num js-line-number" data-line-number="5252"></td>
        <td id="LC5252" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">toTree</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">toTree</span><span class="p">(</span> <span class="nx">source</span><span class="p">,</span> <span class="nx">custom_root</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5253" class="blob-num js-line-number" data-line-number="5253"></td>
        <td id="LC5253" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">blocks</span> <span class="o">=</span> <span class="nx">source</span> <span class="k">instanceof</span> <span class="nb">Array</span> <span class="o">?</span> <span class="nx">source</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">split_blocks</span><span class="p">(</span> <span class="nx">source</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5254" class="blob-num js-line-number" data-line-number="5254"></td>
        <td id="LC5254" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5255" class="blob-num js-line-number" data-line-number="5255"></td>
        <td id="LC5255" class="blob-code js-file-line">    <span class="c1">// Make tree a member variable so its easier to mess with in extensions</span></td>
      </tr>
      <tr>
        <td id="L5256" class="blob-num js-line-number" data-line-number="5256"></td>
        <td id="LC5256" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">old_tree</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">tree</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5257" class="blob-num js-line-number" data-line-number="5257"></td>
        <td id="LC5257" class="blob-code js-file-line">    <span class="k">try</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5258" class="blob-num js-line-number" data-line-number="5258"></td>
        <td id="LC5258" class="blob-code js-file-line">      <span class="k">this</span><span class="p">.</span><span class="nx">tree</span> <span class="o">=</span> <span class="nx">custom_root</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">tree</span> <span class="o">||</span> <span class="p">[</span> <span class="s2">&quot;markdown&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5259" class="blob-num js-line-number" data-line-number="5259"></td>
        <td id="LC5259" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5260" class="blob-num js-line-number" data-line-number="5260"></td>
        <td id="LC5260" class="blob-code js-file-line">      <span class="nx">blocks_loop</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5261" class="blob-num js-line-number" data-line-number="5261"></td>
        <td id="LC5261" class="blob-code js-file-line">      <span class="k">while</span> <span class="p">(</span> <span class="nx">blocks</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5262" class="blob-num js-line-number" data-line-number="5262"></td>
        <td id="LC5262" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">processBlock</span><span class="p">(</span> <span class="nx">blocks</span><span class="p">.</span><span class="nx">shift</span><span class="p">(),</span> <span class="nx">blocks</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5263" class="blob-num js-line-number" data-line-number="5263"></td>
        <td id="LC5263" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5264" class="blob-num js-line-number" data-line-number="5264"></td>
        <td id="LC5264" class="blob-code js-file-line">        <span class="c1">// Reference blocks and the like won&#39;t return any content</span></td>
      </tr>
      <tr>
        <td id="L5265" class="blob-num js-line-number" data-line-number="5265"></td>
        <td id="LC5265" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">b</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5266" class="blob-num js-line-number" data-line-number="5266"></td>
        <td id="LC5266" class="blob-code js-file-line">          <span class="k">continue</span> <span class="nx">blocks_loop</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5267" class="blob-num js-line-number" data-line-number="5267"></td>
        <td id="LC5267" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5268" class="blob-num js-line-number" data-line-number="5268"></td>
        <td id="LC5268" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">tree</span><span class="p">.</span><span class="nx">push</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">tree</span><span class="p">,</span> <span class="nx">b</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5269" class="blob-num js-line-number" data-line-number="5269"></td>
        <td id="LC5269" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5270" class="blob-num js-line-number" data-line-number="5270"></td>
        <td id="LC5270" class="blob-code js-file-line">      <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">tree</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5271" class="blob-num js-line-number" data-line-number="5271"></td>
        <td id="LC5271" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5272" class="blob-num js-line-number" data-line-number="5272"></td>
        <td id="LC5272" class="blob-code js-file-line">    <span class="k">finally</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5273" class="blob-num js-line-number" data-line-number="5273"></td>
        <td id="LC5273" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">custom_root</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5274" class="blob-num js-line-number" data-line-number="5274"></td>
        <td id="LC5274" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">tree</span> <span class="o">=</span> <span class="nx">old_tree</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5275" class="blob-num js-line-number" data-line-number="5275"></td>
        <td id="LC5275" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5276" class="blob-num js-line-number" data-line-number="5276"></td>
        <td id="LC5276" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5277" class="blob-num js-line-number" data-line-number="5277"></td>
        <td id="LC5277" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5278" class="blob-num js-line-number" data-line-number="5278"></td>
        <td id="LC5278" class="blob-code js-file-line">  <span class="c1">// Noop by default</span></td>
      </tr>
      <tr>
        <td id="L5279" class="blob-num js-line-number" data-line-number="5279"></td>
        <td id="LC5279" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">debug</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5280" class="blob-num js-line-number" data-line-number="5280"></td>
        <td id="LC5280" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">args</span> <span class="o">=</span> <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">slice</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span> <span class="nx">arguments</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5281" class="blob-num js-line-number" data-line-number="5281"></td>
        <td id="LC5281" class="blob-code js-file-line">    <span class="nx">args</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">debug_indent</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5282" class="blob-num js-line-number" data-line-number="5282"></td>
        <td id="LC5282" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">print</span> <span class="o">!==</span> <span class="s2">&quot;undefined&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5283" class="blob-num js-line-number" data-line-number="5283"></td>
        <td id="LC5283" class="blob-code js-file-line">      <span class="nx">print</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span> <span class="nx">print</span><span class="p">,</span> <span class="nx">args</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5284" class="blob-num js-line-number" data-line-number="5284"></td>
        <td id="LC5284" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">console</span> <span class="o">!==</span> <span class="s2">&quot;undefined&quot;</span> <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span> <span class="o">!==</span> <span class="s2">&quot;undefined&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5285" class="blob-num js-line-number" data-line-number="5285"></td>
        <td id="LC5285" class="blob-code js-file-line">      <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span> <span class="kc">null</span><span class="p">,</span> <span class="nx">args</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5286" class="blob-num js-line-number" data-line-number="5286"></td>
        <td id="LC5286" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5287" class="blob-num js-line-number" data-line-number="5287"></td>
        <td id="LC5287" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5288" class="blob-num js-line-number" data-line-number="5288"></td>
        <td id="LC5288" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">loop_re_over_block</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">re</span><span class="p">,</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">cb</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5289" class="blob-num js-line-number" data-line-number="5289"></td>
        <td id="LC5289" class="blob-code js-file-line">    <span class="c1">// Dont use /g regexps with this</span></td>
      </tr>
      <tr>
        <td id="L5290" class="blob-num js-line-number" data-line-number="5290"></td>
        <td id="LC5290" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">m</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5291" class="blob-num js-line-number" data-line-number="5291"></td>
        <td id="LC5291" class="blob-code js-file-line">        <span class="nx">b</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">valueOf</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L5292" class="blob-num js-line-number" data-line-number="5292"></td>
        <td id="LC5292" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5293" class="blob-num js-line-number" data-line-number="5293"></td>
        <td id="LC5293" class="blob-code js-file-line">    <span class="k">while</span> <span class="p">(</span> <span class="nx">b</span><span class="p">.</span><span class="nx">length</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">m</span> <span class="o">=</span> <span class="nx">re</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">b</span><span class="p">)</span> <span class="p">)</span> <span class="o">!==</span> <span class="kc">null</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5294" class="blob-num js-line-number" data-line-number="5294"></td>
        <td id="LC5294" class="blob-code js-file-line">      <span class="nx">b</span> <span class="o">=</span> <span class="nx">b</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5295" class="blob-num js-line-number" data-line-number="5295"></td>
        <td id="LC5295" class="blob-code js-file-line">      <span class="nx">cb</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">m</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5296" class="blob-num js-line-number" data-line-number="5296"></td>
        <td id="LC5296" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5297" class="blob-num js-line-number" data-line-number="5297"></td>
        <td id="LC5297" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">b</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5298" class="blob-num js-line-number" data-line-number="5298"></td>
        <td id="LC5298" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5299" class="blob-num js-line-number" data-line-number="5299"></td>
        <td id="LC5299" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5300" class="blob-num js-line-number" data-line-number="5300"></td>
        <td id="LC5300" class="blob-code js-file-line">  <span class="c1">// Build default order from insertion order.</span></td>
      </tr>
      <tr>
        <td id="L5301" class="blob-num js-line-number" data-line-number="5301"></td>
        <td id="LC5301" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">buildBlockOrder</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5302" class="blob-num js-line-number" data-line-number="5302"></td>
        <td id="LC5302" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">ord</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L5303" class="blob-num js-line-number" data-line-number="5303"></td>
        <td id="LC5303" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="nx">d</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5304" class="blob-num js-line-number" data-line-number="5304"></td>
        <td id="LC5304" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">i</span> <span class="o">===</span> <span class="s2">&quot;__order__&quot;</span> <span class="o">||</span> <span class="nx">i</span> <span class="o">===</span> <span class="s2">&quot;__call__&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5305" class="blob-num js-line-number" data-line-number="5305"></td>
        <td id="LC5305" class="blob-code js-file-line">        <span class="k">continue</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5306" class="blob-num js-line-number" data-line-number="5306"></td>
        <td id="LC5306" class="blob-code js-file-line">      <span class="nx">ord</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">i</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5307" class="blob-num js-line-number" data-line-number="5307"></td>
        <td id="LC5307" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5308" class="blob-num js-line-number" data-line-number="5308"></td>
        <td id="LC5308" class="blob-code js-file-line">    <span class="nx">d</span><span class="p">.</span><span class="nx">__order__</span> <span class="o">=</span> <span class="nx">ord</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5309" class="blob-num js-line-number" data-line-number="5309"></td>
        <td id="LC5309" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5310" class="blob-num js-line-number" data-line-number="5310"></td>
        <td id="LC5310" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5311" class="blob-num js-line-number" data-line-number="5311"></td>
        <td id="LC5311" class="blob-code js-file-line">  <span class="c1">// Build patterns for inline matcher</span></td>
      </tr>
      <tr>
        <td id="L5312" class="blob-num js-line-number" data-line-number="5312"></td>
        <td id="LC5312" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">buildInlinePatterns</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5313" class="blob-num js-line-number" data-line-number="5313"></td>
        <td id="LC5313" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">patterns</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L5314" class="blob-num js-line-number" data-line-number="5314"></td>
        <td id="LC5314" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5315" class="blob-num js-line-number" data-line-number="5315"></td>
        <td id="LC5315" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">i</span> <span class="k">in</span> <span class="nx">d</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5316" class="blob-num js-line-number" data-line-number="5316"></td>
        <td id="LC5316" class="blob-code js-file-line">      <span class="c1">// __foo__ is reserved and not a pattern</span></td>
      </tr>
      <tr>
        <td id="L5317" class="blob-num js-line-number" data-line-number="5317"></td>
        <td id="LC5317" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">i</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^__.*__$/</span><span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5318" class="blob-num js-line-number" data-line-number="5318"></td>
        <td id="LC5318" class="blob-code js-file-line">        <span class="k">continue</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5319" class="blob-num js-line-number" data-line-number="5319"></td>
        <td id="LC5319" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">i</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/([\\.*+?|()\[\]{}])/g</span><span class="p">,</span> <span class="s2">&quot;\\$1&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5320" class="blob-num js-line-number" data-line-number="5320"></td>
        <td id="LC5320" class="blob-code js-file-line">               <span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/\n/</span><span class="p">,</span> <span class="s2">&quot;\\n&quot;</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5321" class="blob-num js-line-number" data-line-number="5321"></td>
        <td id="LC5321" class="blob-code js-file-line">      <span class="nx">patterns</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">i</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">1</span> <span class="o">?</span> <span class="nx">l</span> <span class="o">:</span> <span class="s2">&quot;(?:&quot;</span> <span class="o">+</span> <span class="nx">l</span> <span class="o">+</span> <span class="s2">&quot;)&quot;</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5322" class="blob-num js-line-number" data-line-number="5322"></td>
        <td id="LC5322" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5323" class="blob-num js-line-number" data-line-number="5323"></td>
        <td id="LC5323" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5324" class="blob-num js-line-number" data-line-number="5324"></td>
        <td id="LC5324" class="blob-code js-file-line">    <span class="nx">patterns</span> <span class="o">=</span> <span class="nx">patterns</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s2">&quot;|&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5325" class="blob-num js-line-number" data-line-number="5325"></td>
        <td id="LC5325" class="blob-code js-file-line">    <span class="nx">d</span><span class="p">.</span><span class="nx">__patterns__</span> <span class="o">=</span> <span class="nx">patterns</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5326" class="blob-num js-line-number" data-line-number="5326"></td>
        <td id="LC5326" class="blob-code js-file-line">    <span class="c1">//print(&quot;patterns:&quot;, uneval( patterns ) );</span></td>
      </tr>
      <tr>
        <td id="L5327" class="blob-num js-line-number" data-line-number="5327"></td>
        <td id="LC5327" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5328" class="blob-num js-line-number" data-line-number="5328"></td>
        <td id="LC5328" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">fn</span> <span class="o">=</span> <span class="nx">d</span><span class="p">.</span><span class="nx">__call__</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5329" class="blob-num js-line-number" data-line-number="5329"></td>
        <td id="LC5329" class="blob-code js-file-line">    <span class="nx">d</span><span class="p">.</span><span class="nx">__call__</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">text</span><span class="p">,</span> <span class="nx">pattern</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5330" class="blob-num js-line-number" data-line-number="5330"></td>
        <td id="LC5330" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">pattern</span> <span class="o">!==</span> <span class="kc">undefined</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5331" class="blob-num js-line-number" data-line-number="5331"></td>
        <td id="LC5331" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">fn</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">text</span><span class="p">,</span> <span class="nx">pattern</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5332" class="blob-num js-line-number" data-line-number="5332"></td>
        <td id="LC5332" class="blob-code js-file-line">      <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L5333" class="blob-num js-line-number" data-line-number="5333"></td>
        <td id="LC5333" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">fn</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">text</span><span class="p">,</span> <span class="nx">patterns</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5334" class="blob-num js-line-number" data-line-number="5334"></td>
        <td id="LC5334" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5335" class="blob-num js-line-number" data-line-number="5335"></td>
        <td id="LC5335" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5336" class="blob-num js-line-number" data-line-number="5336"></td>
        <td id="LC5336" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5337" class="blob-num js-line-number" data-line-number="5337"></td>
        <td id="LC5337" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5338" class="blob-num js-line-number" data-line-number="5338"></td>
        <td id="LC5338" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5339" class="blob-num js-line-number" data-line-number="5339"></td>
        <td id="LC5339" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5340" class="blob-num js-line-number" data-line-number="5340"></td>
        <td id="LC5340" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">extract_attr</span> <span class="o">=</span> <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">extract_attr</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5341" class="blob-num js-line-number" data-line-number="5341"></td>
        <td id="LC5341" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5342" class="blob-num js-line-number" data-line-number="5342"></td>
        <td id="LC5342" class="blob-code js-file-line">  <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L5343" class="blob-num js-line-number" data-line-number="5343"></td>
        <td id="LC5343" class="blob-code js-file-line"><span class="cm">   *  renderJsonML( jsonml[, options] ) -&gt; String</span></td>
      </tr>
      <tr>
        <td id="L5344" class="blob-num js-line-number" data-line-number="5344"></td>
        <td id="LC5344" class="blob-code js-file-line"><span class="cm">   *  - jsonml (Array): JsonML array to render to XML</span></td>
      </tr>
      <tr>
        <td id="L5345" class="blob-num js-line-number" data-line-number="5345"></td>
        <td id="LC5345" class="blob-code js-file-line"><span class="cm">   *  - options (Object): options</span></td>
      </tr>
      <tr>
        <td id="L5346" class="blob-num js-line-number" data-line-number="5346"></td>
        <td id="LC5346" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5347" class="blob-num js-line-number" data-line-number="5347"></td>
        <td id="LC5347" class="blob-code js-file-line"><span class="cm">   *  Converts the given JsonML into well-formed XML.</span></td>
      </tr>
      <tr>
        <td id="L5348" class="blob-num js-line-number" data-line-number="5348"></td>
        <td id="LC5348" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5349" class="blob-num js-line-number" data-line-number="5349"></td>
        <td id="LC5349" class="blob-code js-file-line"><span class="cm">   *  The options currently understood are:</span></td>
      </tr>
      <tr>
        <td id="L5350" class="blob-num js-line-number" data-line-number="5350"></td>
        <td id="LC5350" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5351" class="blob-num js-line-number" data-line-number="5351"></td>
        <td id="LC5351" class="blob-code js-file-line"><span class="cm">   *  - root (Boolean): wether or not the root node should be included in the</span></td>
      </tr>
      <tr>
        <td id="L5352" class="blob-num js-line-number" data-line-number="5352"></td>
        <td id="LC5352" class="blob-code js-file-line"><span class="cm">   *    output, or just its children. The default `false` is to not include the</span></td>
      </tr>
      <tr>
        <td id="L5353" class="blob-num js-line-number" data-line-number="5353"></td>
        <td id="LC5353" class="blob-code js-file-line"><span class="cm">   *    root itself.</span></td>
      </tr>
      <tr>
        <td id="L5354" class="blob-num js-line-number" data-line-number="5354"></td>
        <td id="LC5354" class="blob-code js-file-line"><span class="cm">   */</span></td>
      </tr>
      <tr>
        <td id="L5355" class="blob-num js-line-number" data-line-number="5355"></td>
        <td id="LC5355" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">renderJsonML</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">jsonml</span><span class="p">,</span> <span class="nx">options</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5356" class="blob-num js-line-number" data-line-number="5356"></td>
        <td id="LC5356" class="blob-code js-file-line">    <span class="nx">options</span> <span class="o">=</span> <span class="nx">options</span> <span class="o">||</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L5357" class="blob-num js-line-number" data-line-number="5357"></td>
        <td id="LC5357" class="blob-code js-file-line">    <span class="c1">// include the root element in the rendered output?</span></td>
      </tr>
      <tr>
        <td id="L5358" class="blob-num js-line-number" data-line-number="5358"></td>
        <td id="LC5358" class="blob-code js-file-line">    <span class="nx">options</span><span class="p">.</span><span class="nx">root</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">root</span> <span class="o">||</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5359" class="blob-num js-line-number" data-line-number="5359"></td>
        <td id="LC5359" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5360" class="blob-num js-line-number" data-line-number="5360"></td>
        <td id="LC5360" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">content</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L5361" class="blob-num js-line-number" data-line-number="5361"></td>
        <td id="LC5361" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5362" class="blob-num js-line-number" data-line-number="5362"></td>
        <td id="LC5362" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="nx">options</span><span class="p">.</span><span class="nx">root</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5363" class="blob-num js-line-number" data-line-number="5363"></td>
        <td id="LC5363" class="blob-code js-file-line">      <span class="nx">content</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">render_tree</span><span class="p">(</span> <span class="nx">jsonml</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5364" class="blob-num js-line-number" data-line-number="5364"></td>
        <td id="LC5364" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5365" class="blob-num js-line-number" data-line-number="5365"></td>
        <td id="LC5365" class="blob-code js-file-line">    <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5366" class="blob-num js-line-number" data-line-number="5366"></td>
        <td id="LC5366" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span> <span class="c1">// get rid of the tag</span></td>
      </tr>
      <tr>
        <td id="L5367" class="blob-num js-line-number" data-line-number="5367"></td>
        <td id="LC5367" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">length</span> <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;object&quot;</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="p">(</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="k">instanceof</span> <span class="nb">Array</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5368" class="blob-num js-line-number" data-line-number="5368"></td>
        <td id="LC5368" class="blob-code js-file-line">        <span class="nx">jsonml</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span> <span class="c1">// get rid of the attributes</span></td>
      </tr>
      <tr>
        <td id="L5369" class="blob-num js-line-number" data-line-number="5369"></td>
        <td id="LC5369" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5370" class="blob-num js-line-number" data-line-number="5370"></td>
        <td id="LC5370" class="blob-code js-file-line">      <span class="k">while</span> <span class="p">(</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5371" class="blob-num js-line-number" data-line-number="5371"></td>
        <td id="LC5371" class="blob-code js-file-line">        <span class="nx">content</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">render_tree</span><span class="p">(</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">shift</span><span class="p">()</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5372" class="blob-num js-line-number" data-line-number="5372"></td>
        <td id="LC5372" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5373" class="blob-num js-line-number" data-line-number="5373"></td>
        <td id="LC5373" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5374" class="blob-num js-line-number" data-line-number="5374"></td>
        <td id="LC5374" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">content</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span> <span class="s2">&quot;\n\n&quot;</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5375" class="blob-num js-line-number" data-line-number="5375"></td>
        <td id="LC5375" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5376" class="blob-num js-line-number" data-line-number="5376"></td>
        <td id="LC5376" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5377" class="blob-num js-line-number" data-line-number="5377"></td>
        <td id="LC5377" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5378" class="blob-num js-line-number" data-line-number="5378"></td>
        <td id="LC5378" class="blob-code js-file-line">  <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L5379" class="blob-num js-line-number" data-line-number="5379"></td>
        <td id="LC5379" class="blob-code js-file-line"><span class="cm">   *  toHTMLTree( markdown, [dialect] ) -&gt; JsonML</span></td>
      </tr>
      <tr>
        <td id="L5380" class="blob-num js-line-number" data-line-number="5380"></td>
        <td id="LC5380" class="blob-code js-file-line"><span class="cm">   *  toHTMLTree( md_tree ) -&gt; JsonML</span></td>
      </tr>
      <tr>
        <td id="L5381" class="blob-num js-line-number" data-line-number="5381"></td>
        <td id="LC5381" class="blob-code js-file-line"><span class="cm">   *  - markdown (String): markdown string to parse</span></td>
      </tr>
      <tr>
        <td id="L5382" class="blob-num js-line-number" data-line-number="5382"></td>
        <td id="LC5382" class="blob-code js-file-line"><span class="cm">   *  - dialect (String | Dialect): the dialect to use, defaults to gruber</span></td>
      </tr>
      <tr>
        <td id="L5383" class="blob-num js-line-number" data-line-number="5383"></td>
        <td id="LC5383" class="blob-code js-file-line"><span class="cm">   *  - md_tree (Markdown.JsonML): parsed markdown tree</span></td>
      </tr>
      <tr>
        <td id="L5384" class="blob-num js-line-number" data-line-number="5384"></td>
        <td id="LC5384" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5385" class="blob-num js-line-number" data-line-number="5385"></td>
        <td id="LC5385" class="blob-code js-file-line"><span class="cm">   *  Turn markdown into HTML, represented as a JsonML tree. If a string is given</span></td>
      </tr>
      <tr>
        <td id="L5386" class="blob-num js-line-number" data-line-number="5386"></td>
        <td id="LC5386" class="blob-code js-file-line"><span class="cm">   *  to this function, it is first parsed into a markdown tree by calling</span></td>
      </tr>
      <tr>
        <td id="L5387" class="blob-num js-line-number" data-line-number="5387"></td>
        <td id="LC5387" class="blob-code js-file-line"><span class="cm">   *  [[parse]].</span></td>
      </tr>
      <tr>
        <td id="L5388" class="blob-num js-line-number" data-line-number="5388"></td>
        <td id="LC5388" class="blob-code js-file-line"><span class="cm">   **/</span></td>
      </tr>
      <tr>
        <td id="L5389" class="blob-num js-line-number" data-line-number="5389"></td>
        <td id="LC5389" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">toHTMLTree</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">toHTMLTree</span><span class="p">(</span> <span class="nx">input</span><span class="p">,</span> <span class="nx">dialect</span> <span class="p">,</span> <span class="nx">options</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5390" class="blob-num js-line-number" data-line-number="5390"></td>
        <td id="LC5390" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5391" class="blob-num js-line-number" data-line-number="5391"></td>
        <td id="LC5391" class="blob-code js-file-line">    <span class="c1">// convert string input to an MD tree</span></td>
      </tr>
      <tr>
        <td id="L5392" class="blob-num js-line-number" data-line-number="5392"></td>
        <td id="LC5392" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">input</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5393" class="blob-num js-line-number" data-line-number="5393"></td>
        <td id="LC5393" class="blob-code js-file-line">      <span class="nx">input</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span> <span class="nx">input</span><span class="p">,</span> <span class="nx">dialect</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5394" class="blob-num js-line-number" data-line-number="5394"></td>
        <td id="LC5394" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5395" class="blob-num js-line-number" data-line-number="5395"></td>
        <td id="LC5395" class="blob-code js-file-line">    <span class="c1">// Now convert the MD tree to an HTML tree</span></td>
      </tr>
      <tr>
        <td id="L5396" class="blob-num js-line-number" data-line-number="5396"></td>
        <td id="LC5396" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5397" class="blob-num js-line-number" data-line-number="5397"></td>
        <td id="LC5397" class="blob-code js-file-line">    <span class="c1">// remove references from the tree</span></td>
      </tr>
      <tr>
        <td id="L5398" class="blob-num js-line-number" data-line-number="5398"></td>
        <td id="LC5398" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">attrs</span> <span class="o">=</span> <span class="nx">extract_attr</span><span class="p">(</span> <span class="nx">input</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L5399" class="blob-num js-line-number" data-line-number="5399"></td>
        <td id="LC5399" class="blob-code js-file-line">        <span class="nx">refs</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L5400" class="blob-num js-line-number" data-line-number="5400"></td>
        <td id="LC5400" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5401" class="blob-num js-line-number" data-line-number="5401"></td>
        <td id="LC5401" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="nx">attrs</span> <span class="o">&amp;&amp;</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">references</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5402" class="blob-num js-line-number" data-line-number="5402"></td>
        <td id="LC5402" class="blob-code js-file-line">      <span class="nx">refs</span> <span class="o">=</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">references</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5403" class="blob-num js-line-number" data-line-number="5403"></td>
        <td id="LC5403" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5404" class="blob-num js-line-number" data-line-number="5404"></td>
        <td id="LC5404" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">html</span> <span class="o">=</span> <span class="nx">convert_tree_to_html</span><span class="p">(</span> <span class="nx">input</span><span class="p">,</span> <span class="nx">refs</span> <span class="p">,</span> <span class="nx">options</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5405" class="blob-num js-line-number" data-line-number="5405"></td>
        <td id="LC5405" class="blob-code js-file-line">    <span class="nx">merge_text_nodes</span><span class="p">(</span> <span class="nx">html</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5406" class="blob-num js-line-number" data-line-number="5406"></td>
        <td id="LC5406" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">html</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5407" class="blob-num js-line-number" data-line-number="5407"></td>
        <td id="LC5407" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5408" class="blob-num js-line-number" data-line-number="5408"></td>
        <td id="LC5408" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5409" class="blob-num js-line-number" data-line-number="5409"></td>
        <td id="LC5409" class="blob-code js-file-line">  <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L5410" class="blob-num js-line-number" data-line-number="5410"></td>
        <td id="LC5410" class="blob-code js-file-line"><span class="cm">   *  toHTML( markdown, [dialect]  ) -&gt; String</span></td>
      </tr>
      <tr>
        <td id="L5411" class="blob-num js-line-number" data-line-number="5411"></td>
        <td id="LC5411" class="blob-code js-file-line"><span class="cm">   *  toHTML( md_tree ) -&gt; String</span></td>
      </tr>
      <tr>
        <td id="L5412" class="blob-num js-line-number" data-line-number="5412"></td>
        <td id="LC5412" class="blob-code js-file-line"><span class="cm">   *  - markdown (String): markdown string to parse</span></td>
      </tr>
      <tr>
        <td id="L5413" class="blob-num js-line-number" data-line-number="5413"></td>
        <td id="LC5413" class="blob-code js-file-line"><span class="cm">   *  - md_tree (Markdown.JsonML): parsed markdown tree</span></td>
      </tr>
      <tr>
        <td id="L5414" class="blob-num js-line-number" data-line-number="5414"></td>
        <td id="LC5414" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5415" class="blob-num js-line-number" data-line-number="5415"></td>
        <td id="LC5415" class="blob-code js-file-line"><span class="cm">   *  Take markdown (either as a string or as a JsonML tree) and run it through</span></td>
      </tr>
      <tr>
        <td id="L5416" class="blob-num js-line-number" data-line-number="5416"></td>
        <td id="LC5416" class="blob-code js-file-line"><span class="cm">   *  [[toHTMLTree]] then turn it into a well-formated HTML fragment.</span></td>
      </tr>
      <tr>
        <td id="L5417" class="blob-num js-line-number" data-line-number="5417"></td>
        <td id="LC5417" class="blob-code js-file-line"><span class="cm">   **/</span></td>
      </tr>
      <tr>
        <td id="L5418" class="blob-num js-line-number" data-line-number="5418"></td>
        <td id="LC5418" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">toHTML</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">toHTML</span><span class="p">(</span> <span class="nx">source</span> <span class="p">,</span> <span class="nx">dialect</span> <span class="p">,</span> <span class="nx">options</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5419" class="blob-num js-line-number" data-line-number="5419"></td>
        <td id="LC5419" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">input</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">toHTMLTree</span><span class="p">(</span> <span class="nx">source</span> <span class="p">,</span> <span class="nx">dialect</span> <span class="p">,</span> <span class="nx">options</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5420" class="blob-num js-line-number" data-line-number="5420"></td>
        <td id="LC5420" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5421" class="blob-num js-line-number" data-line-number="5421"></td>
        <td id="LC5421" class="blob-code js-file-line">    <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">renderJsonML</span><span class="p">(</span> <span class="nx">input</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5422" class="blob-num js-line-number" data-line-number="5422"></td>
        <td id="LC5422" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5423" class="blob-num js-line-number" data-line-number="5423"></td>
        <td id="LC5423" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5424" class="blob-num js-line-number" data-line-number="5424"></td>
        <td id="LC5424" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5425" class="blob-num js-line-number" data-line-number="5425"></td>
        <td id="LC5425" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">escapeHTML</span><span class="p">(</span> <span class="nx">text</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5426" class="blob-num js-line-number" data-line-number="5426"></td>
        <td id="LC5426" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">text</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/&amp;/g</span><span class="p">,</span> <span class="s2">&quot;&amp;amp;&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5427" class="blob-num js-line-number" data-line-number="5427"></td>
        <td id="LC5427" class="blob-code js-file-line">               <span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/&lt;/g</span><span class="p">,</span> <span class="s2">&quot;&amp;lt;&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5428" class="blob-num js-line-number" data-line-number="5428"></td>
        <td id="LC5428" class="blob-code js-file-line">               <span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/&gt;/g</span><span class="p">,</span> <span class="s2">&quot;&amp;gt;&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5429" class="blob-num js-line-number" data-line-number="5429"></td>
        <td id="LC5429" class="blob-code js-file-line">               <span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/&quot;/g</span><span class="p">,</span> <span class="s2">&quot;&amp;quot;&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5430" class="blob-num js-line-number" data-line-number="5430"></td>
        <td id="LC5430" class="blob-code js-file-line">               <span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/&#39;/g</span><span class="p">,</span> <span class="s2">&quot;&amp;#39;&quot;</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5431" class="blob-num js-line-number" data-line-number="5431"></td>
        <td id="LC5431" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5432" class="blob-num js-line-number" data-line-number="5432"></td>
        <td id="LC5432" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5433" class="blob-num js-line-number" data-line-number="5433"></td>
        <td id="LC5433" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">render_tree</span><span class="p">(</span> <span class="nx">jsonml</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5434" class="blob-num js-line-number" data-line-number="5434"></td>
        <td id="LC5434" class="blob-code js-file-line">    <span class="c1">// basic case</span></td>
      </tr>
      <tr>
        <td id="L5435" class="blob-num js-line-number" data-line-number="5435"></td>
        <td id="LC5435" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">jsonml</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5436" class="blob-num js-line-number" data-line-number="5436"></td>
        <td id="LC5436" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">escapeHTML</span><span class="p">(</span> <span class="nx">jsonml</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5437" class="blob-num js-line-number" data-line-number="5437"></td>
        <td id="LC5437" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5438" class="blob-num js-line-number" data-line-number="5438"></td>
        <td id="LC5438" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">tag</span> <span class="o">=</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">shift</span><span class="p">(),</span></td>
      </tr>
      <tr>
        <td id="L5439" class="blob-num js-line-number" data-line-number="5439"></td>
        <td id="LC5439" class="blob-code js-file-line">        <span class="nx">attributes</span> <span class="o">=</span> <span class="p">{},</span></td>
      </tr>
      <tr>
        <td id="L5440" class="blob-num js-line-number" data-line-number="5440"></td>
        <td id="LC5440" class="blob-code js-file-line">        <span class="nx">content</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L5441" class="blob-num js-line-number" data-line-number="5441"></td>
        <td id="LC5441" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5442" class="blob-num js-line-number" data-line-number="5442"></td>
        <td id="LC5442" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">length</span> <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;object&quot;</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="p">(</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="k">instanceof</span> <span class="nb">Array</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5443" class="blob-num js-line-number" data-line-number="5443"></td>
        <td id="LC5443" class="blob-code js-file-line">      <span class="nx">attributes</span> <span class="o">=</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L5444" class="blob-num js-line-number" data-line-number="5444"></td>
        <td id="LC5444" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5445" class="blob-num js-line-number" data-line-number="5445"></td>
        <td id="LC5445" class="blob-code js-file-line">    <span class="k">while</span> <span class="p">(</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5446" class="blob-num js-line-number" data-line-number="5446"></td>
        <td id="LC5446" class="blob-code js-file-line">      <span class="nx">content</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">render_tree</span><span class="p">(</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">shift</span><span class="p">()</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5447" class="blob-num js-line-number" data-line-number="5447"></td>
        <td id="LC5447" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5448" class="blob-num js-line-number" data-line-number="5448"></td>
        <td id="LC5448" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">tag_attrs</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5449" class="blob-num js-line-number" data-line-number="5449"></td>
        <td id="LC5449" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">a</span> <span class="k">in</span> <span class="nx">attributes</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5450" class="blob-num js-line-number" data-line-number="5450"></td>
        <td id="LC5450" class="blob-code js-file-line">      <span class="nx">tag_attrs</span> <span class="o">+=</span> <span class="s2">&quot; &quot;</span> <span class="o">+</span> <span class="nx">a</span> <span class="o">+</span> <span class="s1">&#39;=&quot;&#39;</span> <span class="o">+</span> <span class="nx">escapeHTML</span><span class="p">(</span> <span class="nx">attributes</span><span class="p">[</span> <span class="nx">a</span> <span class="p">]</span> <span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;&quot;&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5451" class="blob-num js-line-number" data-line-number="5451"></td>
        <td id="LC5451" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5452" class="blob-num js-line-number" data-line-number="5452"></td>
        <td id="LC5452" class="blob-code js-file-line">    <span class="c1">// be careful about adding whitespace here for inline elements</span></td>
      </tr>
      <tr>
        <td id="L5453" class="blob-num js-line-number" data-line-number="5453"></td>
        <td id="LC5453" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="nx">tag</span> <span class="o">===</span> <span class="s2">&quot;img&quot;</span> <span class="o">||</span> <span class="nx">tag</span> <span class="o">===</span> <span class="s2">&quot;br&quot;</span> <span class="o">||</span> <span class="nx">tag</span> <span class="o">===</span> <span class="s2">&quot;hr&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5454" class="blob-num js-line-number" data-line-number="5454"></td>
        <td id="LC5454" class="blob-code js-file-line">      <span class="k">return</span> <span class="s2">&quot;&lt;&quot;</span><span class="o">+</span> <span class="nx">tag</span> <span class="o">+</span> <span class="nx">tag_attrs</span> <span class="o">+</span> <span class="s2">&quot;/&gt;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5455" class="blob-num js-line-number" data-line-number="5455"></td>
        <td id="LC5455" class="blob-code js-file-line">    <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L5456" class="blob-num js-line-number" data-line-number="5456"></td>
        <td id="LC5456" class="blob-code js-file-line">      <span class="k">return</span> <span class="s2">&quot;&lt;&quot;</span><span class="o">+</span> <span class="nx">tag</span> <span class="o">+</span> <span class="nx">tag_attrs</span> <span class="o">+</span> <span class="s2">&quot;&gt;&quot;</span> <span class="o">+</span> <span class="nx">content</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span> <span class="s2">&quot;&quot;</span> <span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;&lt;/&quot;</span> <span class="o">+</span> <span class="nx">tag</span> <span class="o">+</span> <span class="s2">&quot;&gt;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5457" class="blob-num js-line-number" data-line-number="5457"></td>
        <td id="LC5457" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5458" class="blob-num js-line-number" data-line-number="5458"></td>
        <td id="LC5458" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5459" class="blob-num js-line-number" data-line-number="5459"></td>
        <td id="LC5459" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">convert_tree_to_html</span><span class="p">(</span> <span class="nx">tree</span><span class="p">,</span> <span class="nx">references</span><span class="p">,</span> <span class="nx">options</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5460" class="blob-num js-line-number" data-line-number="5460"></td>
        <td id="LC5460" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">i</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5461" class="blob-num js-line-number" data-line-number="5461"></td>
        <td id="LC5461" class="blob-code js-file-line">    <span class="nx">options</span> <span class="o">=</span> <span class="nx">options</span> <span class="o">||</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L5462" class="blob-num js-line-number" data-line-number="5462"></td>
        <td id="LC5462" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5463" class="blob-num js-line-number" data-line-number="5463"></td>
        <td id="LC5463" class="blob-code js-file-line">    <span class="c1">// shallow clone</span></td>
      </tr>
      <tr>
        <td id="L5464" class="blob-num js-line-number" data-line-number="5464"></td>
        <td id="LC5464" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">jsonml</span> <span class="o">=</span> <span class="nx">tree</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span> <span class="mi">0</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5465" class="blob-num js-line-number" data-line-number="5465"></td>
        <td id="LC5465" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5466" class="blob-num js-line-number" data-line-number="5466"></td>
        <td id="LC5466" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">options</span><span class="p">.</span><span class="nx">preprocessTreeNode</span> <span class="o">===</span> <span class="s2">&quot;function&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5467" class="blob-num js-line-number" data-line-number="5467"></td>
        <td id="LC5467" class="blob-code js-file-line">      <span class="nx">jsonml</span> <span class="o">=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">preprocessTreeNode</span><span class="p">(</span><span class="nx">jsonml</span><span class="p">,</span> <span class="nx">references</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5468" class="blob-num js-line-number" data-line-number="5468"></td>
        <td id="LC5468" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5469" class="blob-num js-line-number" data-line-number="5469"></td>
        <td id="LC5469" class="blob-code js-file-line">    <span class="c1">// Clone attributes if they exist</span></td>
      </tr>
      <tr>
        <td id="L5470" class="blob-num js-line-number" data-line-number="5470"></td>
        <td id="LC5470" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">attrs</span> <span class="o">=</span> <span class="nx">extract_attr</span><span class="p">(</span> <span class="nx">jsonml</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5471" class="blob-num js-line-number" data-line-number="5471"></td>
        <td id="LC5471" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="nx">attrs</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5472" class="blob-num js-line-number" data-line-number="5472"></td>
        <td id="LC5472" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">]</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L5473" class="blob-num js-line-number" data-line-number="5473"></td>
        <td id="LC5473" class="blob-code js-file-line">      <span class="k">for</span> <span class="p">(</span> <span class="nx">i</span> <span class="k">in</span> <span class="nx">attrs</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5474" class="blob-num js-line-number" data-line-number="5474"></td>
        <td id="LC5474" class="blob-code js-file-line">        <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">][</span> <span class="nx">i</span> <span class="p">]</span> <span class="o">=</span> <span class="nx">attrs</span><span class="p">[</span> <span class="nx">i</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5475" class="blob-num js-line-number" data-line-number="5475"></td>
        <td id="LC5475" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5476" class="blob-num js-line-number" data-line-number="5476"></td>
        <td id="LC5476" class="blob-code js-file-line">      <span class="nx">attrs</span> <span class="o">=</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5477" class="blob-num js-line-number" data-line-number="5477"></td>
        <td id="LC5477" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5478" class="blob-num js-line-number" data-line-number="5478"></td>
        <td id="LC5478" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5479" class="blob-num js-line-number" data-line-number="5479"></td>
        <td id="LC5479" class="blob-code js-file-line">    <span class="c1">// basic case</span></td>
      </tr>
      <tr>
        <td id="L5480" class="blob-num js-line-number" data-line-number="5480"></td>
        <td id="LC5480" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">jsonml</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5481" class="blob-num js-line-number" data-line-number="5481"></td>
        <td id="LC5481" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">jsonml</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5482" class="blob-num js-line-number" data-line-number="5482"></td>
        <td id="LC5482" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5483" class="blob-num js-line-number" data-line-number="5483"></td>
        <td id="LC5483" class="blob-code js-file-line">    <span class="c1">// convert this node</span></td>
      </tr>
      <tr>
        <td id="L5484" class="blob-num js-line-number" data-line-number="5484"></td>
        <td id="LC5484" class="blob-code js-file-line">    <span class="k">switch</span> <span class="p">(</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5485" class="blob-num js-line-number" data-line-number="5485"></td>
        <td id="LC5485" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;header&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5486" class="blob-num js-line-number" data-line-number="5486"></td>
        <td id="LC5486" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;h&quot;</span> <span class="o">+</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">].</span><span class="nx">level</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5487" class="blob-num js-line-number" data-line-number="5487"></td>
        <td id="LC5487" class="blob-code js-file-line">      <span class="k">delete</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">].</span><span class="nx">level</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5488" class="blob-num js-line-number" data-line-number="5488"></td>
        <td id="LC5488" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5489" class="blob-num js-line-number" data-line-number="5489"></td>
        <td id="LC5489" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;bulletlist&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5490" class="blob-num js-line-number" data-line-number="5490"></td>
        <td id="LC5490" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;ul&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5491" class="blob-num js-line-number" data-line-number="5491"></td>
        <td id="LC5491" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5492" class="blob-num js-line-number" data-line-number="5492"></td>
        <td id="LC5492" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;numberlist&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5493" class="blob-num js-line-number" data-line-number="5493"></td>
        <td id="LC5493" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;ol&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5494" class="blob-num js-line-number" data-line-number="5494"></td>
        <td id="LC5494" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5495" class="blob-num js-line-number" data-line-number="5495"></td>
        <td id="LC5495" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;listitem&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5496" class="blob-num js-line-number" data-line-number="5496"></td>
        <td id="LC5496" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;li&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5497" class="blob-num js-line-number" data-line-number="5497"></td>
        <td id="LC5497" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5498" class="blob-num js-line-number" data-line-number="5498"></td>
        <td id="LC5498" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;para&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5499" class="blob-num js-line-number" data-line-number="5499"></td>
        <td id="LC5499" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;p&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5500" class="blob-num js-line-number" data-line-number="5500"></td>
        <td id="LC5500" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5501" class="blob-num js-line-number" data-line-number="5501"></td>
        <td id="LC5501" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;markdown&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5502" class="blob-num js-line-number" data-line-number="5502"></td>
        <td id="LC5502" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;html&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5503" class="blob-num js-line-number" data-line-number="5503"></td>
        <td id="LC5503" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">attrs</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5504" class="blob-num js-line-number" data-line-number="5504"></td>
        <td id="LC5504" class="blob-code js-file-line">        <span class="k">delete</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">references</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5505" class="blob-num js-line-number" data-line-number="5505"></td>
        <td id="LC5505" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5506" class="blob-num js-line-number" data-line-number="5506"></td>
        <td id="LC5506" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;code_block&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5507" class="blob-num js-line-number" data-line-number="5507"></td>
        <td id="LC5507" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;pre&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5508" class="blob-num js-line-number" data-line-number="5508"></td>
        <td id="LC5508" class="blob-code js-file-line">      <span class="nx">i</span> <span class="o">=</span> <span class="nx">attrs</span> <span class="o">?</span> <span class="mi">2</span> <span class="o">:</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5509" class="blob-num js-line-number" data-line-number="5509"></td>
        <td id="LC5509" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">code</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;code&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5510" class="blob-num js-line-number" data-line-number="5510"></td>
        <td id="LC5510" class="blob-code js-file-line">      <span class="nx">code</span><span class="p">.</span><span class="nx">push</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span> <span class="nx">code</span><span class="p">,</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="nx">i</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5511" class="blob-num js-line-number" data-line-number="5511"></td>
        <td id="LC5511" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="nx">i</span> <span class="p">]</span> <span class="o">=</span> <span class="nx">code</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5512" class="blob-num js-line-number" data-line-number="5512"></td>
        <td id="LC5512" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5513" class="blob-num js-line-number" data-line-number="5513"></td>
        <td id="LC5513" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;inlinecode&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5514" class="blob-num js-line-number" data-line-number="5514"></td>
        <td id="LC5514" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;code&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5515" class="blob-num js-line-number" data-line-number="5515"></td>
        <td id="LC5515" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5516" class="blob-num js-line-number" data-line-number="5516"></td>
        <td id="LC5516" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;img&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5517" class="blob-num js-line-number" data-line-number="5517"></td>
        <td id="LC5517" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">].</span><span class="nx">src</span> <span class="o">=</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">].</span><span class="nx">href</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5518" class="blob-num js-line-number" data-line-number="5518"></td>
        <td id="LC5518" class="blob-code js-file-line">      <span class="k">delete</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">].</span><span class="nx">href</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5519" class="blob-num js-line-number" data-line-number="5519"></td>
        <td id="LC5519" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5520" class="blob-num js-line-number" data-line-number="5520"></td>
        <td id="LC5520" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;linebreak&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5521" class="blob-num js-line-number" data-line-number="5521"></td>
        <td id="LC5521" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;br&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5522" class="blob-num js-line-number" data-line-number="5522"></td>
        <td id="LC5522" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5523" class="blob-num js-line-number" data-line-number="5523"></td>
        <td id="LC5523" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;link&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5524" class="blob-num js-line-number" data-line-number="5524"></td>
        <td id="LC5524" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;a&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5525" class="blob-num js-line-number" data-line-number="5525"></td>
        <td id="LC5525" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5526" class="blob-num js-line-number" data-line-number="5526"></td>
        <td id="LC5526" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;link_ref&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5527" class="blob-num js-line-number" data-line-number="5527"></td>
        <td id="LC5527" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;a&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5528" class="blob-num js-line-number" data-line-number="5528"></td>
        <td id="LC5528" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5529" class="blob-num js-line-number" data-line-number="5529"></td>
        <td id="LC5529" class="blob-code js-file-line">      <span class="c1">// grab this ref and clean up the attribute node</span></td>
      </tr>
      <tr>
        <td id="L5530" class="blob-num js-line-number" data-line-number="5530"></td>
        <td id="LC5530" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">ref</span> <span class="o">=</span> <span class="nx">references</span><span class="p">[</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">ref</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5531" class="blob-num js-line-number" data-line-number="5531"></td>
        <td id="LC5531" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5532" class="blob-num js-line-number" data-line-number="5532"></td>
        <td id="LC5532" class="blob-code js-file-line">      <span class="c1">// if the reference exists, make the link</span></td>
      </tr>
      <tr>
        <td id="L5533" class="blob-num js-line-number" data-line-number="5533"></td>
        <td id="LC5533" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">ref</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5534" class="blob-num js-line-number" data-line-number="5534"></td>
        <td id="LC5534" class="blob-code js-file-line">        <span class="k">delete</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">ref</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5535" class="blob-num js-line-number" data-line-number="5535"></td>
        <td id="LC5535" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5536" class="blob-num js-line-number" data-line-number="5536"></td>
        <td id="LC5536" class="blob-code js-file-line">        <span class="c1">// add in the href and title, if present</span></td>
      </tr>
      <tr>
        <td id="L5537" class="blob-num js-line-number" data-line-number="5537"></td>
        <td id="LC5537" class="blob-code js-file-line">        <span class="nx">attrs</span><span class="p">.</span><span class="nx">href</span> <span class="o">=</span> <span class="nx">ref</span><span class="p">.</span><span class="nx">href</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5538" class="blob-num js-line-number" data-line-number="5538"></td>
        <td id="LC5538" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">ref</span><span class="p">.</span><span class="nx">title</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5539" class="blob-num js-line-number" data-line-number="5539"></td>
        <td id="LC5539" class="blob-code js-file-line">          <span class="nx">attrs</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="nx">ref</span><span class="p">.</span><span class="nx">title</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5540" class="blob-num js-line-number" data-line-number="5540"></td>
        <td id="LC5540" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5541" class="blob-num js-line-number" data-line-number="5541"></td>
        <td id="LC5541" class="blob-code js-file-line">        <span class="c1">// get rid of the unneeded original text</span></td>
      </tr>
      <tr>
        <td id="L5542" class="blob-num js-line-number" data-line-number="5542"></td>
        <td id="LC5542" class="blob-code js-file-line">        <span class="k">delete</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">original</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5543" class="blob-num js-line-number" data-line-number="5543"></td>
        <td id="LC5543" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5544" class="blob-num js-line-number" data-line-number="5544"></td>
        <td id="LC5544" class="blob-code js-file-line">      <span class="c1">// the reference doesn&#39;t exist, so revert to plain text</span></td>
      </tr>
      <tr>
        <td id="L5545" class="blob-num js-line-number" data-line-number="5545"></td>
        <td id="LC5545" class="blob-code js-file-line">      <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5546" class="blob-num js-line-number" data-line-number="5546"></td>
        <td id="LC5546" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">original</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5547" class="blob-num js-line-number" data-line-number="5547"></td>
        <td id="LC5547" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5548" class="blob-num js-line-number" data-line-number="5548"></td>
        <td id="LC5548" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5549" class="blob-num js-line-number" data-line-number="5549"></td>
        <td id="LC5549" class="blob-code js-file-line">    <span class="k">case</span> <span class="s2">&quot;img_ref&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5550" class="blob-num js-line-number" data-line-number="5550"></td>
        <td id="LC5550" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;img&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5551" class="blob-num js-line-number" data-line-number="5551"></td>
        <td id="LC5551" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5552" class="blob-num js-line-number" data-line-number="5552"></td>
        <td id="LC5552" class="blob-code js-file-line">      <span class="c1">// grab this ref and clean up the attribute node</span></td>
      </tr>
      <tr>
        <td id="L5553" class="blob-num js-line-number" data-line-number="5553"></td>
        <td id="LC5553" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">ref</span> <span class="o">=</span> <span class="nx">references</span><span class="p">[</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">ref</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5554" class="blob-num js-line-number" data-line-number="5554"></td>
        <td id="LC5554" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5555" class="blob-num js-line-number" data-line-number="5555"></td>
        <td id="LC5555" class="blob-code js-file-line">      <span class="c1">// if the reference exists, make the link</span></td>
      </tr>
      <tr>
        <td id="L5556" class="blob-num js-line-number" data-line-number="5556"></td>
        <td id="LC5556" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">ref</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5557" class="blob-num js-line-number" data-line-number="5557"></td>
        <td id="LC5557" class="blob-code js-file-line">        <span class="k">delete</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">ref</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5558" class="blob-num js-line-number" data-line-number="5558"></td>
        <td id="LC5558" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5559" class="blob-num js-line-number" data-line-number="5559"></td>
        <td id="LC5559" class="blob-code js-file-line">        <span class="c1">// add in the href and title, if present</span></td>
      </tr>
      <tr>
        <td id="L5560" class="blob-num js-line-number" data-line-number="5560"></td>
        <td id="LC5560" class="blob-code js-file-line">        <span class="nx">attrs</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="nx">ref</span><span class="p">.</span><span class="nx">href</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5561" class="blob-num js-line-number" data-line-number="5561"></td>
        <td id="LC5561" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">ref</span><span class="p">.</span><span class="nx">title</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5562" class="blob-num js-line-number" data-line-number="5562"></td>
        <td id="LC5562" class="blob-code js-file-line">          <span class="nx">attrs</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="nx">ref</span><span class="p">.</span><span class="nx">title</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5563" class="blob-num js-line-number" data-line-number="5563"></td>
        <td id="LC5563" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5564" class="blob-num js-line-number" data-line-number="5564"></td>
        <td id="LC5564" class="blob-code js-file-line">        <span class="c1">// get rid of the unneeded original text</span></td>
      </tr>
      <tr>
        <td id="L5565" class="blob-num js-line-number" data-line-number="5565"></td>
        <td id="LC5565" class="blob-code js-file-line">        <span class="k">delete</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">original</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5566" class="blob-num js-line-number" data-line-number="5566"></td>
        <td id="LC5566" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5567" class="blob-num js-line-number" data-line-number="5567"></td>
        <td id="LC5567" class="blob-code js-file-line">      <span class="c1">// the reference doesn&#39;t exist, so revert to plain text</span></td>
      </tr>
      <tr>
        <td id="L5568" class="blob-num js-line-number" data-line-number="5568"></td>
        <td id="LC5568" class="blob-code js-file-line">      <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5569" class="blob-num js-line-number" data-line-number="5569"></td>
        <td id="LC5569" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">original</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5570" class="blob-num js-line-number" data-line-number="5570"></td>
        <td id="LC5570" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5571" class="blob-num js-line-number" data-line-number="5571"></td>
        <td id="LC5571" class="blob-code js-file-line">      <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5572" class="blob-num js-line-number" data-line-number="5572"></td>
        <td id="LC5572" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5573" class="blob-num js-line-number" data-line-number="5573"></td>
        <td id="LC5573" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5574" class="blob-num js-line-number" data-line-number="5574"></td>
        <td id="LC5574" class="blob-code js-file-line">    <span class="c1">// convert all the children</span></td>
      </tr>
      <tr>
        <td id="L5575" class="blob-num js-line-number" data-line-number="5575"></td>
        <td id="LC5575" class="blob-code js-file-line">    <span class="nx">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5576" class="blob-num js-line-number" data-line-number="5576"></td>
        <td id="LC5576" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5577" class="blob-num js-line-number" data-line-number="5577"></td>
        <td id="LC5577" class="blob-code js-file-line">    <span class="c1">// deal with the attribute node, if it exists</span></td>
      </tr>
      <tr>
        <td id="L5578" class="blob-num js-line-number" data-line-number="5578"></td>
        <td id="LC5578" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="nx">attrs</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5579" class="blob-num js-line-number" data-line-number="5579"></td>
        <td id="LC5579" class="blob-code js-file-line">      <span class="c1">// if there are keys, skip over it</span></td>
      </tr>
      <tr>
        <td id="L5580" class="blob-num js-line-number" data-line-number="5580"></td>
        <td id="LC5580" class="blob-code js-file-line">      <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="mi">1</span> <span class="p">]</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5581" class="blob-num js-line-number" data-line-number="5581"></td>
        <td id="LC5581" class="blob-code js-file-line">        <span class="nx">i</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5582" class="blob-num js-line-number" data-line-number="5582"></td>
        <td id="LC5582" class="blob-code js-file-line">        <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5583" class="blob-num js-line-number" data-line-number="5583"></td>
        <td id="LC5583" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5584" class="blob-num js-line-number" data-line-number="5584"></td>
        <td id="LC5584" class="blob-code js-file-line">      <span class="c1">// if there aren&#39;t, remove it</span></td>
      </tr>
      <tr>
        <td id="L5585" class="blob-num js-line-number" data-line-number="5585"></td>
        <td id="LC5585" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">i</span> <span class="o">===</span> <span class="mi">1</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5586" class="blob-num js-line-number" data-line-number="5586"></td>
        <td id="LC5586" class="blob-code js-file-line">        <span class="nx">jsonml</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span> <span class="nx">i</span><span class="p">,</span> <span class="mi">1</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5587" class="blob-num js-line-number" data-line-number="5587"></td>
        <td id="LC5587" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5588" class="blob-num js-line-number" data-line-number="5588"></td>
        <td id="LC5588" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5589" class="blob-num js-line-number" data-line-number="5589"></td>
        <td id="LC5589" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span> <span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5590" class="blob-num js-line-number" data-line-number="5590"></td>
        <td id="LC5590" class="blob-code js-file-line">      <span class="nx">jsonml</span><span class="p">[</span> <span class="nx">i</span> <span class="p">]</span> <span class="o">=</span> <span class="nx">convert_tree_to_html</span><span class="p">(</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="nx">i</span> <span class="p">],</span> <span class="nx">references</span><span class="p">,</span> <span class="nx">options</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5591" class="blob-num js-line-number" data-line-number="5591"></td>
        <td id="LC5591" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5592" class="blob-num js-line-number" data-line-number="5592"></td>
        <td id="LC5592" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5593" class="blob-num js-line-number" data-line-number="5593"></td>
        <td id="LC5593" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">jsonml</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5594" class="blob-num js-line-number" data-line-number="5594"></td>
        <td id="LC5594" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5595" class="blob-num js-line-number" data-line-number="5595"></td>
        <td id="LC5595" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5596" class="blob-num js-line-number" data-line-number="5596"></td>
        <td id="LC5596" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5597" class="blob-num js-line-number" data-line-number="5597"></td>
        <td id="LC5597" class="blob-code js-file-line">  <span class="c1">// merges adjacent text nodes into a single node</span></td>
      </tr>
      <tr>
        <td id="L5598" class="blob-num js-line-number" data-line-number="5598"></td>
        <td id="LC5598" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">merge_text_nodes</span><span class="p">(</span> <span class="nx">jsonml</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5599" class="blob-num js-line-number" data-line-number="5599"></td>
        <td id="LC5599" class="blob-code js-file-line">    <span class="c1">// skip the tag name and attribute hash</span></td>
      </tr>
      <tr>
        <td id="L5600" class="blob-num js-line-number" data-line-number="5600"></td>
        <td id="LC5600" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">extract_attr</span><span class="p">(</span> <span class="nx">jsonml</span> <span class="p">)</span> <span class="o">?</span> <span class="mi">2</span> <span class="o">:</span> <span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5601" class="blob-num js-line-number" data-line-number="5601"></td>
        <td id="LC5601" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5602" class="blob-num js-line-number" data-line-number="5602"></td>
        <td id="LC5602" class="blob-code js-file-line">    <span class="k">while</span> <span class="p">(</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5603" class="blob-num js-line-number" data-line-number="5603"></td>
        <td id="LC5603" class="blob-code js-file-line">      <span class="c1">// if it&#39;s a string check the next item too</span></td>
      </tr>
      <tr>
        <td id="L5604" class="blob-num js-line-number" data-line-number="5604"></td>
        <td id="LC5604" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="nx">i</span> <span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5605" class="blob-num js-line-number" data-line-number="5605"></td>
        <td id="LC5605" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">&lt;</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">length</span> <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span> <span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5606" class="blob-num js-line-number" data-line-number="5606"></td>
        <td id="LC5606" class="blob-code js-file-line">          <span class="c1">// merge the second string into the first and remove it</span></td>
      </tr>
      <tr>
        <td id="L5607" class="blob-num js-line-number" data-line-number="5607"></td>
        <td id="LC5607" class="blob-code js-file-line">          <span class="nx">jsonml</span><span class="p">[</span> <span class="nx">i</span> <span class="p">]</span> <span class="o">+=</span> <span class="nx">jsonml</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span> <span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span> <span class="p">)[</span> <span class="mi">0</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5608" class="blob-num js-line-number" data-line-number="5608"></td>
        <td id="LC5608" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5609" class="blob-num js-line-number" data-line-number="5609"></td>
        <td id="LC5609" class="blob-code js-file-line">        <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5610" class="blob-num js-line-number" data-line-number="5610"></td>
        <td id="LC5610" class="blob-code js-file-line">          <span class="o">++</span><span class="nx">i</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5611" class="blob-num js-line-number" data-line-number="5611"></td>
        <td id="LC5611" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5612" class="blob-num js-line-number" data-line-number="5612"></td>
        <td id="LC5612" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5613" class="blob-num js-line-number" data-line-number="5613"></td>
        <td id="LC5613" class="blob-code js-file-line">      <span class="c1">// if it&#39;s not a string recurse</span></td>
      </tr>
      <tr>
        <td id="L5614" class="blob-num js-line-number" data-line-number="5614"></td>
        <td id="LC5614" class="blob-code js-file-line">      <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5615" class="blob-num js-line-number" data-line-number="5615"></td>
        <td id="LC5615" class="blob-code js-file-line">        <span class="nx">merge_text_nodes</span><span class="p">(</span> <span class="nx">jsonml</span><span class="p">[</span> <span class="nx">i</span> <span class="p">]</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5616" class="blob-num js-line-number" data-line-number="5616"></td>
        <td id="LC5616" class="blob-code js-file-line">        <span class="o">++</span><span class="nx">i</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5617" class="blob-num js-line-number" data-line-number="5617"></td>
        <td id="LC5617" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5618" class="blob-num js-line-number" data-line-number="5618"></td>
        <td id="LC5618" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5619" class="blob-num js-line-number" data-line-number="5619"></td>
        <td id="LC5619" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5620" class="blob-num js-line-number" data-line-number="5620"></td>
        <td id="LC5620" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5621" class="blob-num js-line-number" data-line-number="5621"></td>
        <td id="LC5621" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5622" class="blob-num js-line-number" data-line-number="5622"></td>
        <td id="LC5622" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5623" class="blob-num js-line-number" data-line-number="5623"></td>
        <td id="LC5623" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">DialectHelpers</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L5624" class="blob-num js-line-number" data-line-number="5624"></td>
        <td id="LC5624" class="blob-code js-file-line">  <span class="nx">DialectHelpers</span><span class="p">.</span><span class="nx">inline_until_char</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">text</span><span class="p">,</span> <span class="nx">want</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5625" class="blob-num js-line-number" data-line-number="5625"></td>
        <td id="LC5625" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">consumed</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5626" class="blob-num js-line-number" data-line-number="5626"></td>
        <td id="LC5626" class="blob-code js-file-line">        <span class="nx">nodes</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L5627" class="blob-num js-line-number" data-line-number="5627"></td>
        <td id="LC5627" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5628" class="blob-num js-line-number" data-line-number="5628"></td>
        <td id="LC5628" class="blob-code js-file-line">    <span class="k">while</span> <span class="p">(</span> <span class="kc">true</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5629" class="blob-num js-line-number" data-line-number="5629"></td>
        <td id="LC5629" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">text</span><span class="p">.</span><span class="nx">charAt</span><span class="p">(</span> <span class="nx">consumed</span> <span class="p">)</span> <span class="o">===</span> <span class="nx">want</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5630" class="blob-num js-line-number" data-line-number="5630"></td>
        <td id="LC5630" class="blob-code js-file-line">        <span class="c1">// Found the character we were looking for</span></td>
      </tr>
      <tr>
        <td id="L5631" class="blob-num js-line-number" data-line-number="5631"></td>
        <td id="LC5631" class="blob-code js-file-line">        <span class="nx">consumed</span><span class="o">++</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5632" class="blob-num js-line-number" data-line-number="5632"></td>
        <td id="LC5632" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[</span> <span class="nx">consumed</span><span class="p">,</span> <span class="nx">nodes</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5633" class="blob-num js-line-number" data-line-number="5633"></td>
        <td id="LC5633" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5634" class="blob-num js-line-number" data-line-number="5634"></td>
        <td id="LC5634" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5635" class="blob-num js-line-number" data-line-number="5635"></td>
        <td id="LC5635" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">consumed</span> <span class="o">&gt;=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5636" class="blob-num js-line-number" data-line-number="5636"></td>
        <td id="LC5636" class="blob-code js-file-line">        <span class="c1">// No closing char found. Abort.</span></td>
      </tr>
      <tr>
        <td id="L5637" class="blob-num js-line-number" data-line-number="5637"></td>
        <td id="LC5637" class="blob-code js-file-line">        <span class="k">return</span> <span class="kc">null</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5638" class="blob-num js-line-number" data-line-number="5638"></td>
        <td id="LC5638" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5639" class="blob-num js-line-number" data-line-number="5639"></td>
        <td id="LC5639" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5640" class="blob-num js-line-number" data-line-number="5640"></td>
        <td id="LC5640" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">inline</span><span class="p">.</span><span class="nx">__oneElement__</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">text</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="nx">consumed</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5641" class="blob-num js-line-number" data-line-number="5641"></td>
        <td id="LC5641" class="blob-code js-file-line">      <span class="nx">consumed</span> <span class="o">+=</span> <span class="nx">res</span><span class="p">[</span> <span class="mi">0</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5642" class="blob-num js-line-number" data-line-number="5642"></td>
        <td id="LC5642" class="blob-code js-file-line">      <span class="c1">// Add any returned nodes.</span></td>
      </tr>
      <tr>
        <td id="L5643" class="blob-num js-line-number" data-line-number="5643"></td>
        <td id="LC5643" class="blob-code js-file-line">      <span class="nx">nodes</span><span class="p">.</span><span class="nx">push</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span> <span class="nx">nodes</span><span class="p">,</span> <span class="nx">res</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span> <span class="mi">1</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5644" class="blob-num js-line-number" data-line-number="5644"></td>
        <td id="LC5644" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5645" class="blob-num js-line-number" data-line-number="5645"></td>
        <td id="LC5645" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5646" class="blob-num js-line-number" data-line-number="5646"></td>
        <td id="LC5646" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5647" class="blob-num js-line-number" data-line-number="5647"></td>
        <td id="LC5647" class="blob-code js-file-line">  <span class="c1">// Helper function to make sub-classing a dialect easier</span></td>
      </tr>
      <tr>
        <td id="L5648" class="blob-num js-line-number" data-line-number="5648"></td>
        <td id="LC5648" class="blob-code js-file-line">  <span class="nx">DialectHelpers</span><span class="p">.</span><span class="nx">subclassDialect</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">d</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5649" class="blob-num js-line-number" data-line-number="5649"></td>
        <td id="LC5649" class="blob-code js-file-line">    <span class="kd">function</span> <span class="nx">Block</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L5650" class="blob-num js-line-number" data-line-number="5650"></td>
        <td id="LC5650" class="blob-code js-file-line">    <span class="nx">Block</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="nx">d</span><span class="p">.</span><span class="nx">block</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5651" class="blob-num js-line-number" data-line-number="5651"></td>
        <td id="LC5651" class="blob-code js-file-line">    <span class="kd">function</span> <span class="nx">Inline</span><span class="p">()</span> <span class="p">{}</span></td>
      </tr>
      <tr>
        <td id="L5652" class="blob-num js-line-number" data-line-number="5652"></td>
        <td id="LC5652" class="blob-code js-file-line">    <span class="nx">Inline</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="nx">d</span><span class="p">.</span><span class="nx">inline</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5653" class="blob-num js-line-number" data-line-number="5653"></td>
        <td id="LC5653" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5654" class="blob-num js-line-number" data-line-number="5654"></td>
        <td id="LC5654" class="blob-code js-file-line">    <span class="k">return</span> <span class="p">{</span> <span class="nx">block</span><span class="o">:</span> <span class="k">new</span> <span class="nx">Block</span><span class="p">(),</span> <span class="nx">inline</span><span class="o">:</span> <span class="k">new</span> <span class="nx">Inline</span><span class="p">()</span> <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5655" class="blob-num js-line-number" data-line-number="5655"></td>
        <td id="LC5655" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L5656" class="blob-num js-line-number" data-line-number="5656"></td>
        <td id="LC5656" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5657" class="blob-num js-line-number" data-line-number="5657"></td>
        <td id="LC5657" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5658" class="blob-num js-line-number" data-line-number="5658"></td>
        <td id="LC5658" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5659" class="blob-num js-line-number" data-line-number="5659"></td>
        <td id="LC5659" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5660" class="blob-num js-line-number" data-line-number="5660"></td>
        <td id="LC5660" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">forEach</span> <span class="o">=</span> <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">forEach</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5661" class="blob-num js-line-number" data-line-number="5661"></td>
        <td id="LC5661" class="blob-code js-file-line">      <span class="nx">extract_attr</span> <span class="o">=</span> <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">extract_attr</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5662" class="blob-num js-line-number" data-line-number="5662"></td>
        <td id="LC5662" class="blob-code js-file-line">      <span class="nx">mk_block</span> <span class="o">=</span> <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">mk_block</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5663" class="blob-num js-line-number" data-line-number="5663"></td>
        <td id="LC5663" class="blob-code js-file-line">      <span class="nx">isEmpty</span> <span class="o">=</span> <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">isEmpty</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5664" class="blob-num js-line-number" data-line-number="5664"></td>
        <td id="LC5664" class="blob-code js-file-line">      <span class="nx">inline_until_char</span> <span class="o">=</span> <span class="nx">DialectHelpers</span><span class="p">.</span><span class="nx">inline_until_char</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5665" class="blob-num js-line-number" data-line-number="5665"></td>
        <td id="LC5665" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5666" class="blob-num js-line-number" data-line-number="5666"></td>
        <td id="LC5666" class="blob-code js-file-line">  <span class="cm">/**</span></td>
      </tr>
      <tr>
        <td id="L5667" class="blob-num js-line-number" data-line-number="5667"></td>
        <td id="LC5667" class="blob-code js-file-line"><span class="cm">   * Gruber dialect</span></td>
      </tr>
      <tr>
        <td id="L5668" class="blob-num js-line-number" data-line-number="5668"></td>
        <td id="LC5668" class="blob-code js-file-line"><span class="cm">   *</span></td>
      </tr>
      <tr>
        <td id="L5669" class="blob-num js-line-number" data-line-number="5669"></td>
        <td id="LC5669" class="blob-code js-file-line"><span class="cm">   * The default dialect that follows the rules set out by John Gruber&#39;s</span></td>
      </tr>
      <tr>
        <td id="L5670" class="blob-num js-line-number" data-line-number="5670"></td>
        <td id="LC5670" class="blob-code js-file-line"><span class="cm">   * markdown.pl as closely as possible. Well actually we follow the behaviour of</span></td>
      </tr>
      <tr>
        <td id="L5671" class="blob-num js-line-number" data-line-number="5671"></td>
        <td id="LC5671" class="blob-code js-file-line"><span class="cm">   * that script which in some places is not exactly what the syntax web page</span></td>
      </tr>
      <tr>
        <td id="L5672" class="blob-num js-line-number" data-line-number="5672"></td>
        <td id="LC5672" class="blob-code js-file-line"><span class="cm">   * says.</span></td>
      </tr>
      <tr>
        <td id="L5673" class="blob-num js-line-number" data-line-number="5673"></td>
        <td id="LC5673" class="blob-code js-file-line"><span class="cm">   **/</span></td>
      </tr>
      <tr>
        <td id="L5674" class="blob-num js-line-number" data-line-number="5674"></td>
        <td id="LC5674" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">Gruber</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5675" class="blob-num js-line-number" data-line-number="5675"></td>
        <td id="LC5675" class="blob-code js-file-line">    <span class="nx">block</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5676" class="blob-num js-line-number" data-line-number="5676"></td>
        <td id="LC5676" class="blob-code js-file-line">      <span class="nx">atxHeader</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">atxHeader</span><span class="p">(</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5677" class="blob-num js-line-number" data-line-number="5677"></td>
        <td id="LC5677" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^(#{1,6})\s*(.*?)\s*#*\s*(?:\n|$)/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5678" class="blob-num js-line-number" data-line-number="5678"></td>
        <td id="LC5678" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5679" class="blob-num js-line-number" data-line-number="5679"></td>
        <td id="LC5679" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">m</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5680" class="blob-num js-line-number" data-line-number="5680"></td>
        <td id="LC5680" class="blob-code js-file-line">          <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5681" class="blob-num js-line-number" data-line-number="5681"></td>
        <td id="LC5681" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5682" class="blob-num js-line-number" data-line-number="5682"></td>
        <td id="LC5682" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">header</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;header&quot;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">level</span><span class="o">:</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">1</span> <span class="p">].</span><span class="nx">length</span> <span class="p">}</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5683" class="blob-num js-line-number" data-line-number="5683"></td>
        <td id="LC5683" class="blob-code js-file-line">        <span class="nb">Array</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">push</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">header</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">processInline</span><span class="p">(</span><span class="nx">m</span><span class="p">[</span> <span class="mi">2</span> <span class="p">]));</span></td>
      </tr>
      <tr>
        <td id="L5684" class="blob-num js-line-number" data-line-number="5684"></td>
        <td id="LC5684" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5685" class="blob-num js-line-number" data-line-number="5685"></td>
        <td id="LC5685" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span> <span class="o">&lt;</span> <span class="nx">block</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5686" class="blob-num js-line-number" data-line-number="5686"></td>
        <td id="LC5686" class="blob-code js-file-line">          <span class="nx">next</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span> <span class="nx">mk_block</span><span class="p">(</span> <span class="nx">block</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span> <span class="p">),</span> <span class="nx">block</span><span class="p">.</span><span class="nx">trailing</span><span class="p">,</span> <span class="nx">block</span><span class="p">.</span><span class="nx">lineNumber</span> <span class="o">+</span> <span class="mi">2</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5687" class="blob-num js-line-number" data-line-number="5687"></td>
        <td id="LC5687" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5688" class="blob-num js-line-number" data-line-number="5688"></td>
        <td id="LC5688" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[</span> <span class="nx">header</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5689" class="blob-num js-line-number" data-line-number="5689"></td>
        <td id="LC5689" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L5690" class="blob-num js-line-number" data-line-number="5690"></td>
        <td id="LC5690" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5691" class="blob-num js-line-number" data-line-number="5691"></td>
        <td id="LC5691" class="blob-code js-file-line">      <span class="nx">setextHeader</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">setextHeader</span><span class="p">(</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5692" class="blob-num js-line-number" data-line-number="5692"></td>
        <td id="LC5692" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^(.*)\n([-=])\2\2+(?:\n|$)/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5693" class="blob-num js-line-number" data-line-number="5693"></td>
        <td id="LC5693" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5694" class="blob-num js-line-number" data-line-number="5694"></td>
        <td id="LC5694" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">m</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5695" class="blob-num js-line-number" data-line-number="5695"></td>
        <td id="LC5695" class="blob-code js-file-line">          <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5696" class="blob-num js-line-number" data-line-number="5696"></td>
        <td id="LC5696" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5697" class="blob-num js-line-number" data-line-number="5697"></td>
        <td id="LC5697" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">level</span> <span class="o">=</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">2</span> <span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;=&quot;</span> <span class="p">)</span> <span class="o">?</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">2</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5698" class="blob-num js-line-number" data-line-number="5698"></td>
        <td id="LC5698" class="blob-code js-file-line">            <span class="nx">header</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;header&quot;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">level</span> <span class="o">:</span> <span class="nx">level</span> <span class="p">},</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">1</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5699" class="blob-num js-line-number" data-line-number="5699"></td>
        <td id="LC5699" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5700" class="blob-num js-line-number" data-line-number="5700"></td>
        <td id="LC5700" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span> <span class="o">&lt;</span> <span class="nx">block</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5701" class="blob-num js-line-number" data-line-number="5701"></td>
        <td id="LC5701" class="blob-code js-file-line">          <span class="nx">next</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span> <span class="nx">mk_block</span><span class="p">(</span> <span class="nx">block</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span> <span class="p">),</span> <span class="nx">block</span><span class="p">.</span><span class="nx">trailing</span><span class="p">,</span> <span class="nx">block</span><span class="p">.</span><span class="nx">lineNumber</span> <span class="o">+</span> <span class="mi">2</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5702" class="blob-num js-line-number" data-line-number="5702"></td>
        <td id="LC5702" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5703" class="blob-num js-line-number" data-line-number="5703"></td>
        <td id="LC5703" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[</span> <span class="nx">header</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5704" class="blob-num js-line-number" data-line-number="5704"></td>
        <td id="LC5704" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L5705" class="blob-num js-line-number" data-line-number="5705"></td>
        <td id="LC5705" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5706" class="blob-num js-line-number" data-line-number="5706"></td>
        <td id="LC5706" class="blob-code js-file-line">      <span class="nx">code</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">code</span><span class="p">(</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5707" class="blob-num js-line-number" data-line-number="5707"></td>
        <td id="LC5707" class="blob-code js-file-line">        <span class="c1">// |    Foo</span></td>
      </tr>
      <tr>
        <td id="L5708" class="blob-num js-line-number" data-line-number="5708"></td>
        <td id="LC5708" class="blob-code js-file-line">        <span class="c1">// |bar</span></td>
      </tr>
      <tr>
        <td id="L5709" class="blob-num js-line-number" data-line-number="5709"></td>
        <td id="LC5709" class="blob-code js-file-line">        <span class="c1">// should be a code block followed by a paragraph. Fun</span></td>
      </tr>
      <tr>
        <td id="L5710" class="blob-num js-line-number" data-line-number="5710"></td>
        <td id="LC5710" class="blob-code js-file-line">        <span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L5711" class="blob-num js-line-number" data-line-number="5711"></td>
        <td id="LC5711" class="blob-code js-file-line">        <span class="c1">// There might also be adjacent code block to merge.</span></td>
      </tr>
      <tr>
        <td id="L5712" class="blob-num js-line-number" data-line-number="5712"></td>
        <td id="LC5712" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5713" class="blob-num js-line-number" data-line-number="5713"></td>
        <td id="LC5713" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">ret</span> <span class="o">=</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L5714" class="blob-num js-line-number" data-line-number="5714"></td>
        <td id="LC5714" class="blob-code js-file-line">            <span class="nx">re</span> <span class="o">=</span> <span class="sr">/^(?: {0,3}\t| {4})(.*)\n?/</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5715" class="blob-num js-line-number" data-line-number="5715"></td>
        <td id="LC5715" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5716" class="blob-num js-line-number" data-line-number="5716"></td>
        <td id="LC5716" class="blob-code js-file-line">        <span class="c1">// 4 spaces + content</span></td>
      </tr>
      <tr>
        <td id="L5717" class="blob-num js-line-number" data-line-number="5717"></td>
        <td id="LC5717" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="nx">re</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5718" class="blob-num js-line-number" data-line-number="5718"></td>
        <td id="LC5718" class="blob-code js-file-line">          <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5719" class="blob-num js-line-number" data-line-number="5719"></td>
        <td id="LC5719" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5720" class="blob-num js-line-number" data-line-number="5720"></td>
        <td id="LC5720" class="blob-code js-file-line">        <span class="nx">block_search</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5721" class="blob-num js-line-number" data-line-number="5721"></td>
        <td id="LC5721" class="blob-code js-file-line">        <span class="k">do</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5722" class="blob-num js-line-number" data-line-number="5722"></td>
        <td id="LC5722" class="blob-code js-file-line">          <span class="c1">// Now pull out the rest of the lines</span></td>
      </tr>
      <tr>
        <td id="L5723" class="blob-num js-line-number" data-line-number="5723"></td>
        <td id="LC5723" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">loop_re_over_block</span><span class="p">(</span></td>
      </tr>
      <tr>
        <td id="L5724" class="blob-num js-line-number" data-line-number="5724"></td>
        <td id="LC5724" class="blob-code js-file-line">                    <span class="nx">re</span><span class="p">,</span> <span class="nx">block</span><span class="p">.</span><span class="nx">valueOf</span><span class="p">(),</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">m</span> <span class="p">)</span> <span class="p">{</span> <span class="nx">ret</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">);</span> <span class="p">}</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5725" class="blob-num js-line-number" data-line-number="5725"></td>
        <td id="LC5725" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5726" class="blob-num js-line-number" data-line-number="5726"></td>
        <td id="LC5726" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">b</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5727" class="blob-num js-line-number" data-line-number="5727"></td>
        <td id="LC5727" class="blob-code js-file-line">            <span class="c1">// Case alluded to in first comment. push it back on as a new block</span></td>
      </tr>
      <tr>
        <td id="L5728" class="blob-num js-line-number" data-line-number="5728"></td>
        <td id="LC5728" class="blob-code js-file-line">            <span class="nx">next</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span> <span class="nx">mk_block</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span> <span class="nx">block</span><span class="p">.</span><span class="nx">trailing</span><span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5729" class="blob-num js-line-number" data-line-number="5729"></td>
        <td id="LC5729" class="blob-code js-file-line">            <span class="k">break</span> <span class="nx">block_search</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5730" class="blob-num js-line-number" data-line-number="5730"></td>
        <td id="LC5730" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5731" class="blob-num js-line-number" data-line-number="5731"></td>
        <td id="LC5731" class="blob-code js-file-line">          <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="nx">next</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5732" class="blob-num js-line-number" data-line-number="5732"></td>
        <td id="LC5732" class="blob-code js-file-line">            <span class="c1">// Check the next block - it might be code too</span></td>
      </tr>
      <tr>
        <td id="L5733" class="blob-num js-line-number" data-line-number="5733"></td>
        <td id="LC5733" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">next</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">match</span><span class="p">(</span> <span class="nx">re</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5734" class="blob-num js-line-number" data-line-number="5734"></td>
        <td id="LC5734" class="blob-code js-file-line">              <span class="k">break</span> <span class="nx">block_search</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5735" class="blob-num js-line-number" data-line-number="5735"></td>
        <td id="LC5735" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5736" class="blob-num js-line-number" data-line-number="5736"></td>
        <td id="LC5736" class="blob-code js-file-line">            <span class="c1">// Pull how how many blanks lines follow - minus two to account for .join</span></td>
      </tr>
      <tr>
        <td id="L5737" class="blob-num js-line-number" data-line-number="5737"></td>
        <td id="LC5737" class="blob-code js-file-line">            <span class="nx">ret</span><span class="p">.</span><span class="nx">push</span> <span class="p">(</span> <span class="nx">block</span><span class="p">.</span><span class="nx">trailing</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/[^\n]/g</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">).</span><span class="nx">substring</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5738" class="blob-num js-line-number" data-line-number="5738"></td>
        <td id="LC5738" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5739" class="blob-num js-line-number" data-line-number="5739"></td>
        <td id="LC5739" class="blob-code js-file-line">            <span class="nx">block</span> <span class="o">=</span> <span class="nx">next</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L5740" class="blob-num js-line-number" data-line-number="5740"></td>
        <td id="LC5740" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5741" class="blob-num js-line-number" data-line-number="5741"></td>
        <td id="LC5741" class="blob-code js-file-line">          <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5742" class="blob-num js-line-number" data-line-number="5742"></td>
        <td id="LC5742" class="blob-code js-file-line">            <span class="k">break</span> <span class="nx">block_search</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5743" class="blob-num js-line-number" data-line-number="5743"></td>
        <td id="LC5743" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5744" class="blob-num js-line-number" data-line-number="5744"></td>
        <td id="LC5744" class="blob-code js-file-line">        <span class="p">}</span> <span class="k">while</span> <span class="p">(</span> <span class="kc">true</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5745" class="blob-num js-line-number" data-line-number="5745"></td>
        <td id="LC5745" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5746" class="blob-num js-line-number" data-line-number="5746"></td>
        <td id="LC5746" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[</span> <span class="p">[</span> <span class="s2">&quot;code_block&quot;</span><span class="p">,</span> <span class="nx">ret</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s2">&quot;\n&quot;</span><span class="p">)</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5747" class="blob-num js-line-number" data-line-number="5747"></td>
        <td id="LC5747" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L5748" class="blob-num js-line-number" data-line-number="5748"></td>
        <td id="LC5748" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5749" class="blob-num js-line-number" data-line-number="5749"></td>
        <td id="LC5749" class="blob-code js-file-line">      <span class="nx">horizRule</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">horizRule</span><span class="p">(</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5750" class="blob-num js-line-number" data-line-number="5750"></td>
        <td id="LC5750" class="blob-code js-file-line">        <span class="c1">// this needs to find any hr in the block to handle abutting blocks</span></td>
      </tr>
      <tr>
        <td id="L5751" class="blob-num js-line-number" data-line-number="5751"></td>
        <td id="LC5751" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^(?:([\s\S]*?)\n)?[ \t]*([-_*])(?:[ \t]*\2){2,}[ \t]*(?:\n([\s\S]*))?$/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5752" class="blob-num js-line-number" data-line-number="5752"></td>
        <td id="LC5752" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5753" class="blob-num js-line-number" data-line-number="5753"></td>
        <td id="LC5753" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">m</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5754" class="blob-num js-line-number" data-line-number="5754"></td>
        <td id="LC5754" class="blob-code js-file-line">          <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5755" class="blob-num js-line-number" data-line-number="5755"></td>
        <td id="LC5755" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5756" class="blob-num js-line-number" data-line-number="5756"></td>
        <td id="LC5756" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">jsonml</span> <span class="o">=</span> <span class="p">[</span> <span class="p">[</span> <span class="s2">&quot;hr&quot;</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5757" class="blob-num js-line-number" data-line-number="5757"></td>
        <td id="LC5757" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5758" class="blob-num js-line-number" data-line-number="5758"></td>
        <td id="LC5758" class="blob-code js-file-line">        <span class="c1">// if there&#39;s a leading abutting block, process it</span></td>
      </tr>
      <tr>
        <td id="L5759" class="blob-num js-line-number" data-line-number="5759"></td>
        <td id="LC5759" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">1</span> <span class="p">]</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5760" class="blob-num js-line-number" data-line-number="5760"></td>
        <td id="LC5760" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">contained</span> <span class="o">=</span> <span class="nx">mk_block</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">1</span> <span class="p">],</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="nx">block</span><span class="p">.</span><span class="nx">lineNumber</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5761" class="blob-num js-line-number" data-line-number="5761"></td>
        <td id="LC5761" class="blob-code js-file-line">          <span class="nx">jsonml</span><span class="p">.</span><span class="nx">unshift</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span> <span class="nx">jsonml</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">toTree</span><span class="p">(</span> <span class="nx">contained</span><span class="p">,</span> <span class="p">[]</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5762" class="blob-num js-line-number" data-line-number="5762"></td>
        <td id="LC5762" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5763" class="blob-num js-line-number" data-line-number="5763"></td>
        <td id="LC5763" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5764" class="blob-num js-line-number" data-line-number="5764"></td>
        <td id="LC5764" class="blob-code js-file-line">        <span class="c1">// if there&#39;s a trailing abutting block, stick it into next</span></td>
      </tr>
      <tr>
        <td id="L5765" class="blob-num js-line-number" data-line-number="5765"></td>
        <td id="LC5765" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">3</span> <span class="p">]</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5766" class="blob-num js-line-number" data-line-number="5766"></td>
        <td id="LC5766" class="blob-code js-file-line">          <span class="nx">next</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span> <span class="nx">mk_block</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">3</span> <span class="p">],</span> <span class="nx">block</span><span class="p">.</span><span class="nx">trailing</span><span class="p">,</span> <span class="nx">block</span><span class="p">.</span><span class="nx">lineNumber</span> <span class="o">+</span> <span class="mi">1</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5767" class="blob-num js-line-number" data-line-number="5767"></td>
        <td id="LC5767" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5768" class="blob-num js-line-number" data-line-number="5768"></td>
        <td id="LC5768" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">jsonml</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5769" class="blob-num js-line-number" data-line-number="5769"></td>
        <td id="LC5769" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L5770" class="blob-num js-line-number" data-line-number="5770"></td>
        <td id="LC5770" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5771" class="blob-num js-line-number" data-line-number="5771"></td>
        <td id="LC5771" class="blob-code js-file-line">      <span class="c1">// There are two types of lists. Tight and loose. Tight lists have no whitespace</span></td>
      </tr>
      <tr>
        <td id="L5772" class="blob-num js-line-number" data-line-number="5772"></td>
        <td id="LC5772" class="blob-code js-file-line">      <span class="c1">// between the items (and result in text just in the &lt;li&gt;) and loose lists,</span></td>
      </tr>
      <tr>
        <td id="L5773" class="blob-num js-line-number" data-line-number="5773"></td>
        <td id="LC5773" class="blob-code js-file-line">      <span class="c1">// which have an empty line between list items, resulting in (one or more)</span></td>
      </tr>
      <tr>
        <td id="L5774" class="blob-num js-line-number" data-line-number="5774"></td>
        <td id="LC5774" class="blob-code js-file-line">      <span class="c1">// paragraphs inside the &lt;li&gt;.</span></td>
      </tr>
      <tr>
        <td id="L5775" class="blob-num js-line-number" data-line-number="5775"></td>
        <td id="LC5775" class="blob-code js-file-line">      <span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L5776" class="blob-num js-line-number" data-line-number="5776"></td>
        <td id="LC5776" class="blob-code js-file-line">      <span class="c1">// There are all sorts weird edge cases about the original markdown.pl&#39;s</span></td>
      </tr>
      <tr>
        <td id="L5777" class="blob-num js-line-number" data-line-number="5777"></td>
        <td id="LC5777" class="blob-code js-file-line">      <span class="c1">// handling of lists:</span></td>
      </tr>
      <tr>
        <td id="L5778" class="blob-num js-line-number" data-line-number="5778"></td>
        <td id="LC5778" class="blob-code js-file-line">      <span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L5779" class="blob-num js-line-number" data-line-number="5779"></td>
        <td id="LC5779" class="blob-code js-file-line">      <span class="c1">// * Nested lists are supposed to be indented by four chars per level. But</span></td>
      </tr>
      <tr>
        <td id="L5780" class="blob-num js-line-number" data-line-number="5780"></td>
        <td id="LC5780" class="blob-code js-file-line">      <span class="c1">//   if they aren&#39;t, you can get a nested list by indenting by less than</span></td>
      </tr>
      <tr>
        <td id="L5781" class="blob-num js-line-number" data-line-number="5781"></td>
        <td id="LC5781" class="blob-code js-file-line">      <span class="c1">//   four so long as the indent doesn&#39;t match an indent of an existing list</span></td>
      </tr>
      <tr>
        <td id="L5782" class="blob-num js-line-number" data-line-number="5782"></td>
        <td id="LC5782" class="blob-code js-file-line">      <span class="c1">//   item in the &#39;nest stack&#39;.</span></td>
      </tr>
      <tr>
        <td id="L5783" class="blob-num js-line-number" data-line-number="5783"></td>
        <td id="LC5783" class="blob-code js-file-line">      <span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L5784" class="blob-num js-line-number" data-line-number="5784"></td>
        <td id="LC5784" class="blob-code js-file-line">      <span class="c1">// * The type of the list (bullet or number) is controlled just by the</span></td>
      </tr>
      <tr>
        <td id="L5785" class="blob-num js-line-number" data-line-number="5785"></td>
        <td id="LC5785" class="blob-code js-file-line">      <span class="c1">//    first item at the indent. Subsequent changes are ignored unless they</span></td>
      </tr>
      <tr>
        <td id="L5786" class="blob-num js-line-number" data-line-number="5786"></td>
        <td id="LC5786" class="blob-code js-file-line">      <span class="c1">//    are for nested lists</span></td>
      </tr>
      <tr>
        <td id="L5787" class="blob-num js-line-number" data-line-number="5787"></td>
        <td id="LC5787" class="blob-code js-file-line">      <span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L5788" class="blob-num js-line-number" data-line-number="5788"></td>
        <td id="LC5788" class="blob-code js-file-line">      <span class="nx">lists</span><span class="o">:</span> <span class="p">(</span><span class="kd">function</span><span class="p">(</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5789" class="blob-num js-line-number" data-line-number="5789"></td>
        <td id="LC5789" class="blob-code js-file-line">        <span class="c1">// Use a closure to hide a few variables.</span></td>
      </tr>
      <tr>
        <td id="L5790" class="blob-num js-line-number" data-line-number="5790"></td>
        <td id="LC5790" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">any_list</span> <span class="o">=</span> <span class="s2">&quot;[*+-]|\\d+\\.&quot;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5791" class="blob-num js-line-number" data-line-number="5791"></td>
        <td id="LC5791" class="blob-code js-file-line">            <span class="nx">bullet_list</span> <span class="o">=</span> <span class="sr">/[*+-]/</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5792" class="blob-num js-line-number" data-line-number="5792"></td>
        <td id="LC5792" class="blob-code js-file-line">            <span class="c1">// Capture leading indent as it matters for determining nested lists.</span></td>
      </tr>
      <tr>
        <td id="L5793" class="blob-num js-line-number" data-line-number="5793"></td>
        <td id="LC5793" class="blob-code js-file-line">            <span class="nx">is_list_re</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span> <span class="s2">&quot;^( {0,3})(&quot;</span> <span class="o">+</span> <span class="nx">any_list</span> <span class="o">+</span> <span class="s2">&quot;)[ \t]+&quot;</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L5794" class="blob-num js-line-number" data-line-number="5794"></td>
        <td id="LC5794" class="blob-code js-file-line">            <span class="nx">indent_re</span> <span class="o">=</span> <span class="s2">&quot;(?: {0,3}\\t| {4})&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5795" class="blob-num js-line-number" data-line-number="5795"></td>
        <td id="LC5795" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5796" class="blob-num js-line-number" data-line-number="5796"></td>
        <td id="LC5796" class="blob-code js-file-line">        <span class="c1">// TODO: Cache this regexp for certain depths.</span></td>
      </tr>
      <tr>
        <td id="L5797" class="blob-num js-line-number" data-line-number="5797"></td>
        <td id="LC5797" class="blob-code js-file-line">        <span class="c1">// Create a regexp suitable for matching an li for a given stack depth</span></td>
      </tr>
      <tr>
        <td id="L5798" class="blob-num js-line-number" data-line-number="5798"></td>
        <td id="LC5798" class="blob-code js-file-line">        <span class="kd">function</span> <span class="nx">regex_for_depth</span><span class="p">(</span> <span class="nx">depth</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5799" class="blob-num js-line-number" data-line-number="5799"></td>
        <td id="LC5799" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5800" class="blob-num js-line-number" data-line-number="5800"></td>
        <td id="LC5800" class="blob-code js-file-line">          <span class="k">return</span> <span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span></td>
      </tr>
      <tr>
        <td id="L5801" class="blob-num js-line-number" data-line-number="5801"></td>
        <td id="LC5801" class="blob-code js-file-line">            <span class="c1">// m[1] = indent, m[2] = list_type</span></td>
      </tr>
      <tr>
        <td id="L5802" class="blob-num js-line-number" data-line-number="5802"></td>
        <td id="LC5802" class="blob-code js-file-line">            <span class="s2">&quot;(?:^(&quot;</span> <span class="o">+</span> <span class="nx">indent_re</span> <span class="o">+</span> <span class="s2">&quot;{0,&quot;</span> <span class="o">+</span> <span class="nx">depth</span> <span class="o">+</span> <span class="s2">&quot;} {0,3})(&quot;</span> <span class="o">+</span> <span class="nx">any_list</span> <span class="o">+</span> <span class="s2">&quot;)\\s+)|&quot;</span> <span class="o">+</span></td>
      </tr>
      <tr>
        <td id="L5803" class="blob-num js-line-number" data-line-number="5803"></td>
        <td id="LC5803" class="blob-code js-file-line">            <span class="c1">// m[3] = cont</span></td>
      </tr>
      <tr>
        <td id="L5804" class="blob-num js-line-number" data-line-number="5804"></td>
        <td id="LC5804" class="blob-code js-file-line">            <span class="s2">&quot;(^&quot;</span> <span class="o">+</span> <span class="nx">indent_re</span> <span class="o">+</span> <span class="s2">&quot;{0,&quot;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">depth</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;}[ ]{0,4})&quot;</span></td>
      </tr>
      <tr>
        <td id="L5805" class="blob-num js-line-number" data-line-number="5805"></td>
        <td id="LC5805" class="blob-code js-file-line">          <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5806" class="blob-num js-line-number" data-line-number="5806"></td>
        <td id="LC5806" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5807" class="blob-num js-line-number" data-line-number="5807"></td>
        <td id="LC5807" class="blob-code js-file-line">        <span class="kd">function</span> <span class="nx">expand_tab</span><span class="p">(</span> <span class="nx">input</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5808" class="blob-num js-line-number" data-line-number="5808"></td>
        <td id="LC5808" class="blob-code js-file-line">          <span class="k">return</span> <span class="nx">input</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/ {0,3}\t/g</span><span class="p">,</span> <span class="s2">&quot;    &quot;</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5809" class="blob-num js-line-number" data-line-number="5809"></td>
        <td id="LC5809" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5810" class="blob-num js-line-number" data-line-number="5810"></td>
        <td id="LC5810" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5811" class="blob-num js-line-number" data-line-number="5811"></td>
        <td id="LC5811" class="blob-code js-file-line">        <span class="c1">// Add inline content `inline` to `li`. inline comes from processInline</span></td>
      </tr>
      <tr>
        <td id="L5812" class="blob-num js-line-number" data-line-number="5812"></td>
        <td id="LC5812" class="blob-code js-file-line">        <span class="c1">// so is an array of content</span></td>
      </tr>
      <tr>
        <td id="L5813" class="blob-num js-line-number" data-line-number="5813"></td>
        <td id="LC5813" class="blob-code js-file-line">        <span class="kd">function</span> <span class="nx">add</span><span class="p">(</span><span class="nx">li</span><span class="p">,</span> <span class="nx">loose</span><span class="p">,</span> <span class="nx">inline</span><span class="p">,</span> <span class="nx">nl</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5814" class="blob-num js-line-number" data-line-number="5814"></td>
        <td id="LC5814" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">loose</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5815" class="blob-num js-line-number" data-line-number="5815"></td>
        <td id="LC5815" class="blob-code js-file-line">            <span class="nx">li</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="p">[</span> <span class="s2">&quot;para&quot;</span> <span class="p">].</span><span class="nx">concat</span><span class="p">(</span><span class="nx">inline</span><span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5816" class="blob-num js-line-number" data-line-number="5816"></td>
        <td id="LC5816" class="blob-code js-file-line">            <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5817" class="blob-num js-line-number" data-line-number="5817"></td>
        <td id="LC5817" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5818" class="blob-num js-line-number" data-line-number="5818"></td>
        <td id="LC5818" class="blob-code js-file-line">          <span class="c1">// Hmmm, should this be any block level element or just paras?</span></td>
      </tr>
      <tr>
        <td id="L5819" class="blob-num js-line-number" data-line-number="5819"></td>
        <td id="LC5819" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">add_to</span> <span class="o">=</span> <span class="nx">li</span><span class="p">[</span><span class="nx">li</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">instanceof</span> <span class="nb">Array</span> <span class="o">&amp;&amp;</span> <span class="nx">li</span><span class="p">[</span><span class="nx">li</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;para&quot;</span></td>
      </tr>
      <tr>
        <td id="L5820" class="blob-num js-line-number" data-line-number="5820"></td>
        <td id="LC5820" class="blob-code js-file-line">                     <span class="o">?</span> <span class="nx">li</span><span class="p">[</span><span class="nx">li</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span><span class="mi">1</span><span class="p">]</span></td>
      </tr>
      <tr>
        <td id="L5821" class="blob-num js-line-number" data-line-number="5821"></td>
        <td id="LC5821" class="blob-code js-file-line">                     <span class="o">:</span> <span class="nx">li</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5822" class="blob-num js-line-number" data-line-number="5822"></td>
        <td id="LC5822" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5823" class="blob-num js-line-number" data-line-number="5823"></td>
        <td id="LC5823" class="blob-code js-file-line">          <span class="c1">// If there is already some content in this list, add the new line in</span></td>
      </tr>
      <tr>
        <td id="L5824" class="blob-num js-line-number" data-line-number="5824"></td>
        <td id="LC5824" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">nl</span> <span class="o">&amp;&amp;</span> <span class="nx">li</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5825" class="blob-num js-line-number" data-line-number="5825"></td>
        <td id="LC5825" class="blob-code js-file-line">            <span class="nx">inline</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span><span class="nx">nl</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5826" class="blob-num js-line-number" data-line-number="5826"></td>
        <td id="LC5826" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5827" class="blob-num js-line-number" data-line-number="5827"></td>
        <td id="LC5827" class="blob-code js-file-line">          <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">inline</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5828" class="blob-num js-line-number" data-line-number="5828"></td>
        <td id="LC5828" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">what</span> <span class="o">=</span> <span class="nx">inline</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L5829" class="blob-num js-line-number" data-line-number="5829"></td>
        <td id="LC5829" class="blob-code js-file-line">                <span class="nx">is_str</span> <span class="o">=</span> <span class="k">typeof</span> <span class="nx">what</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5830" class="blob-num js-line-number" data-line-number="5830"></td>
        <td id="LC5830" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">(</span> <span class="nx">is_str</span> <span class="o">&amp;&amp;</span> <span class="nx">add_to</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">add_to</span><span class="p">[</span><span class="nx">add_to</span><span class="p">.</span><span class="nx">length</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5831" class="blob-num js-line-number" data-line-number="5831"></td>
        <td id="LC5831" class="blob-code js-file-line">              <span class="nx">add_to</span><span class="p">[</span> <span class="nx">add_to</span><span class="p">.</span><span class="nx">length</span><span class="o">-</span><span class="mi">1</span> <span class="p">]</span> <span class="o">+=</span> <span class="nx">what</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5832" class="blob-num js-line-number" data-line-number="5832"></td>
        <td id="LC5832" class="blob-code js-file-line">            <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L5833" class="blob-num js-line-number" data-line-number="5833"></td>
        <td id="LC5833" class="blob-code js-file-line">              <span class="nx">add_to</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">what</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5834" class="blob-num js-line-number" data-line-number="5834"></td>
        <td id="LC5834" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5835" class="blob-num js-line-number" data-line-number="5835"></td>
        <td id="LC5835" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5836" class="blob-num js-line-number" data-line-number="5836"></td>
        <td id="LC5836" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5837" class="blob-num js-line-number" data-line-number="5837"></td>
        <td id="LC5837" class="blob-code js-file-line">        <span class="c1">// contained means have an indent greater than the current one. On</span></td>
      </tr>
      <tr>
        <td id="L5838" class="blob-num js-line-number" data-line-number="5838"></td>
        <td id="LC5838" class="blob-code js-file-line">        <span class="c1">// *every* line in the block</span></td>
      </tr>
      <tr>
        <td id="L5839" class="blob-num js-line-number" data-line-number="5839"></td>
        <td id="LC5839" class="blob-code js-file-line">        <span class="kd">function</span> <span class="nx">get_contained_blocks</span><span class="p">(</span> <span class="nx">depth</span><span class="p">,</span> <span class="nx">blocks</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5840" class="blob-num js-line-number" data-line-number="5840"></td>
        <td id="LC5840" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5841" class="blob-num js-line-number" data-line-number="5841"></td>
        <td id="LC5841" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">re</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span> <span class="s2">&quot;^(&quot;</span> <span class="o">+</span> <span class="nx">indent_re</span> <span class="o">+</span> <span class="s2">&quot;{&quot;</span> <span class="o">+</span> <span class="nx">depth</span> <span class="o">+</span> <span class="s2">&quot;}.*?\\n?)*$&quot;</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L5842" class="blob-num js-line-number" data-line-number="5842"></td>
        <td id="LC5842" class="blob-code js-file-line">              <span class="nx">replace</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span><span class="s2">&quot;^&quot;</span> <span class="o">+</span> <span class="nx">indent_re</span> <span class="o">+</span> <span class="s2">&quot;{&quot;</span> <span class="o">+</span> <span class="nx">depth</span> <span class="o">+</span> <span class="s2">&quot;}&quot;</span><span class="p">,</span> <span class="s2">&quot;gm&quot;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L5843" class="blob-num js-line-number" data-line-number="5843"></td>
        <td id="LC5843" class="blob-code js-file-line">              <span class="nx">ret</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L5844" class="blob-num js-line-number" data-line-number="5844"></td>
        <td id="LC5844" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5845" class="blob-num js-line-number" data-line-number="5845"></td>
        <td id="LC5845" class="blob-code js-file-line">          <span class="k">while</span> <span class="p">(</span> <span class="nx">blocks</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5846" class="blob-num js-line-number" data-line-number="5846"></td>
        <td id="LC5846" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">(</span> <span class="nx">re</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span> <span class="nx">blocks</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5847" class="blob-num js-line-number" data-line-number="5847"></td>
        <td id="LC5847" class="blob-code js-file-line">              <span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="nx">blocks</span><span class="p">.</span><span class="nx">shift</span><span class="p">(),</span></td>
      </tr>
      <tr>
        <td id="L5848" class="blob-num js-line-number" data-line-number="5848"></td>
        <td id="LC5848" class="blob-code js-file-line">                  <span class="c1">// Now remove that indent</span></td>
      </tr>
      <tr>
        <td id="L5849" class="blob-num js-line-number" data-line-number="5849"></td>
        <td id="LC5849" class="blob-code js-file-line">                  <span class="nx">x</span> <span class="o">=</span> <span class="nx">b</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="nx">replace</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5850" class="blob-num js-line-number" data-line-number="5850"></td>
        <td id="LC5850" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5851" class="blob-num js-line-number" data-line-number="5851"></td>
        <td id="LC5851" class="blob-code js-file-line">              <span class="nx">ret</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">mk_block</span><span class="p">(</span> <span class="nx">x</span><span class="p">,</span> <span class="nx">b</span><span class="p">.</span><span class="nx">trailing</span><span class="p">,</span> <span class="nx">b</span><span class="p">.</span><span class="nx">lineNumber</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5852" class="blob-num js-line-number" data-line-number="5852"></td>
        <td id="LC5852" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5853" class="blob-num js-line-number" data-line-number="5853"></td>
        <td id="LC5853" class="blob-code js-file-line">            <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L5854" class="blob-num js-line-number" data-line-number="5854"></td>
        <td id="LC5854" class="blob-code js-file-line">              <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5855" class="blob-num js-line-number" data-line-number="5855"></td>
        <td id="LC5855" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5856" class="blob-num js-line-number" data-line-number="5856"></td>
        <td id="LC5856" class="blob-code js-file-line">          <span class="k">return</span> <span class="nx">ret</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5857" class="blob-num js-line-number" data-line-number="5857"></td>
        <td id="LC5857" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5858" class="blob-num js-line-number" data-line-number="5858"></td>
        <td id="LC5858" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5859" class="blob-num js-line-number" data-line-number="5859"></td>
        <td id="LC5859" class="blob-code js-file-line">        <span class="c1">// passed to stack.forEach to turn list items up the stack into paras</span></td>
      </tr>
      <tr>
        <td id="L5860" class="blob-num js-line-number" data-line-number="5860"></td>
        <td id="LC5860" class="blob-code js-file-line">        <span class="kd">function</span> <span class="nx">paragraphify</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">stack</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5861" class="blob-num js-line-number" data-line-number="5861"></td>
        <td id="LC5861" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">list</span> <span class="o">=</span> <span class="nx">s</span><span class="p">.</span><span class="nx">list</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5862" class="blob-num js-line-number" data-line-number="5862"></td>
        <td id="LC5862" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">last_li</span> <span class="o">=</span> <span class="nx">list</span><span class="p">[</span><span class="nx">list</span><span class="p">.</span><span class="nx">length</span><span class="o">-</span><span class="mi">1</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5863" class="blob-num js-line-number" data-line-number="5863"></td>
        <td id="LC5863" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5864" class="blob-num js-line-number" data-line-number="5864"></td>
        <td id="LC5864" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">last_li</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">instanceof</span> <span class="nb">Array</span> <span class="o">&amp;&amp;</span> <span class="nx">last_li</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;para&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5865" class="blob-num js-line-number" data-line-number="5865"></td>
        <td id="LC5865" class="blob-code js-file-line">            <span class="k">return</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5866" class="blob-num js-line-number" data-line-number="5866"></td>
        <td id="LC5866" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">===</span> <span class="nx">stack</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5867" class="blob-num js-line-number" data-line-number="5867"></td>
        <td id="LC5867" class="blob-code js-file-line">            <span class="c1">// Last stack frame</span></td>
      </tr>
      <tr>
        <td id="L5868" class="blob-num js-line-number" data-line-number="5868"></td>
        <td id="LC5868" class="blob-code js-file-line">            <span class="c1">// Keep the same array, but replace the contents</span></td>
      </tr>
      <tr>
        <td id="L5869" class="blob-num js-line-number" data-line-number="5869"></td>
        <td id="LC5869" class="blob-code js-file-line">            <span class="nx">last_li</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="p">[</span><span class="s2">&quot;para&quot;</span><span class="p">].</span><span class="nx">concat</span><span class="p">(</span> <span class="nx">last_li</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nx">last_li</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5870" class="blob-num js-line-number" data-line-number="5870"></td>
        <td id="LC5870" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5871" class="blob-num js-line-number" data-line-number="5871"></td>
        <td id="LC5871" class="blob-code js-file-line">          <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5872" class="blob-num js-line-number" data-line-number="5872"></td>
        <td id="LC5872" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">sublist</span> <span class="o">=</span> <span class="nx">last_li</span><span class="p">.</span><span class="nx">pop</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L5873" class="blob-num js-line-number" data-line-number="5873"></td>
        <td id="LC5873" class="blob-code js-file-line">            <span class="nx">last_li</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="p">[</span><span class="s2">&quot;para&quot;</span><span class="p">].</span><span class="nx">concat</span><span class="p">(</span> <span class="nx">last_li</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nx">last_li</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">),</span> <span class="nx">sublist</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5874" class="blob-num js-line-number" data-line-number="5874"></td>
        <td id="LC5874" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5875" class="blob-num js-line-number" data-line-number="5875"></td>
        <td id="LC5875" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5876" class="blob-num js-line-number" data-line-number="5876"></td>
        <td id="LC5876" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5877" class="blob-num js-line-number" data-line-number="5877"></td>
        <td id="LC5877" class="blob-code js-file-line">        <span class="c1">// The matcher function</span></td>
      </tr>
      <tr>
        <td id="L5878" class="blob-num js-line-number" data-line-number="5878"></td>
        <td id="LC5878" class="blob-code js-file-line">        <span class="k">return</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5879" class="blob-num js-line-number" data-line-number="5879"></td>
        <td id="LC5879" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="nx">is_list_re</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5880" class="blob-num js-line-number" data-line-number="5880"></td>
        <td id="LC5880" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">m</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5881" class="blob-num js-line-number" data-line-number="5881"></td>
        <td id="LC5881" class="blob-code js-file-line">            <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5882" class="blob-num js-line-number" data-line-number="5882"></td>
        <td id="LC5882" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5883" class="blob-num js-line-number" data-line-number="5883"></td>
        <td id="LC5883" class="blob-code js-file-line">          <span class="kd">function</span> <span class="nx">make_list</span><span class="p">(</span> <span class="nx">m</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5884" class="blob-num js-line-number" data-line-number="5884"></td>
        <td id="LC5884" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">list</span> <span class="o">=</span> <span class="nx">bullet_list</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5885" class="blob-num js-line-number" data-line-number="5885"></td>
        <td id="LC5885" class="blob-code js-file-line">                     <span class="o">?</span> <span class="p">[</span><span class="s2">&quot;bulletlist&quot;</span><span class="p">]</span></td>
      </tr>
      <tr>
        <td id="L5886" class="blob-num js-line-number" data-line-number="5886"></td>
        <td id="LC5886" class="blob-code js-file-line">                     <span class="o">:</span> <span class="p">[</span><span class="s2">&quot;numberlist&quot;</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5887" class="blob-num js-line-number" data-line-number="5887"></td>
        <td id="LC5887" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5888" class="blob-num js-line-number" data-line-number="5888"></td>
        <td id="LC5888" class="blob-code js-file-line">            <span class="nx">stack</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="p">{</span> <span class="nx">list</span><span class="o">:</span> <span class="nx">list</span><span class="p">,</span> <span class="nx">indent</span><span class="o">:</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">}</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5889" class="blob-num js-line-number" data-line-number="5889"></td>
        <td id="LC5889" class="blob-code js-file-line">            <span class="k">return</span> <span class="nx">list</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5890" class="blob-num js-line-number" data-line-number="5890"></td>
        <td id="LC5890" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5891" class="blob-num js-line-number" data-line-number="5891"></td>
        <td id="LC5891" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5892" class="blob-num js-line-number" data-line-number="5892"></td>
        <td id="LC5892" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5893" class="blob-num js-line-number" data-line-number="5893"></td>
        <td id="LC5893" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">stack</span> <span class="o">=</span> <span class="p">[],</span> <span class="c1">// Stack of lists for nesting.</span></td>
      </tr>
      <tr>
        <td id="L5894" class="blob-num js-line-number" data-line-number="5894"></td>
        <td id="LC5894" class="blob-code js-file-line">              <span class="nx">list</span> <span class="o">=</span> <span class="nx">make_list</span><span class="p">(</span> <span class="nx">m</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L5895" class="blob-num js-line-number" data-line-number="5895"></td>
        <td id="LC5895" class="blob-code js-file-line">              <span class="nx">last_li</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5896" class="blob-num js-line-number" data-line-number="5896"></td>
        <td id="LC5896" class="blob-code js-file-line">              <span class="nx">loose</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L5897" class="blob-num js-line-number" data-line-number="5897"></td>
        <td id="LC5897" class="blob-code js-file-line">              <span class="nx">ret</span> <span class="o">=</span> <span class="p">[</span> <span class="nx">stack</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">list</span> <span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L5898" class="blob-num js-line-number" data-line-number="5898"></td>
        <td id="LC5898" class="blob-code js-file-line">              <span class="nx">i</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5899" class="blob-num js-line-number" data-line-number="5899"></td>
        <td id="LC5899" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5900" class="blob-num js-line-number" data-line-number="5900"></td>
        <td id="LC5900" class="blob-code js-file-line">          <span class="c1">// Loop to search over block looking for inner block elements and loose lists</span></td>
      </tr>
      <tr>
        <td id="L5901" class="blob-num js-line-number" data-line-number="5901"></td>
        <td id="LC5901" class="blob-code js-file-line">          <span class="nx">loose_search</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5902" class="blob-num js-line-number" data-line-number="5902"></td>
        <td id="LC5902" class="blob-code js-file-line">          <span class="k">while</span> <span class="p">(</span> <span class="kc">true</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5903" class="blob-num js-line-number" data-line-number="5903"></td>
        <td id="LC5903" class="blob-code js-file-line">            <span class="c1">// Split into lines preserving new lines at end of line</span></td>
      </tr>
      <tr>
        <td id="L5904" class="blob-num js-line-number" data-line-number="5904"></td>
        <td id="LC5904" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">lines</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span> <span class="sr">/(?=\n)/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5905" class="blob-num js-line-number" data-line-number="5905"></td>
        <td id="LC5905" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5906" class="blob-num js-line-number" data-line-number="5906"></td>
        <td id="LC5906" class="blob-code js-file-line">            <span class="c1">// We have to grab all lines for a li and call processInline on them</span></td>
      </tr>
      <tr>
        <td id="L5907" class="blob-num js-line-number" data-line-number="5907"></td>
        <td id="LC5907" class="blob-code js-file-line">            <span class="c1">// once as there are some inline things that can span lines.</span></td>
      </tr>
      <tr>
        <td id="L5908" class="blob-num js-line-number" data-line-number="5908"></td>
        <td id="LC5908" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">li_accumulate</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="nx">nl</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5909" class="blob-num js-line-number" data-line-number="5909"></td>
        <td id="LC5909" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5910" class="blob-num js-line-number" data-line-number="5910"></td>
        <td id="LC5910" class="blob-code js-file-line">            <span class="c1">// Loop over the lines in this block looking for tight lists.</span></td>
      </tr>
      <tr>
        <td id="L5911" class="blob-num js-line-number" data-line-number="5911"></td>
        <td id="LC5911" class="blob-code js-file-line">            <span class="nx">tight_search</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L5912" class="blob-num js-line-number" data-line-number="5912"></td>
        <td id="LC5912" class="blob-code js-file-line">            <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">line_no</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">line_no</span> <span class="o">&lt;</span> <span class="nx">lines</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">line_no</span><span class="o">++</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5913" class="blob-num js-line-number" data-line-number="5913"></td>
        <td id="LC5913" class="blob-code js-file-line">              <span class="nx">nl</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5914" class="blob-num js-line-number" data-line-number="5914"></td>
        <td id="LC5914" class="blob-code js-file-line">              <span class="kd">var</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">lines</span><span class="p">[</span><span class="nx">line_no</span><span class="p">].</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/^\n/</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">n</span><span class="p">)</span> <span class="p">{</span> <span class="nx">nl</span> <span class="o">=</span> <span class="nx">n</span><span class="p">;</span> <span class="k">return</span> <span class="s2">&quot;&quot;</span><span class="p">;</span> <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L5915" class="blob-num js-line-number" data-line-number="5915"></td>
        <td id="LC5915" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5916" class="blob-num js-line-number" data-line-number="5916"></td>
        <td id="LC5916" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5917" class="blob-num js-line-number" data-line-number="5917"></td>
        <td id="LC5917" class="blob-code js-file-line">              <span class="c1">// TODO: really should cache this</span></td>
      </tr>
      <tr>
        <td id="L5918" class="blob-num js-line-number" data-line-number="5918"></td>
        <td id="LC5918" class="blob-code js-file-line">              <span class="kd">var</span> <span class="nx">line_re</span> <span class="o">=</span> <span class="nx">regex_for_depth</span><span class="p">(</span> <span class="nx">stack</span><span class="p">.</span><span class="nx">length</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5919" class="blob-num js-line-number" data-line-number="5919"></td>
        <td id="LC5919" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5920" class="blob-num js-line-number" data-line-number="5920"></td>
        <td id="LC5920" class="blob-code js-file-line">              <span class="nx">m</span> <span class="o">=</span> <span class="nx">l</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="nx">line_re</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5921" class="blob-num js-line-number" data-line-number="5921"></td>
        <td id="LC5921" class="blob-code js-file-line">              <span class="c1">//print( &quot;line:&quot;, uneval(l), &quot;\nline match:&quot;, uneval(m) );</span></td>
      </tr>
      <tr>
        <td id="L5922" class="blob-num js-line-number" data-line-number="5922"></td>
        <td id="LC5922" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5923" class="blob-num js-line-number" data-line-number="5923"></td>
        <td id="LC5923" class="blob-code js-file-line">              <span class="c1">// We have a list item</span></td>
      </tr>
      <tr>
        <td id="L5924" class="blob-num js-line-number" data-line-number="5924"></td>
        <td id="LC5924" class="blob-code js-file-line">              <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">undefined</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5925" class="blob-num js-line-number" data-line-number="5925"></td>
        <td id="LC5925" class="blob-code js-file-line">                <span class="c1">// Process the previous list item, if any</span></td>
      </tr>
      <tr>
        <td id="L5926" class="blob-num js-line-number" data-line-number="5926"></td>
        <td id="LC5926" class="blob-code js-file-line">                <span class="k">if</span> <span class="p">(</span> <span class="nx">li_accumulate</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5927" class="blob-num js-line-number" data-line-number="5927"></td>
        <td id="LC5927" class="blob-code js-file-line">                  <span class="nx">add</span><span class="p">(</span> <span class="nx">last_li</span><span class="p">,</span> <span class="nx">loose</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">processInline</span><span class="p">(</span> <span class="nx">li_accumulate</span> <span class="p">),</span> <span class="nx">nl</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5928" class="blob-num js-line-number" data-line-number="5928"></td>
        <td id="LC5928" class="blob-code js-file-line">                  <span class="c1">// Loose mode will have been dealt with. Reset it</span></td>
      </tr>
      <tr>
        <td id="L5929" class="blob-num js-line-number" data-line-number="5929"></td>
        <td id="LC5929" class="blob-code js-file-line">                  <span class="nx">loose</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5930" class="blob-num js-line-number" data-line-number="5930"></td>
        <td id="LC5930" class="blob-code js-file-line">                  <span class="nx">li_accumulate</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5931" class="blob-num js-line-number" data-line-number="5931"></td>
        <td id="LC5931" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5932" class="blob-num js-line-number" data-line-number="5932"></td>
        <td id="LC5932" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5933" class="blob-num js-line-number" data-line-number="5933"></td>
        <td id="LC5933" class="blob-code js-file-line">                <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nx">expand_tab</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5934" class="blob-num js-line-number" data-line-number="5934"></td>
        <td id="LC5934" class="blob-code js-file-line">                <span class="kd">var</span> <span class="nx">wanted_depth</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">length</span><span class="o">/</span><span class="mi">4</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5935" class="blob-num js-line-number" data-line-number="5935"></td>
        <td id="LC5935" class="blob-code js-file-line">                <span class="c1">//print( &quot;want:&quot;, wanted_depth, &quot;stack:&quot;, stack.length);</span></td>
      </tr>
      <tr>
        <td id="L5936" class="blob-num js-line-number" data-line-number="5936"></td>
        <td id="LC5936" class="blob-code js-file-line">                <span class="k">if</span> <span class="p">(</span> <span class="nx">wanted_depth</span> <span class="o">&gt;</span> <span class="nx">stack</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5937" class="blob-num js-line-number" data-line-number="5937"></td>
        <td id="LC5937" class="blob-code js-file-line">                  <span class="c1">// Deep enough for a nested list outright</span></td>
      </tr>
      <tr>
        <td id="L5938" class="blob-num js-line-number" data-line-number="5938"></td>
        <td id="LC5938" class="blob-code js-file-line">                  <span class="c1">//print ( &quot;new nested list&quot; );</span></td>
      </tr>
      <tr>
        <td id="L5939" class="blob-num js-line-number" data-line-number="5939"></td>
        <td id="LC5939" class="blob-code js-file-line">                  <span class="nx">list</span> <span class="o">=</span> <span class="nx">make_list</span><span class="p">(</span> <span class="nx">m</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5940" class="blob-num js-line-number" data-line-number="5940"></td>
        <td id="LC5940" class="blob-code js-file-line">                  <span class="nx">last_li</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">list</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5941" class="blob-num js-line-number" data-line-number="5941"></td>
        <td id="LC5941" class="blob-code js-file-line">                  <span class="nx">last_li</span> <span class="o">=</span> <span class="nx">list</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;listitem&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5942" class="blob-num js-line-number" data-line-number="5942"></td>
        <td id="LC5942" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5943" class="blob-num js-line-number" data-line-number="5943"></td>
        <td id="LC5943" class="blob-code js-file-line">                <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5944" class="blob-num js-line-number" data-line-number="5944"></td>
        <td id="LC5944" class="blob-code js-file-line">                  <span class="c1">// We aren&#39;t deep enough to be strictly a new level. This is</span></td>
      </tr>
      <tr>
        <td id="L5945" class="blob-num js-line-number" data-line-number="5945"></td>
        <td id="LC5945" class="blob-code js-file-line">                  <span class="c1">// where Md.pl goes nuts. If the indent matches a level in the</span></td>
      </tr>
      <tr>
        <td id="L5946" class="blob-num js-line-number" data-line-number="5946"></td>
        <td id="LC5946" class="blob-code js-file-line">                  <span class="c1">// stack, put it there, else put it one deeper then the</span></td>
      </tr>
      <tr>
        <td id="L5947" class="blob-num js-line-number" data-line-number="5947"></td>
        <td id="LC5947" class="blob-code js-file-line">                  <span class="c1">// wanted_depth deserves.</span></td>
      </tr>
      <tr>
        <td id="L5948" class="blob-num js-line-number" data-line-number="5948"></td>
        <td id="LC5948" class="blob-code js-file-line">                  <span class="kd">var</span> <span class="nx">found</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5949" class="blob-num js-line-number" data-line-number="5949"></td>
        <td id="LC5949" class="blob-code js-file-line">                  <span class="k">for</span> <span class="p">(</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">stack</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5950" class="blob-num js-line-number" data-line-number="5950"></td>
        <td id="LC5950" class="blob-code js-file-line">                    <span class="k">if</span> <span class="p">(</span> <span class="nx">stack</span><span class="p">[</span> <span class="nx">i</span> <span class="p">].</span><span class="nx">indent</span> <span class="o">!==</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5951" class="blob-num js-line-number" data-line-number="5951"></td>
        <td id="LC5951" class="blob-code js-file-line">                      <span class="k">continue</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5952" class="blob-num js-line-number" data-line-number="5952"></td>
        <td id="LC5952" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5953" class="blob-num js-line-number" data-line-number="5953"></td>
        <td id="LC5953" class="blob-code js-file-line">                    <span class="nx">list</span> <span class="o">=</span> <span class="nx">stack</span><span class="p">[</span> <span class="nx">i</span> <span class="p">].</span><span class="nx">list</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5954" class="blob-num js-line-number" data-line-number="5954"></td>
        <td id="LC5954" class="blob-code js-file-line">                    <span class="nx">stack</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span> <span class="nx">i</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="nx">stack</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="p">(</span><span class="nx">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5955" class="blob-num js-line-number" data-line-number="5955"></td>
        <td id="LC5955" class="blob-code js-file-line">                    <span class="nx">found</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5956" class="blob-num js-line-number" data-line-number="5956"></td>
        <td id="LC5956" class="blob-code js-file-line">                    <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5957" class="blob-num js-line-number" data-line-number="5957"></td>
        <td id="LC5957" class="blob-code js-file-line">                  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5958" class="blob-num js-line-number" data-line-number="5958"></td>
        <td id="LC5958" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5959" class="blob-num js-line-number" data-line-number="5959"></td>
        <td id="LC5959" class="blob-code js-file-line">                  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">found</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5960" class="blob-num js-line-number" data-line-number="5960"></td>
        <td id="LC5960" class="blob-code js-file-line">                    <span class="c1">//print(&quot;not found. l:&quot;, uneval(l));</span></td>
      </tr>
      <tr>
        <td id="L5961" class="blob-num js-line-number" data-line-number="5961"></td>
        <td id="LC5961" class="blob-code js-file-line">                    <span class="nx">wanted_depth</span><span class="o">++</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5962" class="blob-num js-line-number" data-line-number="5962"></td>
        <td id="LC5962" class="blob-code js-file-line">                    <span class="k">if</span> <span class="p">(</span> <span class="nx">wanted_depth</span> <span class="o">&lt;=</span> <span class="nx">stack</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5963" class="blob-num js-line-number" data-line-number="5963"></td>
        <td id="LC5963" class="blob-code js-file-line">                      <span class="nx">stack</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span><span class="nx">wanted_depth</span><span class="p">,</span> <span class="nx">stack</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="nx">wanted_depth</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5964" class="blob-num js-line-number" data-line-number="5964"></td>
        <td id="LC5964" class="blob-code js-file-line">                      <span class="c1">//print(&quot;Desired depth now&quot;, wanted_depth, &quot;stack:&quot;, stack.length);</span></td>
      </tr>
      <tr>
        <td id="L5965" class="blob-num js-line-number" data-line-number="5965"></td>
        <td id="LC5965" class="blob-code js-file-line">                      <span class="nx">list</span> <span class="o">=</span> <span class="nx">stack</span><span class="p">[</span><span class="nx">wanted_depth</span><span class="o">-</span><span class="mi">1</span><span class="p">].</span><span class="nx">list</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5966" class="blob-num js-line-number" data-line-number="5966"></td>
        <td id="LC5966" class="blob-code js-file-line">                      <span class="c1">//print(&quot;list:&quot;, uneval(list) );</span></td>
      </tr>
      <tr>
        <td id="L5967" class="blob-num js-line-number" data-line-number="5967"></td>
        <td id="LC5967" class="blob-code js-file-line">                    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5968" class="blob-num js-line-number" data-line-number="5968"></td>
        <td id="LC5968" class="blob-code js-file-line">                    <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5969" class="blob-num js-line-number" data-line-number="5969"></td>
        <td id="LC5969" class="blob-code js-file-line">                      <span class="c1">//print (&quot;made new stack for messy indent&quot;);</span></td>
      </tr>
      <tr>
        <td id="L5970" class="blob-num js-line-number" data-line-number="5970"></td>
        <td id="LC5970" class="blob-code js-file-line">                      <span class="nx">list</span> <span class="o">=</span> <span class="nx">make_list</span><span class="p">(</span><span class="nx">m</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5971" class="blob-num js-line-number" data-line-number="5971"></td>
        <td id="LC5971" class="blob-code js-file-line">                      <span class="nx">last_li</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">list</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5972" class="blob-num js-line-number" data-line-number="5972"></td>
        <td id="LC5972" class="blob-code js-file-line">                    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5973" class="blob-num js-line-number" data-line-number="5973"></td>
        <td id="LC5973" class="blob-code js-file-line">                  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5974" class="blob-num js-line-number" data-line-number="5974"></td>
        <td id="LC5974" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5975" class="blob-num js-line-number" data-line-number="5975"></td>
        <td id="LC5975" class="blob-code js-file-line">                  <span class="c1">//print( uneval(list), &quot;last&quot;, list === stack[stack.length-1].list );</span></td>
      </tr>
      <tr>
        <td id="L5976" class="blob-num js-line-number" data-line-number="5976"></td>
        <td id="LC5976" class="blob-code js-file-line">                  <span class="nx">last_li</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;listitem&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L5977" class="blob-num js-line-number" data-line-number="5977"></td>
        <td id="LC5977" class="blob-code js-file-line">                  <span class="nx">list</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">last_li</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5978" class="blob-num js-line-number" data-line-number="5978"></td>
        <td id="LC5978" class="blob-code js-file-line">                <span class="p">}</span> <span class="c1">// end depth of shenegains</span></td>
      </tr>
      <tr>
        <td id="L5979" class="blob-num js-line-number" data-line-number="5979"></td>
        <td id="LC5979" class="blob-code js-file-line">                <span class="nx">nl</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5980" class="blob-num js-line-number" data-line-number="5980"></td>
        <td id="LC5980" class="blob-code js-file-line">              <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5981" class="blob-num js-line-number" data-line-number="5981"></td>
        <td id="LC5981" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5982" class="blob-num js-line-number" data-line-number="5982"></td>
        <td id="LC5982" class="blob-code js-file-line">              <span class="c1">// Add content</span></td>
      </tr>
      <tr>
        <td id="L5983" class="blob-num js-line-number" data-line-number="5983"></td>
        <td id="LC5983" class="blob-code js-file-line">              <span class="k">if</span> <span class="p">(</span> <span class="nx">l</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L5984" class="blob-num js-line-number" data-line-number="5984"></td>
        <td id="LC5984" class="blob-code js-file-line">                <span class="nx">li_accumulate</span> <span class="o">+=</span> <span class="nx">nl</span> <span class="o">+</span> <span class="nx">l</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5985" class="blob-num js-line-number" data-line-number="5985"></td>
        <td id="LC5985" class="blob-code js-file-line">            <span class="p">}</span> <span class="c1">// tight_search</span></td>
      </tr>
      <tr>
        <td id="L5986" class="blob-num js-line-number" data-line-number="5986"></td>
        <td id="LC5986" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5987" class="blob-num js-line-number" data-line-number="5987"></td>
        <td id="LC5987" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">(</span> <span class="nx">li_accumulate</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L5988" class="blob-num js-line-number" data-line-number="5988"></td>
        <td id="LC5988" class="blob-code js-file-line">              <span class="nx">add</span><span class="p">(</span> <span class="nx">last_li</span><span class="p">,</span> <span class="nx">loose</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">processInline</span><span class="p">(</span> <span class="nx">li_accumulate</span> <span class="p">),</span> <span class="nx">nl</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5989" class="blob-num js-line-number" data-line-number="5989"></td>
        <td id="LC5989" class="blob-code js-file-line">              <span class="c1">// Loose mode will have been dealt with. Reset it</span></td>
      </tr>
      <tr>
        <td id="L5990" class="blob-num js-line-number" data-line-number="5990"></td>
        <td id="LC5990" class="blob-code js-file-line">              <span class="nx">loose</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5991" class="blob-num js-line-number" data-line-number="5991"></td>
        <td id="LC5991" class="blob-code js-file-line">              <span class="nx">li_accumulate</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L5992" class="blob-num js-line-number" data-line-number="5992"></td>
        <td id="LC5992" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L5993" class="blob-num js-line-number" data-line-number="5993"></td>
        <td id="LC5993" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5994" class="blob-num js-line-number" data-line-number="5994"></td>
        <td id="LC5994" class="blob-code js-file-line">            <span class="c1">// Look at the next block - we might have a loose list. Or an extra</span></td>
      </tr>
      <tr>
        <td id="L5995" class="blob-num js-line-number" data-line-number="5995"></td>
        <td id="LC5995" class="blob-code js-file-line">            <span class="c1">// paragraph for the current li</span></td>
      </tr>
      <tr>
        <td id="L5996" class="blob-num js-line-number" data-line-number="5996"></td>
        <td id="LC5996" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">contained</span> <span class="o">=</span> <span class="nx">get_contained_blocks</span><span class="p">(</span> <span class="nx">stack</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span> <span class="nx">next</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L5997" class="blob-num js-line-number" data-line-number="5997"></td>
        <td id="LC5997" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L5998" class="blob-num js-line-number" data-line-number="5998"></td>
        <td id="LC5998" class="blob-code js-file-line">            <span class="c1">// Deal with code blocks or properly nested lists</span></td>
      </tr>
      <tr>
        <td id="L5999" class="blob-num js-line-number" data-line-number="5999"></td>
        <td id="LC5999" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">(</span> <span class="nx">contained</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6000" class="blob-num js-line-number" data-line-number="6000"></td>
        <td id="LC6000" class="blob-code js-file-line">              <span class="c1">// Make sure all listitems up the stack are paragraphs</span></td>
      </tr>
      <tr>
        <td id="L6001" class="blob-num js-line-number" data-line-number="6001"></td>
        <td id="LC6001" class="blob-code js-file-line">              <span class="nx">forEach</span><span class="p">(</span> <span class="nx">stack</span><span class="p">,</span> <span class="nx">paragraphify</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6002" class="blob-num js-line-number" data-line-number="6002"></td>
        <td id="LC6002" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6003" class="blob-num js-line-number" data-line-number="6003"></td>
        <td id="LC6003" class="blob-code js-file-line">              <span class="nx">last_li</span><span class="p">.</span><span class="nx">push</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span> <span class="nx">last_li</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">toTree</span><span class="p">(</span> <span class="nx">contained</span><span class="p">,</span> <span class="p">[]</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6004" class="blob-num js-line-number" data-line-number="6004"></td>
        <td id="LC6004" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6005" class="blob-num js-line-number" data-line-number="6005"></td>
        <td id="LC6005" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6006" class="blob-num js-line-number" data-line-number="6006"></td>
        <td id="LC6006" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">next_block</span> <span class="o">=</span> <span class="nx">next</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&amp;&amp;</span> <span class="nx">next</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">valueOf</span><span class="p">()</span> <span class="o">||</span> <span class="s2">&quot;&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6007" class="blob-num js-line-number" data-line-number="6007"></td>
        <td id="LC6007" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6008" class="blob-num js-line-number" data-line-number="6008"></td>
        <td id="LC6008" class="blob-code js-file-line">            <span class="k">if</span> <span class="p">(</span> <span class="nx">next_block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span><span class="nx">is_list_re</span><span class="p">)</span> <span class="o">||</span> <span class="nx">next_block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^ /</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6009" class="blob-num js-line-number" data-line-number="6009"></td>
        <td id="LC6009" class="blob-code js-file-line">              <span class="nx">block</span> <span class="o">=</span> <span class="nx">next</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L6010" class="blob-num js-line-number" data-line-number="6010"></td>
        <td id="LC6010" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6011" class="blob-num js-line-number" data-line-number="6011"></td>
        <td id="LC6011" class="blob-code js-file-line">              <span class="c1">// Check for an HR following a list: features/lists/hr_abutting</span></td>
      </tr>
      <tr>
        <td id="L6012" class="blob-num js-line-number" data-line-number="6012"></td>
        <td id="LC6012" class="blob-code js-file-line">              <span class="kd">var</span> <span class="nx">hr</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">block</span><span class="p">.</span><span class="nx">horizRule</span><span class="p">(</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6013" class="blob-num js-line-number" data-line-number="6013"></td>
        <td id="LC6013" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6014" class="blob-num js-line-number" data-line-number="6014"></td>
        <td id="LC6014" class="blob-code js-file-line">              <span class="k">if</span> <span class="p">(</span> <span class="nx">hr</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6015" class="blob-num js-line-number" data-line-number="6015"></td>
        <td id="LC6015" class="blob-code js-file-line">                <span class="nx">ret</span><span class="p">.</span><span class="nx">push</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">ret</span><span class="p">,</span> <span class="nx">hr</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6016" class="blob-num js-line-number" data-line-number="6016"></td>
        <td id="LC6016" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6017" class="blob-num js-line-number" data-line-number="6017"></td>
        <td id="LC6017" class="blob-code js-file-line">              <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6018" class="blob-num js-line-number" data-line-number="6018"></td>
        <td id="LC6018" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6019" class="blob-num js-line-number" data-line-number="6019"></td>
        <td id="LC6019" class="blob-code js-file-line">              <span class="c1">// Make sure all listitems up the stack are paragraphs</span></td>
      </tr>
      <tr>
        <td id="L6020" class="blob-num js-line-number" data-line-number="6020"></td>
        <td id="LC6020" class="blob-code js-file-line">              <span class="nx">forEach</span><span class="p">(</span> <span class="nx">stack</span><span class="p">,</span> <span class="nx">paragraphify</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6021" class="blob-num js-line-number" data-line-number="6021"></td>
        <td id="LC6021" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6022" class="blob-num js-line-number" data-line-number="6022"></td>
        <td id="LC6022" class="blob-code js-file-line">              <span class="nx">loose</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6023" class="blob-num js-line-number" data-line-number="6023"></td>
        <td id="LC6023" class="blob-code js-file-line">              <span class="k">continue</span> <span class="nx">loose_search</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6024" class="blob-num js-line-number" data-line-number="6024"></td>
        <td id="LC6024" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6025" class="blob-num js-line-number" data-line-number="6025"></td>
        <td id="LC6025" class="blob-code js-file-line">            <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6026" class="blob-num js-line-number" data-line-number="6026"></td>
        <td id="LC6026" class="blob-code js-file-line">          <span class="p">}</span> <span class="c1">// loose_search</span></td>
      </tr>
      <tr>
        <td id="L6027" class="blob-num js-line-number" data-line-number="6027"></td>
        <td id="LC6027" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6028" class="blob-num js-line-number" data-line-number="6028"></td>
        <td id="LC6028" class="blob-code js-file-line">          <span class="k">return</span> <span class="nx">ret</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6029" class="blob-num js-line-number" data-line-number="6029"></td>
        <td id="LC6029" class="blob-code js-file-line">        <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6030" class="blob-num js-line-number" data-line-number="6030"></td>
        <td id="LC6030" class="blob-code js-file-line">      <span class="p">})(),</span></td>
      </tr>
      <tr>
        <td id="L6031" class="blob-num js-line-number" data-line-number="6031"></td>
        <td id="LC6031" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6032" class="blob-num js-line-number" data-line-number="6032"></td>
        <td id="LC6032" class="blob-code js-file-line">      <span class="nx">blockquote</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">blockquote</span><span class="p">(</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6033" class="blob-num js-line-number" data-line-number="6033"></td>
        <td id="LC6033" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^&gt;/m</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6034" class="blob-num js-line-number" data-line-number="6034"></td>
        <td id="LC6034" class="blob-code js-file-line">          <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6035" class="blob-num js-line-number" data-line-number="6035"></td>
        <td id="LC6035" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6036" class="blob-num js-line-number" data-line-number="6036"></td>
        <td id="LC6036" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">jsonml</span> <span class="o">=</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L6037" class="blob-num js-line-number" data-line-number="6037"></td>
        <td id="LC6037" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6038" class="blob-num js-line-number" data-line-number="6038"></td>
        <td id="LC6038" class="blob-code js-file-line">        <span class="c1">// separate out the leading abutting block, if any. I.e. in this case:</span></td>
      </tr>
      <tr>
        <td id="L6039" class="blob-num js-line-number" data-line-number="6039"></td>
        <td id="LC6039" class="blob-code js-file-line">        <span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L6040" class="blob-num js-line-number" data-line-number="6040"></td>
        <td id="LC6040" class="blob-code js-file-line">        <span class="c1">//  a</span></td>
      </tr>
      <tr>
        <td id="L6041" class="blob-num js-line-number" data-line-number="6041"></td>
        <td id="LC6041" class="blob-code js-file-line">        <span class="c1">//  &gt; b</span></td>
      </tr>
      <tr>
        <td id="L6042" class="blob-num js-line-number" data-line-number="6042"></td>
        <td id="LC6042" class="blob-code js-file-line">        <span class="c1">//</span></td>
      </tr>
      <tr>
        <td id="L6043" class="blob-num js-line-number" data-line-number="6043"></td>
        <td id="LC6043" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">block</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">!==</span> <span class="s2">&quot;&gt;&quot;</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6044" class="blob-num js-line-number" data-line-number="6044"></td>
        <td id="LC6044" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">lines</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span> <span class="sr">/\n/</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6045" class="blob-num js-line-number" data-line-number="6045"></td>
        <td id="LC6045" class="blob-code js-file-line">              <span class="nx">prev</span> <span class="o">=</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L6046" class="blob-num js-line-number" data-line-number="6046"></td>
        <td id="LC6046" class="blob-code js-file-line">              <span class="nx">line_no</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">lineNumber</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6047" class="blob-num js-line-number" data-line-number="6047"></td>
        <td id="LC6047" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6048" class="blob-num js-line-number" data-line-number="6048"></td>
        <td id="LC6048" class="blob-code js-file-line">          <span class="c1">// keep shifting lines until you find a crotchet</span></td>
      </tr>
      <tr>
        <td id="L6049" class="blob-num js-line-number" data-line-number="6049"></td>
        <td id="LC6049" class="blob-code js-file-line">          <span class="k">while</span> <span class="p">(</span> <span class="nx">lines</span><span class="p">.</span><span class="nx">length</span> <span class="o">&amp;&amp;</span> <span class="nx">lines</span><span class="p">[</span> <span class="mi">0</span> <span class="p">][</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">!==</span> <span class="s2">&quot;&gt;&quot;</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6050" class="blob-num js-line-number" data-line-number="6050"></td>
        <td id="LC6050" class="blob-code js-file-line">            <span class="nx">prev</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">lines</span><span class="p">.</span><span class="nx">shift</span><span class="p">()</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6051" class="blob-num js-line-number" data-line-number="6051"></td>
        <td id="LC6051" class="blob-code js-file-line">            <span class="nx">line_no</span><span class="o">++</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6052" class="blob-num js-line-number" data-line-number="6052"></td>
        <td id="LC6052" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6053" class="blob-num js-line-number" data-line-number="6053"></td>
        <td id="LC6053" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6054" class="blob-num js-line-number" data-line-number="6054"></td>
        <td id="LC6054" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">abutting</span> <span class="o">=</span> <span class="nx">mk_block</span><span class="p">(</span> <span class="nx">prev</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span> <span class="s2">&quot;\n&quot;</span> <span class="p">),</span> <span class="s2">&quot;\n&quot;</span><span class="p">,</span> <span class="nx">block</span><span class="p">.</span><span class="nx">lineNumber</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6055" class="blob-num js-line-number" data-line-number="6055"></td>
        <td id="LC6055" class="blob-code js-file-line">          <span class="nx">jsonml</span><span class="p">.</span><span class="nx">push</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span> <span class="nx">jsonml</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">processBlock</span><span class="p">(</span> <span class="nx">abutting</span><span class="p">,</span> <span class="p">[]</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6056" class="blob-num js-line-number" data-line-number="6056"></td>
        <td id="LC6056" class="blob-code js-file-line">          <span class="c1">// reassemble new block of just block quotes!</span></td>
      </tr>
      <tr>
        <td id="L6057" class="blob-num js-line-number" data-line-number="6057"></td>
        <td id="LC6057" class="blob-code js-file-line">          <span class="nx">block</span> <span class="o">=</span> <span class="nx">mk_block</span><span class="p">(</span> <span class="nx">lines</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span> <span class="s2">&quot;\n&quot;</span> <span class="p">),</span> <span class="nx">block</span><span class="p">.</span><span class="nx">trailing</span><span class="p">,</span> <span class="nx">line_no</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6058" class="blob-num js-line-number" data-line-number="6058"></td>
        <td id="LC6058" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6059" class="blob-num js-line-number" data-line-number="6059"></td>
        <td id="LC6059" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6060" class="blob-num js-line-number" data-line-number="6060"></td>
        <td id="LC6060" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6061" class="blob-num js-line-number" data-line-number="6061"></td>
        <td id="LC6061" class="blob-code js-file-line">        <span class="c1">// if the next block is also a blockquote merge it in</span></td>
      </tr>
      <tr>
        <td id="L6062" class="blob-num js-line-number" data-line-number="6062"></td>
        <td id="LC6062" class="blob-code js-file-line">        <span class="k">while</span> <span class="p">(</span> <span class="nx">next</span><span class="p">.</span><span class="nx">length</span> <span class="o">&amp;&amp;</span> <span class="nx">next</span><span class="p">[</span> <span class="mi">0</span> <span class="p">][</span> <span class="mi">0</span> <span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;&gt;&quot;</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6063" class="blob-num js-line-number" data-line-number="6063"></td>
        <td id="LC6063" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="nx">next</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L6064" class="blob-num js-line-number" data-line-number="6064"></td>
        <td id="LC6064" class="blob-code js-file-line">          <span class="nx">block</span> <span class="o">=</span> <span class="nx">mk_block</span><span class="p">(</span> <span class="nx">block</span> <span class="o">+</span> <span class="nx">block</span><span class="p">.</span><span class="nx">trailing</span> <span class="o">+</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">b</span><span class="p">.</span><span class="nx">trailing</span><span class="p">,</span> <span class="nx">block</span><span class="p">.</span><span class="nx">lineNumber</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6065" class="blob-num js-line-number" data-line-number="6065"></td>
        <td id="LC6065" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6066" class="blob-num js-line-number" data-line-number="6066"></td>
        <td id="LC6066" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6067" class="blob-num js-line-number" data-line-number="6067"></td>
        <td id="LC6067" class="blob-code js-file-line">        <span class="c1">// Strip off the leading &quot;&gt; &quot; and re-process as a block.</span></td>
      </tr>
      <tr>
        <td id="L6068" class="blob-num js-line-number" data-line-number="6068"></td>
        <td id="LC6068" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">input</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/^&gt; ?/gm</span><span class="p">,</span> <span class="s2">&quot;&quot;</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6069" class="blob-num js-line-number" data-line-number="6069"></td>
        <td id="LC6069" class="blob-code js-file-line">            <span class="nx">old_tree</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">tree</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6070" class="blob-num js-line-number" data-line-number="6070"></td>
        <td id="LC6070" class="blob-code js-file-line">            <span class="nx">processedBlock</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">toTree</span><span class="p">(</span> <span class="nx">input</span><span class="p">,</span> <span class="p">[</span> <span class="s2">&quot;blockquote&quot;</span> <span class="p">]</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6071" class="blob-num js-line-number" data-line-number="6071"></td>
        <td id="LC6071" class="blob-code js-file-line">            <span class="nx">attr</span> <span class="o">=</span> <span class="nx">extract_attr</span><span class="p">(</span> <span class="nx">processedBlock</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6072" class="blob-num js-line-number" data-line-number="6072"></td>
        <td id="LC6072" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6073" class="blob-num js-line-number" data-line-number="6073"></td>
        <td id="LC6073" class="blob-code js-file-line">        <span class="c1">// If any link references were found get rid of them</span></td>
      </tr>
      <tr>
        <td id="L6074" class="blob-num js-line-number" data-line-number="6074"></td>
        <td id="LC6074" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">attr</span> <span class="o">&amp;&amp;</span> <span class="nx">attr</span><span class="p">.</span><span class="nx">references</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6075" class="blob-num js-line-number" data-line-number="6075"></td>
        <td id="LC6075" class="blob-code js-file-line">          <span class="k">delete</span> <span class="nx">attr</span><span class="p">.</span><span class="nx">references</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6076" class="blob-num js-line-number" data-line-number="6076"></td>
        <td id="LC6076" class="blob-code js-file-line">          <span class="c1">// And then remove the attribute object if it&#39;s empty</span></td>
      </tr>
      <tr>
        <td id="L6077" class="blob-num js-line-number" data-line-number="6077"></td>
        <td id="LC6077" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">isEmpty</span><span class="p">(</span> <span class="nx">attr</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6078" class="blob-num js-line-number" data-line-number="6078"></td>
        <td id="LC6078" class="blob-code js-file-line">            <span class="nx">processedBlock</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6079" class="blob-num js-line-number" data-line-number="6079"></td>
        <td id="LC6079" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6080" class="blob-num js-line-number" data-line-number="6080"></td>
        <td id="LC6080" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6081" class="blob-num js-line-number" data-line-number="6081"></td>
        <td id="LC6081" class="blob-code js-file-line">        <span class="nx">jsonml</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">processedBlock</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6082" class="blob-num js-line-number" data-line-number="6082"></td>
        <td id="LC6082" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">jsonml</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6083" class="blob-num js-line-number" data-line-number="6083"></td>
        <td id="LC6083" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L6084" class="blob-num js-line-number" data-line-number="6084"></td>
        <td id="LC6084" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6085" class="blob-num js-line-number" data-line-number="6085"></td>
        <td id="LC6085" class="blob-code js-file-line">      <span class="nx">referenceDefn</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">referenceDefn</span><span class="p">(</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6086" class="blob-num js-line-number" data-line-number="6086"></td>
        <td id="LC6086" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">re</span> <span class="o">=</span> <span class="sr">/^\s*\[(.*?)\]:\s*(\S+)(?:\s+(?:([&#39;&quot;])(.*?)\3|\((.*?)\)))?\n?/</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6087" class="blob-num js-line-number" data-line-number="6087"></td>
        <td id="LC6087" class="blob-code js-file-line">        <span class="c1">// interesting matches are [ , ref_id, url, , title, title ]</span></td>
      </tr>
      <tr>
        <td id="L6088" class="blob-num js-line-number" data-line-number="6088"></td>
        <td id="LC6088" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6089" class="blob-num js-line-number" data-line-number="6089"></td>
        <td id="LC6089" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span><span class="nx">re</span><span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6090" class="blob-num js-line-number" data-line-number="6090"></td>
        <td id="LC6090" class="blob-code js-file-line">          <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6091" class="blob-num js-line-number" data-line-number="6091"></td>
        <td id="LC6091" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6092" class="blob-num js-line-number" data-line-number="6092"></td>
        <td id="LC6092" class="blob-code js-file-line">        <span class="c1">// make an attribute node if it doesn&#39;t exist</span></td>
      </tr>
      <tr>
        <td id="L6093" class="blob-num js-line-number" data-line-number="6093"></td>
        <td id="LC6093" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">extract_attr</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">tree</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6094" class="blob-num js-line-number" data-line-number="6094"></td>
        <td id="LC6094" class="blob-code js-file-line">          <span class="k">this</span><span class="p">.</span><span class="nx">tree</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="p">{}</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6095" class="blob-num js-line-number" data-line-number="6095"></td>
        <td id="LC6095" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6096" class="blob-num js-line-number" data-line-number="6096"></td>
        <td id="LC6096" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">attrs</span> <span class="o">=</span> <span class="nx">extract_attr</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">tree</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6097" class="blob-num js-line-number" data-line-number="6097"></td>
        <td id="LC6097" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6098" class="blob-num js-line-number" data-line-number="6098"></td>
        <td id="LC6098" class="blob-code js-file-line">        <span class="c1">// make a references hash if it doesn&#39;t exist</span></td>
      </tr>
      <tr>
        <td id="L6099" class="blob-num js-line-number" data-line-number="6099"></td>
        <td id="LC6099" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">references</span> <span class="o">===</span> <span class="kc">undefined</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6100" class="blob-num js-line-number" data-line-number="6100"></td>
        <td id="LC6100" class="blob-code js-file-line">          <span class="nx">attrs</span><span class="p">.</span><span class="nx">references</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L6101" class="blob-num js-line-number" data-line-number="6101"></td>
        <td id="LC6101" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6102" class="blob-num js-line-number" data-line-number="6102"></td>
        <td id="LC6102" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">loop_re_over_block</span><span class="p">(</span><span class="nx">re</span><span class="p">,</span> <span class="nx">block</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">m</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6103" class="blob-num js-line-number" data-line-number="6103"></td>
        <td id="LC6103" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6104" class="blob-num js-line-number" data-line-number="6104"></td>
        <td id="LC6104" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&amp;&amp;</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;&lt;&quot;</span> <span class="o">&amp;&amp;</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">length</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;&gt;&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6105" class="blob-num js-line-number" data-line-number="6105"></td>
        <td id="LC6105" class="blob-code js-file-line">            <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">substring</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6106" class="blob-num js-line-number" data-line-number="6106"></td>
        <td id="LC6106" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6107" class="blob-num js-line-number" data-line-number="6107"></td>
        <td id="LC6107" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">ref</span> <span class="o">=</span> <span class="nx">attrs</span><span class="p">.</span><span class="nx">references</span><span class="p">[</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">toLowerCase</span><span class="p">()</span> <span class="p">]</span> <span class="o">=</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6108" class="blob-num js-line-number" data-line-number="6108"></td>
        <td id="LC6108" class="blob-code js-file-line">            <span class="nx">href</span><span class="o">:</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span></td>
      </tr>
      <tr>
        <td id="L6109" class="blob-num js-line-number" data-line-number="6109"></td>
        <td id="LC6109" class="blob-code js-file-line">          <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6110" class="blob-num js-line-number" data-line-number="6110"></td>
        <td id="LC6110" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6111" class="blob-num js-line-number" data-line-number="6111"></td>
        <td id="LC6111" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">undefined</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6112" class="blob-num js-line-number" data-line-number="6112"></td>
        <td id="LC6112" class="blob-code js-file-line">            <span class="nx">ref</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6113" class="blob-num js-line-number" data-line-number="6113"></td>
        <td id="LC6113" class="blob-code js-file-line">          <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">undefined</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6114" class="blob-num js-line-number" data-line-number="6114"></td>
        <td id="LC6114" class="blob-code js-file-line">            <span class="nx">ref</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">5</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6115" class="blob-num js-line-number" data-line-number="6115"></td>
        <td id="LC6115" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6116" class="blob-num js-line-number" data-line-number="6116"></td>
        <td id="LC6116" class="blob-code js-file-line">        <span class="p">}</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6117" class="blob-num js-line-number" data-line-number="6117"></td>
        <td id="LC6117" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6118" class="blob-num js-line-number" data-line-number="6118"></td>
        <td id="LC6118" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">b</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6119" class="blob-num js-line-number" data-line-number="6119"></td>
        <td id="LC6119" class="blob-code js-file-line">          <span class="nx">next</span><span class="p">.</span><span class="nx">unshift</span><span class="p">(</span> <span class="nx">mk_block</span><span class="p">(</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">block</span><span class="p">.</span><span class="nx">trailing</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6120" class="blob-num js-line-number" data-line-number="6120"></td>
        <td id="LC6120" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6121" class="blob-num js-line-number" data-line-number="6121"></td>
        <td id="LC6121" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L6122" class="blob-num js-line-number" data-line-number="6122"></td>
        <td id="LC6122" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L6123" class="blob-num js-line-number" data-line-number="6123"></td>
        <td id="LC6123" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6124" class="blob-num js-line-number" data-line-number="6124"></td>
        <td id="LC6124" class="blob-code js-file-line">      <span class="nx">para</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">para</span><span class="p">(</span> <span class="nx">block</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6125" class="blob-num js-line-number" data-line-number="6125"></td>
        <td id="LC6125" class="blob-code js-file-line">        <span class="c1">// everything&#39;s a para!</span></td>
      </tr>
      <tr>
        <td id="L6126" class="blob-num js-line-number" data-line-number="6126"></td>
        <td id="LC6126" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[</span> <span class="p">[</span><span class="s2">&quot;para&quot;</span><span class="p">].</span><span class="nx">concat</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">processInline</span><span class="p">(</span> <span class="nx">block</span> <span class="p">)</span> <span class="p">)</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6127" class="blob-num js-line-number" data-line-number="6127"></td>
        <td id="LC6127" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6128" class="blob-num js-line-number" data-line-number="6128"></td>
        <td id="LC6128" class="blob-code js-file-line">    <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L6129" class="blob-num js-line-number" data-line-number="6129"></td>
        <td id="LC6129" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6130" class="blob-num js-line-number" data-line-number="6130"></td>
        <td id="LC6130" class="blob-code js-file-line">    <span class="nx">inline</span><span class="o">:</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6131" class="blob-num js-line-number" data-line-number="6131"></td>
        <td id="LC6131" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6132" class="blob-num js-line-number" data-line-number="6132"></td>
        <td id="LC6132" class="blob-code js-file-line">      <span class="nx">__oneElement__</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">oneElement</span><span class="p">(</span> <span class="nx">text</span><span class="p">,</span> <span class="nx">patterns_or_re</span><span class="p">,</span> <span class="nx">previous_nodes</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6133" class="blob-num js-line-number" data-line-number="6133"></td>
        <td id="LC6133" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">m</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6134" class="blob-num js-line-number" data-line-number="6134"></td>
        <td id="LC6134" class="blob-code js-file-line">            <span class="nx">res</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6135" class="blob-num js-line-number" data-line-number="6135"></td>
        <td id="LC6135" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6136" class="blob-num js-line-number" data-line-number="6136"></td>
        <td id="LC6136" class="blob-code js-file-line">        <span class="nx">patterns_or_re</span> <span class="o">=</span> <span class="nx">patterns_or_re</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">inline</span><span class="p">.</span><span class="nx">__patterns__</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6137" class="blob-num js-line-number" data-line-number="6137"></td>
        <td id="LC6137" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">re</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span> <span class="s2">&quot;([\\s\\S]*?)(&quot;</span> <span class="o">+</span> <span class="p">(</span><span class="nx">patterns_or_re</span><span class="p">.</span><span class="nx">source</span> <span class="o">||</span> <span class="nx">patterns_or_re</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;)&quot;</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6138" class="blob-num js-line-number" data-line-number="6138"></td>
        <td id="LC6138" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6139" class="blob-num js-line-number" data-line-number="6139"></td>
        <td id="LC6139" class="blob-code js-file-line">        <span class="nx">m</span> <span class="o">=</span> <span class="nx">re</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span> <span class="nx">text</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6140" class="blob-num js-line-number" data-line-number="6140"></td>
        <td id="LC6140" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">m</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6141" class="blob-num js-line-number" data-line-number="6141"></td>
        <td id="LC6141" class="blob-code js-file-line">          <span class="c1">// Just boring text</span></td>
      </tr>
      <tr>
        <td id="L6142" class="blob-num js-line-number" data-line-number="6142"></td>
        <td id="LC6142" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="nx">text</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span> <span class="nx">text</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6143" class="blob-num js-line-number" data-line-number="6143"></td>
        <td id="LC6143" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6144" class="blob-num js-line-number" data-line-number="6144"></td>
        <td id="LC6144" class="blob-code js-file-line">        <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6145" class="blob-num js-line-number" data-line-number="6145"></td>
        <td id="LC6145" class="blob-code js-file-line">          <span class="c1">// Some un-interesting text matched. Return that first</span></td>
      </tr>
      <tr>
        <td id="L6146" class="blob-num js-line-number" data-line-number="6146"></td>
        <td id="LC6146" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">length</span><span class="p">,</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6147" class="blob-num js-line-number" data-line-number="6147"></td>
        <td id="LC6147" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6148" class="blob-num js-line-number" data-line-number="6148"></td>
        <td id="LC6148" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6149" class="blob-num js-line-number" data-line-number="6149"></td>
        <td id="LC6149" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">res</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6150" class="blob-num js-line-number" data-line-number="6150"></td>
        <td id="LC6150" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="k">in</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">inline</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6151" class="blob-num js-line-number" data-line-number="6151"></td>
        <td id="LC6151" class="blob-code js-file-line">          <span class="nx">res</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">inline</span><span class="p">[</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="p">].</span><span class="nx">call</span><span class="p">(</span></td>
      </tr>
      <tr>
        <td id="L6152" class="blob-num js-line-number" data-line-number="6152"></td>
        <td id="LC6152" class="blob-code js-file-line">                    <span class="k">this</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6153" class="blob-num js-line-number" data-line-number="6153"></td>
        <td id="LC6153" class="blob-code js-file-line">                    <span class="nx">text</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="nx">m</span><span class="p">.</span><span class="nx">index</span> <span class="p">),</span> <span class="nx">m</span><span class="p">,</span> <span class="nx">previous_nodes</span> <span class="o">||</span> <span class="p">[]</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6154" class="blob-num js-line-number" data-line-number="6154"></td>
        <td id="LC6154" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6155" class="blob-num js-line-number" data-line-number="6155"></td>
        <td id="LC6155" class="blob-code js-file-line">        <span class="c1">// Default for now to make dev easier. just slurp special and output it.</span></td>
      </tr>
      <tr>
        <td id="L6156" class="blob-num js-line-number" data-line-number="6156"></td>
        <td id="LC6156" class="blob-code js-file-line">        <span class="nx">res</span> <span class="o">=</span> <span class="nx">res</span> <span class="o">||</span> <span class="p">[</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">length</span><span class="p">,</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6157" class="blob-num js-line-number" data-line-number="6157"></td>
        <td id="LC6157" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">res</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6158" class="blob-num js-line-number" data-line-number="6158"></td>
        <td id="LC6158" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L6159" class="blob-num js-line-number" data-line-number="6159"></td>
        <td id="LC6159" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6160" class="blob-num js-line-number" data-line-number="6160"></td>
        <td id="LC6160" class="blob-code js-file-line">      <span class="nx">__call__</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">inline</span><span class="p">(</span> <span class="nx">text</span><span class="p">,</span> <span class="nx">patterns</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6161" class="blob-num js-line-number" data-line-number="6161"></td>
        <td id="LC6161" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6162" class="blob-num js-line-number" data-line-number="6162"></td>
        <td id="LC6162" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">out</span> <span class="o">=</span> <span class="p">[],</span></td>
      </tr>
      <tr>
        <td id="L6163" class="blob-num js-line-number" data-line-number="6163"></td>
        <td id="LC6163" class="blob-code js-file-line">            <span class="nx">res</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6164" class="blob-num js-line-number" data-line-number="6164"></td>
        <td id="LC6164" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6165" class="blob-num js-line-number" data-line-number="6165"></td>
        <td id="LC6165" class="blob-code js-file-line">        <span class="kd">function</span> <span class="nx">add</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6166" class="blob-num js-line-number" data-line-number="6166"></td>
        <td id="LC6166" class="blob-code js-file-line">          <span class="c1">//D:self.debug(&quot;  adding output&quot;, uneval(x));</span></td>
      </tr>
      <tr>
        <td id="L6167" class="blob-num js-line-number" data-line-number="6167"></td>
        <td id="LC6167" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">x</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">out</span><span class="p">[</span><span class="nx">out</span><span class="p">.</span><span class="nx">length</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6168" class="blob-num js-line-number" data-line-number="6168"></td>
        <td id="LC6168" class="blob-code js-file-line">            <span class="nx">out</span><span class="p">[</span> <span class="nx">out</span><span class="p">.</span><span class="nx">length</span><span class="o">-</span><span class="mi">1</span> <span class="p">]</span> <span class="o">+=</span> <span class="nx">x</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6169" class="blob-num js-line-number" data-line-number="6169"></td>
        <td id="LC6169" class="blob-code js-file-line">          <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L6170" class="blob-num js-line-number" data-line-number="6170"></td>
        <td id="LC6170" class="blob-code js-file-line">            <span class="nx">out</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">x</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6171" class="blob-num js-line-number" data-line-number="6171"></td>
        <td id="LC6171" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6172" class="blob-num js-line-number" data-line-number="6172"></td>
        <td id="LC6172" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6173" class="blob-num js-line-number" data-line-number="6173"></td>
        <td id="LC6173" class="blob-code js-file-line">        <span class="k">while</span> <span class="p">(</span> <span class="nx">text</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6174" class="blob-num js-line-number" data-line-number="6174"></td>
        <td id="LC6174" class="blob-code js-file-line">          <span class="nx">res</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">inline</span><span class="p">.</span><span class="nx">__oneElement__</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">text</span><span class="p">,</span> <span class="nx">patterns</span><span class="p">,</span> <span class="nx">out</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6175" class="blob-num js-line-number" data-line-number="6175"></td>
        <td id="LC6175" class="blob-code js-file-line">          <span class="nx">text</span> <span class="o">=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="nx">res</span><span class="p">.</span><span class="nx">shift</span><span class="p">()</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6176" class="blob-num js-line-number" data-line-number="6176"></td>
        <td id="LC6176" class="blob-code js-file-line">          <span class="nx">forEach</span><span class="p">(</span><span class="nx">res</span><span class="p">,</span> <span class="nx">add</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6177" class="blob-num js-line-number" data-line-number="6177"></td>
        <td id="LC6177" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6178" class="blob-num js-line-number" data-line-number="6178"></td>
        <td id="LC6178" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6179" class="blob-num js-line-number" data-line-number="6179"></td>
        <td id="LC6179" class="blob-code js-file-line">        <span class="k">return</span> <span class="nx">out</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6180" class="blob-num js-line-number" data-line-number="6180"></td>
        <td id="LC6180" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L6181" class="blob-num js-line-number" data-line-number="6181"></td>
        <td id="LC6181" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6182" class="blob-num js-line-number" data-line-number="6182"></td>
        <td id="LC6182" class="blob-code js-file-line">      <span class="c1">// These characters are intersting elsewhere, so have rules for them so that</span></td>
      </tr>
      <tr>
        <td id="L6183" class="blob-num js-line-number" data-line-number="6183"></td>
        <td id="LC6183" class="blob-code js-file-line">      <span class="c1">// chunks of plain text blocks don&#39;t include them</span></td>
      </tr>
      <tr>
        <td id="L6184" class="blob-num js-line-number" data-line-number="6184"></td>
        <td id="LC6184" class="blob-code js-file-line">      <span class="s2">&quot;]&quot;</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{},</span></td>
      </tr>
      <tr>
        <td id="L6185" class="blob-num js-line-number" data-line-number="6185"></td>
        <td id="LC6185" class="blob-code js-file-line">      <span class="s2">&quot;}&quot;</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{},</span></td>
      </tr>
      <tr>
        <td id="L6186" class="blob-num js-line-number" data-line-number="6186"></td>
        <td id="LC6186" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6187" class="blob-num js-line-number" data-line-number="6187"></td>
        <td id="LC6187" class="blob-code js-file-line">      <span class="nx">__escape__</span> <span class="o">:</span> <span class="sr">/^\\[\\`\*_{}\[\]()#\+.!\-]/</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6188" class="blob-num js-line-number" data-line-number="6188"></td>
        <td id="LC6188" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6189" class="blob-num js-line-number" data-line-number="6189"></td>
        <td id="LC6189" class="blob-code js-file-line">      <span class="s2">&quot;\\&quot;</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">escaped</span><span class="p">(</span> <span class="nx">text</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6190" class="blob-num js-line-number" data-line-number="6190"></td>
        <td id="LC6190" class="blob-code js-file-line">        <span class="c1">// [ length of input processed, node/children to add... ]</span></td>
      </tr>
      <tr>
        <td id="L6191" class="blob-num js-line-number" data-line-number="6191"></td>
        <td id="LC6191" class="blob-code js-file-line">        <span class="c1">// Only esacape: \ ` * _ { } [ ] ( ) # * + - . !</span></td>
      </tr>
      <tr>
        <td id="L6192" class="blob-num js-line-number" data-line-number="6192"></td>
        <td id="LC6192" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">inline</span><span class="p">.</span><span class="nx">__escape__</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span> <span class="nx">text</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6193" class="blob-num js-line-number" data-line-number="6193"></td>
        <td id="LC6193" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">text</span><span class="p">.</span><span class="nx">charAt</span><span class="p">(</span> <span class="mi">1</span> <span class="p">)</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6194" class="blob-num js-line-number" data-line-number="6194"></td>
        <td id="LC6194" class="blob-code js-file-line">        <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L6195" class="blob-num js-line-number" data-line-number="6195"></td>
        <td id="LC6195" class="blob-code js-file-line">          <span class="c1">// Not an esacpe</span></td>
      </tr>
      <tr>
        <td id="L6196" class="blob-num js-line-number" data-line-number="6196"></td>
        <td id="LC6196" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">&quot;\\&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6197" class="blob-num js-line-number" data-line-number="6197"></td>
        <td id="LC6197" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L6198" class="blob-num js-line-number" data-line-number="6198"></td>
        <td id="LC6198" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6199" class="blob-num js-line-number" data-line-number="6199"></td>
        <td id="LC6199" class="blob-code js-file-line">      <span class="s2">&quot;![&quot;</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">image</span><span class="p">(</span> <span class="nx">text</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6200" class="blob-num js-line-number" data-line-number="6200"></td>
        <td id="LC6200" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6201" class="blob-num js-line-number" data-line-number="6201"></td>
        <td id="LC6201" class="blob-code js-file-line">        <span class="c1">// Unlike images, alt text is plain text only. no other elements are</span></td>
      </tr>
      <tr>
        <td id="L6202" class="blob-num js-line-number" data-line-number="6202"></td>
        <td id="LC6202" class="blob-code js-file-line">        <span class="c1">// allowed in there</span></td>
      </tr>
      <tr>
        <td id="L6203" class="blob-num js-line-number" data-line-number="6203"></td>
        <td id="LC6203" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6204" class="blob-num js-line-number" data-line-number="6204"></td>
        <td id="LC6204" class="blob-code js-file-line">        <span class="c1">// ![Alt text](/path/to/img.jpg &quot;Optional title&quot;)</span></td>
      </tr>
      <tr>
        <td id="L6205" class="blob-num js-line-number" data-line-number="6205"></td>
        <td id="LC6205" class="blob-code js-file-line">        <span class="c1">//      1          2            3       4         &lt;--- captures</span></td>
      </tr>
      <tr>
        <td id="L6206" class="blob-num js-line-number" data-line-number="6206"></td>
        <td id="LC6206" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^!\[(.*?)\][ \t]*\([ \t]*([^&quot;)]*?)(?:[ \t]+([&quot;&#39;])(.*?)\3)?[ \t]*\)/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6207" class="blob-num js-line-number" data-line-number="6207"></td>
        <td id="LC6207" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6208" class="blob-num js-line-number" data-line-number="6208"></td>
        <td id="LC6208" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6209" class="blob-num js-line-number" data-line-number="6209"></td>
        <td id="LC6209" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&amp;&amp;</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;&lt;&quot;</span> <span class="o">&amp;&amp;</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">length</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;&gt;&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6210" class="blob-num js-line-number" data-line-number="6210"></td>
        <td id="LC6210" class="blob-code js-file-line">            <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">substring</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6211" class="blob-num js-line-number" data-line-number="6211"></td>
        <td id="LC6211" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6212" class="blob-num js-line-number" data-line-number="6212"></td>
        <td id="LC6212" class="blob-code js-file-line">          <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">inline</span><span class="p">.</span><span class="nx">__call__</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span> <span class="k">this</span><span class="p">,</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="sr">/\\/</span> <span class="p">)[</span><span class="mi">0</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6213" class="blob-num js-line-number" data-line-number="6213"></td>
        <td id="LC6213" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6214" class="blob-num js-line-number" data-line-number="6214"></td>
        <td id="LC6214" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">attrs</span> <span class="o">=</span> <span class="p">{</span> <span class="nx">alt</span><span class="o">:</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="nx">href</span><span class="o">:</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">||</span> <span class="s2">&quot;&quot;</span> <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6215" class="blob-num js-line-number" data-line-number="6215"></td>
        <td id="LC6215" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">undefined</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6216" class="blob-num js-line-number" data-line-number="6216"></td>
        <td id="LC6216" class="blob-code js-file-line">            <span class="nx">attrs</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6217" class="blob-num js-line-number" data-line-number="6217"></td>
        <td id="LC6217" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6218" class="blob-num js-line-number" data-line-number="6218"></td>
        <td id="LC6218" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span><span class="p">,</span> <span class="p">[</span> <span class="s2">&quot;img&quot;</span><span class="p">,</span> <span class="nx">attrs</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6219" class="blob-num js-line-number" data-line-number="6219"></td>
        <td id="LC6219" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6220" class="blob-num js-line-number" data-line-number="6220"></td>
        <td id="LC6220" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6221" class="blob-num js-line-number" data-line-number="6221"></td>
        <td id="LC6221" class="blob-code js-file-line">        <span class="c1">// ![Alt text][id]</span></td>
      </tr>
      <tr>
        <td id="L6222" class="blob-num js-line-number" data-line-number="6222"></td>
        <td id="LC6222" class="blob-code js-file-line">        <span class="nx">m</span> <span class="o">=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^!\[(.*?)\][ \t]*\[(.*?)\]/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6223" class="blob-num js-line-number" data-line-number="6223"></td>
        <td id="LC6223" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6224" class="blob-num js-line-number" data-line-number="6224"></td>
        <td id="LC6224" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6225" class="blob-num js-line-number" data-line-number="6225"></td>
        <td id="LC6225" class="blob-code js-file-line">          <span class="c1">// We can&#39;t check if the reference is known here as it likely wont be</span></td>
      </tr>
      <tr>
        <td id="L6226" class="blob-num js-line-number" data-line-number="6226"></td>
        <td id="LC6226" class="blob-code js-file-line">          <span class="c1">// found till after. Check it in md tree-&gt;hmtl tree conversion</span></td>
      </tr>
      <tr>
        <td id="L6227" class="blob-num js-line-number" data-line-number="6227"></td>
        <td id="LC6227" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span><span class="p">,</span> <span class="p">[</span> <span class="s2">&quot;img_ref&quot;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">alt</span><span class="o">:</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="nx">ref</span><span class="o">:</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">toLowerCase</span><span class="p">(),</span> <span class="nx">original</span><span class="o">:</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">}</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6228" class="blob-num js-line-number" data-line-number="6228"></td>
        <td id="LC6228" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6229" class="blob-num js-line-number" data-line-number="6229"></td>
        <td id="LC6229" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6230" class="blob-num js-line-number" data-line-number="6230"></td>
        <td id="LC6230" class="blob-code js-file-line">        <span class="c1">// Just consume the &#39;![&#39;</span></td>
      </tr>
      <tr>
        <td id="L6231" class="blob-num js-line-number" data-line-number="6231"></td>
        <td id="LC6231" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">&quot;![&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6232" class="blob-num js-line-number" data-line-number="6232"></td>
        <td id="LC6232" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L6233" class="blob-num js-line-number" data-line-number="6233"></td>
        <td id="LC6233" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6234" class="blob-num js-line-number" data-line-number="6234"></td>
        <td id="LC6234" class="blob-code js-file-line">      <span class="s2">&quot;[&quot;</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">link</span><span class="p">(</span> <span class="nx">text</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6235" class="blob-num js-line-number" data-line-number="6235"></td>
        <td id="LC6235" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6236" class="blob-num js-line-number" data-line-number="6236"></td>
        <td id="LC6236" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">orig</span> <span class="o">=</span> <span class="nb">String</span><span class="p">(</span><span class="nx">text</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6237" class="blob-num js-line-number" data-line-number="6237"></td>
        <td id="LC6237" class="blob-code js-file-line">        <span class="c1">// Inline content is possible inside `link text`</span></td>
      </tr>
      <tr>
        <td id="L6238" class="blob-num js-line-number" data-line-number="6238"></td>
        <td id="LC6238" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="nx">inline_until_char</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span> <span class="k">this</span><span class="p">,</span> <span class="nx">text</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="s2">&quot;]&quot;</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6239" class="blob-num js-line-number" data-line-number="6239"></td>
        <td id="LC6239" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6240" class="blob-num js-line-number" data-line-number="6240"></td>
        <td id="LC6240" class="blob-code js-file-line">        <span class="c1">// No closing &#39;]&#39; found. Just consume the [</span></td>
      </tr>
      <tr>
        <td id="L6241" class="blob-num js-line-number" data-line-number="6241"></td>
        <td id="LC6241" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">res</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6242" class="blob-num js-line-number" data-line-number="6242"></td>
        <td id="LC6242" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">&quot;[&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6243" class="blob-num js-line-number" data-line-number="6243"></td>
        <td id="LC6243" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6244" class="blob-num js-line-number" data-line-number="6244"></td>
        <td id="LC6244" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">consumed</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">+</span> <span class="nx">res</span><span class="p">[</span> <span class="mi">0</span> <span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L6245" class="blob-num js-line-number" data-line-number="6245"></td>
        <td id="LC6245" class="blob-code js-file-line">            <span class="nx">children</span> <span class="o">=</span> <span class="nx">res</span><span class="p">[</span> <span class="mi">1</span> <span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L6246" class="blob-num js-line-number" data-line-number="6246"></td>
        <td id="LC6246" class="blob-code js-file-line">            <span class="nx">link</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6247" class="blob-num js-line-number" data-line-number="6247"></td>
        <td id="LC6247" class="blob-code js-file-line">            <span class="nx">attrs</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6248" class="blob-num js-line-number" data-line-number="6248"></td>
        <td id="LC6248" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6249" class="blob-num js-line-number" data-line-number="6249"></td>
        <td id="LC6249" class="blob-code js-file-line">        <span class="c1">// At this point the first [...] has been parsed. See what follows to find</span></td>
      </tr>
      <tr>
        <td id="L6250" class="blob-num js-line-number" data-line-number="6250"></td>
        <td id="LC6250" class="blob-code js-file-line">        <span class="c1">// out which kind of link we are (reference or direct url)</span></td>
      </tr>
      <tr>
        <td id="L6251" class="blob-num js-line-number" data-line-number="6251"></td>
        <td id="LC6251" class="blob-code js-file-line">        <span class="nx">text</span> <span class="o">=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="nx">consumed</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6252" class="blob-num js-line-number" data-line-number="6252"></td>
        <td id="LC6252" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6253" class="blob-num js-line-number" data-line-number="6253"></td>
        <td id="LC6253" class="blob-code js-file-line">        <span class="c1">// [link text](/path/to/img.jpg &quot;Optional title&quot;)</span></td>
      </tr>
      <tr>
        <td id="L6254" class="blob-num js-line-number" data-line-number="6254"></td>
        <td id="LC6254" class="blob-code js-file-line">        <span class="c1">//                 1            2       3         &lt;--- captures</span></td>
      </tr>
      <tr>
        <td id="L6255" class="blob-num js-line-number" data-line-number="6255"></td>
        <td id="LC6255" class="blob-code js-file-line">        <span class="c1">// This will capture up to the last paren in the block. We then pull</span></td>
      </tr>
      <tr>
        <td id="L6256" class="blob-num js-line-number" data-line-number="6256"></td>
        <td id="LC6256" class="blob-code js-file-line">        <span class="c1">// back based on if there a matching ones in the url</span></td>
      </tr>
      <tr>
        <td id="L6257" class="blob-num js-line-number" data-line-number="6257"></td>
        <td id="LC6257" class="blob-code js-file-line">        <span class="c1">//    ([here](/url/(test))</span></td>
      </tr>
      <tr>
        <td id="L6258" class="blob-num js-line-number" data-line-number="6258"></td>
        <td id="LC6258" class="blob-code js-file-line">        <span class="c1">// The parens have to be balanced</span></td>
      </tr>
      <tr>
        <td id="L6259" class="blob-num js-line-number" data-line-number="6259"></td>
        <td id="LC6259" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^\s*\([ \t]*([^&quot;&#39;]*)(?:[ \t]+([&quot;&#39;])(.*?)\2)?[ \t]*\)/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6260" class="blob-num js-line-number" data-line-number="6260"></td>
        <td id="LC6260" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6261" class="blob-num js-line-number" data-line-number="6261"></td>
        <td id="LC6261" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">url</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6262" class="blob-num js-line-number" data-line-number="6262"></td>
        <td id="LC6262" class="blob-code js-file-line">          <span class="nx">consumed</span> <span class="o">+=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6263" class="blob-num js-line-number" data-line-number="6263"></td>
        <td id="LC6263" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6264" class="blob-num js-line-number" data-line-number="6264"></td>
        <td id="LC6264" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">url</span> <span class="o">&amp;&amp;</span> <span class="nx">url</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;&lt;&quot;</span> <span class="o">&amp;&amp;</span> <span class="nx">url</span><span class="p">[</span><span class="nx">url</span><span class="p">.</span><span class="nx">length</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;&gt;&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6265" class="blob-num js-line-number" data-line-number="6265"></td>
        <td id="LC6265" class="blob-code js-file-line">            <span class="nx">url</span> <span class="o">=</span> <span class="nx">url</span><span class="p">.</span><span class="nx">substring</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">url</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6266" class="blob-num js-line-number" data-line-number="6266"></td>
        <td id="LC6266" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6267" class="blob-num js-line-number" data-line-number="6267"></td>
        <td id="LC6267" class="blob-code js-file-line">          <span class="c1">// If there is a title we don&#39;t have to worry about parens in the url</span></td>
      </tr>
      <tr>
        <td id="L6268" class="blob-num js-line-number" data-line-number="6268"></td>
        <td id="LC6268" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">m</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6269" class="blob-num js-line-number" data-line-number="6269"></td>
        <td id="LC6269" class="blob-code js-file-line">            <span class="kd">var</span> <span class="nx">open_parens</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="c1">// One open that isn&#39;t in the capture</span></td>
      </tr>
      <tr>
        <td id="L6270" class="blob-num js-line-number" data-line-number="6270"></td>
        <td id="LC6270" class="blob-code js-file-line">            <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">len</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">len</span> <span class="o">&lt;</span> <span class="nx">url</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">len</span><span class="o">++</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6271" class="blob-num js-line-number" data-line-number="6271"></td>
        <td id="LC6271" class="blob-code js-file-line">              <span class="k">switch</span> <span class="p">(</span> <span class="nx">url</span><span class="p">[</span><span class="nx">len</span><span class="p">]</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6272" class="blob-num js-line-number" data-line-number="6272"></td>
        <td id="LC6272" class="blob-code js-file-line">              <span class="k">case</span> <span class="s2">&quot;(&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L6273" class="blob-num js-line-number" data-line-number="6273"></td>
        <td id="LC6273" class="blob-code js-file-line">                <span class="nx">open_parens</span><span class="o">++</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6274" class="blob-num js-line-number" data-line-number="6274"></td>
        <td id="LC6274" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6275" class="blob-num js-line-number" data-line-number="6275"></td>
        <td id="LC6275" class="blob-code js-file-line">              <span class="k">case</span> <span class="s2">&quot;)&quot;</span><span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L6276" class="blob-num js-line-number" data-line-number="6276"></td>
        <td id="LC6276" class="blob-code js-file-line">                <span class="k">if</span> <span class="p">(</span> <span class="o">--</span><span class="nx">open_parens</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6277" class="blob-num js-line-number" data-line-number="6277"></td>
        <td id="LC6277" class="blob-code js-file-line">                  <span class="nx">consumed</span> <span class="o">-=</span> <span class="nx">url</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="nx">len</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6278" class="blob-num js-line-number" data-line-number="6278"></td>
        <td id="LC6278" class="blob-code js-file-line">                  <span class="nx">url</span> <span class="o">=</span> <span class="nx">url</span><span class="p">.</span><span class="nx">substring</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">len</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6279" class="blob-num js-line-number" data-line-number="6279"></td>
        <td id="LC6279" class="blob-code js-file-line">                <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6280" class="blob-num js-line-number" data-line-number="6280"></td>
        <td id="LC6280" class="blob-code js-file-line">                <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6281" class="blob-num js-line-number" data-line-number="6281"></td>
        <td id="LC6281" class="blob-code js-file-line">              <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6282" class="blob-num js-line-number" data-line-number="6282"></td>
        <td id="LC6282" class="blob-code js-file-line">            <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6283" class="blob-num js-line-number" data-line-number="6283"></td>
        <td id="LC6283" class="blob-code js-file-line">          <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6284" class="blob-num js-line-number" data-line-number="6284"></td>
        <td id="LC6284" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6285" class="blob-num js-line-number" data-line-number="6285"></td>
        <td id="LC6285" class="blob-code js-file-line">          <span class="c1">// Process escapes only</span></td>
      </tr>
      <tr>
        <td id="L6286" class="blob-num js-line-number" data-line-number="6286"></td>
        <td id="LC6286" class="blob-code js-file-line">          <span class="nx">url</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">inline</span><span class="p">.</span><span class="nx">__call__</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span> <span class="k">this</span><span class="p">,</span> <span class="nx">url</span><span class="p">,</span> <span class="sr">/\\/</span> <span class="p">)[</span><span class="mi">0</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6287" class="blob-num js-line-number" data-line-number="6287"></td>
        <td id="LC6287" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6288" class="blob-num js-line-number" data-line-number="6288"></td>
        <td id="LC6288" class="blob-code js-file-line">          <span class="nx">attrs</span> <span class="o">=</span> <span class="p">{</span> <span class="nx">href</span><span class="o">:</span> <span class="nx">url</span> <span class="o">||</span> <span class="s2">&quot;&quot;</span> <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6289" class="blob-num js-line-number" data-line-number="6289"></td>
        <td id="LC6289" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">!==</span> <span class="kc">undefined</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6290" class="blob-num js-line-number" data-line-number="6290"></td>
        <td id="LC6290" class="blob-code js-file-line">            <span class="nx">attrs</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">3</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6291" class="blob-num js-line-number" data-line-number="6291"></td>
        <td id="LC6291" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6292" class="blob-num js-line-number" data-line-number="6292"></td>
        <td id="LC6292" class="blob-code js-file-line">          <span class="nx">link</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;link&quot;</span><span class="p">,</span> <span class="nx">attrs</span> <span class="p">].</span><span class="nx">concat</span><span class="p">(</span> <span class="nx">children</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6293" class="blob-num js-line-number" data-line-number="6293"></td>
        <td id="LC6293" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="nx">consumed</span><span class="p">,</span> <span class="nx">link</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6294" class="blob-num js-line-number" data-line-number="6294"></td>
        <td id="LC6294" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6295" class="blob-num js-line-number" data-line-number="6295"></td>
        <td id="LC6295" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6296" class="blob-num js-line-number" data-line-number="6296"></td>
        <td id="LC6296" class="blob-code js-file-line">        <span class="c1">// [Alt text][id]</span></td>
      </tr>
      <tr>
        <td id="L6297" class="blob-num js-line-number" data-line-number="6297"></td>
        <td id="LC6297" class="blob-code js-file-line">        <span class="c1">// [Alt text] [id]</span></td>
      </tr>
      <tr>
        <td id="L6298" class="blob-num js-line-number" data-line-number="6298"></td>
        <td id="LC6298" class="blob-code js-file-line">        <span class="nx">m</span> <span class="o">=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^\s*\[(.*?)\]/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6299" class="blob-num js-line-number" data-line-number="6299"></td>
        <td id="LC6299" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6300" class="blob-num js-line-number" data-line-number="6300"></td>
        <td id="LC6300" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6301" class="blob-num js-line-number" data-line-number="6301"></td>
        <td id="LC6301" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6302" class="blob-num js-line-number" data-line-number="6302"></td>
        <td id="LC6302" class="blob-code js-file-line">          <span class="nx">consumed</span> <span class="o">+=</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">0</span> <span class="p">].</span><span class="nx">length</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6303" class="blob-num js-line-number" data-line-number="6303"></td>
        <td id="LC6303" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6304" class="blob-num js-line-number" data-line-number="6304"></td>
        <td id="LC6304" class="blob-code js-file-line">          <span class="c1">// [links][] uses links as its reference</span></td>
      </tr>
      <tr>
        <td id="L6305" class="blob-num js-line-number" data-line-number="6305"></td>
        <td id="LC6305" class="blob-code js-file-line">          <span class="nx">attrs</span> <span class="o">=</span> <span class="p">{</span> <span class="nx">ref</span><span class="o">:</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">1</span> <span class="p">]</span> <span class="o">||</span> <span class="nb">String</span><span class="p">(</span><span class="nx">children</span><span class="p">)</span> <span class="p">).</span><span class="nx">toLowerCase</span><span class="p">(),</span>  <span class="nx">original</span><span class="o">:</span> <span class="nx">orig</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">consumed</span> <span class="p">)</span> <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6306" class="blob-num js-line-number" data-line-number="6306"></td>
        <td id="LC6306" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6307" class="blob-num js-line-number" data-line-number="6307"></td>
        <td id="LC6307" class="blob-code js-file-line">          <span class="nx">link</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;link_ref&quot;</span><span class="p">,</span> <span class="nx">attrs</span> <span class="p">].</span><span class="nx">concat</span><span class="p">(</span> <span class="nx">children</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6308" class="blob-num js-line-number" data-line-number="6308"></td>
        <td id="LC6308" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6309" class="blob-num js-line-number" data-line-number="6309"></td>
        <td id="LC6309" class="blob-code js-file-line">          <span class="c1">// We can&#39;t check if the reference is known here as it likely wont be</span></td>
      </tr>
      <tr>
        <td id="L6310" class="blob-num js-line-number" data-line-number="6310"></td>
        <td id="LC6310" class="blob-code js-file-line">          <span class="c1">// found till after. Check it in md tree-&gt;hmtl tree conversion.</span></td>
      </tr>
      <tr>
        <td id="L6311" class="blob-num js-line-number" data-line-number="6311"></td>
        <td id="LC6311" class="blob-code js-file-line">          <span class="c1">// Store the original so that conversion can revert if the ref isn&#39;t found.</span></td>
      </tr>
      <tr>
        <td id="L6312" class="blob-num js-line-number" data-line-number="6312"></td>
        <td id="LC6312" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="nx">consumed</span><span class="p">,</span> <span class="nx">link</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6313" class="blob-num js-line-number" data-line-number="6313"></td>
        <td id="LC6313" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6314" class="blob-num js-line-number" data-line-number="6314"></td>
        <td id="LC6314" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6315" class="blob-num js-line-number" data-line-number="6315"></td>
        <td id="LC6315" class="blob-code js-file-line">        <span class="c1">// [id]</span></td>
      </tr>
      <tr>
        <td id="L6316" class="blob-num js-line-number" data-line-number="6316"></td>
        <td id="LC6316" class="blob-code js-file-line">        <span class="c1">// Only if id is plain (no formatting.)</span></td>
      </tr>
      <tr>
        <td id="L6317" class="blob-num js-line-number" data-line-number="6317"></td>
        <td id="LC6317" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">children</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">1</span> <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6318" class="blob-num js-line-number" data-line-number="6318"></td>
        <td id="LC6318" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6319" class="blob-num js-line-number" data-line-number="6319"></td>
        <td id="LC6319" class="blob-code js-file-line">          <span class="nx">attrs</span> <span class="o">=</span> <span class="p">{</span> <span class="nx">ref</span><span class="o">:</span> <span class="nx">children</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">toLowerCase</span><span class="p">(),</span>  <span class="nx">original</span><span class="o">:</span> <span class="nx">orig</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">consumed</span> <span class="p">)</span> <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6320" class="blob-num js-line-number" data-line-number="6320"></td>
        <td id="LC6320" class="blob-code js-file-line">          <span class="nx">link</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;link_ref&quot;</span><span class="p">,</span> <span class="nx">attrs</span><span class="p">,</span> <span class="nx">children</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6321" class="blob-num js-line-number" data-line-number="6321"></td>
        <td id="LC6321" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="nx">consumed</span><span class="p">,</span> <span class="nx">link</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6322" class="blob-num js-line-number" data-line-number="6322"></td>
        <td id="LC6322" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6323" class="blob-num js-line-number" data-line-number="6323"></td>
        <td id="LC6323" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6324" class="blob-num js-line-number" data-line-number="6324"></td>
        <td id="LC6324" class="blob-code js-file-line">        <span class="c1">// Just consume the &quot;[&quot;</span></td>
      </tr>
      <tr>
        <td id="L6325" class="blob-num js-line-number" data-line-number="6325"></td>
        <td id="LC6325" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">&quot;[&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6326" class="blob-num js-line-number" data-line-number="6326"></td>
        <td id="LC6326" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L6327" class="blob-num js-line-number" data-line-number="6327"></td>
        <td id="LC6327" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6328" class="blob-num js-line-number" data-line-number="6328"></td>
        <td id="LC6328" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6329" class="blob-num js-line-number" data-line-number="6329"></td>
        <td id="LC6329" class="blob-code js-file-line">      <span class="s2">&quot;&lt;&quot;</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">autoLink</span><span class="p">(</span> <span class="nx">text</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6330" class="blob-num js-line-number" data-line-number="6330"></td>
        <td id="LC6330" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">m</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6331" class="blob-num js-line-number" data-line-number="6331"></td>
        <td id="LC6331" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6332" class="blob-num js-line-number" data-line-number="6332"></td>
        <td id="LC6332" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="p">(</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^&lt;(?:((https?|ftp|mailto):[^&gt;]+)|(.*?@.*?\.[a-zA-Z]+))&gt;/</span> <span class="p">)</span> <span class="p">)</span> <span class="o">!==</span> <span class="kc">null</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6333" class="blob-num js-line-number" data-line-number="6333"></td>
        <td id="LC6333" class="blob-code js-file-line">          <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6334" class="blob-num js-line-number" data-line-number="6334"></td>
        <td id="LC6334" class="blob-code js-file-line">            <span class="k">return</span> <span class="p">[</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span><span class="p">,</span> <span class="p">[</span> <span class="s2">&quot;link&quot;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">href</span><span class="o">:</span> <span class="s2">&quot;mailto:&quot;</span> <span class="o">+</span> <span class="nx">m</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">},</span> <span class="nx">m</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6335" class="blob-num js-line-number" data-line-number="6335"></td>
        <td id="LC6335" class="blob-code js-file-line">          <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;mailto&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6336" class="blob-num js-line-number" data-line-number="6336"></td>
        <td id="LC6336" class="blob-code js-file-line">            <span class="k">return</span> <span class="p">[</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span><span class="p">,</span> <span class="p">[</span> <span class="s2">&quot;link&quot;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">href</span><span class="o">:</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">},</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">substr</span><span class="p">(</span><span class="s2">&quot;mailto:&quot;</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6337" class="blob-num js-line-number" data-line-number="6337"></td>
        <td id="LC6337" class="blob-code js-file-line">          <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L6338" class="blob-num js-line-number" data-line-number="6338"></td>
        <td id="LC6338" class="blob-code js-file-line">            <span class="k">return</span> <span class="p">[</span> <span class="nx">m</span><span class="p">[</span><span class="mi">0</span><span class="p">].</span><span class="nx">length</span><span class="p">,</span> <span class="p">[</span> <span class="s2">&quot;link&quot;</span><span class="p">,</span> <span class="p">{</span> <span class="nx">href</span><span class="o">:</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">},</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6339" class="blob-num js-line-number" data-line-number="6339"></td>
        <td id="LC6339" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6340" class="blob-num js-line-number" data-line-number="6340"></td>
        <td id="LC6340" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6341" class="blob-num js-line-number" data-line-number="6341"></td>
        <td id="LC6341" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">&quot;&lt;&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6342" class="blob-num js-line-number" data-line-number="6342"></td>
        <td id="LC6342" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L6343" class="blob-num js-line-number" data-line-number="6343"></td>
        <td id="LC6343" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6344" class="blob-num js-line-number" data-line-number="6344"></td>
        <td id="LC6344" class="blob-code js-file-line">      <span class="s2">&quot;`&quot;</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">inlineCode</span><span class="p">(</span> <span class="nx">text</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6345" class="blob-num js-line-number" data-line-number="6345"></td>
        <td id="LC6345" class="blob-code js-file-line">        <span class="c1">// Inline code block. as many backticks as you like to start it</span></td>
      </tr>
      <tr>
        <td id="L6346" class="blob-num js-line-number" data-line-number="6346"></td>
        <td id="LC6346" class="blob-code js-file-line">        <span class="c1">// Always skip over the opening ticks.</span></td>
      </tr>
      <tr>
        <td id="L6347" class="blob-num js-line-number" data-line-number="6347"></td>
        <td id="LC6347" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/(`+)(([\s\S]*?)\1)/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6348" class="blob-num js-line-number" data-line-number="6348"></td>
        <td id="LC6348" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6349" class="blob-num js-line-number" data-line-number="6349"></td>
        <td id="LC6349" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span> <span class="o">&amp;&amp;</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6350" class="blob-num js-line-number" data-line-number="6350"></td>
        <td id="LC6350" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">length</span> <span class="o">+</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">length</span><span class="p">,</span> <span class="p">[</span> <span class="s2">&quot;inlinecode&quot;</span><span class="p">,</span> <span class="nx">m</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6351" class="blob-num js-line-number" data-line-number="6351"></td>
        <td id="LC6351" class="blob-code js-file-line">        <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6352" class="blob-num js-line-number" data-line-number="6352"></td>
        <td id="LC6352" class="blob-code js-file-line">          <span class="c1">// TODO: No matching end code found - warn!</span></td>
      </tr>
      <tr>
        <td id="L6353" class="blob-num js-line-number" data-line-number="6353"></td>
        <td id="LC6353" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">&quot;`&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6354" class="blob-num js-line-number" data-line-number="6354"></td>
        <td id="LC6354" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6355" class="blob-num js-line-number" data-line-number="6355"></td>
        <td id="LC6355" class="blob-code js-file-line">      <span class="p">},</span></td>
      </tr>
      <tr>
        <td id="L6356" class="blob-num js-line-number" data-line-number="6356"></td>
        <td id="LC6356" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6357" class="blob-num js-line-number" data-line-number="6357"></td>
        <td id="LC6357" class="blob-code js-file-line">      <span class="s2">&quot;  \n&quot;</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">lineBreak</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6358" class="blob-num js-line-number" data-line-number="6358"></td>
        <td id="LC6358" class="blob-code js-file-line">        <span class="k">return</span> <span class="p">[</span> <span class="mi">3</span><span class="p">,</span> <span class="p">[</span> <span class="s2">&quot;linebreak&quot;</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6359" class="blob-num js-line-number" data-line-number="6359"></td>
        <td id="LC6359" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6360" class="blob-num js-line-number" data-line-number="6360"></td>
        <td id="LC6360" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6361" class="blob-num js-line-number" data-line-number="6361"></td>
        <td id="LC6361" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6362" class="blob-num js-line-number" data-line-number="6362"></td>
        <td id="LC6362" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6363" class="blob-num js-line-number" data-line-number="6363"></td>
        <td id="LC6363" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6364" class="blob-num js-line-number" data-line-number="6364"></td>
        <td id="LC6364" class="blob-code js-file-line">  <span class="c1">// Meta Helper/generator method for em and strong handling</span></td>
      </tr>
      <tr>
        <td id="L6365" class="blob-num js-line-number" data-line-number="6365"></td>
        <td id="LC6365" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">strong_em</span><span class="p">(</span> <span class="nx">tag</span><span class="p">,</span> <span class="nx">md</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6366" class="blob-num js-line-number" data-line-number="6366"></td>
        <td id="LC6366" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6367" class="blob-num js-line-number" data-line-number="6367"></td>
        <td id="LC6367" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">state_slot</span> <span class="o">=</span> <span class="nx">tag</span> <span class="o">+</span> <span class="s2">&quot;_state&quot;</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6368" class="blob-num js-line-number" data-line-number="6368"></td>
        <td id="LC6368" class="blob-code js-file-line">        <span class="nx">other_slot</span> <span class="o">=</span> <span class="nx">tag</span> <span class="o">===</span> <span class="s2">&quot;strong&quot;</span> <span class="o">?</span> <span class="s2">&quot;em_state&quot;</span> <span class="o">:</span> <span class="s2">&quot;strong_state&quot;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6369" class="blob-num js-line-number" data-line-number="6369"></td>
        <td id="LC6369" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6370" class="blob-num js-line-number" data-line-number="6370"></td>
        <td id="LC6370" class="blob-code js-file-line">    <span class="kd">function</span> <span class="nx">CloseTag</span><span class="p">(</span><span class="nx">len</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6371" class="blob-num js-line-number" data-line-number="6371"></td>
        <td id="LC6371" class="blob-code js-file-line">      <span class="k">this</span><span class="p">.</span><span class="nx">len_after</span> <span class="o">=</span> <span class="nx">len</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6372" class="blob-num js-line-number" data-line-number="6372"></td>
        <td id="LC6372" class="blob-code js-file-line">      <span class="k">this</span><span class="p">.</span><span class="nx">name</span> <span class="o">=</span> <span class="s2">&quot;close_&quot;</span> <span class="o">+</span> <span class="nx">md</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6373" class="blob-num js-line-number" data-line-number="6373"></td>
        <td id="LC6373" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6374" class="blob-num js-line-number" data-line-number="6374"></td>
        <td id="LC6374" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6375" class="blob-num js-line-number" data-line-number="6375"></td>
        <td id="LC6375" class="blob-code js-file-line">    <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span> <span class="nx">text</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6376" class="blob-num js-line-number" data-line-number="6376"></td>
        <td id="LC6376" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6377" class="blob-num js-line-number" data-line-number="6377"></td>
        <td id="LC6377" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="k">this</span><span class="p">[</span><span class="nx">state_slot</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">===</span> <span class="nx">md</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6378" class="blob-num js-line-number" data-line-number="6378"></td>
        <td id="LC6378" class="blob-code js-file-line">        <span class="c1">// Most recent em is of this type</span></td>
      </tr>
      <tr>
        <td id="L6379" class="blob-num js-line-number" data-line-number="6379"></td>
        <td id="LC6379" class="blob-code js-file-line">        <span class="c1">//D:this.debug(&quot;closing&quot;, md);</span></td>
      </tr>
      <tr>
        <td id="L6380" class="blob-num js-line-number" data-line-number="6380"></td>
        <td id="LC6380" class="blob-code js-file-line">        <span class="k">this</span><span class="p">[</span><span class="nx">state_slot</span><span class="p">].</span><span class="nx">shift</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L6381" class="blob-num js-line-number" data-line-number="6381"></td>
        <td id="LC6381" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6382" class="blob-num js-line-number" data-line-number="6382"></td>
        <td id="LC6382" class="blob-code js-file-line">        <span class="c1">// &quot;Consume&quot; everything to go back to the recrusion in the else-block below</span></td>
      </tr>
      <tr>
        <td id="L6383" class="blob-num js-line-number" data-line-number="6383"></td>
        <td id="LC6383" class="blob-code js-file-line">        <span class="k">return</span><span class="p">[</span> <span class="nx">text</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span> <span class="k">new</span> <span class="nx">CloseTag</span><span class="p">(</span><span class="nx">text</span><span class="p">.</span><span class="nx">length</span><span class="o">-</span><span class="nx">md</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6384" class="blob-num js-line-number" data-line-number="6384"></td>
        <td id="LC6384" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6385" class="blob-num js-line-number" data-line-number="6385"></td>
        <td id="LC6385" class="blob-code js-file-line">      <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6386" class="blob-num js-line-number" data-line-number="6386"></td>
        <td id="LC6386" class="blob-code js-file-line">        <span class="c1">// Store a clone of the em/strong states</span></td>
      </tr>
      <tr>
        <td id="L6387" class="blob-num js-line-number" data-line-number="6387"></td>
        <td id="LC6387" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">other</span> <span class="o">=</span> <span class="k">this</span><span class="p">[</span><span class="nx">other_slot</span><span class="p">].</span><span class="nx">slice</span><span class="p">(),</span></td>
      </tr>
      <tr>
        <td id="L6388" class="blob-num js-line-number" data-line-number="6388"></td>
        <td id="LC6388" class="blob-code js-file-line">            <span class="nx">state</span> <span class="o">=</span> <span class="k">this</span><span class="p">[</span><span class="nx">state_slot</span><span class="p">].</span><span class="nx">slice</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L6389" class="blob-num js-line-number" data-line-number="6389"></td>
        <td id="LC6389" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6390" class="blob-num js-line-number" data-line-number="6390"></td>
        <td id="LC6390" class="blob-code js-file-line">        <span class="k">this</span><span class="p">[</span><span class="nx">state_slot</span><span class="p">].</span><span class="nx">unshift</span><span class="p">(</span><span class="nx">md</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6391" class="blob-num js-line-number" data-line-number="6391"></td>
        <td id="LC6391" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6392" class="blob-num js-line-number" data-line-number="6392"></td>
        <td id="LC6392" class="blob-code js-file-line">        <span class="c1">//D:this.debug_indent += &quot;  &quot;;</span></td>
      </tr>
      <tr>
        <td id="L6393" class="blob-num js-line-number" data-line-number="6393"></td>
        <td id="LC6393" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6394" class="blob-num js-line-number" data-line-number="6394"></td>
        <td id="LC6394" class="blob-code js-file-line">        <span class="c1">// Recurse</span></td>
      </tr>
      <tr>
        <td id="L6395" class="blob-num js-line-number" data-line-number="6395"></td>
        <td id="LC6395" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">processInline</span><span class="p">(</span> <span class="nx">text</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span> <span class="nx">md</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6396" class="blob-num js-line-number" data-line-number="6396"></td>
        <td id="LC6396" class="blob-code js-file-line">        <span class="c1">//D:this.debug_indent = this.debug_indent.substr(2);</span></td>
      </tr>
      <tr>
        <td id="L6397" class="blob-num js-line-number" data-line-number="6397"></td>
        <td id="LC6397" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6398" class="blob-num js-line-number" data-line-number="6398"></td>
        <td id="LC6398" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">last</span> <span class="o">=</span> <span class="nx">res</span><span class="p">[</span><span class="nx">res</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6399" class="blob-num js-line-number" data-line-number="6399"></td>
        <td id="LC6399" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6400" class="blob-num js-line-number" data-line-number="6400"></td>
        <td id="LC6400" class="blob-code js-file-line">        <span class="c1">//D:this.debug(&quot;processInline from&quot;, tag + &quot;: &quot;, uneval( res ) );</span></td>
      </tr>
      <tr>
        <td id="L6401" class="blob-num js-line-number" data-line-number="6401"></td>
        <td id="LC6401" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6402" class="blob-num js-line-number" data-line-number="6402"></td>
        <td id="LC6402" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">check</span> <span class="o">=</span> <span class="k">this</span><span class="p">[</span><span class="nx">state_slot</span><span class="p">].</span><span class="nx">shift</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L6403" class="blob-num js-line-number" data-line-number="6403"></td>
        <td id="LC6403" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">last</span> <span class="k">instanceof</span> <span class="nx">CloseTag</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6404" class="blob-num js-line-number" data-line-number="6404"></td>
        <td id="LC6404" class="blob-code js-file-line">          <span class="nx">res</span><span class="p">.</span><span class="nx">pop</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L6405" class="blob-num js-line-number" data-line-number="6405"></td>
        <td id="LC6405" class="blob-code js-file-line">          <span class="c1">// We matched! Huzzah.</span></td>
      </tr>
      <tr>
        <td id="L6406" class="blob-num js-line-number" data-line-number="6406"></td>
        <td id="LC6406" class="blob-code js-file-line">          <span class="kd">var</span> <span class="nx">consumed</span> <span class="o">=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="nx">last</span><span class="p">.</span><span class="nx">len_after</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6407" class="blob-num js-line-number" data-line-number="6407"></td>
        <td id="LC6407" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="nx">consumed</span><span class="p">,</span> <span class="p">[</span> <span class="nx">tag</span> <span class="p">].</span><span class="nx">concat</span><span class="p">(</span><span class="nx">res</span><span class="p">)</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6408" class="blob-num js-line-number" data-line-number="6408"></td>
        <td id="LC6408" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6409" class="blob-num js-line-number" data-line-number="6409"></td>
        <td id="LC6409" class="blob-code js-file-line">        <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6410" class="blob-num js-line-number" data-line-number="6410"></td>
        <td id="LC6410" class="blob-code js-file-line">          <span class="c1">// Restore the state of the other kind. We might have mistakenly closed it.</span></td>
      </tr>
      <tr>
        <td id="L6411" class="blob-num js-line-number" data-line-number="6411"></td>
        <td id="LC6411" class="blob-code js-file-line">          <span class="k">this</span><span class="p">[</span><span class="nx">other_slot</span><span class="p">]</span> <span class="o">=</span> <span class="nx">other</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6412" class="blob-num js-line-number" data-line-number="6412"></td>
        <td id="LC6412" class="blob-code js-file-line">          <span class="k">this</span><span class="p">[</span><span class="nx">state_slot</span><span class="p">]</span> <span class="o">=</span> <span class="nx">state</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6413" class="blob-num js-line-number" data-line-number="6413"></td>
        <td id="LC6413" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6414" class="blob-num js-line-number" data-line-number="6414"></td>
        <td id="LC6414" class="blob-code js-file-line">          <span class="c1">// We can&#39;t reuse the processed result as it could have wrong parsing contexts in it.</span></td>
      </tr>
      <tr>
        <td id="L6415" class="blob-num js-line-number" data-line-number="6415"></td>
        <td id="LC6415" class="blob-code js-file-line">          <span class="k">return</span> <span class="p">[</span> <span class="nx">md</span><span class="p">.</span><span class="nx">length</span><span class="p">,</span> <span class="nx">md</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6416" class="blob-num js-line-number" data-line-number="6416"></td>
        <td id="LC6416" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6417" class="blob-num js-line-number" data-line-number="6417"></td>
        <td id="LC6417" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6418" class="blob-num js-line-number" data-line-number="6418"></td>
        <td id="LC6418" class="blob-code js-file-line">    <span class="p">};</span> <span class="c1">// End returned function</span></td>
      </tr>
      <tr>
        <td id="L6419" class="blob-num js-line-number" data-line-number="6419"></td>
        <td id="LC6419" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6420" class="blob-num js-line-number" data-line-number="6420"></td>
        <td id="LC6420" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6421" class="blob-num js-line-number" data-line-number="6421"></td>
        <td id="LC6421" class="blob-code js-file-line">  <span class="nx">Gruber</span><span class="p">.</span><span class="nx">inline</span><span class="p">[</span><span class="s2">&quot;**&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nx">strong_em</span><span class="p">(</span><span class="s2">&quot;strong&quot;</span><span class="p">,</span> <span class="s2">&quot;**&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6422" class="blob-num js-line-number" data-line-number="6422"></td>
        <td id="LC6422" class="blob-code js-file-line">  <span class="nx">Gruber</span><span class="p">.</span><span class="nx">inline</span><span class="p">[</span><span class="s2">&quot;__&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nx">strong_em</span><span class="p">(</span><span class="s2">&quot;strong&quot;</span><span class="p">,</span> <span class="s2">&quot;__&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6423" class="blob-num js-line-number" data-line-number="6423"></td>
        <td id="LC6423" class="blob-code js-file-line">  <span class="nx">Gruber</span><span class="p">.</span><span class="nx">inline</span><span class="p">[</span><span class="s2">&quot;*&quot;</span><span class="p">]</span>  <span class="o">=</span> <span class="nx">strong_em</span><span class="p">(</span><span class="s2">&quot;em&quot;</span><span class="p">,</span> <span class="s2">&quot;*&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6424" class="blob-num js-line-number" data-line-number="6424"></td>
        <td id="LC6424" class="blob-code js-file-line">  <span class="nx">Gruber</span><span class="p">.</span><span class="nx">inline</span><span class="p">[</span><span class="s2">&quot;_&quot;</span><span class="p">]</span>  <span class="o">=</span> <span class="nx">strong_em</span><span class="p">(</span><span class="s2">&quot;em&quot;</span><span class="p">,</span> <span class="s2">&quot;_&quot;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6425" class="blob-num js-line-number" data-line-number="6425"></td>
        <td id="LC6425" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6426" class="blob-num js-line-number" data-line-number="6426"></td>
        <td id="LC6426" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span><span class="p">.</span><span class="nx">Gruber</span> <span class="o">=</span> <span class="nx">Gruber</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6427" class="blob-num js-line-number" data-line-number="6427"></td>
        <td id="LC6427" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">buildBlockOrder</span> <span class="p">(</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span><span class="p">.</span><span class="nx">Gruber</span><span class="p">.</span><span class="nx">block</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6428" class="blob-num js-line-number" data-line-number="6428"></td>
        <td id="LC6428" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">buildInlinePatterns</span><span class="p">(</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span><span class="p">.</span><span class="nx">Gruber</span><span class="p">.</span><span class="nx">inline</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6429" class="blob-num js-line-number" data-line-number="6429"></td>
        <td id="LC6429" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6430" class="blob-num js-line-number" data-line-number="6430"></td>
        <td id="LC6430" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6431" class="blob-num js-line-number" data-line-number="6431"></td>
        <td id="LC6431" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6432" class="blob-num js-line-number" data-line-number="6432"></td>
        <td id="LC6432" class="blob-code js-file-line">  <span class="kd">var</span> <span class="nx">Maruku</span> <span class="o">=</span> <span class="nx">DialectHelpers</span><span class="p">.</span><span class="nx">subclassDialect</span><span class="p">(</span> <span class="nx">Gruber</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6433" class="blob-num js-line-number" data-line-number="6433"></td>
        <td id="LC6433" class="blob-code js-file-line">      <span class="nx">extract_attr</span> <span class="o">=</span> <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">extract_attr</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6434" class="blob-num js-line-number" data-line-number="6434"></td>
        <td id="LC6434" class="blob-code js-file-line">      <span class="nx">forEach</span> <span class="o">=</span> <span class="nx">MarkdownHelpers</span><span class="p">.</span><span class="nx">forEach</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6435" class="blob-num js-line-number" data-line-number="6435"></td>
        <td id="LC6435" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6436" class="blob-num js-line-number" data-line-number="6436"></td>
        <td id="LC6436" class="blob-code js-file-line">  <span class="nx">Maruku</span><span class="p">.</span><span class="nx">processMetaHash</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">processMetaHash</span><span class="p">(</span> <span class="nx">meta_string</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6437" class="blob-num js-line-number" data-line-number="6437"></td>
        <td id="LC6437" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">meta</span> <span class="o">=</span> <span class="nx">split_meta_hash</span><span class="p">(</span> <span class="nx">meta_string</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6438" class="blob-num js-line-number" data-line-number="6438"></td>
        <td id="LC6438" class="blob-code js-file-line">        <span class="nx">attr</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L6439" class="blob-num js-line-number" data-line-number="6439"></td>
        <td id="LC6439" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6440" class="blob-num js-line-number" data-line-number="6440"></td>
        <td id="LC6440" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">meta</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6441" class="blob-num js-line-number" data-line-number="6441"></td>
        <td id="LC6441" class="blob-code js-file-line">      <span class="c1">// id: #foo</span></td>
      </tr>
      <tr>
        <td id="L6442" class="blob-num js-line-number" data-line-number="6442"></td>
        <td id="LC6442" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="sr">/^#/</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span> <span class="nx">meta</span><span class="p">[</span> <span class="nx">i</span> <span class="p">]</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6443" class="blob-num js-line-number" data-line-number="6443"></td>
        <td id="LC6443" class="blob-code js-file-line">        <span class="nx">attr</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="nx">meta</span><span class="p">[</span> <span class="nx">i</span> <span class="p">].</span><span class="nx">substring</span><span class="p">(</span> <span class="mi">1</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6444" class="blob-num js-line-number" data-line-number="6444"></td>
        <td id="LC6444" class="blob-code js-file-line">      <span class="c1">// class: .foo</span></td>
      </tr>
      <tr>
        <td id="L6445" class="blob-num js-line-number" data-line-number="6445"></td>
        <td id="LC6445" class="blob-code js-file-line">      <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="sr">/^\./</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span> <span class="nx">meta</span><span class="p">[</span> <span class="nx">i</span> <span class="p">]</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6446" class="blob-num js-line-number" data-line-number="6446"></td>
        <td id="LC6446" class="blob-code js-file-line">        <span class="c1">// if class already exists, append the new one</span></td>
      </tr>
      <tr>
        <td id="L6447" class="blob-num js-line-number" data-line-number="6447"></td>
        <td id="LC6447" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">attr</span><span class="p">[</span><span class="s2">&quot;class&quot;</span><span class="p">]</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6448" class="blob-num js-line-number" data-line-number="6448"></td>
        <td id="LC6448" class="blob-code js-file-line">          <span class="nx">attr</span><span class="p">[</span><span class="s2">&quot;class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nx">attr</span><span class="p">[</span><span class="s2">&quot;class&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="nx">meta</span><span class="p">[</span> <span class="nx">i</span> <span class="p">].</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/./</span><span class="p">,</span> <span class="s2">&quot; &quot;</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6449" class="blob-num js-line-number" data-line-number="6449"></td>
        <td id="LC6449" class="blob-code js-file-line">        <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L6450" class="blob-num js-line-number" data-line-number="6450"></td>
        <td id="LC6450" class="blob-code js-file-line">          <span class="nx">attr</span><span class="p">[</span><span class="s2">&quot;class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nx">meta</span><span class="p">[</span> <span class="nx">i</span> <span class="p">].</span><span class="nx">substring</span><span class="p">(</span> <span class="mi">1</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6451" class="blob-num js-line-number" data-line-number="6451"></td>
        <td id="LC6451" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6452" class="blob-num js-line-number" data-line-number="6452"></td>
        <td id="LC6452" class="blob-code js-file-line">      <span class="c1">// attribute: foo=bar</span></td>
      </tr>
      <tr>
        <td id="L6453" class="blob-num js-line-number" data-line-number="6453"></td>
        <td id="LC6453" class="blob-code js-file-line">      <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="sr">/\=/</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span> <span class="nx">meta</span><span class="p">[</span> <span class="nx">i</span> <span class="p">]</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6454" class="blob-num js-line-number" data-line-number="6454"></td>
        <td id="LC6454" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">s</span> <span class="o">=</span> <span class="nx">meta</span><span class="p">[</span> <span class="nx">i</span> <span class="p">].</span><span class="nx">split</span><span class="p">(</span> <span class="sr">/\=/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6455" class="blob-num js-line-number" data-line-number="6455"></td>
        <td id="LC6455" class="blob-code js-file-line">        <span class="nx">attr</span><span class="p">[</span> <span class="nx">s</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="p">]</span> <span class="o">=</span> <span class="nx">s</span><span class="p">[</span> <span class="mi">1</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6456" class="blob-num js-line-number" data-line-number="6456"></td>
        <td id="LC6456" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6457" class="blob-num js-line-number" data-line-number="6457"></td>
        <td id="LC6457" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6458" class="blob-num js-line-number" data-line-number="6458"></td>
        <td id="LC6458" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6459" class="blob-num js-line-number" data-line-number="6459"></td>
        <td id="LC6459" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">attr</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6460" class="blob-num js-line-number" data-line-number="6460"></td>
        <td id="LC6460" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6461" class="blob-num js-line-number" data-line-number="6461"></td>
        <td id="LC6461" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6462" class="blob-num js-line-number" data-line-number="6462"></td>
        <td id="LC6462" class="blob-code js-file-line">  <span class="kd">function</span> <span class="nx">split_meta_hash</span><span class="p">(</span> <span class="nx">meta_string</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6463" class="blob-num js-line-number" data-line-number="6463"></td>
        <td id="LC6463" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">meta</span> <span class="o">=</span> <span class="nx">meta_string</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span> <span class="s2">&quot;&quot;</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6464" class="blob-num js-line-number" data-line-number="6464"></td>
        <td id="LC6464" class="blob-code js-file-line">        <span class="nx">parts</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;&quot;</span> <span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L6465" class="blob-num js-line-number" data-line-number="6465"></td>
        <td id="LC6465" class="blob-code js-file-line">        <span class="nx">in_quotes</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6466" class="blob-num js-line-number" data-line-number="6466"></td>
        <td id="LC6466" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6467" class="blob-num js-line-number" data-line-number="6467"></td>
        <td id="LC6467" class="blob-code js-file-line">    <span class="k">while</span> <span class="p">(</span> <span class="nx">meta</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6468" class="blob-num js-line-number" data-line-number="6468"></td>
        <td id="LC6468" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">letter</span> <span class="o">=</span> <span class="nx">meta</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L6469" class="blob-num js-line-number" data-line-number="6469"></td>
        <td id="LC6469" class="blob-code js-file-line">      <span class="k">switch</span> <span class="p">(</span> <span class="nx">letter</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6470" class="blob-num js-line-number" data-line-number="6470"></td>
        <td id="LC6470" class="blob-code js-file-line">      <span class="k">case</span> <span class="s2">&quot; &quot;</span> <span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L6471" class="blob-num js-line-number" data-line-number="6471"></td>
        <td id="LC6471" class="blob-code js-file-line">        <span class="c1">// if we&#39;re in a quoted section, keep it</span></td>
      </tr>
      <tr>
        <td id="L6472" class="blob-num js-line-number" data-line-number="6472"></td>
        <td id="LC6472" class="blob-code js-file-line">        <span class="k">if</span> <span class="p">(</span> <span class="nx">in_quotes</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6473" class="blob-num js-line-number" data-line-number="6473"></td>
        <td id="LC6473" class="blob-code js-file-line">          <span class="nx">parts</span><span class="p">[</span> <span class="nx">parts</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">]</span> <span class="o">+=</span> <span class="nx">letter</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6474" class="blob-num js-line-number" data-line-number="6474"></td>
        <td id="LC6474" class="blob-code js-file-line">        <span class="c1">// otherwise make a new part</span></td>
      </tr>
      <tr>
        <td id="L6475" class="blob-num js-line-number" data-line-number="6475"></td>
        <td id="LC6475" class="blob-code js-file-line">        <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L6476" class="blob-num js-line-number" data-line-number="6476"></td>
        <td id="LC6476" class="blob-code js-file-line">          <span class="nx">parts</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="s2">&quot;&quot;</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6477" class="blob-num js-line-number" data-line-number="6477"></td>
        <td id="LC6477" class="blob-code js-file-line">        <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6478" class="blob-num js-line-number" data-line-number="6478"></td>
        <td id="LC6478" class="blob-code js-file-line">      <span class="k">case</span> <span class="s2">&quot;&#39;&quot;</span> <span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L6479" class="blob-num js-line-number" data-line-number="6479"></td>
        <td id="LC6479" class="blob-code js-file-line">      <span class="k">case</span> <span class="s1">&#39;&quot;&#39;</span> <span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L6480" class="blob-num js-line-number" data-line-number="6480"></td>
        <td id="LC6480" class="blob-code js-file-line">        <span class="c1">// reverse the quotes and move straight on</span></td>
      </tr>
      <tr>
        <td id="L6481" class="blob-num js-line-number" data-line-number="6481"></td>
        <td id="LC6481" class="blob-code js-file-line">        <span class="nx">in_quotes</span> <span class="o">=</span> <span class="o">!</span><span class="nx">in_quotes</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6482" class="blob-num js-line-number" data-line-number="6482"></td>
        <td id="LC6482" class="blob-code js-file-line">        <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6483" class="blob-num js-line-number" data-line-number="6483"></td>
        <td id="LC6483" class="blob-code js-file-line">      <span class="k">case</span> <span class="s2">&quot;\\&quot;</span> <span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L6484" class="blob-num js-line-number" data-line-number="6484"></td>
        <td id="LC6484" class="blob-code js-file-line">        <span class="c1">// shift off the next letter to be used straight away.</span></td>
      </tr>
      <tr>
        <td id="L6485" class="blob-num js-line-number" data-line-number="6485"></td>
        <td id="LC6485" class="blob-code js-file-line">        <span class="c1">// it was escaped so we&#39;ll keep it whatever it is</span></td>
      </tr>
      <tr>
        <td id="L6486" class="blob-num js-line-number" data-line-number="6486"></td>
        <td id="LC6486" class="blob-code js-file-line">        <span class="nx">letter</span> <span class="o">=</span> <span class="nx">meta</span><span class="p">.</span><span class="nx">shift</span><span class="p">();</span></td>
      </tr>
      <tr>
        <td id="L6487" class="blob-num js-line-number" data-line-number="6487"></td>
        <td id="LC6487" class="blob-code js-file-line">        <span class="cm">/* falls through */</span></td>
      </tr>
      <tr>
        <td id="L6488" class="blob-num js-line-number" data-line-number="6488"></td>
        <td id="LC6488" class="blob-code js-file-line">      <span class="k">default</span> <span class="o">:</span></td>
      </tr>
      <tr>
        <td id="L6489" class="blob-num js-line-number" data-line-number="6489"></td>
        <td id="LC6489" class="blob-code js-file-line">        <span class="nx">parts</span><span class="p">[</span> <span class="nx">parts</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">]</span> <span class="o">+=</span> <span class="nx">letter</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6490" class="blob-num js-line-number" data-line-number="6490"></td>
        <td id="LC6490" class="blob-code js-file-line">        <span class="k">break</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6491" class="blob-num js-line-number" data-line-number="6491"></td>
        <td id="LC6491" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6492" class="blob-num js-line-number" data-line-number="6492"></td>
        <td id="LC6492" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6493" class="blob-num js-line-number" data-line-number="6493"></td>
        <td id="LC6493" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6494" class="blob-num js-line-number" data-line-number="6494"></td>
        <td id="LC6494" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">parts</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6495" class="blob-num js-line-number" data-line-number="6495"></td>
        <td id="LC6495" class="blob-code js-file-line">  <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6496" class="blob-num js-line-number" data-line-number="6496"></td>
        <td id="LC6496" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6497" class="blob-num js-line-number" data-line-number="6497"></td>
        <td id="LC6497" class="blob-code js-file-line">  <span class="nx">Maruku</span><span class="p">.</span><span class="nx">block</span><span class="p">.</span><span class="nx">document_meta</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">document_meta</span><span class="p">(</span> <span class="nx">block</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6498" class="blob-num js-line-number" data-line-number="6498"></td>
        <td id="LC6498" class="blob-code js-file-line">    <span class="c1">// we&#39;re only interested in the first block</span></td>
      </tr>
      <tr>
        <td id="L6499" class="blob-num js-line-number" data-line-number="6499"></td>
        <td id="LC6499" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="nx">block</span><span class="p">.</span><span class="nx">lineNumber</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6500" class="blob-num js-line-number" data-line-number="6500"></td>
        <td id="LC6500" class="blob-code js-file-line">      <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6501" class="blob-num js-line-number" data-line-number="6501"></td>
        <td id="LC6501" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6502" class="blob-num js-line-number" data-line-number="6502"></td>
        <td id="LC6502" class="blob-code js-file-line">    <span class="c1">// document_meta blocks consist of one or more lines of `Key: Value\n`</span></td>
      </tr>
      <tr>
        <td id="L6503" class="blob-num js-line-number" data-line-number="6503"></td>
        <td id="LC6503" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^(?:\w+:.*\n)*\w+:.*$/</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6504" class="blob-num js-line-number" data-line-number="6504"></td>
        <td id="LC6504" class="blob-code js-file-line">      <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6505" class="blob-num js-line-number" data-line-number="6505"></td>
        <td id="LC6505" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6506" class="blob-num js-line-number" data-line-number="6506"></td>
        <td id="LC6506" class="blob-code js-file-line">    <span class="c1">// make an attribute node if it doesn&#39;t exist</span></td>
      </tr>
      <tr>
        <td id="L6507" class="blob-num js-line-number" data-line-number="6507"></td>
        <td id="LC6507" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">extract_attr</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">tree</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6508" class="blob-num js-line-number" data-line-number="6508"></td>
        <td id="LC6508" class="blob-code js-file-line">      <span class="k">this</span><span class="p">.</span><span class="nx">tree</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="p">{}</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6509" class="blob-num js-line-number" data-line-number="6509"></td>
        <td id="LC6509" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6510" class="blob-num js-line-number" data-line-number="6510"></td>
        <td id="LC6510" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">pairs</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">split</span><span class="p">(</span> <span class="sr">/\n/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6511" class="blob-num js-line-number" data-line-number="6511"></td>
        <td id="LC6511" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">p</span> <span class="k">in</span> <span class="nx">pairs</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6512" class="blob-num js-line-number" data-line-number="6512"></td>
        <td id="LC6512" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">pairs</span><span class="p">[</span> <span class="nx">p</span> <span class="p">].</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/(\w+):\s*(.*)$/</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6513" class="blob-num js-line-number" data-line-number="6513"></td>
        <td id="LC6513" class="blob-code js-file-line">          <span class="nx">key</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">1</span> <span class="p">].</span><span class="nx">toLowerCase</span><span class="p">(),</span></td>
      </tr>
      <tr>
        <td id="L6514" class="blob-num js-line-number" data-line-number="6514"></td>
        <td id="LC6514" class="blob-code js-file-line">          <span class="nx">value</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">2</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6515" class="blob-num js-line-number" data-line-number="6515"></td>
        <td id="LC6515" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6516" class="blob-num js-line-number" data-line-number="6516"></td>
        <td id="LC6516" class="blob-code js-file-line">      <span class="k">this</span><span class="p">.</span><span class="nx">tree</span><span class="p">[</span> <span class="mi">1</span> <span class="p">][</span> <span class="nx">key</span> <span class="p">]</span> <span class="o">=</span> <span class="nx">value</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6517" class="blob-num js-line-number" data-line-number="6517"></td>
        <td id="LC6517" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6518" class="blob-num js-line-number" data-line-number="6518"></td>
        <td id="LC6518" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6519" class="blob-num js-line-number" data-line-number="6519"></td>
        <td id="LC6519" class="blob-code js-file-line">    <span class="c1">// document_meta produces no content!</span></td>
      </tr>
      <tr>
        <td id="L6520" class="blob-num js-line-number" data-line-number="6520"></td>
        <td id="LC6520" class="blob-code js-file-line">    <span class="k">return</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L6521" class="blob-num js-line-number" data-line-number="6521"></td>
        <td id="LC6521" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6522" class="blob-num js-line-number" data-line-number="6522"></td>
        <td id="LC6522" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6523" class="blob-num js-line-number" data-line-number="6523"></td>
        <td id="LC6523" class="blob-code js-file-line">  <span class="nx">Maruku</span><span class="p">.</span><span class="nx">block</span><span class="p">.</span><span class="nx">block_meta</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">block_meta</span><span class="p">(</span> <span class="nx">block</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6524" class="blob-num js-line-number" data-line-number="6524"></td>
        <td id="LC6524" class="blob-code js-file-line">    <span class="c1">// check if the last line of the block is an meta hash</span></td>
      </tr>
      <tr>
        <td id="L6525" class="blob-num js-line-number" data-line-number="6525"></td>
        <td id="LC6525" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/(^|\n) {0,3}\{:\s*((?:\\\}|[^\}])*)\s*\}$/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6526" class="blob-num js-line-number" data-line-number="6526"></td>
        <td id="LC6526" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">m</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6527" class="blob-num js-line-number" data-line-number="6527"></td>
        <td id="LC6527" class="blob-code js-file-line">      <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6528" class="blob-num js-line-number" data-line-number="6528"></td>
        <td id="LC6528" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6529" class="blob-num js-line-number" data-line-number="6529"></td>
        <td id="LC6529" class="blob-code js-file-line">    <span class="c1">// process the meta hash</span></td>
      </tr>
      <tr>
        <td id="L6530" class="blob-num js-line-number" data-line-number="6530"></td>
        <td id="LC6530" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">attr</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">processMetaHash</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">2</span> <span class="p">]</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6531" class="blob-num js-line-number" data-line-number="6531"></td>
        <td id="LC6531" class="blob-code js-file-line">        <span class="nx">hash</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6532" class="blob-num js-line-number" data-line-number="6532"></td>
        <td id="LC6532" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6533" class="blob-num js-line-number" data-line-number="6533"></td>
        <td id="LC6533" class="blob-code js-file-line">    <span class="c1">// if we matched ^ then we need to apply meta to the previous block</span></td>
      </tr>
      <tr>
        <td id="L6534" class="blob-num js-line-number" data-line-number="6534"></td>
        <td id="LC6534" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">1</span> <span class="p">]</span> <span class="o">===</span> <span class="s2">&quot;&quot;</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6535" class="blob-num js-line-number" data-line-number="6535"></td>
        <td id="LC6535" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">tree</span><span class="p">[</span> <span class="k">this</span><span class="p">.</span><span class="nx">tree</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6536" class="blob-num js-line-number" data-line-number="6536"></td>
        <td id="LC6536" class="blob-code js-file-line">      <span class="nx">hash</span> <span class="o">=</span> <span class="nx">extract_attr</span><span class="p">(</span> <span class="nx">node</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6537" class="blob-num js-line-number" data-line-number="6537"></td>
        <td id="LC6537" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6538" class="blob-num js-line-number" data-line-number="6538"></td>
        <td id="LC6538" class="blob-code js-file-line">      <span class="c1">// if the node is a string (rather than JsonML), bail</span></td>
      </tr>
      <tr>
        <td id="L6539" class="blob-num js-line-number" data-line-number="6539"></td>
        <td id="LC6539" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">node</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6540" class="blob-num js-line-number" data-line-number="6540"></td>
        <td id="LC6540" class="blob-code js-file-line">        <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6541" class="blob-num js-line-number" data-line-number="6541"></td>
        <td id="LC6541" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6542" class="blob-num js-line-number" data-line-number="6542"></td>
        <td id="LC6542" class="blob-code js-file-line">      <span class="c1">// create the attribute hash if it doesn&#39;t exist</span></td>
      </tr>
      <tr>
        <td id="L6543" class="blob-num js-line-number" data-line-number="6543"></td>
        <td id="LC6543" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">hash</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6544" class="blob-num js-line-number" data-line-number="6544"></td>
        <td id="LC6544" class="blob-code js-file-line">        <span class="nx">hash</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L6545" class="blob-num js-line-number" data-line-number="6545"></td>
        <td id="LC6545" class="blob-code js-file-line">        <span class="nx">node</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">hash</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6546" class="blob-num js-line-number" data-line-number="6546"></td>
        <td id="LC6546" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6547" class="blob-num js-line-number" data-line-number="6547"></td>
        <td id="LC6547" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6548" class="blob-num js-line-number" data-line-number="6548"></td>
        <td id="LC6548" class="blob-code js-file-line">      <span class="c1">// add the attributes in</span></td>
      </tr>
      <tr>
        <td id="L6549" class="blob-num js-line-number" data-line-number="6549"></td>
        <td id="LC6549" class="blob-code js-file-line">      <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">a</span> <span class="k">in</span> <span class="nx">attr</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6550" class="blob-num js-line-number" data-line-number="6550"></td>
        <td id="LC6550" class="blob-code js-file-line">        <span class="nx">hash</span><span class="p">[</span> <span class="nx">a</span> <span class="p">]</span> <span class="o">=</span> <span class="nx">attr</span><span class="p">[</span> <span class="nx">a</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6551" class="blob-num js-line-number" data-line-number="6551"></td>
        <td id="LC6551" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6552" class="blob-num js-line-number" data-line-number="6552"></td>
        <td id="LC6552" class="blob-code js-file-line">      <span class="c1">// return nothing so the meta hash is removed</span></td>
      </tr>
      <tr>
        <td id="L6553" class="blob-num js-line-number" data-line-number="6553"></td>
        <td id="LC6553" class="blob-code js-file-line">      <span class="k">return</span> <span class="p">[];</span></td>
      </tr>
      <tr>
        <td id="L6554" class="blob-num js-line-number" data-line-number="6554"></td>
        <td id="LC6554" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6555" class="blob-num js-line-number" data-line-number="6555"></td>
        <td id="LC6555" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6556" class="blob-num js-line-number" data-line-number="6556"></td>
        <td id="LC6556" class="blob-code js-file-line">    <span class="c1">// pull the meta hash off the block and process what&#39;s left</span></td>
      </tr>
      <tr>
        <td id="L6557" class="blob-num js-line-number" data-line-number="6557"></td>
        <td id="LC6557" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/\n.*$/</span><span class="p">,</span> <span class="s2">&quot;&quot;</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6558" class="blob-num js-line-number" data-line-number="6558"></td>
        <td id="LC6558" class="blob-code js-file-line">        <span class="nx">result</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">processBlock</span><span class="p">(</span> <span class="nx">b</span><span class="p">,</span> <span class="p">[]</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6559" class="blob-num js-line-number" data-line-number="6559"></td>
        <td id="LC6559" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6560" class="blob-num js-line-number" data-line-number="6560"></td>
        <td id="LC6560" class="blob-code js-file-line">    <span class="c1">// get or make the attributes hash</span></td>
      </tr>
      <tr>
        <td id="L6561" class="blob-num js-line-number" data-line-number="6561"></td>
        <td id="LC6561" class="blob-code js-file-line">    <span class="nx">hash</span> <span class="o">=</span> <span class="nx">extract_attr</span><span class="p">(</span> <span class="nx">result</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6562" class="blob-num js-line-number" data-line-number="6562"></td>
        <td id="LC6562" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">hash</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6563" class="blob-num js-line-number" data-line-number="6563"></td>
        <td id="LC6563" class="blob-code js-file-line">      <span class="nx">hash</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L6564" class="blob-num js-line-number" data-line-number="6564"></td>
        <td id="LC6564" class="blob-code js-file-line">      <span class="nx">result</span><span class="p">[</span> <span class="mi">0</span> <span class="p">].</span><span class="nx">splice</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">hash</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6565" class="blob-num js-line-number" data-line-number="6565"></td>
        <td id="LC6565" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6566" class="blob-num js-line-number" data-line-number="6566"></td>
        <td id="LC6566" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6567" class="blob-num js-line-number" data-line-number="6567"></td>
        <td id="LC6567" class="blob-code js-file-line">    <span class="c1">// attach the attributes to the block</span></td>
      </tr>
      <tr>
        <td id="L6568" class="blob-num js-line-number" data-line-number="6568"></td>
        <td id="LC6568" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">a</span> <span class="k">in</span> <span class="nx">attr</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6569" class="blob-num js-line-number" data-line-number="6569"></td>
        <td id="LC6569" class="blob-code js-file-line">      <span class="nx">hash</span><span class="p">[</span> <span class="nx">a</span> <span class="p">]</span> <span class="o">=</span> <span class="nx">attr</span><span class="p">[</span> <span class="nx">a</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6570" class="blob-num js-line-number" data-line-number="6570"></td>
        <td id="LC6570" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6571" class="blob-num js-line-number" data-line-number="6571"></td>
        <td id="LC6571" class="blob-code js-file-line">    <span class="k">return</span> <span class="nx">result</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6572" class="blob-num js-line-number" data-line-number="6572"></td>
        <td id="LC6572" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6573" class="blob-num js-line-number" data-line-number="6573"></td>
        <td id="LC6573" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6574" class="blob-num js-line-number" data-line-number="6574"></td>
        <td id="LC6574" class="blob-code js-file-line">  <span class="nx">Maruku</span><span class="p">.</span><span class="nx">block</span><span class="p">.</span><span class="nx">definition_list</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">definition_list</span><span class="p">(</span> <span class="nx">block</span><span class="p">,</span> <span class="nx">next</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6575" class="blob-num js-line-number" data-line-number="6575"></td>
        <td id="LC6575" class="blob-code js-file-line">    <span class="c1">// one or more terms followed by one or more definitions, in a single block</span></td>
      </tr>
      <tr>
        <td id="L6576" class="blob-num js-line-number" data-line-number="6576"></td>
        <td id="LC6576" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">tight</span> <span class="o">=</span> <span class="sr">/^((?:[^\s:].*\n)+):\s+([\s\S]+)$/</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6577" class="blob-num js-line-number" data-line-number="6577"></td>
        <td id="LC6577" class="blob-code js-file-line">        <span class="nx">list</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;dl&quot;</span> <span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L6578" class="blob-num js-line-number" data-line-number="6578"></td>
        <td id="LC6578" class="blob-code js-file-line">        <span class="nx">i</span><span class="p">,</span> <span class="nx">m</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6579" class="blob-num js-line-number" data-line-number="6579"></td>
        <td id="LC6579" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6580" class="blob-num js-line-number" data-line-number="6580"></td>
        <td id="LC6580" class="blob-code js-file-line">    <span class="c1">// see if we&#39;re dealing with a tight or loose block</span></td>
      </tr>
      <tr>
        <td id="L6581" class="blob-num js-line-number" data-line-number="6581"></td>
        <td id="LC6581" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="p">(</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="nx">tight</span> <span class="p">)</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6582" class="blob-num js-line-number" data-line-number="6582"></td>
        <td id="LC6582" class="blob-code js-file-line">      <span class="c1">// pull subsequent tight DL blocks out of `next`</span></td>
      </tr>
      <tr>
        <td id="L6583" class="blob-num js-line-number" data-line-number="6583"></td>
        <td id="LC6583" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">blocks</span> <span class="o">=</span> <span class="p">[</span> <span class="nx">block</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6584" class="blob-num js-line-number" data-line-number="6584"></td>
        <td id="LC6584" class="blob-code js-file-line">      <span class="k">while</span> <span class="p">(</span> <span class="nx">next</span><span class="p">.</span><span class="nx">length</span> <span class="o">&amp;&amp;</span> <span class="nx">tight</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span> <span class="nx">next</span><span class="p">[</span> <span class="mi">0</span> <span class="p">]</span> <span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6585" class="blob-num js-line-number" data-line-number="6585"></td>
        <td id="LC6585" class="blob-code js-file-line">        <span class="nx">blocks</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">next</span><span class="p">.</span><span class="nx">shift</span><span class="p">()</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6586" class="blob-num js-line-number" data-line-number="6586"></td>
        <td id="LC6586" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6587" class="blob-num js-line-number" data-line-number="6587"></td>
        <td id="LC6587" class="blob-code js-file-line">      <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">b</span> <span class="o">&lt;</span> <span class="nx">blocks</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">b</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6588" class="blob-num js-line-number" data-line-number="6588"></td>
        <td id="LC6588" class="blob-code js-file-line">        <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">blocks</span><span class="p">[</span> <span class="nx">b</span> <span class="p">].</span><span class="nx">match</span><span class="p">(</span> <span class="nx">tight</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6589" class="blob-num js-line-number" data-line-number="6589"></td>
        <td id="LC6589" class="blob-code js-file-line">            <span class="nx">terms</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">1</span> <span class="p">].</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/\n$/</span><span class="p">,</span> <span class="s2">&quot;&quot;</span> <span class="p">).</span><span class="nx">split</span><span class="p">(</span> <span class="sr">/\n/</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6590" class="blob-num js-line-number" data-line-number="6590"></td>
        <td id="LC6590" class="blob-code js-file-line">            <span class="nx">defns</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">2</span> <span class="p">].</span><span class="nx">split</span><span class="p">(</span> <span class="sr">/\n:\s+/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6591" class="blob-num js-line-number" data-line-number="6591"></td>
        <td id="LC6591" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6592" class="blob-num js-line-number" data-line-number="6592"></td>
        <td id="LC6592" class="blob-code js-file-line">        <span class="c1">// print( uneval( m ) );</span></td>
      </tr>
      <tr>
        <td id="L6593" class="blob-num js-line-number" data-line-number="6593"></td>
        <td id="LC6593" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6594" class="blob-num js-line-number" data-line-number="6594"></td>
        <td id="LC6594" class="blob-code js-file-line">        <span class="k">for</span> <span class="p">(</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">terms</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6595" class="blob-num js-line-number" data-line-number="6595"></td>
        <td id="LC6595" class="blob-code js-file-line">          <span class="nx">list</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="p">[</span> <span class="s2">&quot;dt&quot;</span><span class="p">,</span> <span class="nx">terms</span><span class="p">[</span> <span class="nx">i</span> <span class="p">]</span> <span class="p">]</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6596" class="blob-num js-line-number" data-line-number="6596"></td>
        <td id="LC6596" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6597" class="blob-num js-line-number" data-line-number="6597"></td>
        <td id="LC6597" class="blob-code js-file-line">        <span class="k">for</span> <span class="p">(</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">defns</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6598" class="blob-num js-line-number" data-line-number="6598"></td>
        <td id="LC6598" class="blob-code js-file-line">          <span class="c1">// run inline processing over the definition</span></td>
      </tr>
      <tr>
        <td id="L6599" class="blob-num js-line-number" data-line-number="6599"></td>
        <td id="LC6599" class="blob-code js-file-line">          <span class="nx">list</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="p">[</span> <span class="s2">&quot;dd&quot;</span> <span class="p">].</span><span class="nx">concat</span><span class="p">(</span> <span class="k">this</span><span class="p">.</span><span class="nx">processInline</span><span class="p">(</span> <span class="nx">defns</span><span class="p">[</span> <span class="nx">i</span> <span class="p">].</span><span class="nx">replace</span><span class="p">(</span> <span class="sr">/(\n)\s+/</span><span class="p">,</span> <span class="s2">&quot;$1&quot;</span> <span class="p">)</span> <span class="p">)</span> <span class="p">)</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6600" class="blob-num js-line-number" data-line-number="6600"></td>
        <td id="LC6600" class="blob-code js-file-line">        <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6601" class="blob-num js-line-number" data-line-number="6601"></td>
        <td id="LC6601" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6602" class="blob-num js-line-number" data-line-number="6602"></td>
        <td id="LC6602" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6603" class="blob-num js-line-number" data-line-number="6603"></td>
        <td id="LC6603" class="blob-code js-file-line">    <span class="k">else</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6604" class="blob-num js-line-number" data-line-number="6604"></td>
        <td id="LC6604" class="blob-code js-file-line">      <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6605" class="blob-num js-line-number" data-line-number="6605"></td>
        <td id="LC6605" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6606" class="blob-num js-line-number" data-line-number="6606"></td>
        <td id="LC6606" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6607" class="blob-num js-line-number" data-line-number="6607"></td>
        <td id="LC6607" class="blob-code js-file-line">    <span class="k">return</span> <span class="p">[</span> <span class="nx">list</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6608" class="blob-num js-line-number" data-line-number="6608"></td>
        <td id="LC6608" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6609" class="blob-num js-line-number" data-line-number="6609"></td>
        <td id="LC6609" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6610" class="blob-num js-line-number" data-line-number="6610"></td>
        <td id="LC6610" class="blob-code js-file-line">  <span class="c1">// splits on unescaped instances of @ch. If @ch is not a character the result</span></td>
      </tr>
      <tr>
        <td id="L6611" class="blob-num js-line-number" data-line-number="6611"></td>
        <td id="LC6611" class="blob-code js-file-line">  <span class="c1">// can be unpredictable</span></td>
      </tr>
      <tr>
        <td id="L6612" class="blob-num js-line-number" data-line-number="6612"></td>
        <td id="LC6612" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6613" class="blob-num js-line-number" data-line-number="6613"></td>
        <td id="LC6613" class="blob-code js-file-line">  <span class="nx">Maruku</span><span class="p">.</span><span class="nx">block</span><span class="p">.</span><span class="nx">table</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">table</span> <span class="p">(</span> <span class="nx">block</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6614" class="blob-num js-line-number" data-line-number="6614"></td>
        <td id="LC6614" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6615" class="blob-num js-line-number" data-line-number="6615"></td>
        <td id="LC6615" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">_split_on_unescaped</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span> <span class="nx">s</span><span class="p">,</span> <span class="nx">ch</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6616" class="blob-num js-line-number" data-line-number="6616"></td>
        <td id="LC6616" class="blob-code js-file-line">      <span class="nx">ch</span> <span class="o">=</span> <span class="nx">ch</span> <span class="o">||</span> <span class="s1">&#39;\\s&#39;</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6617" class="blob-num js-line-number" data-line-number="6617"></td>
        <td id="LC6617" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span> <span class="nx">ch</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span><span class="sr">/^[\\|\[\]{}?*.+^$]$/</span><span class="p">)</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6618" class="blob-num js-line-number" data-line-number="6618"></td>
        <td id="LC6618" class="blob-code js-file-line">        <span class="nx">ch</span> <span class="o">=</span> <span class="s1">&#39;\\&#39;</span> <span class="o">+</span> <span class="nx">ch</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6619" class="blob-num js-line-number" data-line-number="6619"></td>
        <td id="LC6619" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">res</span> <span class="o">=</span> <span class="p">[</span> <span class="p">],</span></td>
      </tr>
      <tr>
        <td id="L6620" class="blob-num js-line-number" data-line-number="6620"></td>
        <td id="LC6620" class="blob-code js-file-line">          <span class="nx">r</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">RegExp</span><span class="p">(</span><span class="s1">&#39;^((?:\\\\.|[^\\\\&#39;</span> <span class="o">+</span> <span class="nx">ch</span> <span class="o">+</span> <span class="s1">&#39;])*)&#39;</span> <span class="o">+</span> <span class="nx">ch</span> <span class="o">+</span> <span class="s1">&#39;(.*)&#39;</span><span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6621" class="blob-num js-line-number" data-line-number="6621"></td>
        <td id="LC6621" class="blob-code js-file-line">          <span class="nx">m</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6622" class="blob-num js-line-number" data-line-number="6622"></td>
        <td id="LC6622" class="blob-code js-file-line">      <span class="k">while</span> <span class="p">(</span> <span class="p">(</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">s</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="nx">r</span> <span class="p">)</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6623" class="blob-num js-line-number" data-line-number="6623"></td>
        <td id="LC6623" class="blob-code js-file-line">        <span class="nx">res</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6624" class="blob-num js-line-number" data-line-number="6624"></td>
        <td id="LC6624" class="blob-code js-file-line">        <span class="nx">s</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6625" class="blob-num js-line-number" data-line-number="6625"></td>
        <td id="LC6625" class="blob-code js-file-line">      <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6626" class="blob-num js-line-number" data-line-number="6626"></td>
        <td id="LC6626" class="blob-code js-file-line">      <span class="nx">res</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">s</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6627" class="blob-num js-line-number" data-line-number="6627"></td>
        <td id="LC6627" class="blob-code js-file-line">      <span class="k">return</span> <span class="nx">res</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6628" class="blob-num js-line-number" data-line-number="6628"></td>
        <td id="LC6628" class="blob-code js-file-line">    <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6629" class="blob-num js-line-number" data-line-number="6629"></td>
        <td id="LC6629" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6630" class="blob-num js-line-number" data-line-number="6630"></td>
        <td id="LC6630" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">leading_pipe</span> <span class="o">=</span> <span class="sr">/^ {0,3}\|(.+)\n {0,3}\|\s*([\-:]+[\-| :]*)\n((?:\s*\|.*(?:\n|$))*)(?=\n|$)/</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6631" class="blob-num js-line-number" data-line-number="6631"></td>
        <td id="LC6631" class="blob-code js-file-line">        <span class="c1">// find at least an unescaped pipe in each line</span></td>
      </tr>
      <tr>
        <td id="L6632" class="blob-num js-line-number" data-line-number="6632"></td>
        <td id="LC6632" class="blob-code js-file-line">        <span class="nx">no_leading_pipe</span> <span class="o">=</span> <span class="sr">/^ {0,3}(\S(?:\\.|[^\\|])*\|.*)\n {0,3}([\-:]+\s*\|[\-| :]*)\n((?:(?:\\.|[^\\|])*\|.*(?:\n|$))*)(?=\n|$)/</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6633" class="blob-num js-line-number" data-line-number="6633"></td>
        <td id="LC6633" class="blob-code js-file-line">        <span class="nx">i</span><span class="p">,</span></td>
      </tr>
      <tr>
        <td id="L6634" class="blob-num js-line-number" data-line-number="6634"></td>
        <td id="LC6634" class="blob-code js-file-line">        <span class="nx">m</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6635" class="blob-num js-line-number" data-line-number="6635"></td>
        <td id="LC6635" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="p">(</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="nx">leading_pipe</span> <span class="p">)</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6636" class="blob-num js-line-number" data-line-number="6636"></td>
        <td id="LC6636" class="blob-code js-file-line">      <span class="c1">// remove leading pipes in contents</span></td>
      </tr>
      <tr>
        <td id="L6637" class="blob-num js-line-number" data-line-number="6637"></td>
        <td id="LC6637" class="blob-code js-file-line">      <span class="c1">// (header and horizontal rule already have the leading pipe left out)</span></td>
      </tr>
      <tr>
        <td id="L6638" class="blob-num js-line-number" data-line-number="6638"></td>
        <td id="LC6638" class="blob-code js-file-line">      <span class="nx">m</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">3</span><span class="p">].</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/^\s*\|/gm</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6639" class="blob-num js-line-number" data-line-number="6639"></td>
        <td id="LC6639" class="blob-code js-file-line">    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="o">!</span> <span class="p">(</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">block</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="nx">no_leading_pipe</span> <span class="p">)</span> <span class="p">)</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6640" class="blob-num js-line-number" data-line-number="6640"></td>
        <td id="LC6640" class="blob-code js-file-line">      <span class="k">return</span> <span class="kc">undefined</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6641" class="blob-num js-line-number" data-line-number="6641"></td>
        <td id="LC6641" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6642" class="blob-num js-line-number" data-line-number="6642"></td>
        <td id="LC6642" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6643" class="blob-num js-line-number" data-line-number="6643"></td>
        <td id="LC6643" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">table</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">&quot;table&quot;</span><span class="p">,</span> <span class="p">[</span> <span class="s2">&quot;thead&quot;</span><span class="p">,</span> <span class="p">[</span> <span class="s2">&quot;tr&quot;</span> <span class="p">]</span> <span class="p">],</span> <span class="p">[</span> <span class="s2">&quot;tbody&quot;</span> <span class="p">]</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6644" class="blob-num js-line-number" data-line-number="6644"></td>
        <td id="LC6644" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6645" class="blob-num js-line-number" data-line-number="6645"></td>
        <td id="LC6645" class="blob-code js-file-line">    <span class="c1">// remove trailing pipes, then split on pipes</span></td>
      </tr>
      <tr>
        <td id="L6646" class="blob-num js-line-number" data-line-number="6646"></td>
        <td id="LC6646" class="blob-code js-file-line">    <span class="c1">// (no escaped pipes are allowed in horizontal rule)</span></td>
      </tr>
      <tr>
        <td id="L6647" class="blob-num js-line-number" data-line-number="6647"></td>
        <td id="LC6647" class="blob-code js-file-line">    <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\|\s*$/</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">).</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39;|&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6648" class="blob-num js-line-number" data-line-number="6648"></td>
        <td id="LC6648" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6649" class="blob-num js-line-number" data-line-number="6649"></td>
        <td id="LC6649" class="blob-code js-file-line">    <span class="c1">// process alignment</span></td>
      </tr>
      <tr>
        <td id="L6650" class="blob-num js-line-number" data-line-number="6650"></td>
        <td id="LC6650" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">html_attrs</span> <span class="o">=</span> <span class="p">[</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6651" class="blob-num js-line-number" data-line-number="6651"></td>
        <td id="LC6651" class="blob-code js-file-line">    <span class="nx">forEach</span> <span class="p">(</span><span class="nx">m</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">s</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6652" class="blob-num js-line-number" data-line-number="6652"></td>
        <td id="LC6652" class="blob-code js-file-line">      <span class="k">if</span> <span class="p">(</span><span class="nx">s</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span><span class="sr">/^\s*-+:\s*$/</span><span class="p">))</span></td>
      </tr>
      <tr>
        <td id="L6653" class="blob-num js-line-number" data-line-number="6653"></td>
        <td id="LC6653" class="blob-code js-file-line">        <span class="nx">html_attrs</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span><span class="nx">align</span><span class="o">:</span> <span class="s2">&quot;right&quot;</span><span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L6654" class="blob-num js-line-number" data-line-number="6654"></td>
        <td id="LC6654" class="blob-code js-file-line">      <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">s</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span><span class="sr">/^\s*:-+\s*$/</span><span class="p">))</span></td>
      </tr>
      <tr>
        <td id="L6655" class="blob-num js-line-number" data-line-number="6655"></td>
        <td id="LC6655" class="blob-code js-file-line">        <span class="nx">html_attrs</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span><span class="nx">align</span><span class="o">:</span> <span class="s2">&quot;left&quot;</span><span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L6656" class="blob-num js-line-number" data-line-number="6656"></td>
        <td id="LC6656" class="blob-code js-file-line">      <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">s</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span><span class="sr">/^\s*:-+:\s*$/</span><span class="p">))</span></td>
      </tr>
      <tr>
        <td id="L6657" class="blob-num js-line-number" data-line-number="6657"></td>
        <td id="LC6657" class="blob-code js-file-line">        <span class="nx">html_attrs</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span><span class="nx">align</span><span class="o">:</span> <span class="s2">&quot;center&quot;</span><span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L6658" class="blob-num js-line-number" data-line-number="6658"></td>
        <td id="LC6658" class="blob-code js-file-line">      <span class="k">else</span></td>
      </tr>
      <tr>
        <td id="L6659" class="blob-num js-line-number" data-line-number="6659"></td>
        <td id="LC6659" class="blob-code js-file-line">        <span class="nx">html_attrs</span><span class="p">.</span><span class="nx">push</span><span class="p">({});</span></td>
      </tr>
      <tr>
        <td id="L6660" class="blob-num js-line-number" data-line-number="6660"></td>
        <td id="LC6660" class="blob-code js-file-line">    <span class="p">});</span></td>
      </tr>
      <tr>
        <td id="L6661" class="blob-num js-line-number" data-line-number="6661"></td>
        <td id="LC6661" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6662" class="blob-num js-line-number" data-line-number="6662"></td>
        <td id="LC6662" class="blob-code js-file-line">    <span class="c1">// now for the header, avoid escaped pipes</span></td>
      </tr>
      <tr>
        <td id="L6663" class="blob-num js-line-number" data-line-number="6663"></td>
        <td id="LC6663" class="blob-code js-file-line">    <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="nx">_split_on_unescaped</span><span class="p">(</span><span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\|\s*$/</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">),</span> <span class="s1">&#39;|&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6664" class="blob-num js-line-number" data-line-number="6664"></td>
        <td id="LC6664" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6665" class="blob-num js-line-number" data-line-number="6665"></td>
        <td id="LC6665" class="blob-code js-file-line">      <span class="nx">table</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">].</span><span class="nx">push</span><span class="p">([</span><span class="s1">&#39;th&#39;</span><span class="p">,</span> <span class="nx">html_attrs</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">||</span> <span class="p">{}].</span><span class="nx">concat</span><span class="p">(</span></td>
      </tr>
      <tr>
        <td id="L6666" class="blob-num js-line-number" data-line-number="6666"></td>
        <td id="LC6666" class="blob-code js-file-line">        <span class="k">this</span><span class="p">.</span><span class="nx">processInline</span><span class="p">(</span><span class="nx">m</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="nx">i</span><span class="p">].</span><span class="nx">trim</span><span class="p">())));</span></td>
      </tr>
      <tr>
        <td id="L6667" class="blob-num js-line-number" data-line-number="6667"></td>
        <td id="LC6667" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6668" class="blob-num js-line-number" data-line-number="6668"></td>
        <td id="LC6668" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6669" class="blob-num js-line-number" data-line-number="6669"></td>
        <td id="LC6669" class="blob-code js-file-line">    <span class="c1">// now for body contents</span></td>
      </tr>
      <tr>
        <td id="L6670" class="blob-num js-line-number" data-line-number="6670"></td>
        <td id="LC6670" class="blob-code js-file-line">    <span class="nx">forEach</span> <span class="p">(</span><span class="nx">m</span><span class="p">[</span><span class="mi">3</span><span class="p">].</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\|\s*$/mg</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">).</span><span class="nx">split</span><span class="p">(</span><span class="s1">&#39;\n&#39;</span><span class="p">),</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">row</span><span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6671" class="blob-num js-line-number" data-line-number="6671"></td>
        <td id="LC6671" class="blob-code js-file-line">      <span class="kd">var</span> <span class="nx">html_row</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;tr&#39;</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6672" class="blob-num js-line-number" data-line-number="6672"></td>
        <td id="LC6672" class="blob-code js-file-line">      <span class="nx">row</span> <span class="o">=</span> <span class="nx">_split_on_unescaped</span><span class="p">(</span><span class="nx">row</span><span class="p">,</span> <span class="s1">&#39;|&#39;</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6673" class="blob-num js-line-number" data-line-number="6673"></td>
        <td id="LC6673" class="blob-code js-file-line">      <span class="k">for</span> <span class="p">(</span><span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">row</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6674" class="blob-num js-line-number" data-line-number="6674"></td>
        <td id="LC6674" class="blob-code js-file-line">        <span class="nx">html_row</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span><span class="s1">&#39;td&#39;</span><span class="p">,</span> <span class="nx">html_attrs</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">||</span> <span class="p">{}].</span><span class="nx">concat</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">processInline</span><span class="p">(</span><span class="nx">row</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">trim</span><span class="p">())));</span></td>
      </tr>
      <tr>
        <td id="L6675" class="blob-num js-line-number" data-line-number="6675"></td>
        <td id="LC6675" class="blob-code js-file-line">      <span class="nx">table</span><span class="p">[</span><span class="mi">2</span><span class="p">].</span><span class="nx">push</span><span class="p">(</span><span class="nx">html_row</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6676" class="blob-num js-line-number" data-line-number="6676"></td>
        <td id="LC6676" class="blob-code js-file-line">    <span class="p">},</span> <span class="k">this</span><span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6677" class="blob-num js-line-number" data-line-number="6677"></td>
        <td id="LC6677" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6678" class="blob-num js-line-number" data-line-number="6678"></td>
        <td id="LC6678" class="blob-code js-file-line">    <span class="k">return</span> <span class="p">[</span><span class="nx">table</span><span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6679" class="blob-num js-line-number" data-line-number="6679"></td>
        <td id="LC6679" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6680" class="blob-num js-line-number" data-line-number="6680"></td>
        <td id="LC6680" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6681" class="blob-num js-line-number" data-line-number="6681"></td>
        <td id="LC6681" class="blob-code js-file-line">  <span class="nx">Maruku</span><span class="p">.</span><span class="nx">inline</span><span class="p">[</span> <span class="s2">&quot;{:&quot;</span> <span class="p">]</span> <span class="o">=</span> <span class="kd">function</span> <span class="nx">inline_meta</span><span class="p">(</span> <span class="nx">text</span><span class="p">,</span> <span class="nx">matches</span><span class="p">,</span> <span class="nx">out</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6682" class="blob-num js-line-number" data-line-number="6682"></td>
        <td id="LC6682" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">out</span><span class="p">.</span><span class="nx">length</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6683" class="blob-num js-line-number" data-line-number="6683"></td>
        <td id="LC6683" class="blob-code js-file-line">      <span class="k">return</span> <span class="p">[</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">&quot;{:&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6684" class="blob-num js-line-number" data-line-number="6684"></td>
        <td id="LC6684" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6685" class="blob-num js-line-number" data-line-number="6685"></td>
        <td id="LC6685" class="blob-code js-file-line">    <span class="c1">// get the preceeding element</span></td>
      </tr>
      <tr>
        <td id="L6686" class="blob-num js-line-number" data-line-number="6686"></td>
        <td id="LC6686" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">before</span> <span class="o">=</span> <span class="nx">out</span><span class="p">[</span> <span class="nx">out</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6687" class="blob-num js-line-number" data-line-number="6687"></td>
        <td id="LC6687" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6688" class="blob-num js-line-number" data-line-number="6688"></td>
        <td id="LC6688" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="k">typeof</span> <span class="nx">before</span> <span class="o">===</span> <span class="s2">&quot;string&quot;</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6689" class="blob-num js-line-number" data-line-number="6689"></td>
        <td id="LC6689" class="blob-code js-file-line">      <span class="k">return</span> <span class="p">[</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">&quot;{:&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6690" class="blob-num js-line-number" data-line-number="6690"></td>
        <td id="LC6690" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6691" class="blob-num js-line-number" data-line-number="6691"></td>
        <td id="LC6691" class="blob-code js-file-line">    <span class="c1">// match a meta hash</span></td>
      </tr>
      <tr>
        <td id="L6692" class="blob-num js-line-number" data-line-number="6692"></td>
        <td id="LC6692" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">m</span> <span class="o">=</span> <span class="nx">text</span><span class="p">.</span><span class="nx">match</span><span class="p">(</span> <span class="sr">/^\{:\s*((?:\\\}|[^\}])*)\s*\}/</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6693" class="blob-num js-line-number" data-line-number="6693"></td>
        <td id="LC6693" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6694" class="blob-num js-line-number" data-line-number="6694"></td>
        <td id="LC6694" class="blob-code js-file-line">    <span class="c1">// no match, false alarm</span></td>
      </tr>
      <tr>
        <td id="L6695" class="blob-num js-line-number" data-line-number="6695"></td>
        <td id="LC6695" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">m</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6696" class="blob-num js-line-number" data-line-number="6696"></td>
        <td id="LC6696" class="blob-code js-file-line">      <span class="k">return</span> <span class="p">[</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">&quot;{:&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6697" class="blob-num js-line-number" data-line-number="6697"></td>
        <td id="LC6697" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6698" class="blob-num js-line-number" data-line-number="6698"></td>
        <td id="LC6698" class="blob-code js-file-line">    <span class="c1">// attach the attributes to the preceeding element</span></td>
      </tr>
      <tr>
        <td id="L6699" class="blob-num js-line-number" data-line-number="6699"></td>
        <td id="LC6699" class="blob-code js-file-line">    <span class="kd">var</span> <span class="nx">meta</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">dialect</span><span class="p">.</span><span class="nx">processMetaHash</span><span class="p">(</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">1</span> <span class="p">]</span> <span class="p">),</span></td>
      </tr>
      <tr>
        <td id="L6700" class="blob-num js-line-number" data-line-number="6700"></td>
        <td id="LC6700" class="blob-code js-file-line">        <span class="nx">attr</span> <span class="o">=</span> <span class="nx">extract_attr</span><span class="p">(</span> <span class="nx">before</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6701" class="blob-num js-line-number" data-line-number="6701"></td>
        <td id="LC6701" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6702" class="blob-num js-line-number" data-line-number="6702"></td>
        <td id="LC6702" class="blob-code js-file-line">    <span class="k">if</span> <span class="p">(</span> <span class="o">!</span><span class="nx">attr</span> <span class="p">)</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6703" class="blob-num js-line-number" data-line-number="6703"></td>
        <td id="LC6703" class="blob-code js-file-line">      <span class="nx">attr</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L6704" class="blob-num js-line-number" data-line-number="6704"></td>
        <td id="LC6704" class="blob-code js-file-line">      <span class="nx">before</span><span class="p">.</span><span class="nx">splice</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">attr</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6705" class="blob-num js-line-number" data-line-number="6705"></td>
        <td id="LC6705" class="blob-code js-file-line">    <span class="p">}</span></td>
      </tr>
      <tr>
        <td id="L6706" class="blob-num js-line-number" data-line-number="6706"></td>
        <td id="LC6706" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6707" class="blob-num js-line-number" data-line-number="6707"></td>
        <td id="LC6707" class="blob-code js-file-line">    <span class="k">for</span> <span class="p">(</span> <span class="kd">var</span> <span class="nx">k</span> <span class="k">in</span> <span class="nx">meta</span> <span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6708" class="blob-num js-line-number" data-line-number="6708"></td>
        <td id="LC6708" class="blob-code js-file-line">      <span class="nx">attr</span><span class="p">[</span> <span class="nx">k</span> <span class="p">]</span> <span class="o">=</span> <span class="nx">meta</span><span class="p">[</span> <span class="nx">k</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6709" class="blob-num js-line-number" data-line-number="6709"></td>
        <td id="LC6709" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6710" class="blob-num js-line-number" data-line-number="6710"></td>
        <td id="LC6710" class="blob-code js-file-line">    <span class="c1">// cut out the string and replace it with nothing</span></td>
      </tr>
      <tr>
        <td id="L6711" class="blob-num js-line-number" data-line-number="6711"></td>
        <td id="LC6711" class="blob-code js-file-line">    <span class="k">return</span> <span class="p">[</span> <span class="nx">m</span><span class="p">[</span> <span class="mi">0</span> <span class="p">].</span><span class="nx">length</span><span class="p">,</span> <span class="s2">&quot;&quot;</span> <span class="p">];</span></td>
      </tr>
      <tr>
        <td id="L6712" class="blob-num js-line-number" data-line-number="6712"></td>
        <td id="LC6712" class="blob-code js-file-line">  <span class="p">};</span></td>
      </tr>
      <tr>
        <td id="L6713" class="blob-num js-line-number" data-line-number="6713"></td>
        <td id="LC6713" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6714" class="blob-num js-line-number" data-line-number="6714"></td>
        <td id="LC6714" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6715" class="blob-num js-line-number" data-line-number="6715"></td>
        <td id="LC6715" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span><span class="p">.</span><span class="nx">Maruku</span> <span class="o">=</span> <span class="nx">Maruku</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6716" class="blob-num js-line-number" data-line-number="6716"></td>
        <td id="LC6716" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span><span class="p">.</span><span class="nx">Maruku</span><span class="p">.</span><span class="nx">inline</span><span class="p">.</span><span class="nx">__escape__</span> <span class="o">=</span> <span class="sr">/^\\[\\`\*_{}\[\]()#\+.!\-|:]/</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6717" class="blob-num js-line-number" data-line-number="6717"></td>
        <td id="LC6717" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">buildBlockOrder</span> <span class="p">(</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span><span class="p">.</span><span class="nx">Maruku</span><span class="p">.</span><span class="nx">block</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6718" class="blob-num js-line-number" data-line-number="6718"></td>
        <td id="LC6718" class="blob-code js-file-line">  <span class="nx">Markdown</span><span class="p">.</span><span class="nx">buildInlinePatterns</span><span class="p">(</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">dialects</span><span class="p">.</span><span class="nx">Maruku</span><span class="p">.</span><span class="nx">inline</span> <span class="p">);</span></td>
      </tr>
      <tr>
        <td id="L6719" class="blob-num js-line-number" data-line-number="6719"></td>
        <td id="LC6719" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6720" class="blob-num js-line-number" data-line-number="6720"></td>
        <td id="LC6720" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6721" class="blob-num js-line-number" data-line-number="6721"></td>
        <td id="LC6721" class="blob-code js-file-line"><span class="c1">// Include all our depndencies and;</span></td>
      </tr>
      <tr>
        <td id="L6722" class="blob-num js-line-number" data-line-number="6722"></td>
        <td id="LC6722" class="blob-code js-file-line">  <span class="nx">expose</span><span class="p">.</span><span class="nx">Markdown</span> <span class="o">=</span> <span class="nx">Markdown</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6723" class="blob-num js-line-number" data-line-number="6723"></td>
        <td id="LC6723" class="blob-code js-file-line">  <span class="nx">expose</span><span class="p">.</span><span class="nx">parse</span> <span class="o">=</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">parse</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6724" class="blob-num js-line-number" data-line-number="6724"></td>
        <td id="LC6724" class="blob-code js-file-line">  <span class="nx">expose</span><span class="p">.</span><span class="nx">toHTML</span> <span class="o">=</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">toHTML</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6725" class="blob-num js-line-number" data-line-number="6725"></td>
        <td id="LC6725" class="blob-code js-file-line">  <span class="nx">expose</span><span class="p">.</span><span class="nx">toHTMLTree</span> <span class="o">=</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">toHTMLTree</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6726" class="blob-num js-line-number" data-line-number="6726"></td>
        <td id="LC6726" class="blob-code js-file-line">  <span class="nx">expose</span><span class="p">.</span><span class="nx">renderJsonML</span> <span class="o">=</span> <span class="nx">Markdown</span><span class="p">.</span><span class="nx">renderJsonML</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6727" class="blob-num js-line-number" data-line-number="6727"></td>
        <td id="LC6727" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6728" class="blob-num js-line-number" data-line-number="6728"></td>
        <td id="LC6728" class="blob-code js-file-line"><span class="p">})(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span></td>
      </tr>
      <tr>
        <td id="L6729" class="blob-num js-line-number" data-line-number="6729"></td>
        <td id="LC6729" class="blob-code js-file-line">  <span class="nb">window</span><span class="p">.</span><span class="nx">markdown</span> <span class="o">=</span> <span class="p">{};</span></td>
      </tr>
      <tr>
        <td id="L6730" class="blob-num js-line-number" data-line-number="6730"></td>
        <td id="LC6730" class="blob-code js-file-line">  <span class="k">return</span> <span class="nb">window</span><span class="p">.</span><span class="nx">markdown</span><span class="p">;</span></td>
      </tr>
      <tr>
        <td id="L6731" class="blob-num js-line-number" data-line-number="6731"></td>
        <td id="LC6731" class="blob-code js-file-line"><span class="p">}());</span></td>
      </tr>
      <tr>
        <td id="L6732" class="blob-num js-line-number" data-line-number="6732"></td>
        <td id="LC6732" class="blob-code js-file-line">
</td>
      </tr>
      <tr>
        <td id="L6733" class="blob-num js-line-number" data-line-number="6733"></td>
        <td id="LC6733" class="blob-code js-file-line"><span class="p">},{</span><span class="s2">&quot;util&quot;</span><span class="o">:</span><span class="mi">30</span><span class="p">}]},{},[</span><span class="mi">1</span><span class="p">])</span></td>
      </tr>
      <tr>
        <td id="L6734" class="blob-num js-line-number" data-line-number="6734"></td>
        <td id="LC6734" class="blob-code js-file-line"><span class="p">(</span><span class="mi">1</span><span class="p">)</span></td>
      </tr>
      <tr>
        <td id="L6735" class="blob-num js-line-number" data-line-number="6735"></td>
        <td id="LC6735" class="blob-code js-file-line"><span class="p">});</span></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.03921s from github-fe116-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>

