cleanup
This commit is contained in:
		
							
								
								
									
										11
									
								
								test/assets/docs/scripts/docstrap.lib.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								test/assets/docs/scripts/docstrap.lib.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										89
									
								
								test/assets/docs/scripts/fulltext-search-ui.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								test/assets/docs/scripts/fulltext-search-ui.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
			
		||||
window.SearcherDisplay = (function($) {
 | 
			
		||||
    /**
 | 
			
		||||
     * This class provides support for displaying quick search text results to users.
 | 
			
		||||
     */
 | 
			
		||||
    function SearcherDisplay() { }
 | 
			
		||||
 | 
			
		||||
    SearcherDisplay.prototype.init = function() {
 | 
			
		||||
        this._displayQuickSearch();
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This method creates the quick text search entry in navigation menu and wires all required events.
 | 
			
		||||
     */
 | 
			
		||||
    SearcherDisplay.prototype._displayQuickSearch = function() {
 | 
			
		||||
            var quickSearch = $(document.createElement("iframe")),
 | 
			
		||||
                   body = $("body"),
 | 
			
		||||
                   self = this;
 | 
			
		||||
 | 
			
		||||
            quickSearch.attr("src", "quicksearch.html");
 | 
			
		||||
            quickSearch.css("width", "0px");
 | 
			
		||||
            quickSearch.css("height", "0px");
 | 
			
		||||
 | 
			
		||||
            body.append(quickSearch);
 | 
			
		||||
 | 
			
		||||
            $(window).on("message", function(msg) {
 | 
			
		||||
                var msgData = msg.originalEvent.data;
 | 
			
		||||
 | 
			
		||||
                if (msgData.msgid != "docstrap.quicksearch.done") {
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                var results = msgData.results || [];
 | 
			
		||||
 | 
			
		||||
                self._displaySearchResults(results);
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            function startSearch() {
 | 
			
		||||
              var searchTerms = $('#search-input').prop("value");
 | 
			
		||||
              if (searchTerms) {
 | 
			
		||||
                quickSearch[0].contentWindow.postMessage({
 | 
			
		||||
                  "searchTerms": searchTerms,
 | 
			
		||||
                  "msgid": "docstrap.quicksearch.start"
 | 
			
		||||
                }, "*");
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            $('#search-input').on('keyup', function(evt) {
 | 
			
		||||
              if (evt.keyCode != 13) {
 | 
			
		||||
                return;
 | 
			
		||||
              }
 | 
			
		||||
              startSearch();
 | 
			
		||||
              return false;
 | 
			
		||||
            });
 | 
			
		||||
            $('#search-submit').on('click', function() {
 | 
			
		||||
              startSearch();
 | 
			
		||||
              return false;
 | 
			
		||||
            });
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * This method displays the quick text search results in a modal dialog.
 | 
			
		||||
     */
 | 
			
		||||
    SearcherDisplay.prototype._displaySearchResults = function(results) {
 | 
			
		||||
            var resultsHolder = $($("#searchResults").find(".modal-body")),
 | 
			
		||||
                  fragment = document.createDocumentFragment(),
 | 
			
		||||
                  resultsList = document.createElement("ul");
 | 
			
		||||
 | 
			
		||||
            resultsHolder.empty();
 | 
			
		||||
 | 
			
		||||
            for (var idx = 0; idx < results.length; idx++) {
 | 
			
		||||
                var result = results[idx],
 | 
			
		||||
                       item = document.createElement("li"),
 | 
			
		||||
                       link = document.createElement("a");
 | 
			
		||||
 | 
			
		||||
                link.href = result.id;
 | 
			
		||||
                link.innerHTML = result.title;
 | 
			
		||||
 | 
			
		||||
                item.appendChild(link)
 | 
			
		||||
                resultsList.appendChild(item);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            fragment.appendChild(resultsList);
 | 
			
		||||
            resultsHolder.append(fragment);
 | 
			
		||||
 | 
			
		||||
            $("#searchResults").modal({"show": true});
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    return new SearcherDisplay();
 | 
			
		||||
})($);
 | 
			
		||||
							
								
								
									
										36
									
								
								test/assets/docs/scripts/fulltext-search.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								test/assets/docs/scripts/fulltext-search.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
window.Searcher = (function() {
 | 
			
		||||
    function Searcher() {
 | 
			
		||||
        this._index = lunr(function () {
 | 
			
		||||
            this.field('title', {boost: 10})
 | 
			
		||||
            this.field('body')
 | 
			
		||||
            this.ref('id')
 | 
			
		||||
          }) ;
 | 
			
		||||
 | 
			
		||||
        this._indexContent = undefined;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Searcher.prototype.init = function() {
 | 
			
		||||
        var self = this;
 | 
			
		||||
 | 
			
		||||
        $("script[type='text/x-docstrap-searchdb']").each(function(idx, item)  {
 | 
			
		||||
            self._indexContent = JSON.parse(item.innerHTML);
 | 
			
		||||
 | 
			
		||||
            for (var entryId in self._indexContent) {
 | 
			
		||||
                self._index.add(self._indexContent[entryId]);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    Searcher.prototype.search = function(searchTerm) {
 | 
			
		||||
        var results = [],
 | 
			
		||||
                searchResults = this._index.search(searchTerm);
 | 
			
		||||
 | 
			
		||||
        for (var idx = 0; idx < searchResults.length; idx++) {
 | 
			
		||||
            results.push(this._indexContent[searchResults[idx].ref])
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return results;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    return new Searcher();
 | 
			
		||||
})();
 | 
			
		||||
							
								
								
									
										7
									
								
								test/assets/docs/scripts/lunr.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								test/assets/docs/scripts/lunr.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										202
									
								
								test/assets/docs/scripts/prettify/Apache-License-2.0.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										202
									
								
								test/assets/docs/scripts/prettify/Apache-License-2.0.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,202 @@
 | 
			
		||||
 | 
			
		||||
                                 Apache License
 | 
			
		||||
                           Version 2.0, January 2004
 | 
			
		||||
                        http://www.apache.org/licenses/
 | 
			
		||||
 | 
			
		||||
   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
 | 
			
		||||
 | 
			
		||||
   1. Definitions.
 | 
			
		||||
 | 
			
		||||
      "License" shall mean the terms and conditions for use, reproduction,
 | 
			
		||||
      and distribution as defined by Sections 1 through 9 of this document.
 | 
			
		||||
 | 
			
		||||
      "Licensor" shall mean the copyright owner or entity authorized by
 | 
			
		||||
      the copyright owner that is granting the License.
 | 
			
		||||
 | 
			
		||||
      "Legal Entity" shall mean the union of the acting entity and all
 | 
			
		||||
      other entities that control, are controlled by, or are under common
 | 
			
		||||
      control with that entity. For the purposes of this definition,
 | 
			
		||||
      "control" means (i) the power, direct or indirect, to cause the
 | 
			
		||||
      direction or management of such entity, whether by contract or
 | 
			
		||||
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
 | 
			
		||||
      outstanding shares, or (iii) beneficial ownership of such entity.
 | 
			
		||||
 | 
			
		||||
      "You" (or "Your") shall mean an individual or Legal Entity
 | 
			
		||||
      exercising permissions granted by this License.
 | 
			
		||||
 | 
			
		||||
      "Source" form shall mean the preferred form for making modifications,
 | 
			
		||||
      including but not limited to software source code, documentation
 | 
			
		||||
      source, and configuration files.
 | 
			
		||||
 | 
			
		||||
      "Object" form shall mean any form resulting from mechanical
 | 
			
		||||
      transformation or translation of a Source form, including but
 | 
			
		||||
      not limited to compiled object code, generated documentation,
 | 
			
		||||
      and conversions to other media types.
 | 
			
		||||
 | 
			
		||||
      "Work" shall mean the work of authorship, whether in Source or
 | 
			
		||||
      Object form, made available under the License, as indicated by a
 | 
			
		||||
      copyright notice that is included in or attached to the work
 | 
			
		||||
      (an example is provided in the Appendix below).
 | 
			
		||||
 | 
			
		||||
      "Derivative Works" shall mean any work, whether in Source or Object
 | 
			
		||||
      form, that is based on (or derived from) the Work and for which the
 | 
			
		||||
      editorial revisions, annotations, elaborations, or other modifications
 | 
			
		||||
      represent, as a whole, an original work of authorship. For the purposes
 | 
			
		||||
      of this License, Derivative Works shall not include works that remain
 | 
			
		||||
      separable from, or merely link (or bind by name) to the interfaces of,
 | 
			
		||||
      the Work and Derivative Works thereof.
 | 
			
		||||
 | 
			
		||||
      "Contribution" shall mean any work of authorship, including
 | 
			
		||||
      the original version of the Work and any modifications or additions
 | 
			
		||||
      to that Work or Derivative Works thereof, that is intentionally
 | 
			
		||||
      submitted to Licensor for inclusion in the Work by the copyright owner
 | 
			
		||||
      or by an individual or Legal Entity authorized to submit on behalf of
 | 
			
		||||
      the copyright owner. For the purposes of this definition, "submitted"
 | 
			
		||||
      means any form of electronic, verbal, or written communication sent
 | 
			
		||||
      to the Licensor or its representatives, including but not limited to
 | 
			
		||||
      communication on electronic mailing lists, source code control systems,
 | 
			
		||||
      and issue tracking systems that are managed by, or on behalf of, the
 | 
			
		||||
      Licensor for the purpose of discussing and improving the Work, but
 | 
			
		||||
      excluding communication that is conspicuously marked or otherwise
 | 
			
		||||
      designated in writing by the copyright owner as "Not a Contribution."
 | 
			
		||||
 | 
			
		||||
      "Contributor" shall mean Licensor and any individual or Legal Entity
 | 
			
		||||
      on behalf of whom a Contribution has been received by Licensor and
 | 
			
		||||
      subsequently incorporated within the Work.
 | 
			
		||||
 | 
			
		||||
   2. Grant of Copyright License. Subject to the terms and conditions of
 | 
			
		||||
      this License, each Contributor hereby grants to You a perpetual,
 | 
			
		||||
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
 | 
			
		||||
      copyright license to reproduce, prepare Derivative Works of,
 | 
			
		||||
      publicly display, publicly perform, sublicense, and distribute the
 | 
			
		||||
      Work and such Derivative Works in Source or Object form.
 | 
			
		||||
 | 
			
		||||
   3. Grant of Patent License. Subject to the terms and conditions of
 | 
			
		||||
      this License, each Contributor hereby grants to You a perpetual,
 | 
			
		||||
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
 | 
			
		||||
      (except as stated in this section) patent license to make, have made,
 | 
			
		||||
      use, offer to sell, sell, import, and otherwise transfer the Work,
 | 
			
		||||
      where such license applies only to those patent claims licensable
 | 
			
		||||
      by such Contributor that are necessarily infringed by their
 | 
			
		||||
      Contribution(s) alone or by combination of their Contribution(s)
 | 
			
		||||
      with the Work to which such Contribution(s) was submitted. If You
 | 
			
		||||
      institute patent litigation against any entity (including a
 | 
			
		||||
      cross-claim or counterclaim in a lawsuit) alleging that the Work
 | 
			
		||||
      or a Contribution incorporated within the Work constitutes direct
 | 
			
		||||
      or contributory patent infringement, then any patent licenses
 | 
			
		||||
      granted to You under this License for that Work shall terminate
 | 
			
		||||
      as of the date such litigation is filed.
 | 
			
		||||
 | 
			
		||||
   4. Redistribution. You may reproduce and distribute copies of the
 | 
			
		||||
      Work or Derivative Works thereof in any medium, with or without
 | 
			
		||||
      modifications, and in Source or Object form, provided that You
 | 
			
		||||
      meet the following conditions:
 | 
			
		||||
 | 
			
		||||
      (a) You must give any other recipients of the Work or
 | 
			
		||||
          Derivative Works a copy of this License; and
 | 
			
		||||
 | 
			
		||||
      (b) You must cause any modified files to carry prominent notices
 | 
			
		||||
          stating that You changed the files; and
 | 
			
		||||
 | 
			
		||||
      (c) You must retain, in the Source form of any Derivative Works
 | 
			
		||||
          that You distribute, all copyright, patent, trademark, and
 | 
			
		||||
          attribution notices from the Source form of the Work,
 | 
			
		||||
          excluding those notices that do not pertain to any part of
 | 
			
		||||
          the Derivative Works; and
 | 
			
		||||
 | 
			
		||||
      (d) If the Work includes a "NOTICE" text file as part of its
 | 
			
		||||
          distribution, then any Derivative Works that You distribute must
 | 
			
		||||
          include a readable copy of the attribution notices contained
 | 
			
		||||
          within such NOTICE file, excluding those notices that do not
 | 
			
		||||
          pertain to any part of the Derivative Works, in at least one
 | 
			
		||||
          of the following places: within a NOTICE text file distributed
 | 
			
		||||
          as part of the Derivative Works; within the Source form or
 | 
			
		||||
          documentation, if provided along with the Derivative Works; or,
 | 
			
		||||
          within a display generated by the Derivative Works, if and
 | 
			
		||||
          wherever such third-party notices normally appear. The contents
 | 
			
		||||
          of the NOTICE file are for informational purposes only and
 | 
			
		||||
          do not modify the License. You may add Your own attribution
 | 
			
		||||
          notices within Derivative Works that You distribute, alongside
 | 
			
		||||
          or as an addendum to the NOTICE text from the Work, provided
 | 
			
		||||
          that such additional attribution notices cannot be construed
 | 
			
		||||
          as modifying the License.
 | 
			
		||||
 | 
			
		||||
      You may add Your own copyright statement to Your modifications and
 | 
			
		||||
      may provide additional or different license terms and conditions
 | 
			
		||||
      for use, reproduction, or distribution of Your modifications, or
 | 
			
		||||
      for any such Derivative Works as a whole, provided Your use,
 | 
			
		||||
      reproduction, and distribution of the Work otherwise complies with
 | 
			
		||||
      the conditions stated in this License.
 | 
			
		||||
 | 
			
		||||
   5. Submission of Contributions. Unless You explicitly state otherwise,
 | 
			
		||||
      any Contribution intentionally submitted for inclusion in the Work
 | 
			
		||||
      by You to the Licensor shall be under the terms and conditions of
 | 
			
		||||
      this License, without any additional terms or conditions.
 | 
			
		||||
      Notwithstanding the above, nothing herein shall supersede or modify
 | 
			
		||||
      the terms of any separate license agreement you may have executed
 | 
			
		||||
      with Licensor regarding such Contributions.
 | 
			
		||||
 | 
			
		||||
   6. Trademarks. This License does not grant permission to use the trade
 | 
			
		||||
      names, trademarks, service marks, or product names of the Licensor,
 | 
			
		||||
      except as required for reasonable and customary use in describing the
 | 
			
		||||
      origin of the Work and reproducing the content of the NOTICE file.
 | 
			
		||||
 | 
			
		||||
   7. Disclaimer of Warranty. Unless required by applicable law or
 | 
			
		||||
      agreed to in writing, Licensor provides the Work (and each
 | 
			
		||||
      Contributor provides its Contributions) on an "AS IS" BASIS,
 | 
			
		||||
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 | 
			
		||||
      implied, including, without limitation, any warranties or conditions
 | 
			
		||||
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
 | 
			
		||||
      PARTICULAR PURPOSE. You are solely responsible for determining the
 | 
			
		||||
      appropriateness of using or redistributing the Work and assume any
 | 
			
		||||
      risks associated with Your exercise of permissions under this License.
 | 
			
		||||
 | 
			
		||||
   8. Limitation of Liability. In no event and under no legal theory,
 | 
			
		||||
      whether in tort (including negligence), contract, or otherwise,
 | 
			
		||||
      unless required by applicable law (such as deliberate and grossly
 | 
			
		||||
      negligent acts) or agreed to in writing, shall any Contributor be
 | 
			
		||||
      liable to You for damages, including any direct, indirect, special,
 | 
			
		||||
      incidental, or consequential damages of any character arising as a
 | 
			
		||||
      result of this License or out of the use or inability to use the
 | 
			
		||||
      Work (including but not limited to damages for loss of goodwill,
 | 
			
		||||
      work stoppage, computer failure or malfunction, or any and all
 | 
			
		||||
      other commercial damages or losses), even if such Contributor
 | 
			
		||||
      has been advised of the possibility of such damages.
 | 
			
		||||
 | 
			
		||||
   9. Accepting Warranty or Additional Liability. While redistributing
 | 
			
		||||
      the Work or Derivative Works thereof, You may choose to offer,
 | 
			
		||||
      and charge a fee for, acceptance of support, warranty, indemnity,
 | 
			
		||||
      or other liability obligations and/or rights consistent with this
 | 
			
		||||
      License. However, in accepting such obligations, You may act only
 | 
			
		||||
      on Your own behalf and on Your sole responsibility, not on behalf
 | 
			
		||||
      of any other Contributor, and only if You agree to indemnify,
 | 
			
		||||
      defend, and hold each Contributor harmless for any liability
 | 
			
		||||
      incurred by, or claims asserted against, such Contributor by reason
 | 
			
		||||
      of your accepting any such warranty or additional liability.
 | 
			
		||||
 | 
			
		||||
   END OF TERMS AND CONDITIONS
 | 
			
		||||
 | 
			
		||||
   APPENDIX: How to apply the Apache License to your work.
 | 
			
		||||
 | 
			
		||||
      To apply the Apache License to your work, attach the following
 | 
			
		||||
      boilerplate notice, with the fields enclosed by brackets "[]"
 | 
			
		||||
      replaced with your own identifying information. (Don't include
 | 
			
		||||
      the brackets!)  The text should be enclosed in the appropriate
 | 
			
		||||
      comment syntax for the file format. We also recommend that a
 | 
			
		||||
      file or class name and description of purpose be included on the
 | 
			
		||||
      same "printed page" as the copyright notice for easier
 | 
			
		||||
      identification within third-party archives.
 | 
			
		||||
 | 
			
		||||
   Copyright [yyyy] [name of copyright owner]
 | 
			
		||||
 | 
			
		||||
   Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
   you may not use this file except in compliance with the License.
 | 
			
		||||
   You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
       http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
   Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
   distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
   See the License for the specific language governing permissions and
 | 
			
		||||
   limitations under the License.
 | 
			
		||||
							
								
								
									
										6
									
								
								test/assets/docs/scripts/prettify/jquery.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								test/assets/docs/scripts/prettify/jquery.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										21
									
								
								test/assets/docs/scripts/prettify/lang-css.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								test/assets/docs/scripts/prettify/lang-css.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
PR.registerLangHandler(PR.createSimpleLexer([
 | 
			
		||||
  ["pln", /^[\t\n\f\r ]+/, null, " \t\r\n"]
 | 
			
		||||
], [
 | 
			
		||||
  ["str", /^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/, null],
 | 
			
		||||
  ["str", /^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/, null],
 | 
			
		||||
  ["lang-css-str", /^url\(([^"')]*)\)/i],
 | 
			
		||||
  ["kwd", /^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i, null],
 | 
			
		||||
  ["lang-css-kw", /^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],
 | 
			
		||||
  ["com", /^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],
 | 
			
		||||
  ["com", /^(?:<\!--|--\>)/],
 | 
			
		||||
  ["lit", /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],
 | 
			
		||||
  ["lit", /^#[\da-f]{3,6}/i],
 | 
			
		||||
  ["pln", /^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],
 | 
			
		||||
  ["pun", /^[^\s\w"']+/]
 | 
			
		||||
]), ["css"]);
 | 
			
		||||
PR.registerLangHandler(PR.createSimpleLexer([], [
 | 
			
		||||
  ["kwd", /^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]
 | 
			
		||||
]), ["css-kw"]);
 | 
			
		||||
PR.registerLangHandler(PR.createSimpleLexer([], [
 | 
			
		||||
  ["str", /^[^"')]+/]
 | 
			
		||||
]), ["css-str"]);
 | 
			
		||||
							
								
								
									
										496
									
								
								test/assets/docs/scripts/prettify/prettify.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										496
									
								
								test/assets/docs/scripts/prettify/prettify.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,496 @@
 | 
			
		||||
var q = null;
 | 
			
		||||
window.PR_SHOULD_USE_CONTINUATION = !0;
 | 
			
		||||
(function() {
 | 
			
		||||
  function L(a) {
 | 
			
		||||
    function m(a) {
 | 
			
		||||
      var f = a.charCodeAt(0);
 | 
			
		||||
      if (f !== 92) return f;
 | 
			
		||||
      var b = a.charAt(1);
 | 
			
		||||
      return (f = r[b]) ? f : "0" <= b && b <= "7" ? parseInt(a.substring(1), 8) : b === "u" || b === "x" ? parseInt(a.substring(2), 16) : a.charCodeAt(1)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function e(a) {
 | 
			
		||||
      if (a < 32) return (a < 16 ? "\\x0" : "\\x") + a.toString(16);
 | 
			
		||||
      a = String.fromCharCode(a);
 | 
			
		||||
      if (a === "\\" || a === "-" || a === "[" || a === "]") a = "\\" + a;
 | 
			
		||||
      return a
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function h(a) {
 | 
			
		||||
      for (var f = a.substring(1, a.length - 1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g), a = [], b = [], o = f[0] === "^", c = o ? 1 : 0, i = f.length; c < i; ++c) {
 | 
			
		||||
        var j = f[c];
 | 
			
		||||
        if (/\\[bdsw]/i.test(j)) a.push(j);
 | 
			
		||||
        else {
 | 
			
		||||
          var j = m(j),
 | 
			
		||||
              d;
 | 
			
		||||
          c + 2 < i && "-" === f[c + 1] ? (d = m(f[c + 2]), c += 2) : d = j;
 | 
			
		||||
          b.push([j, d]);
 | 
			
		||||
          d < 65 || j > 122 || (d < 65 || j > 90 || b.push([Math.max(65, j) | 32, Math.min(d, 90) | 32]), d < 97 || j > 122 || b.push([Math.max(97, j) & -33, Math.min(d, 122) & -33]))
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      b.sort(function(a, f) {
 | 
			
		||||
        return a[0] - f[0] || f[1] - a[1]
 | 
			
		||||
      });
 | 
			
		||||
      f = [];
 | 
			
		||||
      j = [NaN, NaN];
 | 
			
		||||
      for (c = 0; c < b.length; ++c) i = b[c], i[0] <= j[1] + 1 ? j[1] = Math.max(j[1], i[1]) : f.push(j = i);
 | 
			
		||||
      b = ["["];
 | 
			
		||||
      o && b.push("^");
 | 
			
		||||
      b.push.apply(b, a);
 | 
			
		||||
      for (c = 0; c < f.length; ++c) i = f[c], b.push(e(i[0])), i[1] > i[0] && (i[1] + 1 > i[0] && b.push("-"), b.push(e(i[1])));
 | 
			
		||||
      b.push("]");
 | 
			
		||||
      return b.join("")
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function y(a) {
 | 
			
		||||
      for (var f = a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g), b = f.length, d = [], c = 0, i = 0; c < b; ++c) {
 | 
			
		||||
        var j = f[c];
 | 
			
		||||
        j === "(" ? ++i : "\\" === j.charAt(0) && (j = +j.substring(1)) && j <= i && (d[j] = -1)
 | 
			
		||||
      }
 | 
			
		||||
      for (c = 1; c < d.length; ++c) - 1 === d[c] && (d[c] = ++t);
 | 
			
		||||
      for (i = c = 0; c < b; ++c) j = f[c], j === "(" ? (++i, d[i] === void 0 && (f[c] = "(?:")) : "\\" === j.charAt(0) && (j = +j.substring(1)) && j <= i && (f[c] = "\\" + d[i]);
 | 
			
		||||
      for (i = c = 0; c < b; ++c)"^" === f[c] && "^" !== f[c + 1] && (f[c] = "");
 | 
			
		||||
      if (a.ignoreCase && s) for (c = 0; c < b; ++c) j = f[c], a = j.charAt(0), j.length >= 2 && a === "[" ? f[c] = h(j) : a !== "\\" && (f[c] = j.replace(/[A-Za-z]/g, function(a) {
 | 
			
		||||
        a = a.charCodeAt(0);
 | 
			
		||||
        return "[" + String.fromCharCode(a & -33, a | 32) + "]"
 | 
			
		||||
      }));
 | 
			
		||||
      return f.join("")
 | 
			
		||||
    }
 | 
			
		||||
    for (var t = 0, s = !1, l = !1, p = 0, d = a.length; p < d; ++p) {
 | 
			
		||||
      var g = a[p];
 | 
			
		||||
      if (g.ignoreCase) l = !0;
 | 
			
		||||
      else if (/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ""))) {
 | 
			
		||||
        s = !0;
 | 
			
		||||
        l = !1;
 | 
			
		||||
        break
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    for (var r = {
 | 
			
		||||
      b: 8,
 | 
			
		||||
      t: 9,
 | 
			
		||||
      n: 10,
 | 
			
		||||
      v: 11,
 | 
			
		||||
      f: 12,
 | 
			
		||||
      r: 13
 | 
			
		||||
    }, n = [], p = 0, d = a.length; p < d; ++p) {
 | 
			
		||||
      g = a[p];
 | 
			
		||||
      if (g.global || g.multiline) throw Error("" + g);
 | 
			
		||||
      n.push("(?:" + y(g) + ")")
 | 
			
		||||
    }
 | 
			
		||||
    return RegExp(n.join("|"), l ? "gi" : "g")
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function M(a) {
 | 
			
		||||
    function m(a) {
 | 
			
		||||
      switch (a.nodeType) {
 | 
			
		||||
      case 1:
 | 
			
		||||
        if (e.test(a.className)) break;
 | 
			
		||||
        for (var g = a.firstChild; g; g = g.nextSibling) m(g);
 | 
			
		||||
        g = a.nodeName;
 | 
			
		||||
        if ("BR" === g || "LI" === g) h[s] = "\n", t[s << 1] = y++, t[s++ << 1 | 1] = a;
 | 
			
		||||
        break;
 | 
			
		||||
      case 3:
 | 
			
		||||
      case 4:
 | 
			
		||||
        g = a.nodeValue, g.length && (g = p ? g.replace(/\r\n?/g, "\n") : g.replace(/[\t\n\r ]+/g, " "), h[s] = g, t[s << 1] = y, y += g.length, t[s++ << 1 | 1] = a)
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    var e = /(?:^|\s)nocode(?:\s|$)/,
 | 
			
		||||
        h = [],
 | 
			
		||||
        y = 0,
 | 
			
		||||
        t = [],
 | 
			
		||||
        s = 0,
 | 
			
		||||
        l;
 | 
			
		||||
    a.currentStyle ? l = a.currentStyle.whiteSpace : window.getComputedStyle && (l = document.defaultView.getComputedStyle(a, q).getPropertyValue("white-space"));
 | 
			
		||||
    var p = l && "pre" === l.substring(0, 3);
 | 
			
		||||
    m(a);
 | 
			
		||||
    return {
 | 
			
		||||
      a: h.join("").replace(/\n$/, ""),
 | 
			
		||||
      c: t
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function B(a, m, e, h) {
 | 
			
		||||
    m && (a = {
 | 
			
		||||
      a: m,
 | 
			
		||||
      d: a
 | 
			
		||||
    }, e(a), h.push.apply(h, a.e))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function x(a, m) {
 | 
			
		||||
    function e(a) {
 | 
			
		||||
      for (var l = a.d, p = [l, "pln"], d = 0, g = a.a.match(y) || [], r = {}, n = 0, z = g.length; n < z; ++n) {
 | 
			
		||||
        var f = g[n],
 | 
			
		||||
            b = r[f],
 | 
			
		||||
            o = void 0,
 | 
			
		||||
            c;
 | 
			
		||||
        if (typeof b === "string") c = !1;
 | 
			
		||||
        else {
 | 
			
		||||
          var i = h[f.charAt(0)];
 | 
			
		||||
          if (i) o = f.match(i[1]), b = i[0];
 | 
			
		||||
          else {
 | 
			
		||||
            for (c = 0; c < t; ++c) if (i = m[c], o = f.match(i[1])) {
 | 
			
		||||
              b = i[0];
 | 
			
		||||
              break
 | 
			
		||||
            }
 | 
			
		||||
            o || (b = "pln")
 | 
			
		||||
          }
 | 
			
		||||
          if ((c = b.length >= 5 && "lang-" === b.substring(0, 5)) && !(o && typeof o[1] === "string")) c = !1, b = "src";
 | 
			
		||||
          c || (r[f] = b)
 | 
			
		||||
        }
 | 
			
		||||
        i = d;
 | 
			
		||||
        d += f.length;
 | 
			
		||||
        if (c) {
 | 
			
		||||
          c = o[1];
 | 
			
		||||
          var j = f.indexOf(c),
 | 
			
		||||
              k = j + c.length;
 | 
			
		||||
          o[2] && (k = f.length - o[2].length, j = k - c.length);
 | 
			
		||||
          b = b.substring(5);
 | 
			
		||||
          B(l + i, f.substring(0, j), e, p);
 | 
			
		||||
          B(l + i + j, c, C(b, c), p);
 | 
			
		||||
          B(l + i + k, f.substring(k), e, p)
 | 
			
		||||
        } else p.push(l + i, b)
 | 
			
		||||
      }
 | 
			
		||||
      a.e = p
 | 
			
		||||
    }
 | 
			
		||||
    var h = {},
 | 
			
		||||
        y;
 | 
			
		||||
    (function() {
 | 
			
		||||
      for (var e = a.concat(m), l = [], p = {}, d = 0, g = e.length; d < g; ++d) {
 | 
			
		||||
        var r = e[d],
 | 
			
		||||
            n = r[3];
 | 
			
		||||
        if (n) for (var k = n.length; --k >= 0;) h[n.charAt(k)] = r;
 | 
			
		||||
        r = r[1];
 | 
			
		||||
        n = "" + r;
 | 
			
		||||
        p.hasOwnProperty(n) || (l.push(r), p[n] = q)
 | 
			
		||||
      }
 | 
			
		||||
      l.push(/[\S\s]/);
 | 
			
		||||
      y = L(l)
 | 
			
		||||
    })();
 | 
			
		||||
    var t = m.length;
 | 
			
		||||
    return e
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function u(a) {
 | 
			
		||||
    var m = [],
 | 
			
		||||
        e = [];
 | 
			
		||||
    a.tripleQuotedStrings ? m.push(["str", /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/, q, "'\""]) : a.multiLineStrings ? m.push(["str", /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, q, "'\"`"]) : m.push(["str", /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/, q, "\"'"]);
 | 
			
		||||
    a.verbatimStrings && e.push(["str", /^@"(?:[^"]|"")*(?:"|$)/, q]);
 | 
			
		||||
    var h = a.hashComments;
 | 
			
		||||
    h && (a.cStyleComments ? (h > 1 ? m.push(["com", /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, q, "#"]) : m.push(["com", /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/, q, "#"]), e.push(["str", /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, q])) : m.push(["com", /^#[^\n\r]*/, q, "#"]));
 | 
			
		||||
    a.cStyleComments && (e.push(["com", /^\/\/[^\n\r]*/, q]), e.push(["com", /^\/\*[\S\s]*?(?:\*\/|$)/, q]));
 | 
			
		||||
    a.regexLiterals && e.push(["lang-regex", /^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);
 | 
			
		||||
    (h = a.types) && e.push(["typ", h]);
 | 
			
		||||
    a = ("" + a.keywords).replace(/^ | $/g, "");
 | 
			
		||||
    a.length && e.push(["kwd", RegExp("^(?:" + a.replace(/[\s,]+/g, "|") + ")\\b"), q]);
 | 
			
		||||
    m.push(["pln", /^\s+/, q, " \r\n\t\xa0"]);
 | 
			
		||||
    e.push(["lit", /^@[$_a-z][\w$@]*/i, q], ["typ", /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, q], ["pln", /^[$_a-z][\w$@]*/i, q], ["lit", /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i, q, "0123456789"], ["pln", /^\\[\S\s]?/, q], ["pun", /^.[^\s\w"-$'./@\\`]*/, q]);
 | 
			
		||||
    return x(m, e)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function D(a, m) {
 | 
			
		||||
    function e(a) {
 | 
			
		||||
      switch (a.nodeType) {
 | 
			
		||||
      case 1:
 | 
			
		||||
        if (k.test(a.className)) break;
 | 
			
		||||
        if ("BR" === a.nodeName) h(a), a.parentNode && a.parentNode.removeChild(a);
 | 
			
		||||
        else for (a = a.firstChild; a; a = a.nextSibling) e(a);
 | 
			
		||||
        break;
 | 
			
		||||
      case 3:
 | 
			
		||||
      case 4:
 | 
			
		||||
        if (p) {
 | 
			
		||||
          var b = a.nodeValue,
 | 
			
		||||
              d = b.match(t);
 | 
			
		||||
          if (d) {
 | 
			
		||||
            var c = b.substring(0, d.index);
 | 
			
		||||
            a.nodeValue = c;
 | 
			
		||||
            (b = b.substring(d.index + d[0].length)) && a.parentNode.insertBefore(s.createTextNode(b), a.nextSibling);
 | 
			
		||||
            h(a);
 | 
			
		||||
            c || a.parentNode.removeChild(a)
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function h(a) {
 | 
			
		||||
      function b(a, d) {
 | 
			
		||||
        var e = d ? a.cloneNode(!1) : a,
 | 
			
		||||
            f = a.parentNode;
 | 
			
		||||
        if (f) {
 | 
			
		||||
          var f = b(f, 1),
 | 
			
		||||
              g = a.nextSibling;
 | 
			
		||||
          f.appendChild(e);
 | 
			
		||||
          for (var h = g; h; h = g) g = h.nextSibling, f.appendChild(h)
 | 
			
		||||
        }
 | 
			
		||||
        return e
 | 
			
		||||
      }
 | 
			
		||||
      for (; !a.nextSibling;) if (a = a.parentNode, !a) return;
 | 
			
		||||
      for (var a = b(a.nextSibling, 0), e;
 | 
			
		||||
      (e = a.parentNode) && e.nodeType === 1;) a = e;
 | 
			
		||||
      d.push(a)
 | 
			
		||||
    }
 | 
			
		||||
    var k = /(?:^|\s)nocode(?:\s|$)/,
 | 
			
		||||
        t = /\r\n?|\n/,
 | 
			
		||||
        s = a.ownerDocument,
 | 
			
		||||
        l;
 | 
			
		||||
    a.currentStyle ? l = a.currentStyle.whiteSpace : window.getComputedStyle && (l = s.defaultView.getComputedStyle(a, q).getPropertyValue("white-space"));
 | 
			
		||||
    var p = l && "pre" === l.substring(0, 3);
 | 
			
		||||
    for (l = s.createElement("LI"); a.firstChild;) l.appendChild(a.firstChild);
 | 
			
		||||
    for (var d = [l], g = 0; g < d.length; ++g) e(d[g]);
 | 
			
		||||
    m === (m | 0) && d[0].setAttribute("value", m);
 | 
			
		||||
    var r = s.createElement("OL");
 | 
			
		||||
    r.className = "linenums";
 | 
			
		||||
    for (var n = Math.max(0, m - 1 | 0) || 0, g = 0, z = d.length; g < z; ++g) l = d[g], l.className = "L" + (g + n) % 10, l.firstChild || l.appendChild(s.createTextNode("\xa0")), r.appendChild(l);
 | 
			
		||||
    a.appendChild(r)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function k(a, m) {
 | 
			
		||||
    for (var e = m.length; --e >= 0;) {
 | 
			
		||||
      var h = m[e];
 | 
			
		||||
      A.hasOwnProperty(h) ? window.console && console.warn("cannot override language handler %s", h) : A[h] = a
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function C(a, m) {
 | 
			
		||||
    if (!a || !A.hasOwnProperty(a)) a = /^\s*</.test(m) ? "default-markup" : "default-code";
 | 
			
		||||
    return A[a]
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function E(a) {
 | 
			
		||||
    var m =
 | 
			
		||||
    a.g;
 | 
			
		||||
    try {
 | 
			
		||||
      var e = M(a.h),
 | 
			
		||||
          h = e.a;
 | 
			
		||||
      a.a = h;
 | 
			
		||||
      a.c = e.c;
 | 
			
		||||
      a.d = 0;
 | 
			
		||||
      C(m, h)(a);
 | 
			
		||||
      var k = /\bMSIE\b/.test(navigator.userAgent),
 | 
			
		||||
          m = /\n/g,
 | 
			
		||||
          t = a.a,
 | 
			
		||||
          s = t.length,
 | 
			
		||||
          e = 0,
 | 
			
		||||
          l = a.c,
 | 
			
		||||
          p = l.length,
 | 
			
		||||
          h = 0,
 | 
			
		||||
          d = a.e,
 | 
			
		||||
          g = d.length,
 | 
			
		||||
          a = 0;
 | 
			
		||||
      d[g] = s;
 | 
			
		||||
      var r, n;
 | 
			
		||||
      for (n = r = 0; n < g;) d[n] !== d[n + 2] ? (d[r++] = d[n++], d[r++] = d[n++]) : n += 2;
 | 
			
		||||
      g = r;
 | 
			
		||||
      for (n = r = 0; n < g;) {
 | 
			
		||||
        for (var z = d[n], f = d[n + 1], b = n + 2; b + 2 <= g && d[b + 1] === f;) b += 2;
 | 
			
		||||
        d[r++] = z;
 | 
			
		||||
        d[r++] = f;
 | 
			
		||||
        n = b
 | 
			
		||||
      }
 | 
			
		||||
      for (d.length = r; h < p;) {
 | 
			
		||||
        var o = l[h + 2] || s,
 | 
			
		||||
            c = d[a + 2] || s,
 | 
			
		||||
            b = Math.min(o, c),
 | 
			
		||||
            i = l[h + 1],
 | 
			
		||||
            j;
 | 
			
		||||
        if (i.nodeType !== 1 && (j = t.substring(e, b))) {
 | 
			
		||||
          k && (j = j.replace(m, "\r"));
 | 
			
		||||
          i.nodeValue =
 | 
			
		||||
          j;
 | 
			
		||||
          var u = i.ownerDocument,
 | 
			
		||||
              v = u.createElement("SPAN");
 | 
			
		||||
          v.className = d[a + 1];
 | 
			
		||||
          var x = i.parentNode;
 | 
			
		||||
          x.replaceChild(v, i);
 | 
			
		||||
          v.appendChild(i);
 | 
			
		||||
          e < o && (l[h + 1] = i = u.createTextNode(t.substring(b, o)), x.insertBefore(i, v.nextSibling))
 | 
			
		||||
        }
 | 
			
		||||
        e = b;
 | 
			
		||||
        e >= o && (h += 2);
 | 
			
		||||
        e >= c && (a += 2)
 | 
			
		||||
      }
 | 
			
		||||
    } catch (w) {
 | 
			
		||||
      "console" in window && console.log(w && w.stack ? w.stack : w)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  var v = ["break,continue,do,else,for,if,return,while"],
 | 
			
		||||
      w = [
 | 
			
		||||
      [v, "auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],
 | 
			
		||||
      F = [w, "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
 | 
			
		||||
      G = [w, "abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
 | 
			
		||||
      H = [G, "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],
 | 
			
		||||
      w = [w, "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],
 | 
			
		||||
      I = [v, "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
 | 
			
		||||
      J = [v, "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],
 | 
			
		||||
      v = [v, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"],
 | 
			
		||||
      K = /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,
 | 
			
		||||
      N = /\S/,
 | 
			
		||||
      O = u({
 | 
			
		||||
      keywords: [F, H, w, "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END" + I, J, v],
 | 
			
		||||
      hashComments: !0,
 | 
			
		||||
      cStyleComments: !0,
 | 
			
		||||
      multiLineStrings: !0,
 | 
			
		||||
      regexLiterals: !0
 | 
			
		||||
    }),
 | 
			
		||||
      A = {};
 | 
			
		||||
  k(O, ["default-code"]);
 | 
			
		||||
  k(x([], [
 | 
			
		||||
    ["pln", /^[^<?]+/],
 | 
			
		||||
    ["dec", /^<!\w[^>]*(?:>|$)/],
 | 
			
		||||
    ["com", /^<\!--[\S\s]*?(?:--\>|$)/],
 | 
			
		||||
    ["lang-", /^<\?([\S\s]+?)(?:\?>|$)/],
 | 
			
		||||
    ["lang-", /^<%([\S\s]+?)(?:%>|$)/],
 | 
			
		||||
    ["pun", /^(?:<[%?]|[%?]>)/],
 | 
			
		||||
    ["lang-", /^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],
 | 
			
		||||
    ["lang-js", /^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],
 | 
			
		||||
    ["lang-css", /^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],
 | 
			
		||||
    ["lang-in.tag", /^(<\/?[a-z][^<>]*>)/i]
 | 
			
		||||
  ]), ["default-markup", "htm", "html", "mxml", "xhtml", "xml", "xsl"]);
 | 
			
		||||
  k(x([
 | 
			
		||||
    ["pln", /^\s+/, q, " \t\r\n"],
 | 
			
		||||
    ["atv", /^(?:"[^"]*"?|'[^']*'?)/, q, "\"'"]
 | 
			
		||||
  ], [
 | 
			
		||||
    ["tag", /^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],
 | 
			
		||||
    ["atn", /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
 | 
			
		||||
    ["lang-uq.val", /^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],
 | 
			
		||||
    ["pun", /^[/<->]+/],
 | 
			
		||||
    ["lang-js", /^on\w+\s*=\s*"([^"]+)"/i],
 | 
			
		||||
    ["lang-js", /^on\w+\s*=\s*'([^']+)'/i],
 | 
			
		||||
    ["lang-js", /^on\w+\s*=\s*([^\s"'>]+)/i],
 | 
			
		||||
    ["lang-css", /^style\s*=\s*"([^"]+)"/i],
 | 
			
		||||
    ["lang-css", /^style\s*=\s*'([^']+)'/i],
 | 
			
		||||
    ["lang-css", /^style\s*=\s*([^\s"'>]+)/i]
 | 
			
		||||
  ]), ["in.tag"]);
 | 
			
		||||
  k(x([], [
 | 
			
		||||
    ["atv", /^[\S\s]+/]
 | 
			
		||||
  ]), ["uq.val"]);
 | 
			
		||||
  k(u({
 | 
			
		||||
    keywords: F,
 | 
			
		||||
    hashComments: !0,
 | 
			
		||||
    cStyleComments: !0,
 | 
			
		||||
    types: K
 | 
			
		||||
  }), ["c", "cc", "cpp", "cxx", "cyc", "m"]);
 | 
			
		||||
  k(u({
 | 
			
		||||
    keywords: "null,true,false"
 | 
			
		||||
  }), ["json"]);
 | 
			
		||||
  k(u({
 | 
			
		||||
    keywords: H,
 | 
			
		||||
    hashComments: !0,
 | 
			
		||||
    cStyleComments: !0,
 | 
			
		||||
    verbatimStrings: !0,
 | 
			
		||||
    types: K
 | 
			
		||||
  }), ["cs"]);
 | 
			
		||||
  k(u({
 | 
			
		||||
    keywords: G,
 | 
			
		||||
    cStyleComments: !0
 | 
			
		||||
  }), ["java"]);
 | 
			
		||||
  k(u({
 | 
			
		||||
    keywords: v,
 | 
			
		||||
    hashComments: !0,
 | 
			
		||||
    multiLineStrings: !0
 | 
			
		||||
  }), ["bsh", "csh", "sh"]);
 | 
			
		||||
  k(u({
 | 
			
		||||
    keywords: I,
 | 
			
		||||
    hashComments: !0,
 | 
			
		||||
    multiLineStrings: !0,
 | 
			
		||||
    tripleQuotedStrings: !0
 | 
			
		||||
  }), ["cv", "py"]);
 | 
			
		||||
  k(u({
 | 
			
		||||
    keywords: "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",
 | 
			
		||||
    hashComments: !0,
 | 
			
		||||
    multiLineStrings: !0,
 | 
			
		||||
    regexLiterals: !0
 | 
			
		||||
  }), ["perl", "pl", "pm"]);
 | 
			
		||||
  k(u({
 | 
			
		||||
    keywords: J,
 | 
			
		||||
    hashComments: !0,
 | 
			
		||||
    multiLineStrings: !0,
 | 
			
		||||
    regexLiterals: !0
 | 
			
		||||
  }), ["rb"]);
 | 
			
		||||
  k(u({
 | 
			
		||||
    keywords: w,
 | 
			
		||||
    cStyleComments: !0,
 | 
			
		||||
    regexLiterals: !0
 | 
			
		||||
  }), ["js"]);
 | 
			
		||||
  k(u({
 | 
			
		||||
    keywords: "all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
 | 
			
		||||
    hashComments: 3,
 | 
			
		||||
    cStyleComments: !0,
 | 
			
		||||
    multilineStrings: !0,
 | 
			
		||||
    tripleQuotedStrings: !0,
 | 
			
		||||
    regexLiterals: !0
 | 
			
		||||
  }), ["coffee"]);
 | 
			
		||||
  k(x([], [
 | 
			
		||||
    ["str", /^[\S\s]+/]
 | 
			
		||||
  ]), ["regex"]);
 | 
			
		||||
  window.prettyPrintOne = function(a, m, e) {
 | 
			
		||||
    var h = document.createElement("PRE");
 | 
			
		||||
    h.innerHTML = a;
 | 
			
		||||
    e && D(h, e);
 | 
			
		||||
    E({
 | 
			
		||||
      g: m,
 | 
			
		||||
      i: e,
 | 
			
		||||
      h: h
 | 
			
		||||
    });
 | 
			
		||||
    return h.innerHTML
 | 
			
		||||
  };
 | 
			
		||||
  window.prettyPrint = function(a) {
 | 
			
		||||
    function m() {
 | 
			
		||||
      for (var e = window.PR_SHOULD_USE_CONTINUATION ? l.now() + 250 : Infinity; p < h.length && l.now() < e; p++) {
 | 
			
		||||
        var n = h[p],
 | 
			
		||||
            k = n.className;
 | 
			
		||||
        if (k.indexOf("prettyprint") >= 0) {
 | 
			
		||||
          var k = k.match(g),
 | 
			
		||||
              f, b;
 | 
			
		||||
          if (b = !k) {
 | 
			
		||||
            b = n;
 | 
			
		||||
            for (var o = void 0, c = b.firstChild; c; c = c.nextSibling) var i = c.nodeType,
 | 
			
		||||
                o = i === 1 ? o ? b : c : i === 3 ? N.test(c.nodeValue) ? b : o : o;
 | 
			
		||||
            b = (f = o === b ? void 0 : o) && "CODE" === f.tagName
 | 
			
		||||
          }
 | 
			
		||||
          b && (k = f.className.match(g));
 | 
			
		||||
          k && (k = k[1]);
 | 
			
		||||
          b = !1;
 | 
			
		||||
          for (o = n.parentNode; o; o = o.parentNode) if ((o.tagName === "pre" || o.tagName === "code" || o.tagName === "xmp") && o.className && o.className.indexOf("prettyprint") >= 0) {
 | 
			
		||||
            b = !0;
 | 
			
		||||
            break
 | 
			
		||||
          }
 | 
			
		||||
          b || ((b = (b = n.className.match(/\blinenums\b(?::(\d+))?/)) ? b[1] && b[1].length ? +b[1] : !0 : !1) && D(n, b), d = {
 | 
			
		||||
            g: k,
 | 
			
		||||
            h: n,
 | 
			
		||||
            i: b
 | 
			
		||||
          }, E(d))
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      p < h.length ? setTimeout(m, 250) : a && a()
 | 
			
		||||
    }
 | 
			
		||||
    for (var e = [document.getElementsByTagName("pre"), document.getElementsByTagName("code"), document.getElementsByTagName("xmp")], h = [], k = 0; k < e.length; ++k) for (var t = 0, s = e[k].length; t < s; ++t) h.push(e[k][t]);
 | 
			
		||||
    var e = q,
 | 
			
		||||
        l = Date;
 | 
			
		||||
    l.now || (l = {
 | 
			
		||||
      now: function() {
 | 
			
		||||
        return +new Date
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    var p = 0,
 | 
			
		||||
        d, g = /\blang(?:uage)?-([\w.]+)(?!\S)/;
 | 
			
		||||
    m()
 | 
			
		||||
  };
 | 
			
		||||
  window.PR = {
 | 
			
		||||
    createSimpleLexer: x,
 | 
			
		||||
    registerLangHandler: k,
 | 
			
		||||
    sourceDecorator: u,
 | 
			
		||||
    PR_ATTRIB_NAME: "atn",
 | 
			
		||||
    PR_ATTRIB_VALUE: "atv",
 | 
			
		||||
    PR_COMMENT: "com",
 | 
			
		||||
    PR_DECLARATION: "dec",
 | 
			
		||||
    PR_KEYWORD: "kwd",
 | 
			
		||||
    PR_LITERAL: "lit",
 | 
			
		||||
    PR_NOCODE: "nocode",
 | 
			
		||||
    PR_PLAIN: "pln",
 | 
			
		||||
    PR_PUNCTUATION: "pun",
 | 
			
		||||
    PR_SOURCE: "src",
 | 
			
		||||
    PR_STRING: "str",
 | 
			
		||||
    PR_TAG: "tag",
 | 
			
		||||
    PR_TYPE: "typ"
 | 
			
		||||
  }
 | 
			
		||||
})();
 | 
			
		||||
							
								
								
									
										1157
									
								
								test/assets/docs/scripts/sunlight.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1157
									
								
								test/assets/docs/scripts/sunlight.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										203
									
								
								test/assets/docs/scripts/toc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								test/assets/docs/scripts/toc.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,203 @@
 | 
			
		||||
(function($) {
 | 
			
		||||
  var navbarHeight;
 | 
			
		||||
  var initialised = false;
 | 
			
		||||
  var navbarOffset;
 | 
			
		||||
 | 
			
		||||
  function elOffset($el) {
 | 
			
		||||
    return $el.offset().top - (navbarHeight + navbarOffset);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function scrollToHash(duringPageLoad) {
 | 
			
		||||
    var elScrollToId = location.hash.replace(/^#/, '');
 | 
			
		||||
    var $el;
 | 
			
		||||
 | 
			
		||||
    function doScroll() {
 | 
			
		||||
      var offsetTop = elOffset($el);
 | 
			
		||||
      window.scrollTo(window.pageXOffset || window.scrollX, offsetTop);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (elScrollToId) {
 | 
			
		||||
      $el = $(document.getElementById(elScrollToId));
 | 
			
		||||
 | 
			
		||||
      if (!$el.length) {
 | 
			
		||||
        $el = $(document.getElementsByName(elScrollToId));
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if ($el.length) {
 | 
			
		||||
        if (duringPageLoad) {
 | 
			
		||||
          $(window).one('scroll', function() {
 | 
			
		||||
            setTimeout(doScroll, 100);
 | 
			
		||||
          });
 | 
			
		||||
        } else {
 | 
			
		||||
          setTimeout(doScroll, 0);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function init(opts) {
 | 
			
		||||
    if (initialised) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    initialised = true;
 | 
			
		||||
    navbarHeight = $('.navbar').height();
 | 
			
		||||
    navbarOffset = opts.navbarOffset;
 | 
			
		||||
 | 
			
		||||
    // some browsers move the offset after changing location.
 | 
			
		||||
    // also catch external links coming in
 | 
			
		||||
    $(window).on("hashchange", scrollToHash.bind(null, false));
 | 
			
		||||
    $(scrollToHash.bind(null, true));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  $.catchAnchorLinks = function(options) {
 | 
			
		||||
    var opts = $.extend({}, jQuery.fn.toc.defaults, options);
 | 
			
		||||
    init(opts);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  $.fn.toc = function(options) {
 | 
			
		||||
    var self = this;
 | 
			
		||||
    var opts = $.extend({}, jQuery.fn.toc.defaults, options);
 | 
			
		||||
 | 
			
		||||
    var container = $(opts.container);
 | 
			
		||||
    var tocs = [];
 | 
			
		||||
    var headings = $(opts.selectors, container);
 | 
			
		||||
    var headingOffsets = [];
 | 
			
		||||
    var activeClassName = 'active';
 | 
			
		||||
    var ANCHOR_PREFIX = "__anchor";
 | 
			
		||||
    var maxScrollTo;
 | 
			
		||||
    var visibleHeight;
 | 
			
		||||
    var headerHeight = 10; // so if the header is readable, its counted as shown
 | 
			
		||||
    init();
 | 
			
		||||
 | 
			
		||||
    var scrollTo = function(e) {
 | 
			
		||||
      e.preventDefault();
 | 
			
		||||
      var target = $(e.target);
 | 
			
		||||
      if (target.prop('tagName').toLowerCase() !== "a") {
 | 
			
		||||
        target = target.parent();
 | 
			
		||||
      }
 | 
			
		||||
      var elScrollToId = target.attr('href').replace(/^#/, '') + ANCHOR_PREFIX;
 | 
			
		||||
      var $el = $(document.getElementById(elScrollToId));
 | 
			
		||||
 | 
			
		||||
      var offsetTop = Math.min(maxScrollTo, elOffset($el));
 | 
			
		||||
 | 
			
		||||
      $('body,html').animate({ scrollTop: offsetTop }, 400, 'swing', function() {
 | 
			
		||||
        location.hash = '#' + elScrollToId;
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      $('a', self).removeClass(activeClassName);
 | 
			
		||||
      target.addClass(activeClassName);
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    var calcHadingOffsets = function() {
 | 
			
		||||
      maxScrollTo = $("body").height() - $(window).height();
 | 
			
		||||
      visibleHeight = $(window).height() - navbarHeight;
 | 
			
		||||
      headingOffsets = [];
 | 
			
		||||
      headings.each(function(i, heading) {
 | 
			
		||||
        var anchorSpan = $(heading).prev("span");
 | 
			
		||||
        var top = 0;
 | 
			
		||||
        if (anchorSpan.length) {
 | 
			
		||||
          top = elOffset(anchorSpan);
 | 
			
		||||
        }
 | 
			
		||||
        headingOffsets.push(top > 0 ? top : 0);
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //highlight on scroll
 | 
			
		||||
    var timeout;
 | 
			
		||||
    var highlightOnScroll = function(e) {
 | 
			
		||||
      if (!tocs.length) {
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      if (timeout) {
 | 
			
		||||
        clearTimeout(timeout);
 | 
			
		||||
      }
 | 
			
		||||
      timeout = setTimeout(function() {
 | 
			
		||||
        var top = $(window).scrollTop(),
 | 
			
		||||
          highlighted;
 | 
			
		||||
        for (var i = headingOffsets.length - 1; i >= 0; i--) {
 | 
			
		||||
          var isActive = tocs[i].hasClass(activeClassName);
 | 
			
		||||
          // at the end of the page, allow any shown header
 | 
			
		||||
          if (isActive && headingOffsets[i] >= maxScrollTo && top >= maxScrollTo) {
 | 
			
		||||
            return;
 | 
			
		||||
          }
 | 
			
		||||
          // if we have got to the first heading or the heading is the first one visible
 | 
			
		||||
          if (i === 0 || (headingOffsets[i] + headerHeight >= top && (headingOffsets[i - 1] + headerHeight <= top))) {
 | 
			
		||||
            // in the case that a heading takes up more than the visible height e.g. we are showing
 | 
			
		||||
            // only the one above, highlight the one above
 | 
			
		||||
            if (i > 0 && headingOffsets[i] - visibleHeight >= top) {
 | 
			
		||||
              i--;
 | 
			
		||||
            }
 | 
			
		||||
            $('a', self).removeClass(activeClassName);
 | 
			
		||||
            if (i >= 0) {
 | 
			
		||||
              highlighted = tocs[i].addClass(activeClassName);
 | 
			
		||||
              opts.onHighlight(highlighted);
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }, 50);
 | 
			
		||||
    };
 | 
			
		||||
    if (opts.highlightOnScroll) {
 | 
			
		||||
      $(window).bind('scroll', highlightOnScroll);
 | 
			
		||||
      $(window).bind('load resize', function() {
 | 
			
		||||
        calcHadingOffsets();
 | 
			
		||||
        highlightOnScroll();
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return this.each(function() {
 | 
			
		||||
      //build TOC
 | 
			
		||||
      var el = $(this);
 | 
			
		||||
      var ul = $('<div class="list-group">');
 | 
			
		||||
 | 
			
		||||
      headings.each(function(i, heading) {
 | 
			
		||||
        var $h = $(heading);
 | 
			
		||||
 | 
			
		||||
        var anchor = $('<span/>').attr('id', opts.anchorName(i, heading, opts.prefix) + ANCHOR_PREFIX).insertBefore($h);
 | 
			
		||||
 | 
			
		||||
        var span = $('<span/>')
 | 
			
		||||
          .text(opts.headerText(i, heading, $h));
 | 
			
		||||
 | 
			
		||||
        //build TOC item
 | 
			
		||||
        var a = $('<a class="list-group-item"/>')
 | 
			
		||||
          .append(span)
 | 
			
		||||
          .attr('href', '#' + opts.anchorName(i, heading, opts.prefix))
 | 
			
		||||
          .bind('click', function(e) {
 | 
			
		||||
            scrollTo(e);
 | 
			
		||||
            el.trigger('selected', $(this).attr('href'));
 | 
			
		||||
          });
 | 
			
		||||
 | 
			
		||||
        span.addClass(opts.itemClass(i, heading, $h, opts.prefix));
 | 
			
		||||
 | 
			
		||||
        tocs.push(a);
 | 
			
		||||
 | 
			
		||||
        ul.append(a);
 | 
			
		||||
      });
 | 
			
		||||
      el.html(ul);
 | 
			
		||||
 | 
			
		||||
      calcHadingOffsets();
 | 
			
		||||
    });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
jQuery.fn.toc.defaults = {
 | 
			
		||||
  container: 'body',
 | 
			
		||||
  selectors: 'h1,h2,h3',
 | 
			
		||||
  smoothScrolling: true,
 | 
			
		||||
  prefix: 'toc',
 | 
			
		||||
  onHighlight: function() {},
 | 
			
		||||
  highlightOnScroll: true,
 | 
			
		||||
  navbarOffset: 0,
 | 
			
		||||
  anchorName: function(i, heading, prefix) {
 | 
			
		||||
    return prefix+i;
 | 
			
		||||
  },
 | 
			
		||||
  headerText: function(i, heading, $heading) {
 | 
			
		||||
    return $heading.text();
 | 
			
		||||
  },
 | 
			
		||||
  itemClass: function(i, heading, $heading, prefix) {
 | 
			
		||||
    return prefix + '-' + $heading[0].tagName.toLowerCase();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
})(jQuery);
 | 
			
		||||
		Reference in New Issue
	
	Block a user