Full Code of epistemex/cardinal-spline-js for AI

master dc3206805a13 cached
14 files
368.4 KB
115.5k tokens
117 symbols
1 requests
Download .txt
Showing preview only (380K chars total). Download the full file or copy to clipboard to get everything.
Repository: epistemex/cardinal-spline-js
Branch: master
Commit: dc3206805a13
Files: 14
Total size: 368.4 KB

Directory structure:
gitextract_f0v551o_/

├── .github/
│   └── FUNDING.yml
├── CHANGE.log
├── MIT-LICENSE.md
├── README.md
├── demos/
│   └── demo.html
├── docs/
│   ├── global.html
│   ├── index.html
│   ├── scripts/
│   │   ├── docstrap.lib.js
│   │   └── toc.js
│   └── styles/
│       └── sunlight.default.css
├── package.json
└── src/
    ├── curve.js
    ├── curve_calc.js
    └── curve_draw.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: ['https://paypal.me/KenNil'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']


================================================
FILE: CHANGE.log
================================================
Change log for Cardinal Spline JS
---------------------------------

3.0.0
Changes from this version can be seen in the git log itself.

2.3.8
BMP: Bumping version for NPM to obtain correct readme.

2.3.7
BMP: Bumping version for bower.

2.3.6
ADD: Support empty point array as input (issue #5). Returns empty Float32Array.

2.3.5
ADD: Documentation only (# of points required). Patch touched for bower (new tag).

2.3.4
ADD: Node.js support for curve_func.js (added by @asmuelle)

2.3.3
ADD: Node.js support for curve_calc.js
IMP: Minor speed improvement
FIX: Docs stated default segments value was 20, corrected to 25.

2.3.1
FIX: Made the extension more "bullet-proof" in case other extensions should happen to have the same name.
FIX: JSDoc return type fixed (Array -> Float32Array).
FIX: Minor touch-ups/improvements
ADD: Added two new file versions of the implementation - one pure function if you don't feel comfortable using
extensions, as well as a pure mathematical function to return a point
array for the spline without drawing anything (canvas not required with this version).

2.3
CHG: Using typed arrays also for resulting array (Float32)
CHG: Default segment value is now 25 instead of 20 (dynamic approach is being considered).
IMP: Speed improvements
FIX: Fixed double point entries in result array

2.2
IMP: Using typed arrays internally for cached tension values for speed improvement
REM: A left over and unnecessary console.log removed

2.1.1
FIX: When closed, length of close array was still reflecting total length internally resulting in empty entries
as the closed section is calculated separately.

2.1
ADD: New option: closed loop
FIX: End point wasn't properly considered

2.0
ADD: Optimized inner loop with a caching step
CHG: Removed redundant code
CHG: Cleaned up var declarations
CHG: Removed internal moveTo() to conform better to context behavior in general


(c) Epistemex 2013-2015
License: MIT


================================================
FILE: MIT-LICENSE.md
================================================
The MIT License (MIT)

Copyright (c) 2013-2018, 2024 Epistemex

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: README.md
================================================
Cardinal spline
===============

A Cardinal spline (basically a Catmull-Rom with a tension option)
implementation for JavaScript which creates an interpolated
smooth curve through each point pair in the given array. There is no
need to specify control points.

![Demo snapshot](https://i.imgur.com/5e69T5C.png)

Additional options are to provide a closed spline as well as segment
resolution (between each point) and of course a tension value.

_Help keep the project alive by supporting the developer:_

[![PayPalMe](https://github.com/epistemex/transformation-matrix-js/assets/70324091/04203267-58f0-402b-9589-e2dee6e7c510)](https://paypal.me/KenNil)

The archive comes with three separate versions for the sake of convenience:

**curve.js**<br>
Canvas 2D context extension. Call curve() on the context (ctx.curve(...))

**curve_draw.js**<br>
If you prefer not to use an extension then this version provides a clean
function that takes the context as an argument instead.

**curve_calc.js**<br>
Just the internal function that calculates the points. Does not draw
anything.

As well as their minified equivalent. There are no dependencies between
these implementations.


Install
=======

- Git using HTTPS: `git clone https://github.com/epistemex/cardinal-spline-js.git`
- Git using SSH: `git clone git@github.com:epistemex/cardinal-spline-js.git`
- NPM: `npm install /downloads/cardinal-spline-js/` (curve_calc.js / curve_func.js)


Usage
=====

curve.js
--------

Make sure the script is loaded before a 2D context is obtained from the canvas element.

Then use `curve()` as any other method/function on the context -

**Examples**

    ctx.moveTo(points[0], points[1]);  // optionally move to first point
    ctx.curve(points);                 // add cardinal spline to path
    ctx.stroke();                      // stroke path

will draw the points in the array which are arranged in the following manner:

    var points = [x1, y1,  x2, y2, ... xn, yn];

An optional tension value can be given *(default: 0.5)*:

    ctx.curve(points, 0.5);            // sets tension [0.0, 1.0] +/-

a segment resolution value *(default: 25)*:

    ctx.curve(points, 0.5, 25);        // points in each segment

The curve can be drawn closed. All arguments must be given in this
case *(default: false (open))*:

    ctx.curve(points, 0.5, 25, true);  // make a closed loop

The function returns a new (typed) array with the spline points which can be used for
tracking, calculate length and so forth. The values are in floating points:

    var splinePoints = ctx.curve(points);


curve_draw.js
-------------

If you use the function file instead the arguments will be the same as
above except that the context is passed in as the first argument and
then the function is instead called as:

    ctx.moveTo(points[0], points[1]);  // optionally move to first point
    curve(ctx, points);                // add cardinal spline to path
    ctx.stroke();                      // stroke path

Tip: This variant also returns a spline point array.


curve_calc.js
-------------

If you just want to calculate the spline points without drawing anything,
you can use the `curve_calc.js` file and call (please observe that the
name has been changed to better reflect its purpose):

    var splinePoints = getCurvePoints(points, ...);

Context is not required with this function.


In Node.js
----------

Require the package after installing it using npm, then:

    const getCurvePoints = require("cardinal-spline-js").getCurvePoints;
    const outPoints = getCurvePoints(inPoints);

or using ES5 module:

    import { getCurvePoints } from './path/to/curve_calc.js'
    const outPoints = getCurvePoints(inPoints);

Requirements
============

A modern HTML5 compliant browser with support for Typed Arrays and
JavaScript enabled. Except from `curve_calc.js` the canvas element and
a 2D context is required as well.


License
=======

Released under [MIT license](http://choosealicense.com/licenses/mit/).

*&copy; 2013-2018, 2024 Epistemex*

![Epistemex](https://i.imgur.com/wZSsyt8.png)


================================================
FILE: demos/demo.html
================================================
<!DOCTYPE html>
<html>

<!-- *******************************************************************
	 **	    Cardinal spline for canvas extension demo.
	 **
	 **	    (c) Epistemex
	 ** 	License: MIT.
	 *******************************************************************
-->

<head>
	<title>Canvas cardinal (smooth) curve extension - Epistemex</title>

	<style>
		body {
			width            : 100%;
			padding          : 0;
			margin           : 0;
			font             : 14px sans-serif;
			color            : #ccd;
			background-color : #272727;
			}

		h1 {
			font-size   : 32px;
			font-weight : normal;
			margin      : 20px 0;
			color       : #fff;
			}

		p {
			line-height : 19px;
			}

		#container {
			width  : 1024px;
			margin : 0 auto;
			}

		#demoCanvas {
			background-color : #b7b7bb;
			margin-bottom    : 12px;
			cursor           : crosshair;
			}

		.options {
			font-size        : 12px;
			padding          : 9px 5px 9px 5px;
			background-color : #555;
			color            : #fff;
			width            : 1014px;
			margin           : 0;
			}

		.options > input[type=text] {
			width       : 30px;
			margin-left : 5px;
			text-align  : center;
			border      : 1px solid #fff;
			}

		.options > input[type=range] {
			width : 120px;
			}

		.options > span {
			color      : #ff7;
			display    : inline-block;
			width      : 30px;
			text-align : right;
			}

		button {
			border        : 0;
			background    : #888;
			border-radius : 2px;
			font-weight   : bold;
			color         : #fff;
			padding       : 3px 9px;
			float         : right;
			margin        : -3px 3px 0 0;
			}

		button:hover {
			background : #ca2;
			}

		.options > label {
			margin-left : 12px;
			}

		input {
			height         : 9px;
			vertical-align : middle;
			}

		a {
			color           : #fff;
			text-decoration : none;
			}

		a:hover {
			color           : #ffa;
			text-decoration : underline;
			}

		.footerl {
			float : left;
			}

		.footerr {
			float      : right;
			margin-top : -7px;
			}
	</style>
</head>
<body>

	<div id="container">

		<h1>Cardinal spline for canvas</h1>

		<p>Draw a smooth curve (cardinal spline, or Catmull-Rom with tension option) through a point set with open or closed end, variable tension and number of segments.
		The implementation is highly optimized for performance still preserving quality.</p>

		<!-- Option panel -->
		<div class="options">
			<label for="numTension">Tension:</label>
			<input id="numTension" type="range" value="5" min="-10" max="20"/>
			<span id="numTensionValue">0.5</span>

			<label for="numSegments">Segments:</label>
			<input id="numSegments" type="range" value="25" min=1 max=100/>
			<span id="numSegmentsValue">25</span>

			<label for="chkClosed">Closed:</label>
			<input id="chkClosed" type="checkbox">

			<label for="chkPoints">Points:</label>
			<input id="chkPoints" type="checkbox" checked>

			<label for="chkFill">Fill:</label>
			<input id="chkFill" type="checkbox">

			<button onclick="randomize();renderCurve()">Randomize</button>
		</div>

		<canvas id="demoCanvas" width="1024" height="450"></canvas>

		<div class="footerl">
			&copy; by <a href="http://github.com/epistemex/">Epistemex</a>.
			<a href="https://github.com/epistemex/cardinal-spline-js/">Cardinal spline</a> is licensed with a <a href="http://opensource.org/licenses/MIT">MIT license</a>.
		</div>
		<div class="footerr">
			<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAAAgCAYAAADKbvy8AAAJcklEQVRoge1Ze1BTVxrPdKfd3Wo77nZ31t3pH4zrdsAAySUJSQiB8BCLyEMwaitF1BW0QI0uAhLAFKpYFYLyOD1X8ZaHoOERHyQhMZpxa6mtttht7fqoRezUrqs0C6u88e4fe489hARBovxBfjN3IOd85zvfOb/vlVwWy4WZBVrFeo42hs2iNbLZ9ynB3PuUYC6tYb9Aq9izp9s2FxyAplnP3TcL/0CbBfNoHf+twSYibaiRyBqp5W0bPEAcHIDEZ737iMbevdyjvTuIXfeV3NXTbbMLDOhzkpe6jfyVA2eE0YMmXz5t4PgPNXL2DWqIooEPfZoHIPH1wAfEhf5S4u99u4gf+3YRdx9sJyp/SuVWWdO8E6bb/hmL83rhyzeMglW3zYL4O2ahd69FsIk283bSBl7DiJa4ONzg0zJ02EczQBI3+wFxu19NDPbtJPofvEd09xYQP/Vkc//blepdd3c9R2tVcOdM93lmFM7rhS9/0yoouXJalHP7jJB318TLu2/mVw2buIvpVvZv7a15sM+H11tAHO/NJz7rSef2WhXcB93pxOf33uYqf1zl1faszzBjccYgDvnUIProHwZhw7VTothbJkF+l1nwOn2R9+JE1vfm84TWTdxvu1I4D7tSOCP3Nngfu73Ki/w+lvP+07Z9puDAgQOvQgi9qqurZ42aMLf4zzurFx0/qxdbz7eKU64ZhenfmXzl9EXe85PdpCuF03hvI2fk3+u8H96JZyd0Rnouv7mEvcVpp7ADAIAMQtgOAEh8mvtMJ8rKyl4hSTIcALADAOD5aEKjEf9ap/M/dErn131aJ7nUZhDLvzKIZFPZ7G6S9/YfVnr3dkawqY5Fnpuuh7ILp3qA8UCSpAVCSEMIrU9zn+lEeXn5bADAcgCApLKy8k+PJppbJHtO6iS9J3SSEaNBtPqCUbz1uj78l1Pd8Ga059KbEZ4914I8Y6/4eWRelXhLp6rTESCEMRBCK4RQPdE1KGpJkuQ+Lbucjerq6lkVFRW/GTVYp5fqmnWShw06/y7zSb9lFovsd87a8NtQT+31QPbpqxJ26mWh1xpn6Z0MKIqy2wkzBNIAANkzNsl5ONIS4HFYJ+0+rJMO1+ukNUa930Zn6v9czJ5/WezVcVHAKWgXcHda2GN/tSFJkgshbGdSIHoeRRJFUXMAACpGxopkSJKkkAwAwI2pgTK0BkKotpVHZDK60J4dzP9qR2shhFo8Uhny1ZhNVgihmiRJymadGncgiqLmjCfDzGnx+0FngxAqxlxwtV6qqNVLH9bqpA8pvVSt0QnmPjldY3GZzX7hS19u3SU+UX+Bz3/vU19fPj7PXJaVMTAGQhjDkPWIRIZgGkKoBgAkQghjmIOOkUFNDLokAICKWaNAZDGXooIQajFyKHRBGHkKAICMWW9FaxmZDghhB6NHgelqR3siGwEAKmydFteN2dWOkUXjJKI1djPJB60BoEYnpQ/pA/rK9YGVTmMOQxvBX/cJj0e28fnqczzRBnyOIY22rUPIaBbrZ3ImIoMRaLH1ZJIkuXiXijlGDBpDDoVfOos1Kt0mMnt34BkAjdnZ0+LIRkx3IjPuht8J81dha+MolBgC60pbZUMlxsDOCkPAQbtCU8Q5vijcIvRvNYkCu8+KRJk2xqsQOfjDRAHNpBy7BKK1LJbDCKSRp9uzyx6BeLTj9iACsSi1R6AWRRI2pkYEImKY6MR1IwJlNrpo+LjGrMQYdFptlA0WG2XWolZZqWManhxGntjdLAr82CiW9RnEYevwOSxdWu087SyW4wgcj0Cs1uB1td0BWfbG7NljRZc8FQId6cbPh9lBO2rCWCwWi1VkCNQVG2WDRa1Bd1Sm4IYJMTJJaHnBfz7pF9rWIll494Q0LA2fw0lwhCch0EbOjfHydvxCHkPg2IYBwxQjUDaebsb5LExKHlUPx2C3MehIoTGoZ7sxWJtjCvpoPMVPilpZ+KtNAREdjdLIO83SxbvxOUc1kElZMSzWk9VApnbE2MiPukCm3o0iCxsblbaYcQWma9IEIt22TmZbmxnHtKI7GLcGKk+F+r9rCv4h0xSizzCFfJ1okf3KruAUUC2KFh6RxVw6GhjVUCeLGeXZ2IVZUYeJDk2SpAUdEHkiIgbVSOigC4VYtwf/39miCBzVzTFe3sHUSjdsLc1cZAzzdDA2IplJE8h8brfRrYBYh8uQNqqJQmdBe4+C6mTki9mm4LMZp0IMW0wLb20wLl4yeYrGR61s6erDQXFXDwcty60KkW+ynWeMRumCZsij7KS6dhsZC5JhHKEDeaqdGmglSdJim77QhUHsK4a9+kmSpAXPABBCrW2nypChtR1Djsjs5wZ/blBwu9yQXgih1va7IzNuv5nJNIWcUBjD9iebwkFSa7jT0ygVvEJRGxR3syp4+XYq5I2Fj5W3KdpYdMnQ53ELuw0AAG4Tkbfr4XbscSacojvdvCh0sym0af2piPR1uqjO+OPyKCfY9giFS1IBCEsoLw9fm7B7ceKkfyiwJdAFO1hvDF+7/ljEooRj8gvxjW8ao2ri5ztDb9oq1YKMZRlAteydlTnR7yx+P2rtS5PVgVKaowhxgcVibTRHzFvbEqV+QyMPXFGX2C6vXX8slnpbMBWd8jU7f58cX1CiWL5NslWemaVamvKaRi7/hbNsdsEGa1qi/eKbVyTEVv9VEUMln1hamVq3qDT9zUiomtAbeRwhKVWvRCaValauVqcsX1dcn7Yyn4C8pEm/HHZhkoirS3SPo5JiIsnU9PCKLcdDS5SfBO/JrfHbsTfJV1X22vy0/Y99TyhMpv4SlkI2RyRX7IpOKjPL1xSVyl2R9+wQW5soWHooOTqsdOvm4KI8jbRwxzd+BXs6RfnqS/y88iNEHrmfk3NoDUdJvcXe9qHEPVfj5ZGtiWArG+M8srQnPTKavuNtrv9y4Ub41esbQHFSEnRF3rMGDyY9v7Aoe2fArvxC/4LdVcJ3i9t8Vfs+9smF3UQO7OXkHOzxUlb1eOXUDHlkH+13Vzb0eygbh9yzmv/Dzmi+x/9bfZdoU7Vhus8x4xFcrPQNKNzxnrhg7xe+eaUtPrkHbnBzyU7v3ENXvJTVw17KmmEP5dFBd2XDsHt2w4h7VvMN96ymfy7IbAifbttdwMDPK4kTqsoofg44y80h73BzKy97Kmv/tSCnvm9Bjub7BUrNLXdlwxce2U27PLJb/zjd9rrgggsuPF38Dzl7boef7zUEAAAAAElFTkSuQmCC">
		</div>
	</div>

<script src="../src/curve.js"></script>
<script>

	const canvas = document.getElementById('demoCanvas');
	const ctx = canvas.getContext("2d");
	let w = canvas.width, h;
	let isDown = false, pIndex = -1;
	const pts = [];

	setCanvas();

	function setCanvas() {
		const ih = window.innerHeight;
		const r = canvas.getBoundingClientRect();
		const nh = Math.max(100, ih - r.top * 1.5);

		canvas.height = h = nh;

		ctx.translate(0.5, 0.5);
		ctx.lineJoin = 'round';

		randomize();
		renderCurve();
	}

	window.onresize = setCanvas;

	document.getElementById('numSegments').addEventListener('input', renderCurve);
	document.getElementById('numTension').addEventListener('input', renderCurve);
	document.getElementById('chkPoints').addEventListener('input', renderCurve);
	document.getElementById('chkClosed').addEventListener('input', renderCurve);
	document.getElementById('chkFill').addEventListener('input', renderCurve);

	document.getElementById('numSegments').addEventListener('change', renderCurve);
	document.getElementById('numTension').addEventListener('change', renderCurve);
	document.getElementById('chkPoints').addEventListener('change', renderCurve);
	document.getElementById('chkClosed').addEventListener('change', renderCurve);
	document.getElementById('chkFill').addEventListener('change', renderCurve);

	canvas.onmousedown = function(e) {
		const pos = getPos(e);
		let i = 0;
		let m = 5;

		pIndex = -1;
		isDown = false;

		for(; i < pts.length; i += 2) {
			if (pos.x >= pts[i] - m && pos.x < pts[i] + m &&
				pos.y >= pts[i + 1] - m && pos.y < pts[i + 1] + m) {
				isDown = true;
				pIndex = i;
			}
		}
	};

	window.onmousemove = function(e) {
		if (isDown) {
			const pos = getPos(e);
			pts[pIndex] = pos.x;
			pts[pIndex + 1] = pos.y;
			renderCurve()
		}
	};

	window.onmouseup = function() {
		isDown = false;
	};

	function getPos(e) {
		var r = canvas.getBoundingClientRect();
		return {x: e.clientX - r.left, y: e.clientY - r.top}
	}

	/*
	 *	Randomize points
	*/
	function randomize() {
		const numOfPoints = 7; //min. 2
		pts.length = 0;

		for(let i = 0; i < numOfPoints; i++) {
			pts.push((w * Math.random() * 0.9 + w * 0.05) | 0,
				(h * Math.random() * 0.9 + h * 0.05) | 0);
		}
	}

	/*
	 *	Collect options
	 */
	function CurveOptions() {
		this.closed = !!document.getElementById('chkClosed').checked;
		this.fill = !!document.getElementById('chkFill').checked;
		this.points = !!document.getElementById('chkPoints').checked;
		this.segments = +document.getElementById('numSegments').value;
		this.tension = document.getElementById('numTension').value * 0.1;
	}

	/*
	 *	Draw curve with current settings and points
	 */
	function renderCurve() {
		ctx.clearRect(0, 0, w, h);

		// get current options
		const o = new CurveOptions();

		document.getElementById('numSegmentsValue').innerHTML = o.segments;
		document.getElementById('numTensionValue').innerHTML = o.tension.toFixed(1);

		// draw our cardinal spline
		ctx.beginPath();
		ctx.moveTo(pts[0], pts[1]);
		ctx.curve(pts, o.tension, o.segments, o.closed);
		if (o.closed && !o.fill) ctx.closePath();
		ctx.strokeStyle = '#6677cc';
		ctx.lineWidth = 3;
		if (o.fill) {
			ctx.fillStyle = '#ca7';
			ctx.fill();
		}
		ctx.stroke();

		if (o.points) {
			ctx.beginPath();
			ctx.strokeStyle = '#aa0011';
			for(let i = 0; i < pts.length; i+=2) {
				ctx.rect(pts[i]-2,pts[i+1]-2,4,4);
			}
			ctx.stroke();

		}
	}

</script>
</body>
</html>


================================================
FILE: docs/global.html
================================================
<!DOCTYPE html>

<html lang="en">
<head>
	<meta charset="utf-8">
	<title>cardinal-spline-js Global</title>

	<!--[if lt IE 9]>
	<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
	<![endif]-->
	<link type="text/css" rel="stylesheet" href="styles/sunlight.dark.css">

	<link type="text/css" rel="stylesheet" href="styles/site.cerulean.css">

</head>

<body>
<div class="container-fluid">
	<div class="navbar navbar-fixed-top ">
		<div class="navbar-inner">
			<a class="brand" href="index.html">cardinal-spline-js</a>
			<ul class="nav">
				
				<li class="dropdown">
					<a href="global.html" class="dropdown-toggle" data-toggle="dropdown">Global<b
						class="caret"></b></a>

					<ul class="dropdown-menu ">
						
						<li>
							<a href="global.html#curve">curve</a>
						</li>
						
						<li>
							<a href="global.html#getCurvePoints">getCurvePoints</a>
						</li>
						

					</ul>
				</li>
				
			</ul>
		</div>
	</div>

	<div class="row-fluid">

		
		<div class="span8">
			
				<div id="main">
					


	<h1 class="page-title">Global</h1>
<section>

<header>
    <h2>
    
    </h2>
    
</header>

<article>
    <div class="container-overview">
    

    
        

        
<dl class="details">
	

	

	

	

	

	

	

	

	



	

	

	

	
</dl>


        
    
    </div>

    

    

    

    

    

    

    
        <h3 class="subsection-title">Methods</h3>

        <dl>
            
<dt>
    <h4 class="name" id="curve"><span class="type-signature"></span>curve<span class="signature">(ctx, points, <span class="optional">tension</span>, <span class="optional">numOfSeg</span>, <span class="optional">close</span>)</span><span class="type-signature"> &rarr; {Float32Array}</span></h4>
    
    
</dt>
<dd>
    
    
    <div class="description">
        <p>Draws a cardinal spline through given point array. Points must be arranged<br>as: [x1, y1, x2, y2, ..., xn, yn]. It adds the points to the current path.</p>
<p>There must be a minimum of two points in the input array but the function<br>is only useful where there are three points or more.</p>
<p>The method continues previous path of the context. If you don't want that<br>then you need to use moveTo() with the first point from the input array.</p>
<p>The points for the cardinal spline are returned as a new array.</p>
    </div>
    

    
    
    
    
    
        <h5>Parameters:</h5>
        

<table class="params table table-striped">
    <thead>
	<tr>
		
		<th>Name</th>
		

		<th>Type</th>

		
		<th>Argument</th>
		

		
		<th>Default</th>
		

		<th class="last">Description</th>
	</tr>
	</thead>

	<tbody>
	

        <tr>
            
                <td class="name"><code>ctx</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="CanvasRenderingContext2D.html">CanvasRenderingContext2D</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>context to use</p></td>
        </tr>

	

        <tr>
            
                <td class="name"><code>points</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>point array</p></td>
        </tr>

	

        <tr>
            
                <td class="name"><code>tension</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    0.5
                
                </td>
            

            <td class="description last"><p>tension. Typically between [0.0, 1.0] but can be exceeded</p></td>
        </tr>

	

        <tr>
            
                <td class="name"><code>numOfSeg</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    25
                
                </td>
            

            <td class="description last"><p>number of segments between two points (line resolution)</p></td>
        </tr>

	

        <tr>
            
                <td class="name"><code>close</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    false
                
                </td>
            

            <td class="description last"><p>Close the ends making the line continuous</p></td>
        </tr>

	
	</tbody>
</table>

    
    
    
<dl class="details">
	

	

	

	

	

	

	

	

	



	

	

	

	
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    
            
<div class="param-desc">
    <p>New array with the calculated points that was added to the path</p>
</div>



<dl>
	<dt>
		Type
	</dt>
	<dd>
		
<span class="param-type">Float32Array</span>


	</dd>
</dl>


        
    
    
</dd>

        
            
<dt>
    <h4 class="name" id="getCurvePoints"><span class="type-signature"></span>getCurvePoints<span class="signature">(points, <span class="optional">tension</span>, <span class="optional">numOfSeg</span>, <span class="optional">close</span>)</span><span class="type-signature"> &rarr; {Float32Array}</span></h4>
    
    
</dt>
<dd>
    
    
    <div class="description">
        <p>Calculates an array containing points representing a cardinal spline through given point array.<br>Points must be arranged as: [x1, y1, x2, y2, ..., xn, yn].</p>
<p>There must be a minimum of two points in the input array but the function<br>is only useful where there are three points or more.</p>
<p>The points for the cardinal spline are returned as a new array.</p>
    </div>
    

    
    
    
    
    
        <h5>Parameters:</h5>
        

<table class="params table table-striped">
    <thead>
	<tr>
		
		<th>Name</th>
		

		<th>Type</th>

		
		<th>Argument</th>
		

		
		<th>Default</th>
		

		<th class="last">Description</th>
	</tr>
	</thead>

	<tbody>
	

        <tr>
            
                <td class="name"><code>points</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>point array</p></td>
        </tr>

	

        <tr>
            
                <td class="name"><code>tension</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    0.5
                
                </td>
            

            <td class="description last"><p>tension. Typically between [0.0, 1.0] but can be exceeded</p></td>
        </tr>

	

        <tr>
            
                <td class="name"><code>numOfSeg</code></td>
            

            <td class="type">
            
                
<span class="param-type">Number</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    25
                
                </td>
            

            <td class="description last"><p>number of segments between two points (line resolution)</p></td>
        </tr>

	

        <tr>
            
                <td class="name"><code>close</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    false
                
                </td>
            

            <td class="description last"><p>Close the ends making the line continuous</p></td>
        </tr>

	
	</tbody>
</table>

    
    
    
<dl class="details">
	

	

	

	

	

	

	

	

	



	

	

	

	
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    
            
<div class="param-desc">
    <p>New array with the calculated points that was added to the path</p>
</div>



<dl>
	<dt>
		Type
	</dt>
	<dd>
		
<span class="param-type">Float32Array</span>


	</dd>
</dl>


        
    
    
</dd>

        </dl>
    

    

    
</article>

</section>




				</div>

				<div class="clearfix"></div>
				<footer>
					
					<p><b><a href='https://gitlab.com/epistemex/'>Epistemex at GitLab</a></b></p>
					<br />
					
					
		<span class="copyright">
		Copyright &copy; 2013-2018 Epistemex
		</span>
					<br />
					
		<span class="jsdoc-message">
		Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a>
		on Fri Jun 8th 2018 using the <a
			href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
		</span>
				</footer>
			</div>

			
			<div class="span3">
				<div id="toc"></div>
			</div>
			
			<br clear="both">
		</div>

	</div>
	<!--<script src="scripts/sunlight.js"></script>-->
	<script src="scripts/docstrap.lib.js"></script>
	<script src="scripts/bootstrap-dropdown.js"></script>
	<script src="scripts/toc.js"></script>

	<script>
		$( function () {
			$( "[id*='$']" ).each( function () {
				var $this = $( this );

				$this.attr( "id", $this.attr( "id" ).replace( "$", "__" ) );
			} );

			$( "#toc" ).toc( {
				anchorName  : function ( i, heading, prefix ) {
					return $( heading ).attr( "id" ) || ( prefix + i );
				},
				selectors   : "h1,h2,h3,h4",
				showAndHide : false,
				scrollTo    : "100px"
			} );

			$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
			$( "#main span[id^='toc']" ).addClass( "toc-shim" );
			$( '.dropdown-toggle' ).dropdown();
//			$( ".tutorial-section pre, .readme-section pre" ).addClass( "sunlight-highlight-javascript" ).addClass( "linenums" );

			$( ".tutorial-section pre, .readme-section pre" ).each( function () {
				var $this = $( this );

				var example = $this.find( "code" );
				exampleText = example.html();
				var lang = /{@lang (.*?)}/.exec( exampleText );
				if ( lang && lang[1] ) {
					exampleText = exampleText.replace( lang[0], "" );
					example.html( exampleText );
					lang = lang[1];
				} else {
					lang = "javascript";
				}

				if ( lang ) {

					$this
						.addClass( "sunlight-highlight-" + lang )
						.addClass( "linenums" )
						.html( example.html() );

				}
			} );

			Sunlight.highlightAll( {
				lineNumbers : false,
				showMenu : true,
				enableDoclinks : true
			} );
		} );
	 </script>



	<!--Navigation and Symbol Display-->
	


	<!--Google Analytics-->
	

</body>
</html>

================================================
FILE: docs/index.html
================================================
<!DOCTYPE html>

<html lang="en">
<head>
	<meta charset="utf-8">
	<title>cardinal-spline-js Index</title>

	<!--[if lt IE 9]>
	<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
	<![endif]-->
	<link type="text/css" rel="stylesheet" href="styles/sunlight.dark.css">

	<link type="text/css" rel="stylesheet" href="styles/site.cerulean.css">

</head>

<body>
<div class="container-fluid">
	<div class="navbar navbar-fixed-top ">
		<div class="navbar-inner">
			<a class="brand" href="index.html">cardinal-spline-js</a>
			<ul class="nav">
				
				<li class="dropdown">
					<a href="global.html" class="dropdown-toggle" data-toggle="dropdown">Global<b
						class="caret"></b></a>

					<ul class="dropdown-menu ">
						
						<li>
							<a href="global.html#curve">curve</a>
						</li>
						
						<li>
							<a href="global.html#getCurvePoints">getCurvePoints</a>
						</li>
						

					</ul>
				</li>
				
			</ul>
		</div>
	</div>

	<div class="row-fluid">

		
		<div class="span8">
			
				<div id="main">
					


	
	<span class="page-title">Index</span>
	
	












	
	





    <section class="readme-section">
        <article><h1>Cardinal spline</h1><p>A Cardinal spline (basically a Catmull-Rom with a tension option)<br>implementation for  JavaScript/HTML5 which creates an interpolated<br>smooth curve through each point pair in the given array. There is no<br>need to specify control points.</p>
<p><img src="https://i.imgur.com/5e69T5C.png" alt="Demo snapshot"></p>
<p>Additional options are to provide a closed spline as well as segment<br>resolution (between each point) and of course a tension value.</p>
<p>The archive comes with three separate versions for the sake of convenience:</p>
<p><strong>curve.js</strong><br><br>Canvas 2D context extension. Call curve() on the context (ctx.curve(...))</p>
<p><strong>curve_func.js</strong><br><br>If you prefer not to use an extension then this version provide a pure<br>function that takes the context as an argument instead.</p>
<p><strong>curve_calc.js</strong><br><br>Just the internal function that calculates the points. Does not draw<br>anything.</p>
<p>As well as their minified equivalent. There are no dependencies between<br>these implementations.</p>
<h1>Install</h1><ul>
<li>Git using HTTPS: <code>git clone https://gitlab.com/epistemex/cardinal-spline-js.git</code></li>
<li>Git using SSH: <code>git clone git@gitlab.com:epistemex/cardinal-spline-js.git</code></li>
<li>Bower: <code>bower install cardinal-spline-js</code></li>
<li>NPM: <code>npm install cardinal-spline-js</code> (curve_calc.js / curve_func.js)</li>
</ul>
<h1>Usage</h1><h2>curve.js</h2><p>Make sure the script is loaded before a 2D context is obtained from the canvas element.</p>
<p>Then use <code>curve()</code> as any other method/function on the context -</p>
<p><strong>Examples</strong></p>
<pre class="prettyprint source"><code>ctx.moveTo(points[0], points[1]);  // optionally move to first point
ctx.curve(points);                 // add cardinal spline to path
ctx.stroke();                      // stroke path</code></pre><p>will draw the points in the array which are arranged in the following manner:</p>
<pre class="prettyprint source"><code>var points = [x1, y1,  x2, y2, ... xn, yn];</code></pre><p>An optional tension value can be given <em>(default: 0.5)</em>:</p>
<pre class="prettyprint source"><code>ctx.curve(points, 0.5);            // sets tension [0.0, 1.0] +/-</code></pre><p>a segment resolution value <em>(default: 25)</em>:</p>
<pre class="prettyprint source"><code>ctx.curve(points, 0.5, 25);        // points in each segment</code></pre><p>The curve can be drawn closed. All arguments must be given in this<br>case <em>(default: false (open))</em>:</p>
<pre class="prettyprint source"><code>ctx.curve(points, 0.5, 25, true);  // make a closed loop</code></pre><p>The function returns a new (typed) array with the spline points which can be used for<br>tracking, calculate length and so forth. The values are in floating points:</p>
<pre class="prettyprint source"><code>var splinePoints = ctx.curve(points);</code></pre><h2>curve_func.js</h2><p>If you use the function file instead the arguments will be the same as<br>above except that the context is passed in as the first argument and<br>then the function is instead called as:</p>
<pre class="prettyprint source"><code>ctx.moveTo(points[0], points[1]);  // optionally move to first point
curve(ctx, points);                // add cardinal spline to path
ctx.stroke();                      // stroke path</code></pre><p>Also this variant returns a spline point array.</p>
<h2>curve_calc.js</h2><p>If you just want to calculate the spline points without drawing anything,<br>you can use the <code>curve_calc.js</code> file and call (please observe that the<br>name has been changed to better reflect its purpose):</p>
<pre class="prettyprint source"><code>var splinePoints = getCurvePoints(points, ...);</code></pre><p>Context is not required with this function.</p>
<h2>In Node.js</h2><p>Require the package after installing it using npm, then:</p>
<pre class="prettyprint source"><code>var getCurvePoints = require(&quot;cardinal-spline-js&quot;).getCurvePoints;
var outPoints = getCurvePoints(inPoints);</code></pre><h1>Requirements</h1><p>A modern HTML5 compliant browser with support for Typed Arrays and<br>JavaScript enabled. Except from <code>curve_calc.js</code> the canvas element and<br>a 2D context is required as well.</p>
<h1>License</h1><p>Released under <a href="http://choosealicense.com/licenses/mit/">MIT license</a>. You can use this class in both commercial and non-commercial projects provided that full header (minified and developer versions) is included.</p>
<p><em>&copy; 2013-2018 Epistemex</em></p>
<p><img src="https://i.imgur.com/wZSsyt8.png" alt="Epistemex"></p></article>
    </section>







				</div>

				<div class="clearfix"></div>
				<footer>
					
					<p><b><a href='https://gitlab.com/epistemex/'>Epistemex at GitLab</a></b></p>
					<br />
					
					
		<span class="copyright">
		Copyright &copy; 2013-2018 Epistemex
		</span>
					<br />
					
		<span class="jsdoc-message">
		Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a>
		on Fri Jun 8th 2018 using the <a
			href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
		</span>
				</footer>
			</div>

			
			<div class="span3">
				<div id="toc"></div>
			</div>
			
			<br clear="both">
		</div>

	</div>
	<!--<script src="scripts/sunlight.js"></script>-->
	<script src="scripts/docstrap.lib.js"></script>
	<script src="scripts/bootstrap-dropdown.js"></script>
	<script src="scripts/toc.js"></script>

	<script>
		$( function () {
			$( "[id*='$']" ).each( function () {
				var $this = $( this );

				$this.attr( "id", $this.attr( "id" ).replace( "$", "__" ) );
			} );

			$( "#toc" ).toc( {
				anchorName  : function ( i, heading, prefix ) {
					return $( heading ).attr( "id" ) || ( prefix + i );
				},
				selectors   : "h1,h2,h3,h4",
				showAndHide : false,
				scrollTo    : "100px"
			} );

			$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
			$( "#main span[id^='toc']" ).addClass( "toc-shim" );
			$( '.dropdown-toggle' ).dropdown();
//			$( ".tutorial-section pre, .readme-section pre" ).addClass( "sunlight-highlight-javascript" ).addClass( "linenums" );

			$( ".tutorial-section pre, .readme-section pre" ).each( function () {
				var $this = $( this );

				var example = $this.find( "code" );
				exampleText = example.html();
				var lang = /{@lang (.*?)}/.exec( exampleText );
				if ( lang && lang[1] ) {
					exampleText = exampleText.replace( lang[0], "" );
					example.html( exampleText );
					lang = lang[1];
				} else {
					lang = "javascript";
				}

				if ( lang ) {

					$this
						.addClass( "sunlight-highlight-" + lang )
						.addClass( "linenums" )
						.html( example.html() );

				}
			} );

			Sunlight.highlightAll( {
				lineNumbers : false,
				showMenu : true,
				enableDoclinks : true
			} );
		} );
	 </script>



	<!--Navigation and Symbol Display-->
	


	<!--Google Analytics-->
	

</body>
</html>

================================================
FILE: docs/scripts/docstrap.lib.js
================================================
!function(a,b){function c(a){var b=a.length,c=fb.type(a);return fb.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||"function"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){var b=ob[a]={};return fb.each(a.match(hb)||[],function(a,c){b[c]=!0}),b}function e(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=fb.expando+Math.random()}function f(a,c,d){var e;if(d===b&&1===a.nodeType)if(e="data-"+c.replace(sb,"-$1").toLowerCase(),d=a.getAttribute(e),"string"==typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:+d+""===d?+d:rb.test(d)?JSON.parse(d):d}catch(f){}pb.set(a,c,d)}else d=b;return d}function g(){return!0}function h(){return!1}function i(){try{return T.activeElement}catch(a){}}function j(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function k(a,b,c){if(fb.isFunction(b))return fb.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return fb.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(Cb.test(b))return fb.filter(b,a,c);b=fb.filter(b,a)}return fb.grep(a,function(a){return bb.call(b,a)>=0!==c})}function l(a,b){return fb.nodeName(a,"table")&&fb.nodeName(1===b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function m(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function n(a){var b=Nb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function o(a,b){for(var c=a.length,d=0;c>d;d++)qb.set(a[d],"globalEval",!b||qb.get(b[d],"globalEval"))}function p(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(qb.hasData(a)&&(f=qb.access(a),g=qb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)fb.event.add(b,e,j[e][c])}pb.hasData(a)&&(h=pb.access(a),i=fb.extend({},h),pb.set(b,i))}}function q(a,c){var d=a.getElementsByTagName?a.getElementsByTagName(c||"*"):a.querySelectorAll?a.querySelectorAll(c||"*"):[];return c===b||c&&fb.nodeName(a,c)?fb.merge([a],d):d}function r(a,b){var c=b.nodeName.toLowerCase();"input"===c&&Kb.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function s(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=_b.length;e--;)if(b=_b[e]+c,b in a)return b;return d}function t(a,b){return a=b||a,"none"===fb.css(a,"display")||!fb.contains(a.ownerDocument,a)}function u(b){return a.getComputedStyle(b,null)}function v(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=qb.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&t(d)&&(f[g]=qb.access(d,"olddisplay",z(d.nodeName)))):f[g]||(e=t(d),(c&&"none"!==c||!e)&&qb.set(d,"olddisplay",e?c:fb.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function w(a,b,c){var d=Ub.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function x(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=fb.css(a,c+$b[f],!0,e)),d?("content"===c&&(g-=fb.css(a,"padding"+$b[f],!0,e)),"margin"!==c&&(g-=fb.css(a,"border"+$b[f]+"Width",!0,e))):(g+=fb.css(a,"padding"+$b[f],!0,e),"padding"!==c&&(g+=fb.css(a,"border"+$b[f]+"Width",!0,e)));return g}function y(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=u(a),g=fb.support.boxSizing&&"border-box"===fb.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Qb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Vb.test(e))return e;d=g&&(fb.support.boxSizingReliable||e===a.style[b]),e=parseFloat(e)||0}return e+x(a,b,c||(g?"border":"content"),d,f)+"px"}function z(a){var b=T,c=Xb[a];return c||(c=A(a,b),"none"!==c&&c||(Rb=(Rb||fb("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(b.documentElement),b=(Rb[0].contentWindow||Rb[0].contentDocument).document,b.write("<!doctype html><html><body>"),b.close(),c=A(a,b),Rb.detach()),Xb[a]=c),c}function A(a,b){var c=fb(b.createElement(a)).appendTo(b.body),d=fb.css(c[0],"display");return c.remove(),d}function B(a,b,c,d){var e;if(fb.isArray(b))fb.each(b,function(b,e){c||bc.test(a)?d(a,e):B(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==fb.type(b))d(a,b);else for(e in b)B(a+"["+e+"]",b[e],c,d)}function C(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(hb)||[];if(fb.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function D(a,c,d,e){function f(i){var j;return g[i]=!0,fb.each(a[i]||[],function(a,i){var k=i(c,d,e);return"string"!=typeof k||h||g[k]?h?!(j=k):b:(c.dataTypes.unshift(k),f(k),!1)}),j}var g={},h=a===sc;return f(c.dataTypes[0])||!g["*"]&&f("*")}function E(a,c){var d,e,f=fb.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);return e&&fb.extend(!0,a,e),a}function F(a,c,d){for(var e,f,g,h,i=a.contents,j=a.dataTypes;"*"===j[0];)j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("Content-Type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}return g?(g!==j[0]&&j.unshift(g),d[g]):b}function G(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function H(){return setTimeout(function(){Bc=b}),Bc=fb.now()}function I(a,b,c){for(var d,e=(Hc[b]||[]).concat(Hc["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function J(a,b,c){var d,e,f=0,g=Gc.length,h=fb.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Bc||H(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:fb.extend({},b),opts:fb.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Bc||H(),duration:c.duration,tweens:[],createTween:function(b,c){var d=fb.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(K(k,j.opts.specialEasing);g>f;f++)if(d=Gc[f].call(j,a,k,j.opts))return d;return fb.map(k,I,j),fb.isFunction(j.opts.start)&&j.opts.start.call(a,j),fb.fx.timer(fb.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function K(a,b){var c,d,e,f,g;for(c in a)if(d=fb.camelCase(c),e=b[d],f=a[c],fb.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=fb.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function L(a,c,d){var e,f,g,h,i,j,k=this,l={},m=a.style,n=a.nodeType&&t(a),o=qb.get(a,"fxshow");d.queue||(i=fb._queueHooks(a,"fx"),null==i.unqueued&&(i.unqueued=0,j=i.empty.fire,i.empty.fire=function(){i.unqueued||j()}),i.unqueued++,k.always(function(){k.always(function(){i.unqueued--,fb.queue(a,"fx").length||i.empty.fire()})})),1===a.nodeType&&("height"in c||"width"in c)&&(d.overflow=[m.overflow,m.overflowX,m.overflowY],"inline"===fb.css(a,"display")&&"none"===fb.css(a,"float")&&(m.display="inline-block")),d.overflow&&(m.overflow="hidden",k.always(function(){m.overflow=d.overflow[0],m.overflowX=d.overflow[1],m.overflowY=d.overflow[2]}));for(e in c)if(f=c[e],Dc.exec(f)){if(delete c[e],g=g||"toggle"===f,f===(n?"hide":"show")){if("show"!==f||!o||o[e]===b)continue;n=!0}l[e]=o&&o[e]||fb.style(a,e)}if(!fb.isEmptyObject(l)){o?"hidden"in o&&(n=o.hidden):o=qb.access(a,"fxshow",{}),g&&(o.hidden=!n),n?fb(a).show():k.done(function(){fb(a).hide()}),k.done(function(){var b;qb.remove(a,"fxshow");for(b in l)fb.style(a,b,l[b])});for(e in l)h=I(n?o[e]:0,e,k),e in o||(o[e]=h.start,n&&(h.end=h.start,h.start="width"===e||"height"===e?1:0))}}function M(a,b,c,d,e){return new M.prototype.init(a,b,c,d,e)}function N(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=$b[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function O(a){return fb.isWindow(a)?a:9===a.nodeType&&a.defaultView}var P,Q,R=typeof b,S=a.location,T=a.document,U=T.documentElement,V=a.jQuery,W=a.$,X={},Y=[],Z="2.0.3",$=Y.concat,_=Y.push,ab=Y.slice,bb=Y.indexOf,cb=X.toString,db=X.hasOwnProperty,eb=Z.trim,fb=function(a,b){return new fb.fn.init(a,b,P)},gb=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,hb=/\S+/g,ib=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,jb=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,kb=/^-ms-/,lb=/-([\da-z])/gi,mb=function(a,b){return b.toUpperCase()},nb=function(){T.removeEventListener("DOMContentLoaded",nb,!1),a.removeEventListener("load",nb,!1),fb.ready()};fb.fn=fb.prototype={jquery:Z,constructor:fb,init:function(a,c,d){var e,f;if(!a)return this;if("string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:ib.exec(a),!e||!e[1]&&c)return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a);if(e[1]){if(c=c instanceof fb?c[0]:c,fb.merge(this,fb.parseHTML(e[1],c&&c.nodeType?c.ownerDocument||c:T,!0)),jb.test(e[1])&&fb.isPlainObject(c))for(e in c)fb.isFunction(this[e])?this[e](c[e]):this.attr(e,c[e]);return this}return f=T.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=T,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):fb.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),fb.makeArray(a,this))},selector:"",length:0,toArray:function(){return ab.call(this)},get:function(a){return null==a?this.toArray():0>a?this[this.length+a]:this[a]},pushStack:function(a){var b=fb.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return fb.each(this,a,b)},ready:function(a){return fb.ready.promise().done(a),this},slice:function(){return this.pushStack(ab.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},map:function(a){return this.pushStack(fb.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:_,sort:[].sort,splice:[].splice},fb.fn.init.prototype=fb.fn,fb.extend=fb.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),"object"==typeof h||fb.isFunction(h)||(h={}),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(c in a)d=h[c],e=a[c],h!==e&&(k&&e&&(fb.isPlainObject(e)||(f=fb.isArray(e)))?(f?(f=!1,g=d&&fb.isArray(d)?d:[]):g=d&&fb.isPlainObject(d)?d:{},h[c]=fb.extend(k,g,e)):e!==b&&(h[c]=e));return h},fb.extend({expando:"jQuery"+(Z+Math.random()).replace(/\D/g,""),noConflict:function(b){return a.$===fb&&(a.$=W),b&&a.jQuery===fb&&(a.jQuery=V),fb},isReady:!1,readyWait:1,holdReady:function(a){a?fb.readyWait++:fb.ready(!0)},ready:function(a){(a===!0?--fb.readyWait:fb.isReady)||(fb.isReady=!0,a!==!0&&--fb.readyWait>0||(Q.resolveWith(T,[fb]),fb.fn.trigger&&fb(T).trigger("ready").off("ready")))},isFunction:function(a){return"function"===fb.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?X[cb.call(a)]||"object":typeof a},isPlainObject:function(a){if("object"!==fb.type(a)||a.nodeType||fb.isWindow(a))return!1;try{if(a.constructor&&!db.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw Error(a)},parseHTML:function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||T;var d=jb.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=fb.buildFragment([a],b,e),e&&fb(e).remove(),fb.merge([],d.childNodes))},parseJSON:JSON.parse,parseXML:function(a){var c,d;if(!a||"string"!=typeof a)return null;try{d=new DOMParser,c=d.parseFromString(a,"text/xml")}catch(e){c=b}return(!c||c.getElementsByTagName("parsererror").length)&&fb.error("Invalid XML: "+a),c},noop:function(){},globalEval:function(a){var b,c=eval;a=fb.trim(a),a&&(1===a.indexOf("use strict")?(b=T.createElement("script"),b.text=a,T.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(kb,"ms-").replace(lb,mb)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,d){var e,f=0,g=a.length,h=c(a);if(d){if(h)for(;g>f&&(e=b.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=b.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=b.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),e===!1)break;return a},trim:function(a){return null==a?"":eb.call(a)},makeArray:function(a,b){var d=b||[];return null!=a&&(c(Object(a))?fb.merge(d,"string"==typeof a?[a]:a):_.call(d,a)),d},inArray:function(a,b,c){return null==b?-1:bb.call(b,a,c)},merge:function(a,c){var d=c.length,e=a.length,f=0;if("number"==typeof d)for(;d>f;f++)a[e++]=c[f];else for(;c[f]!==b;)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;for(c=!!c;g>f;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,b,d){var e,f=0,g=a.length,h=c(a),i=[];if(h)for(;g>f;f++)e=b(a[f],f,d),null!=e&&(i[i.length]=e);else for(f in a)e=b(a[f],f,d),null!=e&&(i[i.length]=e);return $.apply([],i)},guid:1,proxy:function(a,c){var d,e,f;return"string"==typeof c&&(d=a[c],c=a,a=d),fb.isFunction(a)?(e=ab.call(arguments,2),f=function(){return a.apply(c||this,e.concat(ab.call(arguments)))},f.guid=a.guid=a.guid||fb.guid++,f):b},access:function(a,c,d,e,f,g,h){var i=0,j=a.length,k=null==d;if("object"===fb.type(d)){f=!0;for(i in d)fb.access(a,c,i,d[i],!0,g,h)}else if(e!==b&&(f=!0,fb.isFunction(e)||(h=!0),k&&(h?(c.call(a,e),c=null):(k=c,c=function(a,b,c){return k.call(fb(a),c)})),c))for(;j>i;i++)c(a[i],d,h?e:e.call(a[i],i,c(a[i],d)));return f?a:k?c.call(a):j?c(a[0],d):g},now:Date.now,swap:function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e}}),fb.ready.promise=function(b){return Q||(Q=fb.Deferred(),"complete"===T.readyState?setTimeout(fb.ready):(T.addEventListener("DOMContentLoaded",nb,!1),a.addEventListener("load",nb,!1))),Q.promise(b)},fb.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){X["[object "+b+"]"]=b.toLowerCase()}),P=fb(T),function(a,b){function c(a,b,c,d){var e,f,g,h,i,j,k,l,o,p;if((b?b.ownerDocument||b:O)!==G&&F(b),b=b||G,c=c||[],!a||"string"!=typeof a)return c;if(1!==(h=b.nodeType)&&9!==h)return[];if(I&&!d){if(e=tb.exec(a))if(g=e[1]){if(9===h){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&M(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return ab.apply(c,b.getElementsByTagName(a)),c;if((g=e[3])&&x.getElementsByClassName&&b.getElementsByClassName)return ab.apply(c,b.getElementsByClassName(g)),c}if(x.qsa&&(!J||!J.test(a))){if(l=k=N,o=b,p=9===h&&a,1===h&&"object"!==b.nodeName.toLowerCase()){for(j=m(a),(k=b.getAttribute("id"))?l=k.replace(wb,"\\$&"):b.setAttribute("id",l),l="[id='"+l+"'] ",i=j.length;i--;)j[i]=l+n(j[i]);o=nb.test(a)&&b.parentNode||b,p=j.join(",")}if(p)try{return ab.apply(c,o.querySelectorAll(p)),c}catch(q){}finally{k||b.removeAttribute("id")}}}return v(a.replace(kb,"$1"),b,c,d)}function d(){function a(c,d){return b.push(c+=" ")>z.cacheLength&&delete a[b.shift()],a[c]=d}var b=[];return a}function e(a){return a[N]=!0,a}function f(a){var b=G.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function g(a,b){for(var c=a.split("|"),d=a.length;d--;)z.attrHandle[c[d]]=b}function h(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||X)-(~a.sourceIndex||X);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function i(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function j(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function k(a){return e(function(b){return b=+b,e(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function l(){}function m(a,b){var d,e,f,g,h,i,j,k=S[a+" "];if(k)return b?0:k.slice(0);for(h=a,i=[],j=z.preFilter;h;){(!d||(e=lb.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=mb.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(kb," ")}),h=h.slice(d.length));for(g in z.filter)!(e=rb[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return b?h.length:h?c.error(a):S(a,i).slice(0)}function n(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function o(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=Q++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=P+" "+f;if(g){for(;b=b[d];)if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e)if(j=b[N]||(b[N]={}),(i=j[d])&&i[0]===k){if((h=i[1])===!0||h===y)return h===!0}else if(i=j[d]=[k],i[1]=a(b,c,g)||y,i[1]===!0)return!0}}function p(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function q(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function r(a,b,c,d,f,g){return d&&!d[N]&&(d=r(d)),f&&!f[N]&&(f=r(f,g)),e(function(e,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=e||u(b||"*",h.nodeType?[h]:h,[]),r=!a||!e&&b?p:q(p,m,a,h,i),s=c?f||(e?a:o||d)?[]:g:r;if(c&&c(r,s,h,i),d)for(j=q(s,n),d(j,[],h,i),k=j.length;k--;)(l=j[k])&&(s[n[k]]=!(r[n[k]]=l));if(e){if(f||a){if(f){for(j=[],k=s.length;k--;)(l=s[k])&&j.push(r[k]=l);f(null,s=[],j,i)}for(k=s.length;k--;)(l=s[k])&&(j=f?cb.call(e,l):m[k])>-1&&(e[j]=!(g[j]=l))}}else s=q(s===g?s.splice(o,s.length):s),f?f(null,g,s,i):ab.apply(g,s)})}function s(a){for(var b,c,d,e=a.length,f=z.relative[a[0].type],g=f||z.relative[" "],h=f?1:0,i=o(function(a){return a===b},g,!0),j=o(function(a){return cb.call(b,a)>-1},g,!0),k=[function(a,c,d){return!f&&(d||c!==D)||((b=c).nodeType?i(a,c,d):j(a,c,d))}];e>h;h++)if(c=z.relative[a[h].type])k=[o(p(k),c)];else{if(c=z.filter[a[h].type].apply(null,a[h].matches),c[N]){for(d=++h;e>d&&!z.relative[a[d].type];d++);return r(h>1&&p(k),h>1&&n(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(kb,"$1"),c,d>h&&s(a.slice(h,d)),e>d&&s(a=a.slice(d)),e>d&&n(a))}k.push(c)}return p(k)}function t(a,b){var d=0,f=b.length>0,g=a.length>0,h=function(e,h,i,j,k){var l,m,n,o=[],p=0,r="0",s=e&&[],t=null!=k,u=D,v=e||g&&z.find.TAG("*",k&&h.parentNode||h),w=P+=null==u?1:Math.random()||.1;for(t&&(D=h!==G&&h,y=d);null!=(l=v[r]);r++){if(g&&l){for(m=0;n=a[m++];)if(n(l,h,i)){j.push(l);break}t&&(P=w,y=++d)}f&&((l=!n&&l)&&p--,e&&s.push(l))}if(p+=r,f&&r!==p){for(m=0;n=b[m++];)n(s,o,h,i);if(e){if(p>0)for(;r--;)s[r]||o[r]||(o[r]=$.call(j));o=q(o)}ab.apply(j,o),t&&!e&&o.length>0&&p+b.length>1&&c.uniqueSort(j)}return t&&(P=w,D=u),s};return f?e(h):h}function u(a,b,d){for(var e=0,f=b.length;f>e;e++)c(a,b[e],d);return d}function v(a,b,c,d){var e,f,g,h,i,j=m(a);if(!d&&1===j.length){if(f=j[0]=j[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&x.getById&&9===b.nodeType&&I&&z.relative[f[1].type]){if(b=(z.find.ID(g.matches[0].replace(xb,yb),b)||[])[0],!b)return c;a=a.slice(f.shift().value.length)}for(e=rb.needsContext.test(a)?0:f.length;e--&&(g=f[e],!z.relative[h=g.type]);)if((i=z.find[h])&&(d=i(g.matches[0].replace(xb,yb),nb.test(f[0].type)&&b.parentNode||b))){if(f.splice(e,1),a=d.length&&n(f),!a)return ab.apply(c,d),c;break}}return C(a,j)(d,b,!I,c,nb.test(a)),c}var w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N="sizzle"+-new Date,O=a.document,P=0,Q=0,R=d(),S=d(),T=d(),U=!1,V=function(a,b){return a===b?(U=!0,0):0},W=typeof b,X=1<<31,Y={}.hasOwnProperty,Z=[],$=Z.pop,_=Z.push,ab=Z.push,bb=Z.slice,cb=Z.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},db="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",eb="[\\x20\\t\\r\\n\\f]",gb="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",hb=gb.replace("w","w#"),ib="\\["+eb+"*("+gb+")"+eb+"*(?:([*^$|!~]?=)"+eb+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+hb+")|)|)"+eb+"*\\]",jb=":("+gb+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+ib.replace(3,8)+")*)|.*)\\)|)",kb=RegExp("^"+eb+"+|((?:^|[^\\\\])(?:\\\\.)*)"+eb+"+$","g"),lb=RegExp("^"+eb+"*,"+eb+"*"),mb=RegExp("^"+eb+"*([>+~]|"+eb+")"+eb+"*"),nb=RegExp(eb+"*[+~]"),ob=RegExp("="+eb+"*([^\\]'\"]*)"+eb+"*\\]","g"),pb=RegExp(jb),qb=RegExp("^"+hb+"$"),rb={ID:RegExp("^#("+gb+")"),CLASS:RegExp("^\\.("+gb+")"),TAG:RegExp("^("+gb.replace("w","w*")+")"),ATTR:RegExp("^"+ib),PSEUDO:RegExp("^"+jb),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+eb+"*(even|odd|(([+-]|)(\\d*)n|)"+eb+"*(?:([+-]|)"+eb+"*(\\d+)|))"+eb+"*\\)|)","i"),bool:RegExp("^(?:"+db+")$","i"),needsContext:RegExp("^"+eb+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+eb+"*((?:-\\d)?\\d*)"+eb+"*\\)|)(?=[^-]|$)","i")},sb=/^[^{]+\{\s*\[native \w/,tb=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ub=/^(?:input|select|textarea|button)$/i,vb=/^h\d$/i,wb=/'|\\/g,xb=RegExp("\\\\([\\da-f]{1,6}"+eb+"?|("+eb+")|.)","ig"),yb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(55296|d>>10,56320|1023&d)};try{ab.apply(Z=bb.call(O.childNodes),O.childNodes),Z[O.childNodes.length].nodeType}catch(zb){ab={apply:Z.length?function(a,b){_.apply(a,bb.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}B=c.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},x=c.support={},F=c.setDocument=function(a){var c=a?a.ownerDocument||a:O,d=c.defaultView;return c!==G&&9===c.nodeType&&c.documentElement?(G=c,H=c.documentElement,I=!B(c),d&&d.attachEvent&&d!==d.top&&d.attachEvent("onbeforeunload",function(){F()}),x.attributes=f(function(a){return a.className="i",!a.getAttribute("className")}),x.getElementsByTagName=f(function(a){return a.appendChild(c.createComment("")),!a.getElementsByTagName("*").length}),x.getElementsByClassName=f(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),x.getById=f(function(a){return H.appendChild(a).id=N,!c.getElementsByName||!c.getElementsByName(N).length}),x.getById?(z.find.ID=function(a,b){if(typeof b.getElementById!==W&&I){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},z.filter.ID=function(a){var b=a.replace(xb,yb);return function(a){return a.getAttribute("id")===b}}):(delete z.find.ID,z.filter.ID=function(a){var b=a.replace(xb,yb);return function(a){var c=typeof a.getAttributeNode!==W&&a.getAttributeNode("id");return c&&c.value===b}}),z.find.TAG=x.getElementsByTagName?function(a,c){return typeof c.getElementsByTagName!==W?c.getElementsByTagName(a):b}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},z.find.CLASS=x.getElementsByClassName&&function(a,c){return typeof c.getElementsByClassName!==W&&I?c.getElementsByClassName(a):b},K=[],J=[],(x.qsa=sb.test(c.querySelectorAll))&&(f(function(a){a.innerHTML="<select><option selected=''></option></select>",a.querySelectorAll("[selected]").length||J.push("\\["+eb+"*(?:value|"+db+")"),a.querySelectorAll(":checked").length||J.push(":checked")}),f(function(a){var b=c.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("t",""),a.querySelectorAll("[t^='']").length&&J.push("[*^$]="+eb+"*(?:''|\"\")"),a.querySelectorAll(":enabled").length||J.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),J.push(",.*:")})),(x.matchesSelector=sb.test(L=H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&f(function(a){x.disconnectedMatch=L.call(a,"div"),L.call(a,"[s!='']:x"),K.push("!=",jb)}),J=J.length&&RegExp(J.join("|")),K=K.length&&RegExp(K.join("|")),M=sb.test(H.contains)||H.compareDocumentPosition?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},V=H.compareDocumentPosition?function(a,b){if(a===b)return U=!0,0;var d=b.compareDocumentPosition&&a.compareDocumentPosition&&a.compareDocumentPosition(b);return d?1&d||!x.sortDetached&&b.compareDocumentPosition(a)===d?a===c||M(O,a)?-1:b===c||M(O,b)?1:E?cb.call(E,a)-cb.call(E,b):0:4&d?-1:1:a.compareDocumentPosition?-1:1}:function(a,b){var d,e=0,f=a.parentNode,g=b.parentNode,i=[a],j=[b];if(a===b)return U=!0,0;if(!f||!g)return a===c?-1:b===c?1:f?-1:g?1:E?cb.call(E,a)-cb.call(E,b):0;if(f===g)return h(a,b);for(d=a;d=d.parentNode;)i.unshift(d);for(d=b;d=d.parentNode;)j.unshift(d);for(;i[e]===j[e];)e++;return e?h(i[e],j[e]):i[e]===O?-1:j[e]===O?1:0},c):G},c.matches=function(a,b){return c(a,null,null,b)},c.matchesSelector=function(a,b){if((a.ownerDocument||a)!==G&&F(a),b=b.replace(ob,"='$1']"),!(!x.matchesSelector||!I||K&&K.test(b)||J&&J.test(b)))try{var d=L.call(a,b);if(d||x.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return c(b,G,null,[a]).length>0},c.contains=function(a,b){return(a.ownerDocument||a)!==G&&F(a),M(a,b)},c.attr=function(a,c){(a.ownerDocument||a)!==G&&F(a);var d=z.attrHandle[c.toLowerCase()],e=d&&Y.call(z.attrHandle,c.toLowerCase())?d(a,c,!I):b;return e===b?x.attributes||!I?a.getAttribute(c):(e=a.getAttributeNode(c))&&e.specified?e.value:null:e},c.error=function(a){throw Error("Syntax error, unrecognized expression: "+a)},c.uniqueSort=function(a){var b,c=[],d=0,e=0;if(U=!x.detectDuplicates,E=!x.sortStable&&a.slice(0),a.sort(V),U){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return a},A=c.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=A(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d];d++)c+=A(b);return c},z=c.selectors={cacheLength:50,createPseudo:e,match:rb,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(xb,yb),a[3]=(a[4]||a[5]||"").replace(xb,yb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||c.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&c.error(a[0]),a},PSEUDO:function(a){var c,d=!a[5]&&a[2];return rb.CHILD.test(a[0])?null:(a[3]&&a[4]!==b?a[2]=a[4]:d&&pb.test(d)&&(c=m(d,!0))&&(c=d.indexOf(")",d.length-c)-d.length)&&(a[0]=a[0].slice(0,c),a[2]=d.slice(0,c)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(xb,yb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=R[a+" "];return b||(b=RegExp("(^|"+eb+")"+a+"("+eb+"|$)"))&&R(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==W&&a.getAttribute("class")||"")})},ATTR:function(a,b,d){return function(e){var f=c.attr(e,a);return null==f?"!="===b:b?(f+="","="===b?f===d:"!="===b?f!==d:"^="===b?d&&0===f.indexOf(d):"*="===b?d&&f.indexOf(d)>-1:"$="===b?d&&f.slice(-d.length)===d:"~="===b?(" "+f+" ").indexOf(d)>-1:"|="===b?f===d||f.slice(0,d.length+1)===d+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[N]||(q[N]={}),j=k[a]||[],n=j[0]===P&&j[1],m=j[0]===P&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[P,n,m];break}}else if(s&&(j=(b[N]||(b[N]={}))[a])&&j[0]===P)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[N]||(l[N]={}))[a]=[P,m]),l!==b)););return m-=e,m===d||0===m%d&&m/d>=0}}},PSEUDO:function(a,b){var d,f=z.pseudos[a]||z.setFilters[a.toLowerCase()]||c.error("unsupported pseudo: "+a);return f[N]?f(b):f.length>1?(d=[a,a,"",b],z.setFilters.hasOwnProperty(a.toLowerCase())?e(function(a,c){for(var d,e=f(a,b),g=e.length;g--;)d=cb.call(a,e[g]),a[d]=!(c[d]=e[g])}):function(a){return f(a,0,d)}):f}},pseudos:{not:e(function(a){var b=[],c=[],d=C(a.replace(kb,"$1"));return d[N]?e(function(a,b,c,e){for(var f,g=d(a,null,e,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:e(function(a){return function(b){return c(a,b).length>0}}),contains:e(function(a){return function(b){return(b.textContent||b.innerText||A(b)).indexOf(a)>-1}}),lang:e(function(a){return qb.test(a||"")||c.error("unsupported lang: "+a),a=a.replace(xb,yb).toLowerCase(),function(b){var c;do if(c=I?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===H},focus:function(a){return a===G.activeElement&&(!G.hasFocus||G.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeName>"@"||3===a.nodeType||4===a.nodeType)return!1;return!0},parent:function(a){return!z.pseudos.empty(a)},header:function(a){return vb.test(a.nodeName)},input:function(a){return ub.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||b.toLowerCase()===a.type)},first:k(function(){return[0]}),last:k(function(a,b){return[b-1]}),eq:k(function(a,b,c){return[0>c?c+b:c]}),even:k(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:k(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:k(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:k(function(a,b,c){for(var d=0>c?c+b:c;b>++d;)a.push(d);return a})}},z.pseudos.nth=z.pseudos.eq;for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})z.pseudos[w]=i(w);for(w in{submit:!0,reset:!0})z.pseudos[w]=j(w);
l.prototype=z.filters=z.pseudos,z.setFilters=new l,C=c.compile=function(a,b){var c,d=[],e=[],f=T[a+" "];if(!f){for(b||(b=m(a)),c=b.length;c--;)f=s(b[c]),f[N]?d.push(f):e.push(f);f=T(a,t(e,d))}return f},x.sortStable=N.split("").sort(V).join("")===N,x.detectDuplicates=U,F(),x.sortDetached=f(function(a){return 1&a.compareDocumentPosition(G.createElement("div"))}),f(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||g("type|href|height|width",function(a,c,d){return d?b:a.getAttribute(c,"type"===c.toLowerCase()?1:2)}),x.attributes&&f(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||g("value",function(a,c,d){return d||"input"!==a.nodeName.toLowerCase()?b:a.defaultValue}),f(function(a){return null==a.getAttribute("disabled")})||g(db,function(a,c,d){var e;return d?b:(e=a.getAttributeNode(c))&&e.specified?e.value:a[c]===!0?c.toLowerCase():null}),fb.find=c,fb.expr=c.selectors,fb.expr[":"]=fb.expr.pseudos,fb.unique=c.uniqueSort,fb.text=c.getText,fb.isXMLDoc=c.isXML,fb.contains=c.contains}(a);var ob={};fb.Callbacks=function(a){a="string"==typeof a?ob[a]||d(a):fb.extend({},a);var c,e,f,g,h,i,j=[],k=!a.once&&[],l=function(b){for(c=a.memory&&b,e=!0,i=g||0,g=0,h=j.length,f=!0;j&&h>i;i++)if(j[i].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}f=!1,j&&(k?k.length&&l(k.shift()):c?j=[]:m.disable())},m={add:function(){if(j){var b=j.length;!function d(b){fb.each(b,function(b,c){var e=fb.type(c);"function"===e?a.unique&&m.has(c)||j.push(c):c&&c.length&&"string"!==e&&d(c)})}(arguments),f?h=j.length:c&&(g=b,l(c))}return this},remove:function(){return j&&fb.each(arguments,function(a,b){for(var c;(c=fb.inArray(b,j,c))>-1;)j.splice(c,1),f&&(h>=c&&h--,i>=c&&i--)}),this},has:function(a){return a?fb.inArray(a,j)>-1:!(!j||!j.length)},empty:function(){return j=[],h=0,this},disable:function(){return j=k=c=b,this},disabled:function(){return!j},lock:function(){return k=b,c||m.disable(),this},locked:function(){return!k},fireWith:function(a,b){return!j||e&&!k||(b=b||[],b=[a,b.slice?b.slice():b],f?k.push(b):l(b)),this},fire:function(){return m.fireWith(this,arguments),this},fired:function(){return!!e}};return m},fb.extend({Deferred:function(a){var b=[["resolve","done",fb.Callbacks("once memory"),"resolved"],["reject","fail",fb.Callbacks("once memory"),"rejected"],["notify","progress",fb.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return fb.Deferred(function(c){fb.each(b,function(b,f){var g=f[0],h=fb.isFunction(a[b])&&a[b];e[f[1]](function(){var a=h&&h.apply(this,arguments);a&&fb.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[g+"With"](this===d?c.promise():this,h?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?fb.extend(a,d):d}},e={};return d.pipe=d.then,fb.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b,c,d,e=0,f=ab.call(arguments),g=f.length,h=1!==g||a&&fb.isFunction(a.promise)?g:0,i=1===h?a:fb.Deferred(),j=function(a,c,d){return function(e){c[a]=this,d[a]=arguments.length>1?ab.call(arguments):e,d===b?i.notifyWith(c,d):--h||i.resolveWith(c,d)}};if(g>1)for(b=Array(g),c=Array(g),d=Array(g);g>e;e++)f[e]&&fb.isFunction(f[e].promise)?f[e].promise().done(j(e,d,f)).fail(i.reject).progress(j(e,c,b)):--h;return h||i.resolveWith(d,f),i.promise()}}),fb.support=function(b){var c=T.createElement("input"),d=T.createDocumentFragment(),e=T.createElement("div"),f=T.createElement("select"),g=f.appendChild(T.createElement("option"));return c.type?(c.type="checkbox",b.checkOn=""!==c.value,b.optSelected=g.selected,b.reliableMarginRight=!0,b.boxSizingReliable=!0,b.pixelPosition=!1,c.checked=!0,b.noCloneChecked=c.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled,c=T.createElement("input"),c.value="t",c.type="radio",b.radioValue="t"===c.value,c.setAttribute("checked","t"),c.setAttribute("name","t"),d.appendChild(c),b.checkClone=d.cloneNode(!0).cloneNode(!0).lastChild.checked,b.focusinBubbles="onfocusin"in a,e.style.backgroundClip="content-box",e.cloneNode(!0).style.backgroundClip="",b.clearCloneStyle="content-box"===e.style.backgroundClip,fb(function(){var c,d,f="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",g=T.getElementsByTagName("body")[0];g&&(c=T.createElement("div"),c.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",g.appendChild(c).appendChild(e),e.innerHTML="",e.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",fb.swap(g,null!=g.style.zoom?{zoom:1}:{},function(){b.boxSizing=4===e.offsetWidth}),a.getComputedStyle&&(b.pixelPosition="1%"!==(a.getComputedStyle(e,null)||{}).top,b.boxSizingReliable="4px"===(a.getComputedStyle(e,null)||{width:"4px"}).width,d=e.appendChild(T.createElement("div")),d.style.cssText=e.style.cssText=f,d.style.marginRight=d.style.width="0",e.style.width="1px",b.reliableMarginRight=!parseFloat((a.getComputedStyle(d,null)||{}).marginRight)),g.removeChild(c))}),b):b}({});var pb,qb,rb=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,sb=/([A-Z])/g;e.uid=1,e.accepts=function(a){return a.nodeType?1===a.nodeType||9===a.nodeType:!0},e.prototype={key:function(a){if(!e.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=e.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,fb.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(fb.isEmptyObject(f))fb.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,c){var d=this.cache[this.key(a)];return c===b?d:d[c]},access:function(a,c,d){var e;return c===b||c&&"string"==typeof c&&d===b?(e=this.get(a,c),e!==b?e:this.get(a,fb.camelCase(c))):(this.set(a,c,d),d!==b?d:c)},remove:function(a,c){var d,e,f,g=this.key(a),h=this.cache[g];if(c===b)this.cache[g]={};else{fb.isArray(c)?e=c.concat(c.map(fb.camelCase)):(f=fb.camelCase(c),c in h?e=[c,f]:(e=f,e=e in h?[e]:e.match(hb)||[])),d=e.length;for(;d--;)delete h[e[d]]}},hasData:function(a){return!fb.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}},pb=new e,qb=new e,fb.extend({acceptData:e.accepts,hasData:function(a){return pb.hasData(a)||qb.hasData(a)},data:function(a,b,c){return pb.access(a,b,c)},removeData:function(a,b){pb.remove(a,b)},_data:function(a,b,c){return qb.access(a,b,c)},_removeData:function(a,b){qb.remove(a,b)}}),fb.fn.extend({data:function(a,c){var d,e,g=this[0],h=0,i=null;if(a===b){if(this.length&&(i=pb.get(g),1===g.nodeType&&!qb.get(g,"hasDataAttrs"))){for(d=g.attributes;d.length>h;h++)e=d[h].name,0===e.indexOf("data-")&&(e=fb.camelCase(e.slice(5)),f(g,e,i[e]));qb.set(g,"hasDataAttrs",!0)}return i}return"object"==typeof a?this.each(function(){pb.set(this,a)}):fb.access(this,function(c){var d,e=fb.camelCase(a);if(g&&c===b){if(d=pb.get(g,a),d!==b)return d;if(d=pb.get(g,e),d!==b)return d;if(d=f(g,e,b),d!==b)return d}else this.each(function(){var d=pb.get(this,e);pb.set(this,e,c),-1!==a.indexOf("-")&&d!==b&&pb.set(this,a,c)})},null,c,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){pb.remove(this,a)})}}),fb.extend({queue:function(a,c,d){var e;return a?(c=(c||"fx")+"queue",e=qb.get(a,c),d&&(!e||fb.isArray(d)?e=qb.access(a,c,fb.makeArray(d)):e.push(d)),e||[]):b},dequeue:function(a,b){b=b||"fx";var c=fb.queue(a,b),d=c.length,e=c.shift(),f=fb._queueHooks(a,b),g=function(){fb.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return qb.get(a,c)||qb.access(a,c,{empty:fb.Callbacks("once memory").add(function(){qb.remove(a,[b+"queue",c])})})}}),fb.fn.extend({queue:function(a,c){var d=2;return"string"!=typeof a&&(c=a,a="fx",d--),d>arguments.length?fb.queue(this[0],a):c===b?this:this.each(function(){var b=fb.queue(this,a,c);fb._queueHooks(this,a),"fx"===a&&"inprogress"!==b[0]&&fb.dequeue(this,a)})},dequeue:function(a){return this.each(function(){fb.dequeue(this,a)})},delay:function(a,b){return a=fb.fx?fb.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=fb.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};for("string"!=typeof a&&(c=a,a=b),a=a||"fx";h--;)d=qb.get(g[h],a+"queueHooks"),d&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var tb,ub,vb=/[\t\r\n\f]/g,wb=/\r/g,xb=/^(?:input|select|textarea|button)$/i;fb.fn.extend({attr:function(a,b){return fb.access(this,fb.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){fb.removeAttr(this,a)})},prop:function(a,b){return fb.access(this,fb.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[fb.propFix[a]||a]})},addClass:function(a){var b,c,d,e,f,g=0,h=this.length,i="string"==typeof a&&a;if(fb.isFunction(a))return this.each(function(b){fb(this).addClass(a.call(this,b,this.className))});if(i)for(b=(a||"").match(hb)||[];h>g;g++)if(c=this[g],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vb," "):" ")){for(f=0;e=b[f++];)0>d.indexOf(" "+e+" ")&&(d+=e+" ");c.className=fb.trim(d)}return this},removeClass:function(a){var b,c,d,e,f,g=0,h=this.length,i=0===arguments.length||"string"==typeof a&&a;if(fb.isFunction(a))return this.each(function(b){fb(this).removeClass(a.call(this,b,this.className))});if(i)for(b=(a||"").match(hb)||[];h>g;g++)if(c=this[g],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vb," "):"")){for(f=0;e=b[f++];)for(;d.indexOf(" "+e+" ")>=0;)d=d.replace(" "+e+" "," ");c.className=a?fb.trim(d):""}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(fb.isFunction(a)?function(c){fb(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c)for(var b,d=0,e=fb(this),f=a.match(hb)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else(c===R||"boolean"===c)&&(this.className&&qb.set(this,"__className__",this.className),this.className=this.className||a===!1?"":qb.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(vb," ").indexOf(b)>=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];return arguments.length?(e=fb.isFunction(a),this.each(function(d){var f;1===this.nodeType&&(f=e?a.call(this,d,fb(this).val()):a,null==f?f="":"number"==typeof f?f+="":fb.isArray(f)&&(f=fb.map(f,function(a){return null==a?"":a+""})),c=fb.valHooks[this.type]||fb.valHooks[this.nodeName.toLowerCase()],c&&"set"in c&&c.set(this,f,"value")!==b||(this.value=f))})):f?(c=fb.valHooks[f.type]||fb.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,"string"==typeof d?d.replace(wb,""):null==d?"":d)):void 0}}),fb.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(fb.support.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&fb.nodeName(c.parentNode,"optgroup"))){if(b=fb(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=fb.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=fb.inArray(fb(d).val(),f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}},attr:function(a,c,d){var e,f,g=a.nodeType;return a&&3!==g&&8!==g&&2!==g?typeof a.getAttribute===R?fb.prop(a,c,d):(1===g&&fb.isXMLDoc(a)||(c=c.toLowerCase(),e=fb.attrHooks[c]||(fb.expr.match.bool.test(c)?ub:tb)),d===b?e&&"get"in e&&null!==(f=e.get(a,c))?f:(f=fb.find.attr(a,c),null==f?b:f):null!==d?e&&"set"in e&&(f=e.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d):(fb.removeAttr(a,c),b)):void 0},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(hb);if(f&&1===a.nodeType)for(;c=f[e++];)d=fb.propFix[c]||c,fb.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!fb.support.radioValue&&"radio"===b&&fb.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(a,c,d){var e,f,g,h=a.nodeType;return a&&3!==h&&8!==h&&2!==h?(g=1!==h||!fb.isXMLDoc(a),g&&(c=fb.propFix[c]||c,f=fb.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&null!==(e=f.get(a,c))?e:a[c]):void 0},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||xb.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),ub={set:function(a,b,c){return b===!1?fb.removeAttr(a,c):a.setAttribute(c,c),c}},fb.each(fb.expr.match.bool.source.match(/\w+/g),function(a,c){var d=fb.expr.attrHandle[c]||fb.find.attr;fb.expr.attrHandle[c]=function(a,c,e){var f=fb.expr.attrHandle[c],g=e?b:(fb.expr.attrHandle[c]=b)!=d(a,c,e)?c.toLowerCase():null;return fb.expr.attrHandle[c]=f,g}}),fb.support.optSelected||(fb.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),fb.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){fb.propFix[this.toLowerCase()]=this}),fb.each(["radio","checkbox"],function(){fb.valHooks[this]={set:function(a,c){return fb.isArray(c)?a.checked=fb.inArray(fb(a).val(),c)>=0:b}},fb.support.checkOn||(fb.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var yb=/^key/,zb=/^(?:mouse|contextmenu)|click/,Ab=/^(?:focusinfocus|focusoutblur)$/,Bb=/^([^.]*)(?:\.(.+)|)$/;fb.event={global:{},add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r=qb.get(a);if(r){for(d.handler&&(g=d,d=g.handler,f=g.selector),d.guid||(d.guid=fb.guid++),(j=r.events)||(j=r.events={}),(h=r.handle)||(h=r.handle=function(a){return typeof fb===R||a&&fb.event.triggered===a.type?b:fb.event.dispatch.apply(h.elem,arguments)},h.elem=a),c=(c||"").match(hb)||[""],k=c.length;k--;)i=Bb.exec(c[k])||[],o=q=i[1],p=(i[2]||"").split(".").sort(),o&&(m=fb.event.special[o]||{},o=(f?m.delegateType:m.bindType)||o,m=fb.event.special[o]||{},l=fb.extend({type:o,origType:q,data:e,handler:d,guid:d.guid,selector:f,needsContext:f&&fb.expr.match.needsContext.test(f),namespace:p.join(".")},g),(n=j[o])||(n=j[o]=[],n.delegateCount=0,m.setup&&m.setup.call(a,e,p,h)!==!1||a.addEventListener&&a.addEventListener(o,h,!1)),m.add&&(m.add.call(a,l),l.handler.guid||(l.handler.guid=d.guid)),f?n.splice(n.delegateCount++,0,l):n.push(l),fb.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=qb.hasData(a)&&qb.get(a);if(q&&(i=q.events)){for(b=(b||"").match(hb)||[""],j=b.length;j--;)if(h=Bb.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=fb.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||fb.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)fb.event.remove(a,n+b[j],c,d,!0);fb.isEmptyObject(i)&&(delete q.handle,qb.remove(a,"events"))}},trigger:function(c,d,e,f){var g,h,i,j,k,l,m,n=[e||T],o=db.call(c,"type")?c.type:c,p=db.call(c,"namespace")?c.namespace.split("."):[];if(h=i=e=e||T,3!==e.nodeType&&8!==e.nodeType&&!Ab.test(o+fb.event.triggered)&&(o.indexOf(".")>=0&&(p=o.split("."),o=p.shift(),p.sort()),k=0>o.indexOf(":")&&"on"+o,c=c[fb.expando]?c:new fb.Event(o,"object"==typeof c&&c),c.isTrigger=f?2:3,c.namespace=p.join("."),c.namespace_re=c.namespace?RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,c.result=b,c.target||(c.target=e),d=null==d?[c]:fb.makeArray(d,[c]),m=fb.event.special[o]||{},f||!m.trigger||m.trigger.apply(e,d)!==!1)){if(!f&&!m.noBubble&&!fb.isWindow(e)){for(j=m.delegateType||o,Ab.test(j+o)||(h=h.parentNode);h;h=h.parentNode)n.push(h),i=h;i===(e.ownerDocument||T)&&n.push(i.defaultView||i.parentWindow||a)}for(g=0;(h=n[g++])&&!c.isPropagationStopped();)c.type=g>1?j:m.bindType||o,l=(qb.get(h,"events")||{})[c.type]&&qb.get(h,"handle"),l&&l.apply(h,d),l=k&&h[k],l&&fb.acceptData(h)&&l.apply&&l.apply(h,d)===!1&&c.preventDefault();return c.type=o,f||c.isDefaultPrevented()||m._default&&m._default.apply(n.pop(),d)!==!1||!fb.acceptData(e)||k&&fb.isFunction(e[o])&&!fb.isWindow(e)&&(i=e[k],i&&(e[k]=null),fb.event.triggered=o,e[o](),fb.event.triggered=b,i&&(e[k]=i)),c.result}},dispatch:function(a){a=fb.event.fix(a);var c,d,e,f,g,h=[],i=ab.call(arguments),j=(qb.get(this,"events")||{})[a.type]||[],k=fb.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){for(h=fb.event.handlers.call(this,a,j),c=0;(f=h[c++])&&!a.isPropagationStopped();)for(a.currentTarget=f.elem,d=0;(g=f.handlers[d++])&&!a.isImmediatePropagationStopped();)(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((fb.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),e!==b&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()));return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,c){var d,e,f,g,h=[],i=c.delegateCount,j=a.target;if(i&&j.nodeType&&(!a.button||"click"!==a.type))for(;j!==this;j=j.parentNode||this)if(j.disabled!==!0||"click"!==a.type){for(e=[],d=0;i>d;d++)g=c[d],f=g.selector+" ",e[f]===b&&(e[f]=g.needsContext?fb(f,this).index(j)>=0:fb.find(f,this,null,[j]).length),e[f]&&e.push(g);e.length&&h.push({elem:j,handlers:e})}return c.length>i&&h.push({elem:this,handlers:c.slice(i)}),h},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,e,f,g=c.button;return null==a.pageX&&null!=c.clientX&&(d=a.target.ownerDocument||T,e=d.documentElement,f=d.body,a.pageX=c.clientX+(e&&e.scrollLeft||f&&f.scrollLeft||0)-(e&&e.clientLeft||f&&f.clientLeft||0),a.pageY=c.clientY+(e&&e.scrollTop||f&&f.scrollTop||0)-(e&&e.clientTop||f&&f.clientTop||0)),a.which||g===b||(a.which=1&g?1:2&g?3:4&g?2:0),a}},fix:function(a){if(a[fb.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];for(g||(this.fixHooks[e]=g=zb.test(e)?this.mouseHooks:yb.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new fb.Event(f),b=d.length;b--;)c=d[b],a[c]=f[c];return a.target||(a.target=T),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==i()&&this.focus?(this.focus(),!1):b},delegateType:"focusin"},blur:{trigger:function(){return this===i()&&this.blur?(this.blur(),!1):b},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&fb.nodeName(this,"input")?(this.click(),!1):b},_default:function(a){return fb.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){a.result!==b&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=fb.extend(new fb.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?fb.event.trigger(e,null,b):fb.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},fb.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},fb.Event=function(a,c){return this instanceof fb.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.getPreventDefault&&a.getPreventDefault()?g:h):this.type=a,c&&fb.extend(this,c),this.timeStamp=a&&a.timeStamp||fb.now(),this[fb.expando]=!0,b):new fb.Event(a,c)},fb.Event.prototype={isDefaultPrevented:h,isPropagationStopped:h,isImmediatePropagationStopped:h,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=g,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=g,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=g,this.stopPropagation()}},fb.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){fb.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!fb.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),fb.support.focusinBubbles||fb.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){fb.event.simulate(b,a.target,fb.event.fix(a),!0)};fb.event.special[b]={setup:function(){0===c++&&T.addEventListener(a,d,!0)},teardown:function(){0===--c&&T.removeEventListener(a,d,!0)}}}),fb.fn.extend({on:function(a,c,d,e,f){var g,i;if("object"==typeof a){"string"!=typeof c&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],f);return this}if(null==d&&null==e?(e=c,d=c=b):null==e&&("string"==typeof c?(e=d,d=b):(e=d,d=c,c=b)),e===!1)e=h;else if(!e)return this;return 1===f&&(g=e,e=function(a){return fb().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=fb.guid++)),this.each(function(){fb.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,fb(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if("object"==typeof a){for(f in a)this.off(f,c,a[f]);return this}return(c===!1||"function"==typeof c)&&(d=c,c=b),d===!1&&(d=h),this.each(function(){fb.event.remove(this,a,d,c)})},trigger:function(a,b){return this.each(function(){fb.event.trigger(a,b,this)})},triggerHandler:function(a,c){var d=this[0];return d?fb.event.trigger(a,c,d,!0):b}});var Cb=/^.[^:#\[\.,]*$/,Db=/^(?:parents|prev(?:Until|All))/,Eb=fb.expr.match.needsContext,Fb={children:!0,contents:!0,next:!0,prev:!0};fb.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(fb(a).filter(function(){for(b=0;e>b;b++)if(fb.contains(d[b],this))return!0}));for(b=0;e>b;b++)fb.find(a,d[b],c);return c=this.pushStack(e>1?fb.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},has:function(a){var b=fb(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(fb.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(k(this,a||[],!0))},filter:function(a){return this.pushStack(k(this,a||[],!1))},is:function(a){return!!k(this,"string"==typeof a&&Eb.test(a)?fb(a):a||[],!1).length},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=Eb.test(a)||"string"!=typeof a?fb(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(11>c.nodeType&&(g?g.index(c)>-1:1===c.nodeType&&fb.find.matchesSelector(c,a))){c=f.push(c);break}return this.pushStack(f.length>1?fb.unique(f):f)},index:function(a){return a?"string"==typeof a?bb.call(fb(a),this[0]):bb.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){var c="string"==typeof a?fb(a,b):fb.makeArray(a&&a.nodeType?[a]:a),d=fb.merge(this.get(),c);return this.pushStack(fb.unique(d))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),fb.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return fb.dir(a,"parentNode")},parentsUntil:function(a,b,c){return fb.dir(a,"parentNode",c)},next:function(a){return j(a,"nextSibling")},prev:function(a){return j(a,"previousSibling")},nextAll:function(a){return fb.dir(a,"nextSibling")},prevAll:function(a){return fb.dir(a,"previousSibling")},nextUntil:function(a,b,c){return fb.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return fb.dir(a,"previousSibling",c)},siblings:function(a){return fb.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return fb.sibling(a.firstChild)},contents:function(a){return a.contentDocument||fb.merge([],a.childNodes)}},function(a,b){fb.fn[a]=function(c,d){var e=fb.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=fb.filter(d,e)),this.length>1&&(Fb[a]||fb.unique(e),Db.test(a)&&e.reverse()),this.pushStack(e)}}),fb.extend({filter:function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?fb.find.matchesSelector(d,a)?[d]:[]:fb.find.matches(a,fb.grep(b,function(a){return 1===a.nodeType}))},dir:function(a,c,d){for(var e=[],f=d!==b;(a=a[c])&&9!==a.nodeType;)if(1===a.nodeType){if(f&&fb(a).is(d))break;e.push(a)}return e},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}});var Gb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Hb=/<([\w:]+)/,Ib=/<|&#?\w+;/,Jb=/<(?:script|style|link)/i,Kb=/^(?:checkbox|radio)$/i,Lb=/checked\s*(?:[^=]|=\s*.checked.)/i,Mb=/^$|\/(?:java|ecma)script/i,Nb=/^true\/(.*)/,Ob=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Pb={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Pb.optgroup=Pb.option,Pb.tbody=Pb.tfoot=Pb.colgroup=Pb.caption=Pb.thead,Pb.th=Pb.td,fb.fn.extend({text:function(a){return fb.access(this,function(a){return a===b?fb.text(this):this.empty().append((this[0]&&this[0].ownerDocument||T).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=l(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=l(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?fb.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||fb.cleanData(q(c)),c.parentNode&&(b&&fb.contains(c.ownerDocument,c)&&o(q(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(fb.cleanData(q(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return fb.clone(this,a,b)})},html:function(a){return fb.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b&&1===c.nodeType)return c.innerHTML;if("string"==typeof a&&!Jb.test(a)&&!Pb[(Hb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Gb,"<$1></$2>");try{for(;e>d;d++)c=this[d]||{},1===c.nodeType&&(fb.cleanData(q(c,!1)),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=fb.map(this,function(a){return[a.nextSibling,a.parentNode]}),b=0;return this.domManip(arguments,function(c){var d=a[b++],e=a[b++];e&&(d&&d.parentNode!==e&&(d=this.nextSibling),fb(this).remove(),e.insertBefore(c,d))},!0),b?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b,c){a=$.apply([],a);var d,e,f,g,h,i,j=0,k=this.length,l=this,o=k-1,p=a[0],r=fb.isFunction(p);if(r||!(1>=k||"string"!=typeof p||fb.support.checkClone)&&Lb.test(p))return this.each(function(d){var e=l.eq(d);r&&(a[0]=p.call(this,d,e.html())),e.domManip(a,b,c)});if(k&&(d=fb.buildFragment(a,this[0].ownerDocument,!1,!c&&this),e=d.firstChild,1===d.childNodes.length&&(d=e),e)){for(f=fb.map(q(d,"script"),m),g=f.length;k>j;j++)h=d,j!==o&&(h=fb.clone(h,!0,!0),g&&fb.merge(f,q(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,fb.map(f,n),j=0;g>j;j++)h=f[j],Mb.test(h.type||"")&&!qb.access(h,"globalEval")&&fb.contains(i,h)&&(h.src?fb._evalUrl(h.src):fb.globalEval(h.textContent.replace(Ob,"")))}return this}}),fb.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){fb.fn[a]=function(a){for(var c,d=[],e=fb(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),fb(e[g])[b](c),_.apply(d,c.get());return this.pushStack(d)}}),fb.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=fb.contains(a.ownerDocument,a);if(!(fb.support.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||fb.isXMLDoc(a)))for(g=q(h),f=q(a),d=0,e=f.length;e>d;d++)r(f[d],g[d]);if(b)if(c)for(f=f||q(a),g=g||q(h),d=0,e=f.length;e>d;d++)p(f[d],g[d]);else p(a,h);return g=q(h,"script"),g.length>0&&o(g,!i&&q(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=0,l=a.length,m=b.createDocumentFragment(),n=[];l>k;k++)if(e=a[k],e||0===e)if("object"===fb.type(e))fb.merge(n,e.nodeType?[e]:e);else if(Ib.test(e)){for(f=f||m.appendChild(b.createElement("div")),g=(Hb.exec(e)||["",""])[1].toLowerCase(),h=Pb[g]||Pb._default,f.innerHTML=h[1]+e.replace(Gb,"<$1></$2>")+h[2],j=h[0];j--;)f=f.lastChild;fb.merge(n,f.childNodes),f=m.firstChild,f.textContent=""}else n.push(b.createTextNode(e));for(m.textContent="",k=0;e=n[k++];)if((!d||-1===fb.inArray(e,d))&&(i=fb.contains(e.ownerDocument,e),f=q(m.appendChild(e),"script"),i&&o(f),c))for(j=0;e=f[j++];)Mb.test(e.type||"")&&c.push(e);return m},cleanData:function(a){for(var c,d,f,g,h,i,j=fb.event.special,k=0;(d=a[k])!==b;k++){if(e.accepts(d)&&(h=d[qb.expando],h&&(c=qb.cache[h]))){if(f=Object.keys(c.events||{}),f.length)for(i=0;(g=f[i])!==b;i++)j[g]?fb.event.remove(d,g):fb.removeEvent(d,g,c.handle);qb.cache[h]&&delete qb.cache[h]}delete pb.cache[d[pb.expando]]}},_evalUrl:function(a){return fb.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),fb.fn.extend({wrapAll:function(a){var b;return fb.isFunction(a)?this.each(function(b){fb(this).wrapAll(a.call(this,b))}):(this[0]&&(b=fb(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(fb.isFunction(a)?function(b){fb(this).wrapInner(a.call(this,b))}:function(){var b=fb(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=fb.isFunction(a);return this.each(function(c){fb(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){fb.nodeName(this,"body")||fb(this).replaceWith(this.childNodes)}).end()}});var Qb,Rb,Sb=/^(none|table(?!-c[ea]).+)/,Tb=/^margin/,Ub=RegExp("^("+gb+")(.*)$","i"),Vb=RegExp("^("+gb+")(?!px)[a-z%]+$","i"),Wb=RegExp("^([+-])=("+gb+")","i"),Xb={BODY:"block"},Yb={position:"absolute",visibility:"hidden",display:"block"},Zb={letterSpacing:0,fontWeight:400},$b=["Top","Right","Bottom","Left"],_b=["Webkit","O","Moz","ms"];fb.fn.extend({css:function(a,c){return fb.access(this,function(a,c,d){var e,f,g={},h=0;if(fb.isArray(c)){for(e=u(a),f=c.length;f>h;h++)g[c[h]]=fb.css(a,c[h],!1,e);return g}return d!==b?fb.style(a,c,d):fb.css(a,c)
},a,c,arguments.length>1)},show:function(){return v(this,!0)},hide:function(){return v(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){t(this)?fb(this).show():fb(this).hide()})}}),fb.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Qb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,c,d,e){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var f,g,h,i=fb.camelCase(c),j=a.style;return c=fb.cssProps[i]||(fb.cssProps[i]=s(j,i)),h=fb.cssHooks[c]||fb.cssHooks[i],d===b?h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c]:(g=typeof d,"string"===g&&(f=Wb.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(fb.css(a,c)),g="number"),null==d||"number"===g&&isNaN(d)||("number"!==g||fb.cssNumber[i]||(d+="px"),fb.support.clearCloneStyle||""!==d||0!==c.indexOf("background")||(j[c]="inherit"),h&&"set"in h&&(d=h.set(a,d,e))===b||(j[c]=d)),b)}},css:function(a,c,d,e){var f,g,h,i=fb.camelCase(c);return c=fb.cssProps[i]||(fb.cssProps[i]=s(a.style,i)),h=fb.cssHooks[c]||fb.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,d)),f===b&&(f=Qb(a,c,e)),"normal"===f&&c in Zb&&(f=Zb[c]),""===d||d?(g=parseFloat(f),d===!0||fb.isNumeric(g)?g||0:f):f}}),Qb=function(a,c,d){var e,f,g,h=d||u(a),i=h?h.getPropertyValue(c)||h[c]:b,j=a.style;return h&&(""!==i||fb.contains(a.ownerDocument,a)||(i=fb.style(a,c)),Vb.test(i)&&Tb.test(c)&&(e=j.width,f=j.minWidth,g=j.maxWidth,j.minWidth=j.maxWidth=j.width=i,i=h.width,j.width=e,j.minWidth=f,j.maxWidth=g)),i},fb.each(["height","width"],function(a,c){fb.cssHooks[c]={get:function(a,d,e){return d?0===a.offsetWidth&&Sb.test(fb.css(a,"display"))?fb.swap(a,Yb,function(){return y(a,c,e)}):y(a,c,e):b},set:function(a,b,d){var e=d&&u(a);return w(a,b,d?x(a,c,d,fb.support.boxSizing&&"border-box"===fb.css(a,"boxSizing",!1,e),e):0)}}}),fb(function(){fb.support.reliableMarginRight||(fb.cssHooks.marginRight={get:function(a,c){return c?fb.swap(a,{display:"inline-block"},Qb,[a,"marginRight"]):b}}),!fb.support.pixelPosition&&fb.fn.position&&fb.each(["top","left"],function(a,c){fb.cssHooks[c]={get:function(a,d){return d?(d=Qb(a,c),Vb.test(d)?fb(a).position()[c]+"px":d):b}}})}),fb.expr&&fb.expr.filters&&(fb.expr.filters.hidden=function(a){return 0>=a.offsetWidth&&0>=a.offsetHeight},fb.expr.filters.visible=function(a){return!fb.expr.filters.hidden(a)}),fb.each({margin:"",padding:"",border:"Width"},function(a,b){fb.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+$b[d]+b]=f[d]||f[d-2]||f[0];return e}},Tb.test(a)||(fb.cssHooks[a+b].set=w)});var ac=/%20/g,bc=/\[\]$/,cc=/\r?\n/g,dc=/^(?:submit|button|image|reset|file)$/i,ec=/^(?:input|select|textarea|keygen)/i;fb.fn.extend({serialize:function(){return fb.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=fb.prop(this,"elements");return a?fb.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!fb(this).is(":disabled")&&ec.test(this.nodeName)&&!dc.test(a)&&(this.checked||!Kb.test(a))}).map(function(a,b){var c=fb(this).val();return null==c?null:fb.isArray(c)?fb.map(c,function(a){return{name:b.name,value:a.replace(cc,"\r\n")}}):{name:b.name,value:c.replace(cc,"\r\n")}}).get()}}),fb.param=function(a,c){var d,e=[],f=function(a,b){b=fb.isFunction(b)?b():null==b?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(c===b&&(c=fb.ajaxSettings&&fb.ajaxSettings.traditional),fb.isArray(a)||a.jquery&&!fb.isPlainObject(a))fb.each(a,function(){f(this.name,this.value)});else for(d in a)B(d,a[d],c,f);return e.join("&").replace(ac,"+")},fb.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){fb.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),fb.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var fc,gc,hc=fb.now(),ic=/\?/,jc=/#.*$/,kc=/([?&])_=[^&]*/,lc=/^(.*?):[ \t]*([^\r\n]*)$/gm,mc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,nc=/^(?:GET|HEAD)$/,oc=/^\/\//,pc=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,qc=fb.fn.load,rc={},sc={},tc="*/".concat("*");try{gc=S.href}catch(uc){gc=T.createElement("a"),gc.href="",gc=gc.href}fc=pc.exec(gc.toLowerCase())||[],fb.fn.load=function(a,c,d){if("string"!=typeof a&&qc)return qc.apply(this,arguments);var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i),a=a.slice(0,i)),fb.isFunction(c)?(d=c,c=b):c&&"object"==typeof c&&(f="POST"),h.length>0&&fb.ajax({url:a,type:f,dataType:"html",data:c}).done(function(a){g=arguments,h.html(e?fb("<div>").append(fb.parseHTML(a)).find(e):a)}).complete(d&&function(a,b){h.each(d,g||[a.responseText,b,a])}),this},fb.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){fb.fn[b]=function(a){return this.on(b,a)}}),fb.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:gc,type:"GET",isLocal:mc.test(fc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":tc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":fb.parseJSON,"text xml":fb.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?E(E(a,fb.ajaxSettings),b):E(fb.ajaxSettings,a)},ajaxPrefilter:C(rc),ajaxTransport:C(sc),ajax:function(a,c){function d(a,c,d,h){var j,l,s,t,v,x=c;2!==u&&(u=2,i&&clearTimeout(i),e=b,g=h||"",w.readyState=a>0?4:0,j=a>=200&&300>a||304===a,d&&(t=F(m,w,d)),t=G(m,t,w,j),j?(m.ifModified&&(v=w.getResponseHeader("Last-Modified"),v&&(fb.lastModified[f]=v),v=w.getResponseHeader("etag"),v&&(fb.etag[f]=v)),204===a||"HEAD"===m.type?x="nocontent":304===a?x="notmodified":(x=t.state,l=t.data,s=t.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),w.status=a,w.statusText=(c||x)+"",j?p.resolveWith(n,[l,x,w]):p.rejectWith(n,[w,x,s]),w.statusCode(r),r=b,k&&o.trigger(j?"ajaxSuccess":"ajaxError",[w,m,j?l:s]),q.fireWith(n,[w,x]),k&&(o.trigger("ajaxComplete",[w,m]),--fb.active||fb.event.trigger("ajaxStop")))}"object"==typeof a&&(c=a,a=b),c=c||{};var e,f,g,h,i,j,k,l,m=fb.ajaxSetup({},c),n=m.context||m,o=m.context&&(n.nodeType||n.jquery)?fb(n):fb.event,p=fb.Deferred(),q=fb.Callbacks("once memory"),r=m.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!h)for(h={};b=lc.exec(g);)h[b[1].toLowerCase()]=b[2];b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(m.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return e&&e.abort(b),d(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,m.url=((a||m.url||gc)+"").replace(jc,"").replace(oc,fc[1]+"//"),m.type=c.method||c.type||m.method||m.type,m.dataTypes=fb.trim(m.dataType||"*").toLowerCase().match(hb)||[""],null==m.crossDomain&&(j=pc.exec(m.url.toLowerCase()),m.crossDomain=!(!j||j[1]===fc[1]&&j[2]===fc[2]&&(j[3]||("http:"===j[1]?"80":"443"))===(fc[3]||("http:"===fc[1]?"80":"443")))),m.data&&m.processData&&"string"!=typeof m.data&&(m.data=fb.param(m.data,m.traditional)),D(rc,m,c,w),2===u)return w;k=m.global,k&&0===fb.active++&&fb.event.trigger("ajaxStart"),m.type=m.type.toUpperCase(),m.hasContent=!nc.test(m.type),f=m.url,m.hasContent||(m.data&&(f=m.url+=(ic.test(f)?"&":"?")+m.data,delete m.data),m.cache===!1&&(m.url=kc.test(f)?f.replace(kc,"$1_="+hc++):f+(ic.test(f)?"&":"?")+"_="+hc++)),m.ifModified&&(fb.lastModified[f]&&w.setRequestHeader("If-Modified-Since",fb.lastModified[f]),fb.etag[f]&&w.setRequestHeader("If-None-Match",fb.etag[f])),(m.data&&m.hasContent&&m.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",m.contentType),w.setRequestHeader("Accept",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+tc+"; q=0.01":""):m.accepts["*"]);for(l in m.headers)w.setRequestHeader(l,m.headers[l]);if(m.beforeSend&&(m.beforeSend.call(n,w,m)===!1||2===u))return w.abort();v="abort";for(l in{success:1,error:1,complete:1})w[l](m[l]);if(e=D(sc,m,c,w)){w.readyState=1,k&&o.trigger("ajaxSend",[w,m]),m.async&&m.timeout>0&&(i=setTimeout(function(){w.abort("timeout")},m.timeout));try{u=1,e.send(s,d)}catch(x){if(!(2>u))throw x;d(-1,x)}}else d(-1,"No Transport");return w},getJSON:function(a,b,c){return fb.get(a,b,c,"json")},getScript:function(a,c){return fb.get(a,b,c,"script")}}),fb.each(["get","post"],function(a,c){fb[c]=function(a,d,e,f){return fb.isFunction(d)&&(f=f||e,e=d,d=b),fb.ajax({url:a,type:c,dataType:f,data:d,success:e})}}),fb.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return fb.globalEval(a),a}}}),fb.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),fb.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=fb("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),T.head.appendChild(b[0])},abort:function(){c&&c()}}}});var vc=[],wc=/(=)\?(?=&|$)|\?\?/;fb.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=vc.pop()||fb.expando+"_"+hc++;return this[a]=!0,a}}),fb.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.jsonp!==!1&&(wc.test(c.url)?"url":"string"==typeof c.data&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&wc.test(c.data)&&"data");return i||"jsonp"===c.dataTypes[0]?(f=c.jsonpCallback=fb.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,i?c[i]=c[i].replace(wc,"$1"+f):c.jsonp!==!1&&(c.url+=(ic.test(c.url)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||fb.error(f+" was not called"),h[0]},c.dataTypes[0]="json",g=a[f],a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,vc.push(f)),h&&fb.isFunction(g)&&g(h[0]),h=g=b}),"script"):b}),fb.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var xc=fb.ajaxSettings.xhr(),yc={0:200,1223:204},zc=0,Ac={};a.ActiveXObject&&fb(a).on("unload",function(){for(var a in Ac)Ac[a]();Ac=b}),fb.support.cors=!!xc&&"withCredentials"in xc,fb.support.ajax=xc=!!xc,fb.ajaxTransport(function(a){var c;return fb.support.cors||xc&&!a.crossDomain?{send:function(d,e){var f,g,h=a.xhr();if(h.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(f in a.xhrFields)h[f]=a.xhrFields[f];a.mimeType&&h.overrideMimeType&&h.overrideMimeType(a.mimeType),a.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)h.setRequestHeader(f,d[f]);c=function(a){return function(){c&&(delete Ac[g],c=h.onload=h.onerror=null,"abort"===a?h.abort():"error"===a?e(h.status||404,h.statusText):e(yc[h.status]||h.status,h.statusText,"string"==typeof h.responseText?{text:h.responseText}:b,h.getAllResponseHeaders()))}},h.onload=c(),h.onerror=c("error"),c=Ac[g=zc++]=c("abort"),h.send(a.hasContent&&a.data||null)},abort:function(){c&&c()}}:b});var Bc,Cc,Dc=/^(?:toggle|show|hide)$/,Ec=RegExp("^(?:([+-])=|)("+gb+")([a-z%]*)$","i"),Fc=/queueHooks$/,Gc=[L],Hc={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ec.exec(b),f=e&&e[3]||(fb.cssNumber[a]?"":"px"),g=(fb.cssNumber[a]||"px"!==f&&+d)&&Ec.exec(fb.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,fb.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};fb.Animation=fb.extend(J,{tweener:function(a,b){fb.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Hc[c]=Hc[c]||[],Hc[c].unshift(b)},prefilter:function(a,b){b?Gc.unshift(a):Gc.push(a)}}),fb.Tween=M,M.prototype={constructor:M,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(fb.cssNumber[c]?"":"px")},cur:function(){var a=M.propHooks[this.prop];return a&&a.get?a.get(this):M.propHooks._default.get(this)},run:function(a){var b,c=M.propHooks[this.prop];return this.pos=b=this.options.duration?fb.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):M.propHooks._default.set(this),this}},M.prototype.init.prototype=M.prototype,M.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=fb.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){fb.fx.step[a.prop]?fb.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[fb.cssProps[a.prop]]||fb.cssHooks[a.prop])?fb.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},M.propHooks.scrollTop=M.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},fb.each(["toggle","show","hide"],function(a,b){var c=fb.fn[b];fb.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(N(b,!0),a,d,e)}}),fb.fn.extend({fadeTo:function(a,b,c,d){return this.filter(t).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=fb.isEmptyObject(a),f=fb.speed(b,c,d),g=function(){var b=J(this,fb.extend({},a),f);(e||qb.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return"string"!=typeof a&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=null!=a&&a+"queueHooks",f=fb.timers,g=qb.get(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&Fc.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem!==this||null!=a&&f[c].queue!==a||(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&fb.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=qb.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=fb.timers,g=d?d.length:0;for(c.finish=!0,fb.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),fb.each({slideDown:N("show"),slideUp:N("hide"),slideToggle:N("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){fb.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),fb.speed=function(a,b,c){var d=a&&"object"==typeof a?fb.extend({},a):{complete:c||!c&&b||fb.isFunction(a)&&a,duration:a,easing:c&&b||b&&!fb.isFunction(b)&&b};return d.duration=fb.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in fb.fx.speeds?fb.fx.speeds[d.duration]:fb.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){fb.isFunction(d.old)&&d.old.call(this),d.queue&&fb.dequeue(this,d.queue)},d},fb.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},fb.timers=[],fb.fx=M.prototype.init,fb.fx.tick=function(){var a,c=fb.timers,d=0;for(Bc=fb.now();c.length>d;d++)a=c[d],a()||c[d]!==a||c.splice(d--,1);c.length||fb.fx.stop(),Bc=b},fb.fx.timer=function(a){a()&&fb.timers.push(a)&&fb.fx.start()},fb.fx.interval=13,fb.fx.start=function(){Cc||(Cc=setInterval(fb.fx.tick,fb.fx.interval))},fb.fx.stop=function(){clearInterval(Cc),Cc=null},fb.fx.speeds={slow:600,fast:200,_default:400},fb.fx.step={},fb.expr&&fb.expr.filters&&(fb.expr.filters.animated=function(a){return fb.grep(fb.timers,function(b){return a===b.elem}).length}),fb.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){fb.offset.setOffset(this,a,b)});var c,d,e=this[0],f={top:0,left:0},g=e&&e.ownerDocument;return g?(c=g.documentElement,fb.contains(c,e)?(typeof e.getBoundingClientRect!==R&&(f=e.getBoundingClientRect()),d=O(g),{top:f.top+d.pageYOffset-c.clientTop,left:f.left+d.pageXOffset-c.clientLeft}):f):void 0},fb.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=fb.css(a,"position"),l=fb(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=fb.css(a,"top"),i=fb.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),fb.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},fb.fn.extend({position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===fb.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),fb.nodeName(a[0],"html")||(d=a.offset()),d.top+=fb.css(a[0],"borderTopWidth",!0),d.left+=fb.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-fb.css(c,"marginTop",!0),left:b.left-d.left-fb.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||U;a&&!fb.nodeName(a,"html")&&"static"===fb.css(a,"position");)a=a.offsetParent;return a||U})}}),fb.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(c,d){var e="pageYOffset"===d;fb.fn[c]=function(f){return fb.access(this,function(c,f,g){var h=O(c);return g===b?h?h[d]:c[f]:(h?h.scrollTo(e?a.pageXOffset:g,e?g:a.pageYOffset):c[f]=g,b)},c,f,arguments.length,null)}}),fb.each({Height:"height",Width:"width"},function(a,c){fb.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){fb.fn[e]=function(e,f){var g=arguments.length&&(d||"boolean"!=typeof e),h=d||(e===!0||f===!0?"margin":"border");return fb.access(this,function(c,d,e){var f;return fb.isWindow(c)?c.document.documentElement["client"+a]:9===c.nodeType?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?fb.css(c,d,h):fb.style(c,d,e,h)},c,g?e:b,g,null)}})}),fb.fn.size=function(){return this.length},fb.fn.andSelf=fb.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=fb:"function"==typeof define&&define.amd&&define("jquery",[],function(){return fb}),"object"==typeof a&&"object"==typeof a.document&&(a.jQuery=a.$=fb)}(window),function(a,b,c){function d(a){function b(b){var c;return 0===b?"":(b=b||1,c=a.substring(h+1,h+b+1),""===c?k:c)}var d,e,f,h=0,i=1,j=1,k=c;return a=a.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),d=a.length,e=d>0?a.charAt(0):k,{toString:function(){return"length: "+d+", index: "+h+", line: "+i+", column: "+j+", current: ["+e+"]"},peek:function(a){return b(a)},substring:function(){return a.substring(h)},peekSubstring:function(){return a.substring(h+1)},read:function(a){var c,l,m=b(a);return""===m?m:(m!==k?(h+=m.length,j+=m.length,f&&(i++,j=1,f=!1),c=m.substring(0,m.length-1).replace(/[^\n]/g,"").length,c>0&&(i+=c,j=1),l=g(m),"\n"===l&&(f=!0),e=l):(h=d,e=k),m)},text:function(){return a},getLine:function(){return i},getColumn:function(){return j},isEof:function(){return h>=d},isSol:function(){return 1===j},isSolWs:function(){var b,c=h;if(1===j)return!0;for(;""!==(b=a.charAt(--c));){if("\n"===b)return!0;if(!/\s/.test(b))return!1}return!0},isEol:function(){return f},EOF:k,current:function(){return e}}}function e(a){function b(){}return b.prototype=a,new b}function f(a,b){var c;for(c=0;c<b.length;c++)a.appendChild(b[c])}function g(a){return a.charAt?a.charAt(a.length-1):a[a.length-1]}function h(a,b,c){var d;if(a.indexOf&&!c)return a.indexOf(b)>=0;for(d=0;d<a.length;d++){if(a[d]===b)return!0;if(c&&"string"==typeof a[d]&&"string"==typeof b&&a[d].toUpperCase()===b.toUpperCase())return!0}return!1}function i(a,b){var c;if(!b)return a;for(c in b)a[c]=b[c];return a}function j(a){return i({},a)}function k(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function l(a,b,d,e){return d=d.slice(0),function(f){var g,i,j,k=a;for(1===b&&d.reverse(),g=0;g<d.length;g++)if(j=f[k+g*b],i=d[d.length-1-g],j===c){if(i.optional===c||!i.optional)return!1;k-=b}else{if(j.name===i.token&&(i.values===c||h(i.values,j.value,e)))continue;if(i.optional===c||!i.optional)return!1;k-=b}return!0}}function m(a,b,d,e){return function(f){for(var g,i=a,j=!1;(g=f[--i])!==c;){if(g.name===d.token&&h(d.values,g.value)){if(g.name===b.token&&h(b.values,g.value,e)){j=!0;break}return!1}if(g.name===b.token&&h(b.values,g.value,e)){j=!0;break}}if(!j)return!1;for(i=a;(g=f[++i])!==c;){if(g.name===b.token&&h(b.values,g.value,e)){if(g.name===d.token&&h(d.values,g.value,e)){j=!0;break}return!1}if(g.name===d.token&&h(d.values,g.value,e)){j=!0;break}}return j}}function n(a,b,c,d){var e,f,g,h=a.reader.current(),i=a.reader.getLine(),j=a.reader.getColumn();if(b=b||[],a.language.caseInsensitive&&(h=h.toUpperCase()),!b[h])return null;for(b=b[h],e=0;e<b.length;e++)if(f=b[e].value,g=h+a.reader.peek(f.length),f===g||b[e].regex.test(g))return a.createToken(c,a.reader.current()+a.reader[d?"peek":"read"](f.length-1),i,j);return null}function o(a,b,d,e){var f,g=1;for(d=d||1;f=a[b+d*g++];)if(!e(f))return f;return c}function p(a,b,c){var d,e,f,g={};for(d=0;d<a.length;d++)e=c?a[d].toUpperCase():a[d],f=e.charAt(0),g[f]||(g[f]=[]),g[f].push({value:e,regex:new RegExp("^"+k(e)+b,c?"i":"")});return g}function q(a){var b,c,d=a.reader.current(),e=a.reader.getLine(),f=a.reader.getColumn(),g=!0;if(/\d/.test(d))b=d,"0"===d&&"."!==a.reader.peek()&&(g=!1);else{if("."!==d||!/\d/.test(a.reader.peek()))return null;b=d+a.reader.read(),g=!1}for(;(c=a.reader.peek())!==a.reader.EOF;){if(!/[A-Za-z0-9]/.test(c)){if("."===c&&g&&/\d$/.test(a.reader.peek(2))){b+=a.reader.read(),g=!1;continue}break}b+=a.reader.read()}return a.createToken("number",b,e,f)}function r(a,b,c){var d,e=E[a]||[];for(d=0;d<e.length;d++)e[d].call(b,c)}function s(a){this.options=i(j(B),a)}var t,u,v=!1,w=v?"\r":"\n",x=function(){return null},y=0,z="plaintext",A="sunlight-",B={tabWidth:4,classPrefix:A,showWhitespace:!1,maxHeight:!1},C={},D={},E={beforeHighlightNode:[],beforeHighlight:[],beforeTokenize:[],afterTokenize:[],beforeAnalyze:[],afterAnalyze:[],afterHighlight:[],afterHighlightNode:[]};t=function(){function a(a){return function(c){var d=b.createElement("span");return d.className=c.options.classPrefix+a,d.appendChild(c.createTextNode(c.tokens[c.index])),c.addNode(d)||!0}}return{handleToken:function(b){return a(b.tokens[b.index].name)(b)},handle_default:function(a){return a.addNode(a.createTextNode(a.tokens[a.index]))},handle_ident:function(b){var c=function(c,d){var e;for(c=c||[],e=0;e<c.length;e++)if("function"==typeof c[e]){if(c[e](b))return a("named-ident")(b)}else if(d&&d(c[e])(b.tokens))return a("named-ident")(b);return!1};return c(b.language.namedIdentRules.custom)||c(b.language.namedIdentRules.follows,function(a){return l(b.index-1,-1,a,b.language.caseInsensitive)})||c(b.language.namedIdentRules.precedes,function(a){return l(b.index+1,1,a,b.language.caseInsensitive)})||c(b.language.namedIdentRules.between,function(a){return m(b.index,a.opener,a.closer,b.language.caseInsensitive)})||a("ident")(b)}}}(),D={analyzer:e(t),customTokens:[],namedIdentRules:{},punctuation:/[^\w\s]/,numberParser:q,caseInsensitive:!1,doNotParse:/\s/,contextItems:{},embeddedLanguages:{}},u=function(){var a=null;return a=b.defaultView&&b.defaultView.getComputedStyle?b.defaultView.getComputedStyle:function(a){return a.currentStyle||{}},function(b,c){return a(b,null)[c]}}(),s.prototype=function(){function a(a,b){var c=a[2]||[],d=a[1].length,e="string"==typeof a[1]?new RegExp(k(a[1])):a[1].regex,f=a[3]||!1;return function(a,g,h,i,j,k){function l(b){var f,g,i=a.reader.current();for(g=0;g<c.length;g++)if(f=(b?i:"")+a.reader.peek(c[g].length-b),f===c[g])return h+=a.reader.read(f.length-b),!0;return f=(b?i:"")+a.reader.peek(d-b),e.test(f)?(m=!0,!1):(h+=b?i:a.reader.read(),!0)}var m=!1;if(h=h||"",k=k?1:0,!k||l(!0))for(;a.reader.peek()!==a.reader.EOF&&l(!1););return k?(h+=a.reader.current(),a.reader.read()):h+=f||a.reader.peek()===a.reader.EOF?"":a.reader.read(d),m||(a.continuation=g),a.createToken(b,h,i,j)}}function e(a){var b,c;for(b=0;b<a.language.embeddedLanguages.length;b++)if(C[a.language.embeddedLanguages[b].language]&&(c=j(a.language.embeddedLanguages[b]),c.switchTo(a))){c.oldItems=j(a.items),a.embeddedLanguageStack.push(c),a.language=C[c.language],a.items=i(a.items,j(a.language.contextItems));break}}function h(a){var b,c=g(a.embeddedLanguageStack);c&&c.switchBack(a)&&(a.language=C[c.parentLanguage],b=a.embeddedLanguageStack.pop(),a.items=j(b.oldItems),b.oldItems={})}function l(a,b,f,g){var i,k,l,m=[];for(r("beforeTokenize",this,{code:a,language:b}),i={reader:d(a),language:b,items:j(b.contextItems),token:function(a){return m[a]},getAllTokens:function(){return m.slice(0)},count:function(){return m.length},options:g,embeddedLanguageStack:[],defaultData:{text:"",line:1,column:1},createToken:function(a,b,c,d){return{name:a,line:c,value:v?b.replace(/\n/g,"\r"):b,column:d,language:this.language.name}}},f.continuation&&(k=f.continuation,f.continuation=null,m.push(k(i,k,"",i.reader.getLine(),i.reader.getColumn(),!0)));!i.reader.isEof();)e(i),l=s(i),null!==l&&(""!==i.defaultData.text&&(m.push(i.createToken("default",i.defaultData.text,i.defaultData.line,i.defaultData.column)),i.defaultData.text=""),l[0]!==c?m=m.concat(l):m.push(l)),h(i),i.reader.read();return""!==i.defaultData.text&&m.push(i.createToken("default",i.defaultData.text,i.defaultData.line,i.defaultData.column)),r("afterTokenize",this,{code:a,parserContext:i}),i}function m(a,c,d){var e=[],f=function(){var a,b;return d.showWhitespace?(a=String.fromCharCode(183),b=new Array(d.tabWidth).join(String.fromCharCode(8212))+String.fromCharCode(8594)):(a=String.fromCharCode(160),b=new Array(d.tabWidth+1).join(a)),function(c){for(var e,f,g,h,i=c.value.split(" ").join(a);(e=i.indexOf("	"))>=0;)f=i.lastIndexOf(w,e),g=-1===f?e:e-f-1,h=d.tabWidth-g%d.tabWidth,i=i.substring(0,e)+b.substring(d.tabWidth-h)+i.substring(e+1);return i}}();return{tokens:(c.tokens||[]).concat(a.getAllTokens()),index:c.index?c.index+1:0,language:null,getAnalyzer:x,options:d,continuation:a.continuation,addNode:function(a){e.push(a)},createTextNode:function(a){return b.createTextNode(f(a))},getNodes:function(){return e},resetNodes:function(){e=[]},items:a.items}}function o(a,b,d){var e,f=C[b];return d=d||{},f===c&&(f=C[z]),r("beforeHighlight",this,{code:a,language:f,previousContext:d}),e=m(l.call(this,a,f,d,this.options),d,this.options),q.call(this,e,d.index?d.index+1:0),r("afterHighlight",this,{analyzerContext:e}),e}function p(a){var c=b.createElement("span");return c.className=a.options.classPrefix+a.language.name,c}function q(a,b){var c,d,e,g,h,i,j,k;if(r("beforeAnalyze",this,{analyzerContext:a}),a.tokens.length>0){for(a.language=C[a.tokens[0].language]||C[z],c=[],d=0,e=p(a),g=b;g<a.tokens.length;g++)j=C[a.tokens[g].language]||C[z],j.name!==a.language.name&&(f(e,a.getNodes()),a.resetNodes(),c.push(e),a.language=j,e=p(a)),a.index=g,h=a.tokens[g].name,i="handle_"+h,k=a.getAnalyzer.call(a)||a.language.analyzer,k[i]?k[i](a):k.handleToken(a);for(f(e,a.getNodes()),c.push(e),a.resetNodes(),g=0;g<c.length;g++)a.addNode(c[g])}r("afterAnalyze",this,{analyzerContext:a})}var s=function(){function b(a){return a.language.identFirstLetter&&a.language.identFirstLetter.test(a.reader.current())}function d(a){return n(a,a.language.keywords,"keyword")}function e(a){var b,d;if(a.language.customTokens===c)return null;for(b in a.language.customTokens)if(d=n(a,a.language.customTokens[b],b),null!==d)return d;return null}function f(a){return n(a,a.language.operators,"operator")}function g(a){var b=a.reader.current();return a.language.punctuation.test(k(b))?a.createToken("punctuation",b,a.reader.getLine(),a.reader.getColumn()):null}function h(a){var c,d,e=a.reader.getLine(),f=a.reader.getColumn();if(!b(a))return null;for(c=a.reader.current();(d=a.reader.peek())!==a.reader.EOF&&a.language.identAfterFirstLetter.test(d);)c+=a.reader.read();return a.createToken("ident",c,e,f)}function i(a){return""===a.defaultData.text&&(a.defaultData.line=a.reader.getLine(),a.defaultData.column=a.reader.getColumn()),a.defaultData.text+=a.reader.current(),null}function j(b){var c,d,e,f,g,h,i,j,k=b.reader.current();for(c in b.language.scopes)for(d=b.language.scopes[c],e=0;e<d.length;e++)if(f=d[e][0],j=k+b.reader.peek(f.length-1),f===j||b.language.caseInsensitive&&j.toUpperCase()===f.toUpperCase())return g=b.reader.getLine(),h=b.reader.getColumn(),b.reader.read(f.length-1),(i=a(d[e],c))(b,i,j,g,h);return null}function l(a){return a.language.numberParser(a)}function m(a){var b,d,e=a.language.customParseRules;if(e===c)return null;for(b=0;b<e.length;b++)if(d=e[b](a))return d;return null}return function(a){return a.language.doNotParse.test(a.reader.current())?i(a):m(a)||e(a)||d(a)||j(a)||h(a)||l(a)||f(a)||g(a)||i(a)}}();return{matchSunlightNode:function(){var a;return function(b){return a||(a=new RegExp("(?:\\s|^)"+this.options.classPrefix+"highlight-(\\S+)(?:\\s|$)")),a.exec(b.className)}}(),isAlreadyHighlighted:function(){var a;return function(b){return a||(a=new RegExp("(?:\\s|^)"+this.options.classPrefix+"highlighted(?:\\s|$)")),a.test(b.className)}}(),highlight:function(a,b){return o.call(this,a,b)},highlightNode:function t(a){var c,d,e,f,g,h,i,j,k;if(!this.isAlreadyHighlighted(a)&&null!==(c=this.matchSunlightNode(a))){for(d=c[1],e=0,r("beforeHighlightNode",this,{node:a}),f=0;f<a.childNodes.length;f++)if(3===a.childNodes[f].nodeType)for(i=o.call(this,a.childNodes[f].nodeValue,d,i),y++,e=e||y,g=i.getNodes(),a.replaceChild(g[0],a.childNodes[f]),h=1;h<g.length;h++)a.insertBefore(g[h],g[h-1].nextSibling);else 1===a.childNodes[f].nodeType&&t.call(this,a.childNodes[f]);a.className+=" "+this.options.classPrefix+"highlighted","block"===u(a,"display")&&(j=b.createElement("div"),j.className=this.options.classPrefix+"container",k=b.createElement("div"),k.className=this.options.classPrefix+"code-container",this.options.maxHeight!==!1&&(k.style.overflowY="auto",k.style.maxHeight=this.options.maxHeight+(/^\d+$/.test(this.options.maxHeight)?"px":"")),j.appendChild(k),a.parentNode.insertBefore(k,a),a.parentNode.removeChild(a),k.appendChild(a),k.parentNode.insertBefore(j,k),k.parentNode.removeChild(k),j.appendChild(k)),r("afterHighlightNode",this,{container:j,codeContainer:k,node:a,count:e})}}}}(),a.Sunlight={version:"1.22.0",Highlighter:s,createAnalyzer:function(){return e(t)},globalOptions:B,highlightAll:function(a){var c,d=new s(a),e=b.getElementsByTagName("*");for(c=0;c<e.length;c++)d.highlightNode(e[c])},registerLanguage:function(a,b){var c,d,e;if(!a)throw'Languages must be registered with an identifier, e.g. "php" for PHP';b=i(i({},D),b),b.name=a,b.keywords=p(b.keywords||[],"\\b",b.caseInsensitive),b.operators=p(b.operators||[],"",b.caseInsensitive);for(c in b.customTokens)b.customTokens[c]=p(b.customTokens[c].values,b.customTokens[c].boundary,b.caseInsensitive);d=[];for(e in b.embeddedLanguages)d.push({parentLanguage:b.name,language:e,switchTo:b.embeddedLanguages[e].switchTo,switchBack:b.embeddedLanguages[e].switchBack});b.embeddedLanguages=d,C[b.name]=b},isRegistered:function(a){return C[a]!==c},bind:function(a,b){if(!E[a])throw'Unknown event "'+a+'"';
E[a].push(b)},util:{last:g,regexEscape:k,eol:w,clone:j,escapeSequences:["\\n","\\t","\\r","\\\\","\\v","\\f"],contains:h,matchWord:n,createHashMap:p,createBetweenRule:m,createProceduralRule:l,getNextNonWsToken:function(a,b){return o(a,b,1,function(a){return"default"===a.name})},getPreviousNonWsToken:function(a,b){return o(a,b,-1,function(a){return"default"===a.name})},getNextWhile:function(a,b,c){return o(a,b,1,c)},getPreviousWhile:function(a,b,c){return o(a,b,-1,c)},whitespace:{token:"default",optional:!0},getComputedStyle:u}},a.Sunlight.registerLanguage(z,{punctuation:/(?!x)x/,numberParser:x})}(this,document),function(a,b){function c(a){for(var b,c=a.count();b=a.token(--c);){if("operator"===b.name&&(">"===b.value||"/>"===b.value||"</"===b.value))return!1;if("tagName"===b.name||"xmlOpenTag"===b.name)return!0}return!1}if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("xml",{caseInsensitive:!0,scopes:{comment:[["<!--","-->"],["<%--","--%>"]],cdata:[["<![CDATA[","]]>"]],doctype:[["<!DOCTYPE",">"]]},punctuation:/(?!x)x/,numberParser:function(){},customTokens:{xmlOpenTag:{values:["<?xml"],boundary:""},xmlCloseTag:{values:["?>"],boundary:""},aspOpenTag:{values:["<%@","<%$","<%#","<%=","<%"],boundary:""},aspCloseTag:{values:["%>"],boundary:""}},customParseRules:[function(b){var c,d,e=b.reader.current(),f=e,g=b.reader.getLine(),h=b.reader.getColumn();if(!/[A-Za-z_]/.test(e))return null;if(c=b.token(b.count()-1),!c||"operator"!==c.name||!a.util.contains(["<","</"],c.value))return null;for(;(d=b.reader.peek())&&/[.\w-]/.test(d);)f+=b.reader.read();return b.createToken("tagName",f,g,h)},function(a){var b,d,e=a.reader.current(),f=a.reader.getLine(),g=a.reader.getColumn();if('"'!==e&&"'"!==e)return null;if(!c(a))return null;for(b=e;(d=a.reader.peek())&&(b+=a.reader.read(),d!==e););return a.createToken("string",b,f,g)},function(a){var b,d,e=a.reader.current(),f=1,g=a.reader.getLine(),h=a.reader.getColumn();if(!/[A-Za-z_]/.test(e))return null;if(!c(a))return null;for(b=a.reader.peek();b.length===f;){if(/<$/.test(b))return null;if(/>$/.test(b))return d=d||e+b.substring(0,b.length-1),a.reader.read(d.length-1),a.createToken("attribute",d,g,h);!d&&/[=\s:]$/.test(b)&&(d=e+b.substring(0,b.length-1)),b=a.reader.peek(++f)}return null},function(a){var b,c=a.reader.current(),d=1,e=a.reader.getLine(),f=a.reader.getColumn();if("&"!==c)return null;for(b=a.reader.peek(d);b.length===d;){if(";"===b.charAt(b.length-1))return a.createToken("entity",c+a.reader.read(d),e,f);if(!/[A-Za-z0-9]$/.test(b))break;b=a.reader.peek(++d)}return null},function(a){var b,c="<%--",d=a.reader.getLine(),e=a.reader.getColumn();if("<"!==a.reader.current()||"%--"!==a.reader.peek(3))return null;for(a.reader.read(3);b=a.reader.peek();){if("--%>"===a.reader.peek(4)){c+=a.reader.read(4);break}c+=a.reader.read()}return a.createToken("comment",c,d,e)}],embeddedLanguages:{css:{switchTo:function(a){var b,c=a.token(a.count()-1);if(!c||a.reader.current()+a.reader.peek(6)==="</style")return!1;if("operator"!==c.name||">"!==c.value)return!1;for(b=a.count()-1;c=a.token(--b);)if("tagName"===c.name){if("style"===c.value&&(c=a.token(--b),c&&"operator"===c.name&&"<"===c.value))return!0;break}return!1},switchBack:function(a){return"</style"===a.reader.peek(7)}},javascript:{switchTo:function(a){var b,c=a.token(a.count()-1);if(!c||a.reader.current()+a.reader.peek(7)==="</script")return!1;if("operator"!==c.name||">"!==c.value)return!1;for(b=a.count()-1;c=a.token(--b);)if("tagName"===c.name){if("script"===c.value&&(c=a.token(--b),c&&"operator"===c.name&&"<"===c.value))return!0;break}return!1},switchBack:function(a){return"</script"===a.reader.peek(8)}},php:{switchTo:function(a){var b=a.reader.peek(4);return"<"===a.reader.current()&&("?php"===b||/^\?(?!xml)/.test(b))},switchBack:function(a){var b=a.token(a.count()-1);return b&&"closeTag"===b.name}},csharp:{switchTo:function(a){var b=a.token(a.count()-1);return b&&"aspOpenTag"===b.name},switchBack:function(a){return"%>"===a.reader.peek(2)}},scala:{switchTo:function(a){return a.options.enableScalaXmlInterpolation&&"{"===a.reader.current()?!0:!1},switchBack:function(a){var b=a.token(a.count()-1);if("punctuation"===b.name)if("{"===b.value)a.items.scalaBracketNestingLevel++;else if("}"===b.value&&(a.items.scalaBracketNestingLevel--,0===a.items.scalaBracketNestingLevel))return!0;return!1}}},contextItems:{scalaBracketNestingLevel:0},operators:["=","/>","</","<",">",":"]})}(this.Sunlight),function(a,b){a.fn.sunlight=function(a){var c=new b.Sunlight.Highlighter(a);return this.each(function(){c.highlightNode(this)}),this}}(jQuery,this),function(a,b){if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("6502asm",{keywords:["BCC","BCS","BEQ","BMI","BNE","BPL","BVC","BVS","CMP","CPX","CPY","CLC","CLD","CLI","CLV","SEC","SED","SEI","DEX","DEY","INX","INY","TAX","TAY","TXA","TYA","BRK","NOP","RTI","RTS","ASL","LSR","ROL","ROR","ADC","AND","BIT","DEC","EOR","INC","JMP","JSR","LDA","LDX","LDY","ORA","SBC","STA","STX","STY","PHA","PHP","PLA","PLP","TSX","TXS"],scopes:{string:[['"','"']],comment:[[";","\n",null,!0]]},operators:[">>","<<",">=","<=","==","!=","&&","||","~","-","<",">","*","/","%","+","-","=","&","^","|","?"],identFirstLetter:/[A-Za-z]/,identAfterFirstLetter:/\w/,customTokens:{illegalOpcode:{values:["SLO","RLA","SRE","RRA","SAX","LAX","DCP","ISC","ANC","ALR","ARR","XAA","AXS","AHX","SHY","SHX","TAS","LAS"],boundary:"\\b"},pseudoOp:{values:["BYTE","WORD","DS","ORG","RORG","ALIGN","MAC","ENDM","SUBROUTINE"],boundary:"\\b"}},customParseRules:[function(a){var b,c,d=a.reader.current(),e=a.reader.getLine(),f=a.reader.getColumn(),g=0,h=0;if("#"!==d)return null;for(b=a.reader.peek(),c=d;g>0||h>0||!/\s/.test(b);)")"===b&&g>0&&g--,"]"===b&&h>0&&h--,"("===b&&g++,"["===b&&h++,c+=a.reader.read(),b=a.reader.peek();return a.createToken("constant",c,e,f)},function(){var b=["BCC","BCS","BEQ","BMI","BNE","BPL","BVC","BVS","JMP","JSR"];return function(c){var d,e,f,g=c.reader.getLine(),h=c.reader.getColumn();if(!/[A-Za-z]/.test(c.reader.current()))return null;if(d=a.util.getPreviousNonWsToken(c.getAllTokens(),c.count()),(!d||"keyword"!==d.name||!a.util.contains(b,d.value,!0))&&c.count()>0&&!/\n$/.test(c.defaultData.text))return null;for(e=c.reader.current();(f=c.reader.peek())!==c.reader.EOF&&/\w/.test(f);)e+=c.reader.read();return c.createToken("label",e,g,h)}}()],caseInsensitive:!0,numberParser:function(a){var b,c,d=a.reader.current(),e=a.reader.getLine(),f=a.reader.getColumn();if(/\d/.test(d))b=d,"."===a.reader.peek()&&(b+=a.reader.read());else{if("$"!==d&&"%"!==d)return null;b=d+a.reader.read()}for(;(c=a.reader.peek())!==a.reader.EOF&&/[A-Fa-f0-9]/.test(c);)b+=a.reader.read();return a.createToken("number",b,e,f)}})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("actionscript",{keywords:["default xml namespace","use namespace","break","case","catch","continue","default","do","else","finally","for","if","in","label","return","super","switch","throw","try","while","with","dynamic","final","internal","native","override","private","protected","public","static","class","const","extends","function","get","implements","interface","namespace","package","set","var","import","include","false","null","this","true","typeof","void","as","instanceof","is","new"],customTokens:{varArgs:{values:["...rest"],boundary:"[\\W]"},constant:{values:["Infinity","NaN","undefined"],boundary:"\\b"},globalObject:{values:["ArgumentError","arguments","Array","Boolean","Class","Date","DefinitionError","Error","EvalError","Function","int","Math","Namespace","Number","Object","QName","RangeError","ReferenceError","RegExp","SecurityError","String","SyntaxError","TypeError","uint","URIError","Vector","VerifyError","XMLList","XML"],boundary:"\\b"}},scopes:{string:[['"','"',a.util.escapeSequences.concat(['\\"'])],["'","'",a.util.escapeSequences.concat(["\\'","\\\\"])]],comment:[["//","\n",null,!0],["/*","*/"]],xmlAttribute:[["@","\\b"]]},customParseRules:[function(){var b=a.util.createHashMap(["Array","Boolean","decodeURIComponent","decodeURI","encodeURIComponent","encodeURI","escape","int","isFinite","isNaN","isXMLName","Number","Object","parseFloat","parseInt","String","trace","uint","unescape","Vector","XML","XMLList"],"\\b",!1);return function(c){var d,e,f,g;if(!/[A-Za-z]/.test(c.reader.current()))return null;if(d=c.token(c.count()-1),d&&("keyword"===d.name&&"new"===d.value||"operator"===d.name&&":"===d.value))return null;if(e=a.util.matchWord(c,b,"globalFunction",!0),!e)return null;for(g=e.value.length;(f=c.reader.peek(g))&&f.length===g;)if(!/\s$/.test(f)){if("("===a.util.last(f))return e.line=c.reader.getLine(),e.column=c.reader.getColumn(),c.reader.read(e.value.length-1),e;break}return null}}(),function(c){var d,e,f,g=c.reader.peek(),h="/",i=c.reader.getLine(),j=c.reader.getColumn();if("/"!==c.reader.current()||"/"===g||"*"===g)return null;if(d=function(){var d=c.token(c.count()-1),e=null;return""!==c.defaultData.text&&(e=c.createToken("default",c.defaultData.text)),e||(e=d),e===b?!0:"default"===e.name&&e.value.indexOf("\n")>-1?!0:a.util.contains(["keyword","ident","number"],d.name)?!1:"punctuation"!==d.name||a.util.contains(["(","{","[",",",";"],d.value)?!0:!1}(),!d)return null;for(;c.reader.peek()!==c.reader.EOF;)if(e=c.reader.peek(2),"\\/"!==e&&"\\\\"!==e){if(h+=f=c.reader.read(),"/"===f)break}else h+=c.reader.read(2);for(;c.reader.peek()!==c.reader.EOF&&/[A-Za-z]/.test(c.reader.peek());)h+=c.reader.read();return c.createToken("regexLiteral",h,i,j)}],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\w/,namedIdentRules:{custom:[function(c){var d,e,f,g=a.util.getNextNonWsToken(c.tokens,c.index);if(g&&"operator"===g.name&&"."===g.value)return!1;for(e=c.index,f=c.tokens[e];(d=c.tokens[--e])!==b;){if("keyword"===d.name&&a.util.contains(["new","is","instanceof","import"],d.value))return!0;if("default"!==d.name)if("ident"!==d.name){if("operator"!==d.name||"."!==d.value)break;if(f&&"ident"!==f.name)return!1;f=d}else{if(f&&"ident"===f.name)return!1;f=d}}return!1}],follows:[[{token:"keyword",values:["class","extends"]},{token:"default"}],[{token:"operator",values:[":"]},a.util.whitespace]],between:[{opener:{token:"keyword",values:["implements"]},closer:{token:"punctuation",values:["{"]}}]},operators:["++","+=","+","--","-=","-","*=","*","/=","/","%=","%","&&=","&&","||=","||","|=","|","&=","&","^=","^",">>>=",">>>",">>=",">>","<<=","<<","<=","<",">=",">","===","==","!==","!=","!","~","::","?",":",".","="]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("bash",{keywords:["while","for","in","do","done","until","if","fi","then","else","case","esac","break","continue","select"],customTokens:{command:{values:["return","source","ac","adduser","agetty","agrep","arch","ar","at","autoload","awk","badblocks","banner","basename","batch","bc","bg","bind","bison","builtin","bzgrep","bzip2","caller","cal","cat","cd","chattr","chfn","chgrp","chkconfig","chmod","chown","chroot","cksum","clear","clock","cmp","colrm","column","col","command","comm","compgen","complete","compress","coproc","cpio","cp","cron","crypt","csplit","cut","cu","date","dc","dd","debugfs","declare","depmod","df","dialog","diff3","diffstat","diff","dig","dirname","dirs","disown","dmesg","doexec","dos2unix","dump","dumpe2fs","du","e2fsck","echo","egrep","enable","enscript","env","eqn","eval","exec","exit","expand","export","expr","factor","false","fdformat","fdisk","fgrep","fg","file","find","finger","flex","flock","fmt","fold","free","fsck","ftp","fuser","getfacl","getopts","getopt","gettext","getty","gnome-mount","grep","groff","groupmod","groups","gs","gzip","halt","hash","hdparm","head","help","hexdump","hostid","hostname","host","hwclock","iconv","id","ifconfig","infocmp","info","init","insmod","install","ipcalc","ip","iwconfig","jobs","join","jot","killall","kill","lastcomm","lastlog","last","ldd","less","let","lex","lid","ln","locate","lockfile","logger","logname","logout","logrotate","look","losetup","lp","lsdev","lsmod","lsof","lspci","lsusb","ls","ltrace","lynx","lzcat","lzma","m4","mailstats","mailto","mail","makedev","make","man","mapfile","mcookie","md5sum","merge","mesg","mimencode","mkbootdisk","mkdir","mke2fs","mkfifo","mkisofs","mknod","mkswap","mktemp","mmencode","modinfo","modprobe","more","mount","msgfmt","mv","nc","netconfig","netstat","newgrp","nice","nl","nmap","nm","nohup","nslookup","objdump","od","openssl","passwd","paste","patch","diff","pathchk","pax","pgrep","pidof","ping","pkill","popd","pr","printenv","printf","procinfo","pstree","ps","ptx","pushd","pwd","quota","rcp","rdev","rdist","readelf","readlink","readonly","read","reboot","recode","renice","reset","resize","restore","rev","rlogin","rmdir","rmmod","rm","route","rpm2cpio","rpm","rsh","rsync","runlevel","run-parts","rx","rz","sar","scp","script","sdiff","sed","seq","service","setfacl","setquota","setserial","setterm","set","sha1sum","shar","shopt","shred","shutdown","size","skill","sleep","slocate","snice","sort","source","sox","split","sq","ssh","stat","strace","strings","strip","stty","sudo","sum","suspend","su","swapoff","swapon","sx","sync","sz","tac","tail","tar","tbl","tcpdump","tee","telinit","telnet","tex","texexec","time","times","tmpwatch","top","touch","tput","traceroute","true","tr","tset","tsort","tty","tune2fs","typeset","type","ulimit","umask","umount","uname","unarc","unarj","uncompress","unexpand","uniq","units","unlzma","unrar","unset","unsq","unzip","uptime","usbmodules","useradd","userdel","usermod","users","usleep","uucp","uudecode","uuencode","uux","vacation","vdir","vmstat","vrfy","wait","wall","watch","wc","wget","whatis","whereis","which","whoami","whois","who","write","w","xargs","yacc","yes","zcat","zdiff","zdump","zegrep","zfgrep","zgrep","zip"],boundary:"\\b"},specialVariable:{values:["$$","$?","$#"],boundary:""}},scopes:{string:[['"','"',a.util.escapeSequences.concat(['\\"'])],["'","'",["'","\\\\"]]],hashBang:[["#!","\n",null,!0]],comment:[["#","\n",null,!0]],verbatimCommand:[["`","`",["\\`","\\\\"]]],variable:[["$",{length:1,regex:/[\W]/},null,!0]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\w/,namedIdentRules:{precedes:[[a.util.whitespace,{token:"punctuation",values:["("]},a.util.whitespace,{token:"punctuation",values:[")"]},a.util.whitespace,{token:"punctuation",values:["{"]}]]},operators:["++","--","=","/","+","*","-","!=",".","|",":",",","!","?",">>",">","<",";;",";"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("batch",{caseInsensitive:!0,scopes:{string:[['"','"',['\\"',"\\\\"]]],comment:[["REM","\n",null,!0],["::","\n",null,!0]],variable:[["%",{regex:/[^\w%]/,length:1},null,!0]]},customParseRules:[function(a){var b,c,d,e,f="";if(!a.reader.isSolWs()||":"!==a.reader.current()||":"===a.reader.peek())return null;for(b=a.createToken("operator",":",a.reader.getLine(),a.reader.getColumn());(c=a.reader.peek())&&!/\s/.test(c);)f+=a.reader.read(),d||(d=a.reader.getLine(),e=a.reader.getColumn());return""===f?null:[b,a.createToken("label",f,d,e)]},function(b){var c,d,e=a.util.createProceduralRule(b.count()-1,-1,[{token:"keyword",values:["goto"]},{token:"operator",values:[":"],optional:!0}],!0),f=b.reader.getLine(),g=b.reader.getColumn();if(!e(b.getAllTokens()))return null;for(d=b.reader.current();(c=b.reader.peek())&&!/[\W]/.test(c);)d+=b.reader.read();return b.createToken("label",d,f,g)},function(){var b=a.util.createHashMap(["assoc","attrib","break","bcdedit","cacls","call","cd","chcp","chdir","chkdsk","chkntfs","cls","cmd","color","comp","compact","convertfcopy","date","del","dir","diskcomp","diskcopy","diskpart","doskey","driverquery","echo","endlocal","erase","exit","fc","findstr","find","format","for","fsutil","ftype","goto","gpresult","graftabl","help","icacls","if","label","md","mkdir","mklink","mode","more","move","openfiles","path","pause","popd","print","prompt","pushd","rd","recover","rename","ren","replace","rmdir","robocopy","setlocal","set","schtasks","sc","shift","shutdown","sort","start","subst","systeminfo","tasklist","taskkill","time","title","tree","type","verify","ver","vol","xcopy","wmic","lfnfor","do","else","errorlevel","exist","in","not","choice","com1","con","prn","aux","nul","lpt1","exit","eof","off","on","equ","neq","lss","leq","gtr","geq"],"\\b",!0);return function(c){var d,e,f=a.util.matchWord(c,b,"keyword",!0);if(!f)return null;if(!c.reader.isSolWs())for(e=c.count();d=c.token(--e);){if("keyword"===d.name&&a.util.contains(["echo","title","set"],d.value))return null;if("operator"===d.name&&"="===d.value)return null;if("operator"===d.name&&"|"===d.value)break;if("default"===d.name&&d.value.indexOf("\n")>=0)break}return c.reader.read(f.value.length-1),f}}()],identFirstLetter:/[A-Za-z_\.]/,identAfterFirstLetter:/[\w-]/,operators:["&&","||","&",":","/","==","|","@","*",">>",">","<","==!","!","=","+"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("brainfuck",{customTokens:{increment:{values:[">"],boundary:""},decrement:{values:["<"],boundary:""},incrementPointer:{values:["+"],boundary:""},decrementPointer:{values:["-"],boundary:""},write:{values:["."],boundary:""},read:{values:[","],boundary:""},openLoop:{values:["["],boundary:""},closeLoop:{values:["]"],boundary:""}}})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";var c=["int","char","void","long","signed","unsigned","double","bool","typename","class","short","wchar_t","struct"],d=["int","char","void","long","signed","unsigned","double","bool","typename","class","short","wchar_t"];a.registerLanguage("cpp",{keywords:["and","default","noexcept","template","and_eq","delete","not","this","alignof","double","not_eq","thread_local","asm","dynamic_cast","nullptr","throw","auto","else","operator","true","bitand","enum","or","try","bitor","explicittodo","or_eq","typedef","bool","export","private","typeid","break","externtodo","protected","typename","case","false","public","union","catch","float","register","using","char","for","reinterpret_cast","unsigned","char16_t","friend","return","void","char32_t","goto","short","wchar_t","class","if","signed","virtual","compl","inline","sizeof","volatile","const","int","static","while","constexpr","long","static_assert","xor","const_cast","mutable","static_cast","xor_eq","continue","namespace","struct","decltype","new","switch"],customTokens:{constant:{values:["EXIT_SUCCESS","EXIT_FAILURE","SIG_DFL","SIG_IGN","SIG_ERR","SIGABRT","SIGFPE","SIGILL","SIGINT","SIGSEGV","SIGTERM"],boundary:"\\b"},basicType:{values:["ptrdiff_t","size_t","nullptr_t","max_align_t"],boundary:"\\b"},ellipsis:{values:["..."],boundary:""}},scopes:{string:[['"','"',a.util.escapeSequences.concat(['\\"'])]],"char":[["'","'",["\\'","\\\\"]]],comment:[["//","\n",null,!0],["/*","*/"]],preprocessorDirective:[["#","\n",null,!0]]},customParseRules:[],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\w/,namedIdentRules:{custom:[function(){var b=[[a.util.whitespace,{token:"operator",values:["*","**"]},{token:"default"},{token:"ident"},a.util.whitespace,{token:"punctuation",values:[";"]}],[{token:"default"},{token:"operator",values:["&"]},a.util.whitespace,{token:"ident"}]];return function(c){var d,e,f=function(d){for(var e=0;e<b.length;e++)if(a.util.createProceduralRule(c.index+1,1,b[e],!1)(d))return!0;return!1}(c.tokens);if(!f)return!1;for(e=c.index;d=c.tokens[--e];){if("punctuation"===d.name&&(";"===d.value||"{"===d.value))return!0;if("operator"===d.name&&"="===d.value)return!1}return!1}}(),function(){var b=[[a.util.whitespace,{token:"punctuation",values:[")"]},a.util.whitespace,{token:"ident"}],[{token:"operator",values:["*","**"]},a.util.whitespace,{token:"punctuation",values:[")"]},a.util.whitespace,{token:"operator",values:["&"],optional:!0},{token:"ident"}]];return function(c){var d,e,f,g=function(d){for(var e=0;e<b.length;e++)if(a.util.createProceduralRule(c.index+1,1,b[e],!1)(d))return!0;return!1}(c.tokens);if(!g)return!1;for(e=c.index;d=c.tokens[--e];)if("punctuation"===d.name&&"("===d.value)return f=a.util.getPreviousNonWsToken(c.tokens,e),f&&"keyword"===f.name?!1:!0;return!1}}(),function(c){var e,f,g=c.index,h=a.util.getPreviousNonWsToken(c.tokens,c.index),i=!1;if(!h||"keyword"===h.name)return!1;for(f=[0,0];(e=c.tokens[--g])!==b;){if("keyword"===e.name&&"class"===e.value)return!1;if("operator"!==e.name){if(!("keyword"===e.name&&a.util.contains(d,e.value)||"default"===e.name||"punctuation"===e.name&&","===e.value)){if("ident"!==e.name)break;i=!0}}else switch(e.value){case"<":case"<<":f[0]+=e.value.length;break;case">":case">>":if(0===f[0])return!1;f[1]+=e.value.length;break;case".":break;default:return!1}}if(!i||0===f[0])return!1;for(g=c.index;(e=c.tokens[++g])!==b;){if("operator"===e.name&&(">"===e.value||">>"===e.value))return!0;if(!("keyword"===e.name&&a.util.contains(d,e.value)||"operator"===e.name&&a.util.contains(["<","<<",">",">>"],e.value)||"punctuation"===e.name&&","===e.value||"ident"===e.name||"default"===e.name))return!1}return!1},function(e){var f,g,h=a.util.getPreviousNonWsToken(e.tokens,e.index);if(h!==b&&("ident"===h.name||"keyword"===h.name&&a.util.contains(c.concat(["string","object","void"]),h.value)||"operator"===h.name&&"."===h.value))return!1;if(h=a.util.getNextNonWsToken(e.tokens,e.index),!h||"operator"!==h.name||"<"!==h.value)return!1;for(f=e.index,g=[0,0];(h=e.tokens[++f])!==b;)if("operator"!==h.name){if(!("default"===h.name||"ident"===h.name||"keyword"===h.name&&a.util.contains(d,h.value)||"punctuation"===h.name&&","===h.value))return!1}else{switch(h.value){case"<":g[0]++;break;case"<<":g[0]+=2;break;case">":g[1]++;break;case">>":g[1]+=2;break;default:return!1}if(g[0]===g[1])break}return g[0]!==g[1]?!1:(h=e.tokens[++f],!h||"default"!==h.name&&"ident"!==h.name?!1:"default"!==h.name||(h=e.tokens[++f],h&&"ident"===h.name)?!0:!1)},function(b){var c,d,e=a.util.getPreviousNonWsToken(b.tokens,b.index);if(!e||"keyword"!==e.name||"class"!==e.value)return!1;for(d=b.index;c=b.tokens[++d];){if("punctuation"===c.name&&"{"===c.value)return!0;if("operator"===c.name&&a.util.contains([">",">>"],c.value))return!1}return!1}],follows:[[{token:"keyword",values:["enum","struct","union"]},a.util.whitespace]],precedes:[[{token:"default"},{token:"ident"}],[a.util.whitespace,{token:"operator",values:["*","**"]},{token:"default"},{token:"ident"},a.util.whitespace,{token:"operator",values:["=",","]}],[a.util.whitespace,{token:"operator",values:["*","**"]},{token:"default"},{token:"operator",values:["&"]},a.util.whitespace,{token:"ident"},a.util.whitespace,{token:"operator",values:["=",","]}],[a.util.whitespace,{token:"operator",values:["::"]}]]},operators:["==","=","+=","++","+","->*","->","-=","--","-","**","*=","*","/=","/","%=","%","!=","!",">>=",">>",">=",">","<<=","<<","<=","<","&=","&&","&","|=","||","|","~","^=","^",".*",".","?","::",":",","]})}(this.Sunlight),function(a,b){function c(a){var b=/^T([A-Z0-9]\w*)?$/;return function(c){return!b.test(c.tokens[c.index].value)&&a(c)}}if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";var d=["int","bool","double","float","char","byte","sbyte","uint","long","ulong","char","decimal","short","ushort"],e=d.concat(["in","out","string","object"]);a.registerLanguage("csharp",{keywords:d.concat(["extern alias","public","private","protected","internal","static","sealed","abstract","partial","virtual","override","new","implicit","explicit","extern","override","operator","const","readonly","volatile","class","interface","enum","struct","event","delegate","null","true","false","string","object","void","for","foreach","do","while","fixed","unchecked","using","lock","namespace","checked","unsafe","if","else","try","catch","finally","break","continue","goto","case","throw","return","switch","yield return","yield break","in","out","ref","params","as","is","typeof","this","sizeof","stackalloc","var","default","from","select","where","groupby","orderby"]),customParseRules:[function(a){var b,c,d="xmlDocCommentMeta",e="xmlDocCommentContent",f={line:0,column:0,value:"",name:null};if("/"!==a.reader.current()||"//"!==a.reader.peek(2))return null;for(b=[a.createToken(d,"///",a.reader.getLine(),a.reader.getColumn())],a.reader.read(2);(c=a.reader.peek())!==a.reader.EOF;)if("<"!==c||f.name===d)if(">"!==c||f.name!==d){if("\n"===c)break;null===f.name&&(f.name=e,f.line=a.reader.getLine(),f.column=a.reader.getColumn()),f.value+=a.reader.read()}else f.value+=a.reader.read(),b.push(a.createToken(f.name,f.value,f.line,f.column)),f.name=null,f.value="";else""!==f.value&&b.push(a.createToken(f.name,f.value,f.line,f.column)),f.line=a.reader.getLine(),f.column=a.reader.getColumn(),f.name=d,f.value=a.reader.read();return f.name===e&&b.push(a.createToken(f.name,f.value,f.line,f.column)),b.length>0?b:null},function(b){var c,d,e,f,g=!1,h=b.reader.getLine(),i=b.reader.getColumn();if(!/^(get|set)\b/.test(b.reader.current()+b.reader.peek(3)))return null;if(c=a.util.createProceduralRule(b.count()-1,-1,[{token:"punctuation",values:["}","{",";"]},a.util.whitespace,{token:"keyword",values:["public","private","protected","internal"],optional:!0}]),!c(b.getAllTokens()))return null;for(d="get".length,e=b.reader.peek(d);e.length===d;){if(!/\s$/.test(e)){if(!/[\{;]$/.test(e))return null;g=!0;break}e=b.reader.peek(++d)}return g?(f=b.reader.current()+b.reader.read(2),b.createToken("keyword",f,h,i)):null},function(a){var c,d,e,f,g,h,i,j=a.reader.getLine(),k=a.reader.getColumn();if(!/^value\b/.test(a.reader.current()+a.reader.peek(5)))return null;for(c="value".length,d=a.reader.peek(c);d.length===c;){if(!/\s$/.test(d)){if(i=a.reader.peek(c+1),"="===d.charAt(d.length-1)&&"="!==i.charAt(i.length-1))return null;e=!0;break}d=a.reader.peek(++c)}if(!e)return null;g=a.count()-1,h=[0,0];a:for(;(f=a.token(g--))!==b;)if("punctuation"===f.name)"{"===f.value?h[0]++:"}"===f.value&&h[1]++;else if("keyword"===f.name)switch(f.value){case"set":break a;case"class":case"public":case"private":case"protected":case"internal":return null}return f===b?null:h[1]>=h[0]?null:(a.reader.read(4),a.createToken("keyword","value",j,k))}],scopes:{string:[['"','"',a.util.escapeSequences.concat(['\\"'])],['@"','"',['""']]],"char":[["'","'",["\\'","\\\\"]]],comment:[["//","\n",null,!0],["/*","*/"]],pragma:[["#","\n",null,!0]]},identFirstLetter:/[A-Za-z_@]/,identAfterFirstLetter:/\w/,namedIdentRules:{custom:[c(function(a){for(var c,d,e=a.index,f=!1;(c=a.tokens[--e])!==b;){if("punctuation"===c.name&&"{"===c.value)return!1;if("keyword"===c.name&&"case"===c.value)return!1;if("keyword"===c.name&&("class"===c.value||"where"===c.value)){if(d="default"===a.tokens[e+1].name?a.tokens[e+2]:a.tokens[e+1],"punctuation"===d.name&&","===d.value)continue;break}"operator"===c.name&&":"===c.value&&(f=!0)}return f?!0:!1}),c(function(c){for(var d,f=c.index,g=!1,h=[0,0];(d=c.tokens[--f])!==b;){if("keyword"===d.name&&"class"===d.value)return!1;if("operator"===d.name){switch(d.value){case"<":case"<<":h[0]+=d.value.length;continue;case">":case">>":if(0===h[0])return!1;h[1]+=d.value.length;continue}break}if(!("keyword"===d.name&&a.util.contains(e,d.value)||"default"===d.name||"punctuation"===d.name&&","===d.value)){if("ident"!==d.name)break;g=!0}}if(!g||0===h[0])return!1;for(f=c.index;(d=c.tokens[++f])!==b;){if("operator"===d.name&&(">"===d.value||">>"===d.value))return!0;if(!("keyword"===d.name&&a.util.contains(e,d.value)||"operator"===d.name&&a.util.contains(["<","<<",">",">>"],d.value)||"punctuation"===d.name&&","===d.value||"ident"===d.name||"default"===d.name))return!1}return!1}),c(function(c){var f,g,h=a.util.getPreviousNonWsToken(c.tokens,c.index);if(h!==b&&("ident"===h.name||"keyword"===h.name&&a.util.contains(d.concat(["string","object","void"]),h.value)||"operator"===h.name&&"."===h.value))return!1;if(h=a.util.getNextNonWsToken(c.tokens,c.index),!h||"operator"!==h.name||"<"!==h.value)return!1;for(f=c.index,g=[0,0];(h=c.tokens[++f])!==b;)if("operator"!==h.name){if(!("default"===h.name||"ident"===h.name||"keyword"===h.name&&a.util.contains(e,h.value)||"punctuation"===h.name&&","===h.value))return!1}else{switch(h.value){case"<":g[0]++;break;case"<<":g[0]+=2;break;case">":g[1]++;break;case">>":g[1]+=2;break;default:return!1}if(g[0]===g[1])break}return g[0]!==g[1]?!1:(h=c.tokens[++f],!h||"default"!==h.name&&"ident"!==h.name?!1:"default"!==h.name||(h=c.tokens[++f],h&&"ident"===h.name)?!0:!1)}),function(b){var c,d=a.util.getPreviousNonWsToken(b.tokens,b.index);return d&&"keyword"===d.name&&"using"===d.value?(c=a.util.getNextNonWsToken(b.tokens,b.index),c&&"operator"===c.name&&"="===c.value?!0:!1):!1},c(function(c){var d,e,f,g=a.util.getNextNonWsToken(c.tokens,c.index),h=!1;if(g&&"operator"===g.name&&("="===g.value||"."===g.value))return!1;for(d=c.index,e=[0,0],h=!1;(g=c.tokens[--d])!==b;)if("punctuation"===g.name){if("["===g.value){e[0]++;continue}if("]"===g.value){e[1]++;continue}if(","===g.value&&(h=!0),"{"===g.value||"}"===g.value||";"===g.value)break}if(0===e[0]||e[0]===e[1])return!1;for(d=c.index,f=-1;(g=c.tokens[++d])!==b;)if("punctuation"===g.name){if("["===g.value){e[0]++;continue}if("]"===g.value){f=d,e[1]++;continue}if("{"===g.value||"}"===g.value||";"===g.value)break}return 0>f||e[0]!==e[1]?!1:(g=a.util.getNextNonWsToken(c.tokens,f),!g||"keyword"!==g.name&&"ident"!==g.name?!1:!0)}),c(function(c){var d,e,f,g=a.util.getNextNonWsToken(c.tokens,c.index);if(g&&"operator"===g.name&&"."===g.value)return!1;for(e=c.index,f=c.tokens[e];(d=c.tokens[--e])!==b;){if("keyword"===d.name&&("new"===d.value||"is"===d.value))return!0;if("default"!==d.name)if("ident"!==d.name){if("operator"!==d.name||"."!==d.value)break;if(f&&"ident"!==f.name)return!1;f=d}else{if(f&&"ident"===f.name)return!1;f=d}}return!1}),function(){var b=[[a.util.whitespace,{token:"punctuation",values:[")"]},a.util.whitespace,{token:"ident"}],[a.util.whitespace,{token:"punctuation",values:[")"]},a.util.whitespace,{token:"keyword",values:["this"]}]];return c(function(c){var d,e,f,g=function(d){for(var e=0;e<b.length;e++)if(a.util.createProceduralRule(c.index+1,1,b[e],!1)(d))return!0;return!1}(c.tokens);if(!g)return!1;for(e=c.index;d=c.tokens[--e];)if("punctuation"===d.name&&"("===d.value)return f=a.util.getPreviousNonWsToken(c.tokens,e),f&&"keyword"===f.name?!1:!0;return!1})}(),function(b){var c,d,e=a.util.getNextNonWsToken(b.tokens,b.index);if(!e||"punctuation"!==e.name||";"!==e.value)return!1;for(d=b.index;c=b.tokens[--d];)if("ident"!==c.name&&"default"!==c.name&&("operator"!==c.name||"."!==c.value))return"operator"!==c.name||"="!==c.value?!1:a.util.createProceduralRule(d-1,-1,[{token:"keyword",values:["using"]},{token:"default"},{token:"ident"},a.util.whitespace])(b.tokens);return!1},c(function(b){var c,d=[[{token:"keyword",values:["class","interface","event","struct","enum","delegate","public","private","protected","internal","static","virtual","sealed","params"]},a.util.whitespace],[{token:"keyword",values:["typeof","default"]},a.util.whitespace,{token:"punctuation",values:["("]},a.util.whitespace],[{token:"keyword",values:["as"]},a.util.whitespace]],e=[[a.util.whitespace,{token:"punctuation",values:["["]},a.util.whitespace,{token:"punctuation",values:["]"]}],[{token:"default"},{token:"ident"}]];for(c=0;c<d.length;c++)if(a.util.createProceduralRule(b.index-1,-1,d[c],!1)(b.tokens))return!0;for(c=0;c<e.length;c++)if(a.util.createProceduralRule(b.index+1,1,e[c],!1)(b.tokens))return!0;return!1})]},operators:["++","+=","+","--","-=","-","*=","*","/=","/","%=","%","&&","||","|=","|","&=","&","^=","^",">>=",">>","<<=","<<","<=","<",">=",">","==","!=","!","~","??","?","::",":",".","=>","="]})}(this.Sunlight),function(a,b){function c(a){for(var c,d,e=a.count(),f="",g=!0,h=1;(c=a.token(--e))!==b&&("punctuation"!==c.name||"}"!==c.value);)if("punctuation"===c.name&&"{"===c.value)return null;
for(d=a.reader.peek();d.length===h;){if(letter=d.charAt(d.length-1),/[^\w-]$/.test(d)){if(g=!1,"{"===letter)break;if(";"===letter)return null}g&&(f+=letter),d=a.reader.peek(++h)}return f}if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("css",{caseInsensitive:!0,keywords:["background-color","background-image","background-repeat","background-attachment","background-position","background-clip","background-origin","background-size","background","border-collapse","border-top-style","border-right-style","border-left-style","border-bottom-style","border-style","border-top-width","border-right-width","border-left-width","border-bottom-width","border-width","border-top-color","border-right-color","border-left-color","border-bottom-color","border-color","border-radius","border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius","border-image-repeat","border-image-source","border-image-slice","border-image-width","border-image-outset","border-image","border-top","border-bottom","border-right","border-left","border-spacing","border","box-decoration-break","box-shadow","voice-volume","voice-balance","pause-before","pause-after","pause","rest-before","rest-after","rest","cue-before","cue-after","cue","mark-before","mark-after","mark","voice-family","voice-rate","voice-pitch","voice-pitch-range","voice-stress","voice-duration","phonemes","speak-header","speak-numeral","speak-punctuation","pitch-range","play-during","richness","speak","speech-rate","appearance","icon","box-sizing","outline-width","outline-style","outline-color","outline-offset","outline","resize","cursor","nav-index","nav-up","nav-right","nav-down","nav-left","display","position","float","clear","visibility","bottom","top","left","right","overflow","overflow-x","overflow-y","overflow-style","marquee-style","marquee-direction","marquee-play-count","marquee-speed","padding-top","padding-right","padding-bottom","padding-left","padding","margin-top","margin-right","margin-bottom","margin-left","margin","width","height","min-width","max-width","min-height","max-height","rotation-point","rotation","white-space-collapsing","white-space","line-break","word-break","hyphens","hyphenate-character","hyphenate-limit-before","hyphenate-limit-after","hyphenate-limit-lines","hyphenate-limit-last","hyphenate-resource","text-wrap","word-wrap","text-align-first","text-align-last","text-align","text-justify","word-spacing","letter-spacing","text-trim","text-autospace","text-indent","hanging-punctuation","text-decoration-line","text-decoration-color","text-decoration-style","text-decoration-skip","text-decoration","text-underline-position","text-emphasis-position","text-emphasis-style","text-emphasis-color","text-emphasis","text-shadow","text-outline","text-transform","vertical-align","direction","unicode-bidi","writing-mode","text-orientation","text-combine","color","opacity","font-family","font-weight","font-stretch","font-style","font-size-adjust","font-size","font-synthesis","src","unicode-range","font-feature-settings","font-kerning","vertical-position","font-variant-ligatures","font-variant-caps","font-variant-numeric","font-variant-alternates","font-variant-east-asian","font-variant","font-feature-settings","font-language-override","font","line-height","text-height","transform-origin","transform-style","perspective-origin","perspective","backface-visibility","transform","transition-property","transition-duration","transition-timing-function","transition-delay","list-style-type","list-style-image","list-style-position","list-style","column-width","column-count","colunns","column-gap","column-rule-color","column-rule-style","column-rule-width","column-rule","break-before","break-after","break-inside","column-span","column-fill","caption-side","table-layout","empty-cells","fit-position","fit","image-orientation","orphans","page-break-after","page-break-before","page-break-inside","page","size","widows","content","z-index","counter-increment","counter-reset","azimuth","elevation","quotes","filter","zoom","-moz-appearance","-moz-background-clip","-moz-background-inline-policy","-moz-background-origin","-moz-background-size","-moz-binding","-moz-border-bottom-colors","-moz-border-left-colors","-moz-border-right-colors","-moz-border-top-colors","-moz-border-end","-moz-border-end-color","-moz-border-end-style","-moz-border-end-width","-moz-border-image","-moz-border-start","-moz-border-start-color","-moz-border-start-style","-moz-border-start-width","-moz-box-align","-moz-box-direction","-moz-box-flex","-moz-box-flexgroup","-moz-box-ordinal-group","-moz-box-orient","-moz-box-pack","-moz-box-sizing","-moz-column-count","-moz-column-gap","-moz-column-width","-moz-column-rule","-moz-column-rule-width","-moz-column-rule-style","-moz-column-rule-color","-moz-float-edge","-moz-font-feature-settings","-moz-font-language-override","-moz-force-broken-image-icon","-moz-image-region","-moz-margin-end","-moz-margin","-moz-opacity","-moz-outline","-moz-outline-color","-moz-outline-offset","-moz-outline-radius","-moz-outline-radius-bottomleft","-moz-outline-radius-bottomright","-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-style","-moz-outline-width","-moz-padding-end","-moz-padding-start","-moz-stack-sizing","-moz-tab-size","-moz-transform","-moz-transform-origin","-moz-transition","-moz-transition-delay","-moz-transition-duration","-moz-transition-property","-moz-transition-timing-function","-moz-user-focus","-moz-user-input","-moz-user-modify","-moz-user-select","-moz-window-shadow","-webkit-appearance","-webkit-background-clip","-webkit-background-composite","-webkit-background-origin","-webkit-background-size","-webkit-binding","-webkit-border-bottom-left-radius","-webkit-border-bottom-right-radius","-webkit-border-fit","-webkit-border-horizontal-spacing","-webkit-border-image","-webkit-border-radius","-webkit-border-top-left-radius","-webkit-border-top-right-radius","-webkit-border-vertical-spacing","-webkit-box-align","-webkit-box-direction","-webkit-box-flex","-webkit-box-flex-group","-webkit-box-lines","-webkit-box-ordinal-group","-webkit-box-orient","-webkit-box-pack","-webkit-box-shadow","-webkit-box-sizing","-webkit-column-break-after","-webkit-column-break-before","-webkit-column-break-inside","-webkit-column-count","-webkit-column-gap","-webkit-column-rule","-webkit-column-rule-color","-webkit-column-rule-style","-webkit-column-rule-width","-webkit-column-width","-webkit-columns","-webkit-dashboard-region","-webkit-font-size-delta","-webkit-highlight","-webkit-line-break","-webkit-line-clamp","-webkit-margin-bottom-collapse","-webkit-margin-collapse	#","-webkit-margin-start","-webkit-margin-top-collapse","-webkit-marquee","-webkit-marquee-direction","-webkit-marquee-increment","-webkit-marquee-repetition","-webkit-marquee-speed","-webkit-marquee-style","-webkit-match-nearest-mail-blockquote-color","-webkit-nbsp-mode","-webkit-padding-start","-webkit-rtl-ordering","-webkit-text-decorations-in-effect","-webkit-text-fill-color","-webkit-text-security","-webkit-text-size-adjust","-webkit-text-stroke","-webkit-text-stroke-color","-webkit-text-stroke-width","-webkit-user-drag","-webkit-user-modify","-webkit-user-select","-o-border-image","-o-device-pixel-ratio","-o-linear-gradient","-o-repeating-linear-gradient","-o-object-fit","-o-object-position","-o-tab-size","-o-table-baseline","-o-transform","-o-transform-origin","-o-transition","-o-transition-delay","-o-transition-duration","-o-transition-property","-o-transition-timing-function","-o-zoom-in","-o-zoom-out","-ms-accelerator","-ms-background-position-x","-ms-background-position-y","-ms-behavior","-ms-block-progression","-ms-filter","-ms-ime-mode","-ms-layout-grid","-ms-layout-grid-char","-ms-layout-grid-line","-ms-layout-grid-mode","-ms-layout-grid-type","-ms-line-break","-ms-line-grid-mode","-ms-interpolation-mode","-ms-overflow-x","-ms-overflow-y","-ms-scrollbar-3dlight-color","-ms-scrollbar-arrow-color","-ms-scrollbar-base-color","-ms-scrollbar-darkshadow-color","-ms-scrollbar-face-color","-ms-scrollbar-highlight-color","-ms-scrollbar-shadow-color","-ms-scrollbar-track-color","-ms-text-align-last","-ms-text-autospace","-ms-text-justify","-ms-text-kashida-space","-ms-text-overflow","-ms-text-underline-position","-ms-word-break","-ms-word-wrap","-ms-writing-mode","-ms-zoom"],customParseRules:[function(){var b=a.util.createHashMap(["matrix","translate","translateX","translateY","scaleX","scaleY","rotate","skewX","skewY","skew","translate3d","scaleZ","translateZ","rotate3d","perspective","url","alpha","basicimage","blur","dropshadow","engrave","glow","light","maskfilter","motionblur","shadow","wave"],"\\b",!0);return function(c){var d,e,f=a.util.matchWord(c,b,"function",!0);if(null===f)return null;for(d=f.value.length,e=c.reader.peek(d);e.length===d&&e!==c.reader.EOF;){if(!/\s$/.test(e)){if("("===e.charAt(e.length-1))return c.reader.read(f.value.length-1),f;break}e=c.reader.peek(++d)}return null}}(),function(){var b=a.util.createHashMap(["root","nth-child","nth-last-child","nth-of-type","nth-last-of-type","first-child","last-child","first-of-type","last-of-type","only-child","only-of-type","empty","link","visited","active","hover","focus","target","lang","enabled","disabled","checked","first-line","first-letter","before","after","not","read-only","read-write","default","valid","invalid","in-range","out-of-range","required","optional"],"\\b",!0);return function(c){var d=a.util.getPreviousNonWsToken(c.getAllTokens(),c.count());return d&&"operator"===d.name&&":"===d.value?a.util.matchWord(c,b,"pseudoClass"):null}}(),function(){var b=a.util.createHashMap(["before","after","value","choices","repeat-item","repeat-index","marker"],"\\b",!0);return function(c){var d=a.util.getPreviousNonWsToken(c.getAllTokens(),c.count());return d&&"operator"===d.name&&"::"===d.value?a.util.matchWord(c,b,"pseudoElement"):null}}(),function(a){var b,d=a.reader.getLine(),e=a.reader.getColumn();return"."!==a.reader.current()?null:(b=c(a),null===b?null:(a.reader.read(b.length),[a.createToken("operator",".",d,e),a.createToken("class",b,d,e+1)]))},function(b){var d,e,f=b.reader.current(),g=b.reader.getLine(),h=b.reader.getColumn();return/[A-Za-z_]/.test(f)?(d=a.util.getPreviousNonWsToken(b.getAllTokens(),b.count()),!d||"operator"!==d.name||":"!==d.value&&"::"!==d.value?(e=c(b),null===e?null:(b.reader.read(e.length),b.createToken("element",f+e,g,h))):null):null},function(a){var b,c,d=1,e="#",f=!0,g=a.reader.getLine(),h=a.reader.getColumn();if("#"!==a.reader.current())return null;for(b=a.reader.peek();b.length===d&&(c=b.charAt(b.length-1),"}"!==c&&";"!==c);){if("{"===c)return null;f&&/[A-Fa-f0-9]/.test(c)?e+=c:f=!1,b=a.reader.peek(++d)}return a.reader.read(e.length-1),a.createToken("hexColor",e,g,h)}],numberParser:function(a){var b,c,d=a.reader.current(),e=a.reader.getLine(),f=a.reader.getColumn(),g=!0;if(/\d/.test(d))b=d,"0"===d&&"."!==a.reader.peek()&&(g=!1);else{if("."!==d||!/\d/.test(a.reader.peek()))return null;b=d+a.reader.read(),g=!1}for(;(c=a.reader.peek())!==a.reader.EOF;){if(!/[A-Za-z0-9%]/.test(c)){if("."===c&&g&&/\d$/.test(a.reader.peek(2))){b+=a.reader.read(),g=!1;continue}break}b+=a.reader.read()}return a.createToken("number",b,e,f)},customTokens:{rule:{values:["@import","@media","@font-face","@phonetic-alphabet","@hyphenate-resource","@font-feature-values","@charset","@namespace","@page","@bottom-left-corner","@bottom-left","@bottom-center","@bottom-right","@bottom-right-corner","@top-left-corner","@top-left","@top-center","@top-right","@top-right-corner"],boundary:"\\b"},microsoftFilterPrefix:{values:["progid:DXImageTransform.Microsoft"],boundary:"\\b"},importantFlag:{values:["!important"],boundary:"\\b"}},scopes:{string:[['"','"',['\\"',"\\\\"]],["'","'",["\\'","\\\\"]]],comment:[["/*","*/"]],id:[["#",{length:1,regex:/[^-\w]/},null,!0]]},identFirstLetter:/[A-Za-z-]/,identAfterFirstLetter:/[\w-]/,operators:["::",":",">","+","~=","^=","$=","|=","=",".","*"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("diff",{doNotParse:/(?!x)x/,scopes:{header:[["---","\n",null,!0],["+++","\n",null,!0],["***","\n",null,!0]],added:[["+","\n",null,!0]],removed:[["-","\n",null,!0]],modified:[["!","\n",null,!0]],unchanged:[[" ","\n",null,!0]],rangeInfo:[["@@","\n",null,!0]],mergeHeader:[["Index:","\n",null,!0],["=","\n",null,!0]]},customTokens:{noNewLine:{values:["\\ No newline at end of file"],boundary:"\\b"}}})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("erlang",{keywords:["after","andalso","and","band","begin","bnot","bor","bsl","bsr","bxor","case","catch","cond","div","end","fun","if","let","not","of","orelse","or","query","receive","rem","try","when","xor","true","false"],customParseRules:[function(a){var b,c,d,e=a.reader.getLine(),f=a.reader.getColumn(),g=0,h=!1,i=1;if(!/[A-Za-z_]/.test(a.reader.current()))return null;for(;(b=a.reader.peek(++g))&&b.length===g&&/[\w@]$/.test(b););for(c=a.reader.current()+b.substring(0,b.length-1),g--;(b=a.reader.peek(++g))&&b.length===g;)if(!/\s$/.test(b)){/\($/.test(b)&&(h=!0);break}if(!h&&!/^[A-Z_]/.test(c))return null;if(a.reader.read(c.length-1),g=1,h){for(;(b=a.reader.peek(++g))&&b.length===g;){if(d=b.charAt(b.length-1),0===i){for(;(b=a.reader.peek(++g))&&b.length===g;)if(!/\s$/.test(b)){if(/->$/.test(a.reader.peek(g+1)))return a.items.userDefinedFunctions.push(c),a.createToken("userDefinedFunction",c,e,f);break}break}"("===d?i++:")"===d&&i--}return a.createToken("function",c,e,f)}return a.createToken("ident",c,e,f)}],customTokens:{moduleAttribute:{values:["-module","-export","-import","-compile","-vsn","-behaviour","-record","-include","-define","-file","-type","-spec","on_load"],boundary:"\\b"},macroDirective:{values:["-undef","-ifdef","-ifndef","-else","-endif"],boundary:"\\b"}},scopes:{string:[['"','"',a.util.escapeSequences.concat(['\\"'])]],quotedAtom:[["'","'",["\\'","\\\\"]]],comment:[["%","\n",null,!0]],"char":[["$",{regex:/[^\w\\]/,length:1},null,!0]],macro:[["?",{regex:/[^\w?]/,length:1},null,!0]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/[\w@]/,namedIdentRules:{custom:[function(b){return a.util.contains(b.items.userDefinedFunctions,b.tokens[b.index].value)}],precedes:[[{token:"operator",values:[":"]}]]},contextItems:{userDefinedFunctions:[]},operators:["<-","<","||","=:=","=/=","==","=<","=","*","<<",",",">=",">>",">",":","#","!","++","+","->","--","-","/=","/"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("haskell",{keywords:["as","case","of","class","datafamily","datainstance","data","default","derivinginstance","deriving","do","forall","foreign","hiding","if","then","else","import","infix","infixl","infixr","instance","let","in","mdo","module","newtype","proc","qualified","rec","typefamily","typeinstance","type","where"],customParseRules:[function(a){var b=a.reader.peek(),c=2,d=a.reader.getLine(),e=a.reader.getColumn();return"'"!==a.reader.current()&&"'"!==b?null:(b&&"\\"===b&&c++,/'$/.test(a.reader.peek(c))?a.createToken("char","'"+a.reader.read(c),d,e):null)},function(b){var c,d,e,f=0,g=b.reader.getLine(),h=b.reader.getColumn();if(!/[A-Za-z_]/.test(b.reader.current()))return null;for(;(c=b.reader.peek(++f))&&c.length===f&&/[\w']$/.test(c););if(d=b.reader.current()+c.substring(0,c.length-1),e=b.token(b.count()-1),e&&"keyword"===e.name&&a.util.contains(["class","newtype","data","type"],e.value))return b.items.userDefinedFunctions.push(d),b.reader.read(d.length-1),b.createToken("ident",d,g,h);if(b.reader.isSolWs())for(;(c=b.reader.peek(++f))&&c.length===f;)if(!/\s$/.test(c))return/::$/.test(b.reader.peek(++f))?(b.items.userDefinedFunctions.push(d),b.reader.read(d.length-1),b.createToken("ident",d,g,h)):null;return null}],customTokens:{"function":{values:["abs","acosh","acos","all","and","any","appendFile","asinh","asin","asTypeOf","atan2","atanh","atan","break","catch","ceiling","compare","concatMap","concat","const","cosh","cos","curry","cycle","decodeFloat","divMod","div","dropWhile","drop","either","elem","encodeFloat","enumFromThenTo","enumFromThen","enumFromTo","enumFrom","error","even","exponent","exp","fail","filter","flip","floatDigits","floatRadix","floatRange","floor","fmap","foldl1","foldl","foldr1","foldr","fromEnum","fromInteger","fromIntegral","fromRational","fst","gcd","getChar","getContents","getLine","head","id","init","interact","ioError","isDenormalized","isIEEE","isInfinite","isNaN","isNegativeZero","iterate","last","lcm","length","lex","lines","logBase","log","lookup","mapM_","mapM","map","maxBound","maximum","max","maybe","minBound","minimum","min","mod","negate","notElem","not","null","odd","or","otherwise","pi","pred","print","product","properFraction","putChar","putStrLn","putStr","quotRem","quot","readFile","readIO","readList","readLn","readParen","readsPrec","reads","realToFrac","read","recip","rem","repeat","replicate","return","reverse","round","scaleFloat","scanl1","scanl","scanr1","scanr","sequence_","sequence","seq","showChar","showList","showParen","showsPrec","showString","shows","show","significand","signum","sinh","sin","snd","splitAt","sqrt","subtract","succ","sum","tail","takeWhile","take","tanh","tan","toEnum","toInteger","toRational","truncate","uncurry","undefined","unlines","until","unwords","unzip3","unzip","userError","words","writeFile","zip3","zipWith3","zipWith","zip"],boundary:"\\b"},"class":{values:["Bounded","Enum","Eq","Floating","Fractional","Functor","Integral","Monad","Num","Ord","Read","RealFloat","RealFrac","Real","Show"],boundary:"\\b"},type:{values:["Bool","Char","Double","Either","FilePath","Float","Integer","Int","IOError","IO","Maybe","Ordering","ReadS","ShowS","String","False","True","LT","GT","EQ","Nothing","Just","Left","Right"],boundary:"\\b"}},scopes:{string:[['"','"',a.util.escapeSequences.concat(['\\"'])]],comment:[["--","\n",null,!0],["{-","-}"]],infixOperator:[["`","`",["\\`"]]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/[\w']/,namedIdentRules:{custom:[function(b){return a.util.contains(b.items.userDefinedFunctions,b.tokens[b.index].value)}]},contextItems:{userDefinedFunctions:[]},operators:["::",":","=>","==","=","@","[|","|]","\\\\","\\","/=","/","++","+","-<<","-<","->","-","&&","!!","!","''","'","??","?","#","<-","<=","<",">@>",">>=",">>",">=",">","^^","^","**","*","||","|","~","_","..","."]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";a.registerLanguage("httpd",{scopes:{string:[['"','"',['\\"',"\\\\"]]],comment:[["#","\n",null,!0]],environmentVariable:[["${","}"],["%{","}"]]},customParseRules:[function(){var b=a.util.createHashMap(["AuthnProviderAlias","Directory","DirectoryMatch","Files","FilesMatch","IfDefine","IfModule","IfVersion","Limit","LimitExcept","Location","LocationMatch","ProxyMatch","Proxy","VirtualHost","IfDefine"],"\\b",!1);return function(c){var d,e,f=a.util.getPreviousNonWsToken(c.getAllTokens(),c.count());if(!f||"operator"!==f.name||"<"!==f.value&&"</"!==f.value)return!1;if(f=a.util.matchWord(c,b,"context",!0),!f)return null;for(e=f.value.length;(d=c.reader.peek(e++))!==c.reader.EOF;){if(/>$/.test(d))return c.reader.read(f.value.length-1),f;if(/\n$/.test(d))break}return null}}(),function(b){var c,d,e,f,g=b.reader.current(),h=b.reader.getLine(),i=b.reader.getColumn();if(/[\s\n]/.test(g))return null;if(c=b.getAllTokens(),d=a.util.getPreviousNonWsToken(c,b.count()),!d)return null;if(("keyword"!==d.name||"RewriteRule"!==d.value)&&(d=a.util.getPreviousNonWsToken(c,b.count()-1),!d||"keyword"!==d.name||"RewriteCond"!==d.value))return null;for(e=g;(f=b.reader.peek())!==b.reader.EOF&&!/[\s\n]/.test(f);)e+=b.reader.read();return b.createToken("regexLiteral",e,h,i)},function(){var b=a.util.createHashMap(["AcceptFilter","AcceptMutex","AcceptPathInfo","AccessFileName","Action","AddAltByEncoding","AddAltByType","AddAlt","AddCharset","AddDefaultCharset","AddDescription","AddEncoding","AddHandler","AddIconByEncoding","AddIconByType","AddIcon","AddInputFilter","AddLanguage","AddModuleInfo","AddOutputFilterByType","AddOutputFilter","AddType","AliasMatch","Alias","AllowCONNECT","AllowEncodedSlashes","AllowOverride","Allow","Anonymous_LogEmail","Anonymous_MustGiveEmail","Anonymous_NoUserID","Anonymous_VerifyEmail","Anonymous","AuthBasicAuthoritative","AuthBasicProvider","AuthDBDUserPWQuery","AuthDBDUserRealmQuery","AuthDBMGroupFile","AuthDBMType","AuthDBMUserFile","AuthDefaultAuthoritative","AuthDigestAlgorithm","AuthDigestDomain","AuthDigestNcCheck","AuthDigestNonceFormat","AuthDigestNonceLifetime","AuthDigestProvider","AuthDigestQop","AuthDigestShmemSize","AuthGroupFile","AuthLDAPBindAuthoritative","AuthLDAPBindDN","AuthLDAPBindPassword","AuthLDAPCharsetConfig","AuthLDAPCompareDNOnServer","AuthLDAPDereferenceAliases","AuthLDAPGroupAttributeIsDN","AuthLDAPGroupAttribute","AuthLDAPRemoteUserAttribute","AuthLDAPRemoteUserIsDN","AuthLDAPUrl","AuthName","AuthType","AuthUserFile","AuthzDBMAuthoritative","AuthzDBMType","AuthzDefaultAuthoritative","AuthzGroupFileAuthoritative","AuthzLDAPAuthoritative","AuthzOwnerAuthoritative","AuthzUserAuthoritative","BalancerMember","BrowserMatch","BrowserMatchNoCase","BufferedLogs","CacheDefaultExpire","CacheDirLength","CacheDirLevels","CacheDisable","CacheEnable","CacheFile","CacheIgnoreCacheControl","CacheIgnoreHeaders","CacheIgnoreNoLastMod","CacheIgnoreQueryString","CacheIgnoreURLSessionIdentifiers","CacheLastModifiedFactor","CacheLockMaxAge","CacheLockPath","CacheLock","CacheMaxExpire","CacheMaxFileSize","CacheMinFileSize","CacheNegotiatedDocs","CacheRoot","CacheStoreNoStore","CacheStorePrivate","CGIMapExtension","CharsetDefault","CharsetOptions","CharsetSourceEnc","CheckCaseOnly","CheckSpelling","ChrootDir","ContentDigest","CookieDomain","CookieExpires","CookieLog","CookieName","CookieStyle","CookieTracking","CoreDumpDirectory","CustomLog","DavDepthInfinity","DavGenericLockDB","DavLockDB","DavMinTimeout","Dav","DBDExptime","DBDKeep","DBDMax","DBDMin","DBDParams","DBDPersist","DBDPrepareSQL","DBDriver","DefaultIcon","DefaultLanguage","DefaultType","DeflateBufferSize","DeflateCompressionLevel","DeflateFilterNote","DeflateMemLevel","DeflateWindowSize","Deny","DirectoryIndex","DirectorySlash","DocumentRoot","DumpIOInput","DumpIOLogLevel","DumpIOOutput","EnableExceptionHook","EnableMMAP","EnableSendfile","ErrorDocument","ErrorLog","Example","ExpiresActive","ExpiresByType","ExpiresDefault","ExtendedStatus","ExtFilterDefine","ExtFilterOptions","FallbackResource","FileETag","FilterChain","FilterDeclare","FilterProtocol","FilterProvider","FilterTrace","ForceLanguagePriority","ForceType","ForensicLog","GprofDir","GracefulShutDownTimeout","Group","HeaderName","Header","HostnameLookups","IdentityCheckTimeout","IdentityCheck","ImapBase","ImapDefault","ImapMenu","Include","IndexHeadInsert","IndexIgnore","IndexOptions","IndexOrderDefault","IndexStyleSheet","ISAPIAppendLogToErrors","ISAPIAppendLogToQuery","ISAPICacheFile","ISAPIFakeAsync","ISAPILogNotSupported","ISAPIReadAheadBuffer","KeepAliveTimeout","KeepAlive","LanguagePriority","LDAPCacheEntries","LDAPCacheTTL","LDAPConnectionTimeout","LDAPOpCacheEntries","LDAPOpCacheTTL","LDAPSharedCacheFile","LDAPSharedCacheSize","LDAPTrustedClientCert","LDAPTrustedGlobalCert","LDAPTrustedMode","LDAPVerifyServerCert","LimitInternalRecursion","LimitRequestBody","LimitRequestFields","LimitRequestFieldSize","LimitRequestLine","LimitXMLRequestBody","ListenBacklog","Listen","LoadFile","LoadModule","LockFile","LogFormat","LogLevel","MaxClients","MaxKeepAliveRequests","MaxMemFree","MaxRequestsPerChild","MaxRequestsPerThread","MaxSpareServers","MaxSpareThreads","MaxThreads","MCacheMaxObjectCount","MCacheMaxObjectSize","MCacheMaxStreamingBuffer","MCacheMinObjectSize","MCacheRemovalAlgorithm","MCacheSize","MetaDir","MetaFiles","MetaSuffix","MimeMagicFile","MinSpareServers","MinSpareThreads","MMapFile","ModMimeUsePathInfo","MultiviewsMatch","NameVirtualHost","NoProxy","NWSSLTrustedCerts","NWSSLUpgradeable","Options","Order","PassEnv","PidFile","ProtocolEcho","Protocol","ProxyBadHeader","ProxyBlock","ProxyDomain","ProxyErrorOverride","ProxyFtpDirCharset","ProxyIOBufferSize","ProxyMaxForwards","ProxyPassInterpolateEnv","ProxyPassMatch","ProxyPassReverse","ProxyPassReverseCookieDomain","ProxyPassReverseCookiePath","ProxyPass","ProxyPreserveHost","ProxyReceiveBufferSize","ProxyRemoteMatch","ProxyRemote","ProxyRequests","ProxySCGIInternalRedirect","ProxySCGISendfile","ProxySet","ProxyStatus","ProxyTimeout","ProxyVia","ReadmeName","ReceiveBufferSize","RedirectMatch","RedirectPermanent","RedirectTemp","Redirect","RemoveCharset","RemoveEncoding","RemoveHandler","RemoveInputFilter","RemoveLanguage","RemoveOutputFilter","RemoveType","RequestHeader","RequestReadTimeout","Require","RewriteBase","RewriteCond","RewriteEngine","RewriteLock","RewriteLogLevel","RewriteLog","RewriteMap","RewriteOptions","RewriteRule","RLimitCPU","RLimitMEM","RLimitNPROC","Satisfy","ScoreBoardFile","ScriptAliasMatch","ScriptAlias","ScriptInterpreterSource","ScriptLogBuffer","ScriptLogLength","ScriptLog","ScriptSock","Script","SecureListen","SeeRequestTail","SendBufferSize","ServerAdmin","ServerAlias","ServerLimit","ServerName","ServerPath","ServerRoot","ServerSignature","ServerTokens","SetEnvIfNoCase","SetEnvIf","SetEnv","SetHandler","SetInputFilter","SetOutputFilter","SSIEnableAccess","SSIEndTag","SSIErrorMsg","SSIETag","SSILastModified","SSIStartTag","SSITimeFormat","SSIUndefinedEcho","SSLCACertificateFile","SSLCACertificatePath","SSLCADNRequestFile","SSLCADNRequestPath","SSLCARevocationFile","SSLCARevocationPath","SSLCertificateChainFile","SSLCertificateFile","SSLCertificateKeyFile","SSLCipherSuite","SSLCryptoDevice","SSLEngine","SSLFIPS","SSLHonorCipherOrder","SSLInsecureRenegotiation","SSLMutex","SSLOptions","SSLPassPhraseDialog","SSLProtocol","SSLProxyCACertificateFile","SSLProxyCACertificatePath","SSLProxyCARevocationFile","SSLProxyCARevocationPath","SSLProxyCheckPeerCN","SSLProxyCheckPeerExpire","SSLProxyCipherSuite","SSLProxyEngine","SSLProxyMachineCertificateFile","SSLProxyMachineCertificatePath","SSLProxyProtocol","SSLProxyVerify","SSLProxyVerifyDepth","SSLRandomSeed","SSLRenegBufferSize","SSLRequireSSL","SSLRequire","SSLSessionCacheTimeout","SSLSessionCache","SSLStrictSNIVHostCheck","SSLUserName","SSLVerifyClient","SSLVerifyDepth","StartServers","StartThreads","Substitute","SuexecUserGroup","Suexec","ThreadLimit","ThreadsPerChild","ThreadStackSize","TimeOut","TraceEnable","TransferLog","TypesConfig","UnsetEnv","UseCanonicalName","UseCanonicalPhysicalPort","UserDir","User","VirtualDocumentRootIP","VirtualDocumentRoot","VirtualScriptAliasIP","VirtualScriptAlias","Win32DisableAcceptEx","XBitHack","ServerType"],"\\b",!0);return function(c){return c.reader.isSolWs()?a.util.matchWord(c,b,"keyword"):!1}}()],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/[\w]/,operators:["</","<",">","\\"]})}(this.Sunlight),function(a,b){function c(a){var b=/^T([A-Z0-9]\w*)?$/;return function(c){return!b.test(c.tokens[c.index].value)&&a(c)}}if(a===b||a.registerLanguage===b)throw"Include sunlight.js before including language files";var d=["boolean","byte","char","double","float","int","long","short"],e=d.concat(["extends"]);a.registerLanguage("java",{keywords:["abstract","assert","boolean","break","byte","case","catch","char","class","const","continue","default","do","double","else","enum","extends","final","finally","float","for","goto","if","implements","import","instanceof","int","interface","long","native","new","package","private","protected","public","return","short","static","strictfp","super","switch","synchronized","this","throw","throws","transient","try","void","volatile","while","null","false","true"],scopes:{string:[['"','"',a.util.escapeSequences.concat(['\\"'])],["'","'",["'","\\\\"]]],comment:[["//","\n",null,!0],["/*","*/"]],annotation:[["@",{length:1,regex:/[\s\(]/},null,!0]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\w/,namedIdentRules:{custom:[c(function(c){for(var d,f=c.index,g=!1,h=[0,0];(d=c.tokens[--f])!==b;){if("keyword"===d.name&&"class"===d.value)return!1;if("operator"!==d.name){if(!("keyword"===d.name&&a.util.contains(e,d.value)||"default"===d.name||"punctuation"===d.name&&","===d.value)){if("ident"!==d.name)break;g=!0}}else switch(d.value){case"<":case"<<":h[0]+=d.value.length;break;case">":case">>":if(0===h[0])return!1;h[1]+=d.value.length;break;case".":case"?":case"&":break;default:return!1}}if(!g||0===h[0])return!1;for(f=c.index;(d=c.tokens[++f])!==b;){if("operator"===d.name&&(">"===d.value||">>"===d.value))return!0;if(!("keyword"===d.name&&a.util.contains(e,d.value)||"operator"===d.name&&a.util.contains(["<","<<",">",">>"],d.value)||"punctuation"===d.name&&","===d.value||"ident"===d.name||"default"===d.name))return!1}return!1}),c(function(c){var f,g,h=a.util.getPreviousNonWsToken(c.tokens,c.index);if(h!==b&&("ident"===h.name||"keyword"===h.name&&a.util.contains(d.concat(["void"]),h.value)||"operator"===h.name&&"."===h.value))return!1;if(h=a.util.getNextNonWsToken(c.tokens,c.index),!h||"operator"!==h.name||"<"!==h.value)return!1;for(f=c.index,g=[0,0];(h=c.tokens[++f])!==b;)if("operator"!==h.name){if(!("default"===h.name||"ident"===h.name||"keyword"===h.name&&a.util.contains(e,h.value)||"punctuation"===h.name&&","===h.value))return!1}else{switch(h.value){case"<":g[0]++;break;case"<<":g[0]+=2;break;case">":g[1]++;break;case">>":g[1]+=2;break;case"?":case"&":break;default:return!1}if(g[0]>0&&g[0]===g[1])break}return g[0]!==g[1]?!1:(h=c.tokens[++f],!h||"default"!==h.name&&"ident"!==h.name?!1:"default"!==h.name||(h=c.tokens[++f],h&&"ident"===h.name)?!0:!1)}),c(function(c){var d,e,f,g=a.util.getNextNonWsToken(c.tokens,c.index);if(g&&"operator"===g.name&&"."===g.value)return!1;for(e=c.index,f=c.tokens[e];(d=c.tokens[--e])!==b;){if("keyword"===d.name&&("new"===d.value||"import"===d.value||"instanceof"===d.value))return!0;if("default"!==d.name)if("ident"!==d.name){if("operator"!==d.name||"."!==d.value)break;if(f&&"ident"!==f.name)return!1;f=d}else{if(f&&"ident"===f.name)return!1;f=d}}return!1}),function(){var b=[[a.util.whitespace,{token:"punctuation",values:[")"]},a.util.whitespace,{token:"ident"}],[a.util.whitespace,{token:"punctuation",values:[")"]},a.util.whitespace,{token:"keyword",values:["this"]}]];return c(function(c){var d,e,f,g=function(d){for(var e=0;e<b.length;e++)if(a.util.createProceduralRule(c.index+1,1,b[e],!1)(d))return!0;return!1}(c.tokens);if(!g)return!1;for(e=c.index;d=c.tokens[--e];)if("punctuation"===d.name&&"("===d.value)return f=a.util.getPreviousNonWsToken(c.tokens,e),f&&"keyword"===f.name?!1:!0;return!1})}(),c(function(b){var c,d=[[{token:"ident"},a.util.whitespace,{token:"keyword",values:["extends","implements"]},a.util.whitespace],[{token:"keyword",values:["class","interface","enum","public","private","protected","static","final"]},a.util.whitespace],[{token:"keyword",values:["extends"]},{token:"default"},{token:"ident"},{token:"default"},{token:"operator",values:["&"]},{token:"default"}]],e=[[a.util.whitespace,{token:"punctuation",values:["["]},a.util.whitespace,{token:"punctuation",values:["]"]}],[{token:"default"},{token:"ident"}]],f=[{opener:{token:"keyword",values:["implements","throws"]},closer:{token:"punctuation
Download .txt
gitextract_f0v551o_/

├── .github/
│   └── FUNDING.yml
├── CHANGE.log
├── MIT-LICENSE.md
├── README.md
├── demos/
│   └── demo.html
├── docs/
│   ├── global.html
│   ├── index.html
│   ├── scripts/
│   │   ├── docstrap.lib.js
│   │   └── toc.js
│   └── styles/
│       └── sunlight.default.css
├── package.json
└── src/
    ├── curve.js
    ├── curve_calc.js
    └── curve_draw.js
Download .txt
SYMBOL INDEX (117 symbols across 4 files)

FILE: docs/scripts/docstrap.lib.js
  function c (line 1) | function c(a){var b=a.length,c=fb.type(a);return fb.isWindow(a)?!1:1===a...
  function d (line 1) | function d(a){var b=ob[a]={};return fb.each(a.match(hb)||[],function(a,c...
  function e (line 1) | function e(){Object.defineProperty(this.cache={},0,{get:function(){retur...
  function f (line 1) | function f(a,c,d){var e;if(d===b&&1===a.nodeType)if(e="data-"+c.replace(...
  function g (line 1) | function g(){return!0}
  function h (line 1) | function h(){return!1}
  function i (line 1) | function i(){try{return T.activeElement}catch(a){}}
  function j (line 1) | function j(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}
  function k (line 1) | function k(a,b,c){if(fb.isFunction(b))return fb.grep(a,function(a,d){ret...
  function l (line 1) | function l(a,b){return fb.nodeName(a,"table")&&fb.nodeName(1===b.nodeTyp...
  function m (line 1) | function m(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}
  function n (line 1) | function n(a){var b=Nb.exec(a.type);return b?a.type=b[1]:a.removeAttribu...
  function o (line 1) | function o(a,b){for(var c=a.length,d=0;c>d;d++)qb.set(a[d],"globalEval",...
  function p (line 1) | function p(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(qb.hasData(a)&...
  function q (line 1) | function q(a,c){var d=a.getElementsByTagName?a.getElementsByTagName(c||"...
  function r (line 1) | function r(a,b){var c=b.nodeName.toLowerCase();"input"===c&&Kb.test(a.ty...
  function s (line 1) | function s(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b...
  function t (line 1) | function t(a,b){return a=b||a,"none"===fb.css(a,"display")||!fb.contains...
  function u (line 1) | function u(b){return a.getComputedStyle(b,null)}
  function v (line 1) | function v(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style...
  function w (line 1) | function w(a,b,c){var d=Ub.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2...
  function x (line 1) | function x(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b...
  function y (line 1) | function y(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=...
  function z (line 1) | function z(a){var b=T,c=Xb[a];return c||(c=A(a,b),"none"!==c&&c||(Rb=(Rb...
  function A (line 1) | function A(a,b){var c=fb(b.createElement(a)).appendTo(b.body),d=fb.css(c...
  function B (line 1) | function B(a,b,c,d){var e;if(fb.isArray(b))fb.each(b,function(b,e){c||bc...
  function C (line 1) | function C(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d...
  function D (line 1) | function D(a,c,d,e){function f(i){var j;return g[i]=!0,fb.each(a[i]||[],...
  function E (line 1) | function E(a,c){var d,e,f=fb.ajaxSettings.flatOptions||{};for(d in c)c[d...
  function F (line 1) | function F(a,c,d){for(var e,f,g,h,i=a.contents,j=a.dataTypes;"*"===j[0];...
  function G (line 1) | function G(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for...
  function H (line 1) | function H(){return setTimeout(function(){Bc=b}),Bc=fb.now()}
  function I (line 1) | function I(a,b,c){for(var d,e=(Hc[b]||[]).concat(Hc["*"]),f=0,g=e.length...
  function J (line 1) | function J(a,b,c){var d,e,f=0,g=Gc.length,h=fb.Deferred().always(functio...
  function K (line 1) | function K(a,b){var c,d,e,f,g;for(c in a)if(d=fb.camelCase(c),e=b[d],f=a...
  function L (line 1) | function L(a,c,d){var e,f,g,h,i,j,k=this,l={},m=a.style,n=a.nodeType&&t(...
  function M (line 1) | function M(a,b,c,d,e){return new M.prototype.init(a,b,c,d,e)}
  function N (line 1) | function N(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=$b[e],d[...
  function O (line 1) | function O(a){return fb.isWindow(a)?a:9===a.nodeType&&a.defaultView}
  function c (line 1) | function c(a,b,c,d){var e,f,g,h,i,j,k,l,o,p;if((b?b.ownerDocument||b:O)!...
  function d (line 1) | function d(){function a(c,d){return b.push(c+=" ")>z.cacheLength&&delete...
  function e (line 1) | function e(a){return a[N]=!0,a}
  function f (line 1) | function f(a){var b=G.createElement("div");try{return!!a(b)}catch(c){ret...
  function g (line 1) | function g(a,b){for(var c=a.split("|"),d=a.length;d--;)z.attrHandle[c[d]...
  function h (line 1) | function h(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sour...
  function i (line 1) | function i(a){return function(b){var c=b.nodeName.toLowerCase();return"i...
  function j (line 1) | function j(a){return function(b){var c=b.nodeName.toLowerCase();return("...
  function k (line 1) | function k(a){return e(function(b){return b=+b,e(function(c,d){for(var e...
  function l (line 1) | function l(){}
  function m (line 1) | function m(a,b){var d,e,f,g,h,i,j,k=S[a+" "];if(k)return b?0:k.slice(0);...
  function n (line 1) | function n(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}
  function o (line 1) | function o(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=Q++;return b.first...
  function p (line 1) | function p(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)...
  function q (line 1) | function q(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f...
  function r (line 1) | function r(a,b,c,d,f,g){return d&&!d[N]&&(d=r(d)),f&&!f[N]&&(f=r(f,g)),e...
  function s (line 1) | function s(a){for(var b,c,d,e=a.length,f=z.relative[a[0].type],g=f||z.re...
  function t (line 1) | function t(a,b){var d=0,f=b.length>0,g=a.length>0,h=function(e,h,i,j,k){...
  function u (line 1) | function u(a,b,d){for(var e=0,f=b.length;f>e;e++)c(a,b[e],d);return d}
  function v (line 1) | function v(a,b,c,d){var e,f,g,h,i,j=m(a);if(!d&&1===j.length){if(f=j[0]=...
  function d (line 3) | function d(a,c,d,h){var j,l,s,t,v,x=c;2!==u&&(u=2,i&&clearTimeout(i),e=b...
  function d (line 3) | function d(a){function b(b){var c;return 0===b?"":(b=b||1,c=a.substring(...
  function e (line 3) | function e(a){function b(){}return b.prototype=a,new b}
  function f (line 3) | function f(a,b){var c;for(c=0;c<b.length;c++)a.appendChild(b[c])}
  function g (line 3) | function g(a){return a.charAt?a.charAt(a.length-1):a[a.length-1]}
  function h (line 3) | function h(a,b,c){var d;if(a.indexOf&&!c)return a.indexOf(b)>=0;for(d=0;...
  function i (line 3) | function i(a,b){var c;if(!b)return a;for(c in b)a[c]=b[c];return a}
  function j (line 3) | function j(a){return i({},a)}
  function k (line 3) | function k(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}
  function l (line 3) | function l(a,b,d,e){return d=d.slice(0),function(f){var g,i,j,k=a;for(1=...
  function m (line 3) | function m(a,b,d,e){return function(f){for(var g,i=a,j=!1;(g=f[--i])!==c...
  function n (line 3) | function n(a,b,c,d){var e,f,g,h=a.reader.current(),i=a.reader.getLine(),...
  function o (line 3) | function o(a,b,d,e){var f,g=1;for(d=d||1;f=a[b+d*g++];)if(!e(f))return f...
  function p (line 3) | function p(a,b,c){var d,e,f,g={};for(d=0;d<a.length;d++)e=c?a[d].toUpper...
  function q (line 3) | function q(a){var b,c,d=a.reader.current(),e=a.reader.getLine(),f=a.read...
  function r (line 3) | function r(a,b,c){var d,e=E[a]||[];for(d=0;d<e.length;d++)e[d].call(b,c)}
  function s (line 3) | function s(a){this.options=i(j(B),a)}
  function a (line 3) | function a(a){return function(c){var d=b.createElement("span");return d....
  function a (line 3) | function a(a,b){var c=a[2]||[],d=a[1].length,e="string"==typeof a[1]?new...
  function e (line 3) | function e(a){var b,c;for(b=0;b<a.language.embeddedLanguages.length;b++)...
  function h (line 3) | function h(a){var b,c=g(a.embeddedLanguageStack);c&&c.switchBack(a)&&(a....
  function l (line 3) | function l(a,b,f,g){var i,k,l,m=[];for(r("beforeTokenize",this,{code:a,l...
  function m (line 3) | function m(a,c,d){var e=[],f=function(){var a,b;return d.showWhitespace?...
  function o (line 3) | function o(a,b,d){var e,f=C[b];return d=d||{},f===c&&(f=C[z]),r("beforeH...
  function p (line 3) | function p(a){var c=b.createElement("span");return c.className=a.options...
  function q (line 3) | function q(a,b){var c,d,e,g,h,i,j,k;if(r("beforeAnalyze",this,{analyzerC...
  function b (line 3) | function b(a){return a.language.identFirstLetter&&a.language.identFirstL...
  function d (line 3) | function d(a){return n(a,a.language.keywords,"keyword")}
  function e (line 3) | function e(a){var b,d;if(a.language.customTokens===c)return null;for(b i...
  function f (line 3) | function f(a){return n(a,a.language.operators,"operator")}
  function g (line 3) | function g(a){var b=a.reader.current();return a.language.punctuation.tes...
  function h (line 3) | function h(a){var c,d,e=a.reader.getLine(),f=a.reader.getColumn();if(!b(...
  function i (line 3) | function i(a){return""===a.defaultData.text&&(a.defaultData.line=a.reade...
  function j (line 3) | function j(b){var c,d,e,f,g,h,i,j,k=b.reader.current();for(c in b.langua...
  function l (line 3) | function l(a){return a.language.numberParser(a)}
  function m (line 3) | function m(a){var b,d,e=a.language.customParseRules;if(e===c)return null...
  function c (line 4) | function c(a){for(var b,c=a.count();b=a.token(--c);){if("operator"===b.n...
  function c (line 4) | function c(a){var b=/^T([A-Z0-9]\w*)?$/;return function(c){return!b.test...
  function c (line 4) | function c(a){for(var c,d,e=a.count(),f="",g=!0,h=1;(c=a.token(--e))!==b...
  function c (line 5) | function c(a){var b=/^T([A-Z0-9]\w*)?$/;return function(c){return!b.test...
  function c (line 6) | function c(b,c){var e=a.util.createHashMap(b,d,!1);return function(b){va...
  function c (line 7) | function c(c){var d=c.token(c.count()-1),e=null;return""!==c.defaultData...
  function d (line 7) | function d(a){for(var b,c="";(b=a.reader.peek())!==a.reader.EOF&&/\s/.te...
  function e (line 7) | function e(b,c,d){var e,f,g=c,h=c,i=a.util.contains(["[","(","{"],g),j=g...
  function f (line 7) | function f(a,b){for(var c=a.reader.peek(b);c.length===b&&/\s$/.test(c);)...
  function d (line 9) | function d(a){return function(c){var d=b.createElement("a");d.className=...
  function d (line 9) | function d(a){var b=function c(a){return a.lastChild?3===a.lastChild.nod...
  function createLink (line 9) | function createLink(a,b,c){var d=document.createElement("a");return d.se...
  function getTextRecursive (line 9) | function getTextRecursive(a){var b="",c=0;if(3===a.nodeType)return a.nod...
  function b (line 9) | function b(b){return a.isFunction(b)||"object"==typeof b?b:{top:b,left:b}}
  function g (line 9) | function g(a){j.animate(l,e,f.easing,a&&function(){a.call(this,k,f)})}
  function b (line 9) | function b(b,c,d){var e=c.hash.slice(1),f=document.getElementById(e)||do...
  function f (line 9) | function f(){return!(!this.href||!this.hash||this.href.replace(this.hash...
  function b (line 9) | function b(){a(".dropdown-backdrop").remove(),a(d).each(function(){c(a(t...
  function c (line 9) | function c(b){var c,d=b.attr("data-target");return d||(d=b.attr("href"),...

FILE: src/curve.js
  function fill (line 96) | function fill(pts, cache, l, tension) {

FILE: src/curve_calc.js
  function getCurvePoints (line 23) | function getCurvePoints(points, tension, numOfSeg, closed) {

FILE: src/curve_draw.js
  function curve (line 27) | function curve(ctx, points, tension, numOfSeg, close) {
Condensed preview — 14 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (409K chars).
[
  {
    "path": ".github/FUNDING.yml",
    "chars": 950,
    "preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
  },
  {
    "path": "CHANGE.log",
    "chars": 1932,
    "preview": "Change log for Cardinal Spline JS\n---------------------------------\n\n3.0.0\nChanges from this version can be seen in the "
  },
  {
    "path": "MIT-LICENSE.md",
    "chars": 1087,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2013-2018, 2024 Epistemex\n\nPermission is hereby granted, free of charge, to any per"
  },
  {
    "path": "README.md",
    "chars": 4072,
    "preview": "Cardinal spline\n===============\n\nA Cardinal spline (basically a Catmull-Rom with a tension option)\nimplementation for J"
  },
  {
    "path": "demos/demo.html",
    "chars": 10197,
    "preview": "<!DOCTYPE html>\n<html>\n\n<!-- *******************************************************************\n\t **\t    Cardinal splin"
  },
  {
    "path": "docs/global.html",
    "chars": 12802,
    "preview": "<!DOCTYPE html>\n\n<html lang=\"en\">\n<head>\n\t<meta charset=\"utf-8\">\n\t<title>cardinal-spline-js Global</title>\n\n\t<!--[if lt "
  },
  {
    "path": "docs/index.html",
    "chars": 8173,
    "preview": "<!DOCTYPE html>\n\n<html lang=\"en\">\n<head>\n\t<meta charset=\"utf-8\">\n\t<title>cardinal-spline-js Index</title>\n\n\t<!--[if lt I"
  },
  {
    "path": "docs/scripts/docstrap.lib.js",
    "chars": 312524,
    "preview": "!function(a,b){function c(a){var b=a.length,c=fb.type(a);return fb.isWindow(a)?!1:1===a.nodeType&&b?!0:\"array\"===c||\"fun"
  },
  {
    "path": "docs/scripts/toc.js",
    "chars": 2802,
    "preview": "(function($) {\n$.fn.toc = function(options) {\n  var self = this;\n  var opts = $.extend({}, jQuery.fn.toc.defaults, optio"
  },
  {
    "path": "docs/styles/sunlight.default.css",
    "chars": 8173,
    "preview": "/* global styles */\n.sunlight-container {\n\tclear: both !important;\n\tposition: relative !important;\n\tmargin: 10px 0 !impo"
  },
  {
    "path": "package.json",
    "chars": 885,
    "preview": "{\n  \"name\": \"cardinal-spline-js\",\n  \"version\": \"3.0.0\",\n  \"description\": \"Smooth curve through points with tension and r"
  },
  {
    "path": "src/curve.js",
    "chars": 4643,
    "preview": "/*!\tCurve patch for canvas 2D drawing context 3.0.1\n *\t(c) Epistemex 2013-2018, 2024\n *\tLicense: MIT\n */\n\n'use strict';\n"
  },
  {
    "path": "src/curve_calc.js",
    "chars": 4378,
    "preview": "/*!\tCurve calc function for canvas 3.0.1\n *\t(c) Epistemex 2013-2018, 2024\n *\tLicense: MIT\n */\n\n'use strict';\n\n/**\n * Cal"
  },
  {
    "path": "src/curve_draw.js",
    "chars": 4637,
    "preview": "/*!\tCurve function for canvas 3.0.1\n *\t(c) Epistemex 2013-2018, 2024\n *\tLicense: MIT\n */\n\n'use strict';\n\n/**\n * Draws a "
  }
]

About this extraction

This page contains the full source code of the epistemex/cardinal-spline-js GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 14 files (368.4 KB), approximately 115.5k tokens, and a symbol index with 117 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!